« October 2017 | Main | February 2018 »

December 2017

12/19/2017

ドアフォンの故障(此方の声が相手に聞こえない)

Img_20171219_163241 拙宅で使っているドアフォン、最近訪問者の反応がおかしい・・・。宅配のお姉さんに聞くと、こちらの声が聞こえなかったと言っている。訪問者が押す「呼び鈴音」と「声」は、此方側親機のどの装置でも聞き取れているので、玄関の子機に問題があるようだと判断し、その子機を取外し、スピーカの抵抗をチェックしてみた・・・。




Img_20171219_162515 Img_20171219_162453Img_20171219_162545 スピーカー配線の片側の半田付けを外し、抵抗値を測ってみると・・・、断線している。
小直径のスピーカー、スピーカー型番は、「DAIN LOAD02」8Ωのものだが、調べてみると互換品「 東京コーン スピーカー 28mm 0.5W 8Ω S28G10K-15 」があることがわかった。







とにかく修理してみようと思い、アマゾンからその互換品を購入することにした。価格は送料込みで@1350円也! 他に、中国製で外径のみが少し小さい安価なスピーカも見つけたが、商品の到着までには10日ほど待つ必要があるので、数日で到着するだろう「東京コーンスピーカー」のものを買う事にした。

2日後、注文したスピーカが到着し、早速換装作業実施し、テスト・・・
Img_20171222_165001 Img_20171222_165505 Img_20171222_171548a








部屋の中からの声が玄関の子機で聞こえる! 修理完了。

12/06/2017

Bluetooth modules(HC-05、HC-06)のPairing設定

Bluetooth modules(HC-05、HC-06)が互いに通信するための条件設定は何かを調べてみたので、メモとして残しておく。
本件に関しては、「Arduinoを簡単にBluetooth無線化するHC-05/HC-06
」(2015年2月20日の記事)、「Connecting 2 Arduinos by Bluetooth using a HC-05 and a HC-06: Pair, Bind, and Link 」(2014年11月の英文記事)がとても参考になる。

Bluetooth module HC-05の特徴は、
 ・Bluetoothの親機としても使用できる。(マスターでもスレーブとしてでも使用できる。)
 ・通信はBluetoothで行うが、入出力端子はシリアルのRX/TXとなっているため、Arduinoのシリアル RX/TXに接続するだけで通常のSerial通信と変わらず使用できる。

Bluetooth module HC-06の特徴は、
 ・3.3Vデバイスなので、Arduinoと接続する際には、5V Tx信号を抵抗分圧で、3.3Vにレベルシフトする必要が有る。
 ・通常Arduinoとの接続時には、再起動される。
 ・HC-06は、他のBluetooth module とペアリングしていない場合、ATコマンドを受け入れる。
 ・ATコマンドは、シリアルモニタの下端にある窓の設定は、「改行なし(No line ending、キャリッジリターン (CR) とラインフィード (LF)が無い状態
)」とし、且つ 1秒以内に送信する必要が有り、この時間を越えるとコマンドは無視される。

 ・ディバイスの名前:HC-06
 ・Password: 1234(デフォルト)
 ・Baud: 9600baud(デフォルト)


Bluetooth module HC-05およびHC-06が相互に
通信するための設定手順

①両方のデバイスで同じボーレートを設定する。

  (例)HC-05およびHC-06で、ボーレートを9600に設定する。

②両方のデバイスで、パスワードが同じであることを確認する。

  (例)HC-05とHC-06のパスワードを同じにする。

③次に、HC-06のアドレスを見つける必要がある。

  HC-06のATコマンドでは、自分(HC-06)のアドレスを調べる事は出来ないので、
  Androidデバイスから、あるいはHC-05を使って調べる事が出来る。
  
  ここの手順は、
Connecting 2 Arduinos by Bluetooth using a HC-05 and a HC-06: Pair, Bind, and Link 」の『3. Find the address of the HC-06』 に詳しく記載されているので、ここを確認するのが良い。

  HC-05で行う場合、HC-05をATコマンドモードにして以下のように行う。

  a)以前にペアになったデバイスをすべて消去するために、
    AT+RMAAD

  b)HC-05をマスタモードにする。
    
AT+ROLE=1

  c)
HC-05をリセットする。
    AT+RESET

  ピン34をHIGHにして(ATコマンドモードにして)から

  d)HC-05を任意のデバイスに接続するように設定する

    AT+CMODE=0

  e)最大5台のデバイスを9秒間検索するを行う場合、下記のコマンドを入力する。
    AT+INQM=0,5,9

  f)SPPプロファイルを開始する。もしSPPが既にアクティブであれば、無視することができるエラー(17)が表示される。
    AT+INIT
  g)ここで、他のBluetoothデバイスを検索する。
    AT+INQ
   Bluetoothデバイスが複数ある場合には、上記の設定により、5台までのデバイスが表示される。
   AT+INQは3つの値を返します。
     最初の値はアドレスで、これがペアリングの為に必要な値です。
     2番目の値はデバイスのモード。
     3番目の値はRSSI信号の強さ。

④HC-05をHC-06とペアリングする。(所謂、電話番号の交換)
  ペアリングするには、AT+PAIR= <addr>、<timeout>コマンドを使用する。
  (例) "AT + PAIR = 3014,10,171179,9"(引用符なし)と入力する。

     上記の例で、HC
-05がHC-06と 9秒以内にペアリングできない場合、
     エラーメッセージが表示される。
     ペアリングが成功すると、「OK」が表示される。

HC-06をHC-05にのアドレスとしてバインド設定する。(所謂、通話すること)
  "AT + BIND = 3014,10,171179"を使用してバインドする

⑥ペアリングされた特定の1台のデバイスにのみ接続するようにHC-05を設定する。
   CMODEコマンド でこれを行う。
  
   "AT + CMODE = 1"

HC-06へのリンク(HC-05からリモートデバイスであるHC-06への接続)
  リンクコマンドAT + LINK = <addr>を使用する

  (例)前述からの流れで示すと・・・
   "AT + LINK = 3014,10,171179" として行う。

  すべてがうまくいけば、「OK」 の応答が得られる。


  HC-05のLEDは、毎秒1回点滅し、HC-06のLEDは点灯状態(点滅ではない)。
  これで、HC-05とHC-06が接続した。

  接続設定が完了すると、HC-05は電源を入れるたびに自動的にHC-06に接続する。


  接続が確立されると、HC-05は通信モードに切り替わる。



通信の確認
テストスケッチで(私のブログならばここを参考に)確認を行う。

①HC-05とHC-06が接続された2台のArduinoの電源を切る。


②先ず、
HC-06の電源を入れる。
  LEDは1秒間に5回点滅している筈で、これは、接続を待っているか、ペアになっていることを示す。

③次に、
HC-05の電源を入れる。
  最初にLEDが数回点滅し、その後、通常パターンの点滅に変わる。

④HC-06のLEDが常時点灯する(点滅はしない)。

⑤以上で、2台のモジュールが接続される。



シリアルモニタを開くと、入力したコマンド等は、もう一方のデバイス用のモニタに表示され、逆も同様に表示される。


モジュールの電源がONになるたびに、接続し直す必要がある。モジュール間で接続していないことがわかったら、Arduinoの電源を入れ直すこと。

場合によっては、HC-05が接続しようとしてスタックしていることがある。この場合、HC-05のLEDの状況は、下記のようである。


1)2秒間に3回の点滅をしている。

2)あるいは、1秒に2回点滅します。
これは通常、HC-05をリセットしないで HC-06の電源を切り再度ONにしたときに発生する。

12/04/2017

HC-06 Bluetooth module のATコマンド

HC-05のATコマンドモードは、HC-05のプッシュボタンを押しながらArduinoの電源を入れれば、ATモードになり、それをLEDの点滅間隔で確認することができるが、HC-06にはHC-05のようなプッシュボタンが無いので、ATモード動作をどうやって行い、確認することが出来るのか?
調べてみると、「AT Command Mode of HC-05 and HC-06 Bluetooth Module by sayem2603 in wireless」に記載があった。要約したものをメモしておく。

《HC-06とHC-05の違い等について》

 ①HC05は、マスターとスレーブの両方として機能し、HC-06は、
常にスレーブに設定されていて、スレーブとしてのみ機能する。

 ② HC-06モジュールは、他のデバイスとペアリング設定されていない場合は、常にATモードになっている。したがって、HC-05のようにATモードになっていることを確認する点滅は無い。モジュールの電源を入れると、即ATコマンドモードになっている。HC-06のデフォルト設定内容を変更するには、ATコマンドを渡せば設定を変更できる。
下記にHC-06用にスケッチを書いてみると・・・
 【HC-06用のスケッチ】

// Basic Bluetooth sketch HC-06
// HC-06 モジュールと繋いで、シリアルモニタを使った通信用スケッチ
//
// HC-06 を電源ONした直後のデフォルト値と注意点は、
//   電源ON直後は ATモード(LEDの点滅とは関係なし)
//  ボーレートは 9600
//  NL+CR をコマンドに追加しない事
//   コマンドは、ATに続けて打ち込めばよい(例:AT+VERSION )
//
#include <SoftwareSerial.h>
  SoftwareSerial BTserial(2, 3); // RX | TX
// HC-06 の TX は、Arduino の RX pin2(D2)に接続する。 
// HC-06 の RX は、Arduino の TX 分電圧をして pin3(D3)に接続する。
// 
void setup() 
{
    Serial.begin(9600);
    Serial.println("AT コマンド入力 :");
// HC-06 のデフォルトでのシリアル速度は、9600
    BTserial.begin(9600);
}
void loop()
{
// HC-06 からコマンドを読み続けて、Arduino のシリアルモニタに通信する
    if (BTserial.available())
    {  
        Serial.write(BTserial.read());
    }
 
    // Arduino のシリアルモニタからのデータを読み続け、HC-06に通信する
    if (Serial.available())
    {
        BTserial.write(Serial.read());
    }
}


 ③HC-06では、ATコマンド入力の終了文字を待たず、1秒後に入力した文字に応じて動作する。したがって、1秒以内にコマンド入力を完了できない場合は、入力が無視される。
また、入力した文字のフィードバック出力も無い。このため、AT以外のATコマンドが無視されたかのように振る舞うことになる。そのため、IDE標準のシリアルモニタではなく、「Tera Term」等、別のモニタを使い、必要なATコマンドをエディタで編集して作成したものをコピーし、モニタの入力部分に貼り付けるの
が良いらしい。

  例えば、
  「
AT+VERSION」をマウスの右クリックメニューからコピーし、Tera Termに貼り付ければ、+Version:<version number>として表示されるはず。

 ④HC-06は、③の動作をするため、
複数の文字のバッチ送信を可能にする端末ソフトウェア(Tera Term等)を使用する必要がある。

 ⑤arduinoシリアルモニタで、 "AT"(引用符なし)で「Enterキー」を押すと、 "OK"が表示されATモードを確認出来る。しかし、HC-05と異なり、デフォルトの名前やボーレートは表示されない。出来るのは、それらを変更することだけ。

 ⑥HC-06で使用できるATコマンドには制限があるので、HC-05よりも少ないらしい。
  ・AT
  ・AT+NAME
  ・AT+BAUD
  ・AT+PIN
  ・AT+VERSION
  ・AT+UART
  など

 ⑦また、HC-06のコマンド入力では、HC-05とは違って、デフォルトの名前やボーレートは表示されないが、それを変更する事は出来る。
  ・名前を「PROTOTYPE」に変更する場合には、
   AT+NAMEPROTOTYPE  と記載すること。NAMEとPROTOTYPEの間にはスペースを入れないこと。

  ・ボーレートを変更するには、 AT+BAUDX  と記載すること。
   ここで、X は 1から8迄の数値をとることができる。
    1 --
> 1200bps
    2 --> 2400bps
    3 --> 4800bps
    4 --> 9600bps
    5 --> 19200bps
    6 --> 38400bps
    7 --> 57600bps
    8 --> 115200bps

   もし、38400bpsに設定したければ、 
AT+BAUD6  とすればよい。 

  因みに、ATコマンドに対して HC-06の応答は、このようになる・・・

    ATコマンド    HC-06の応答
    AT                     ->  OK
    AT+VERSION   ->    OKLinvorV1.8
    AT+BAUD4       ->    OK9600
    AT+PIN1234     ->    OK1234

12/01/2017

カリンのエキスジャム

そろそろカリンの実が成る頃になった。JAでカリンが安価に売られていたので、カリンのエキスジャム(果肉を使わない)を作ることにした。
レシピは、ブログ『~野の花のように~「花梨のジャム 目がさめるようなルビー色』を参考にさせて貰った。


1)用意するもの
 ①カリンの実    1kg(JAで購入したが、3個で丁度1kgだった)
 ②グラニュー糖   500g
 ③水       1200ml

2)作り方
①カリンの実を4つに割る

Img_20171201_075812








②鍋に切ったカリンを種ごと入れ、1200mlの水を加えて、実が柔らかくなるまで煮込む
Img_20171201_080214








③弱火にして、ぐつぐつと煮込む・・・
Img_20171201_081917








④実が柔らかくなったら、鍋から実と種を取り出して、網などで濾す
Img_20171201_092056 Img_20171201_092110








⑤濾した煮汁にグラニュー糖500gr入れて煮込んでゆく
Img_20171201_092453 Img_20171201_094346_burst007








⑥ぐつぐつと弱火で煮込んで・・・ 
Img_20171201_110435 Img_20171201_113920煮込んでゆくと、
色は段々濃いルビー色に変わってゆく







完成  鍋の中の量は未だ多いので、使う分だけ取り分けてみた。
Img_20171201_171438

Arduino接続の HC-05 Bluetooth module をペアリングする方法

Arduino接続の HC-05 Bluetooth module をペアリングさせる方法について、Youtube「How to Pair HC-05 Bluetooth module」情報を文書化しておく。

準備するもの
①Arduino 2台(Master用とSlave用各1台)
②HC-05(Master用)x1、HC-05(Slave用)x1
Hc05








③ArduinoとHC-05を接続するジャンパーケーブル

手順の概要
①Slave用のHC-05の設定と、Slave用Bluetooth module アドレス取得
②Master用のHC-05の設定と、通信するBluetooth module のアドレス書込み
③Master用Bluetooth moduleをArduino に接続

具体的手順
1)ArduinoをUSB接続
(USB 2.0 Type-Bを挿し込んで電源ON)して、 IDEを起動
  ボード、プロセッサを確認して、Arduino に書き込み、
  USBケーブルを外す(USB 2.0 Type-Bを抜いて電源OFF)
Usb2






2)Slave用のHC-05に対して、Arduino と次のように接続する。
  (左側がBluetooth module で、右側がArduino (例えばUNO))

   STATEピン → 接続しないで開放のまま
   RXピン → RXピンへ
   TXピン → TXピンへ
   GNDピン → GNDピンへ
   +5Vピン → 5Vピンへ
   ENピン → 3.3Vピンへ

3)Slaveモード側の
HC-05の設定状態を確認・設定する作業を行う。
 ①HC-05のEN端子側にあるプッシュボタンを押したままの状態にして、

   USB 2.0 Type-B をArduino に挿し込んで電源ONする。

 ②HC-05は、約2秒間隔でLEDが点灯する。
   これで、ATモードが起動した。

  (HC-05のプッシュボタンを押さずにUSBを接続すると、HC-05は短い間隔でLED点滅する。この時のモードが、ペアリングモードである。)

  もし、プッシュボタンを押し込んだ状態にしてUSBを接続するのが難しければ、
   小型の「目玉クリップ」等でボタンを挟んで、ボタンが押された状態にして、
   USBケーブルをArduino に挿し込めばよい。

 ③Arduino IDE を起動させて

  ・ツール → シリアルモニタを起動させる。
  ・シリアルモニタ画面で、改行指示と通信速度を確認する。
   「CRおよびLF」「38400」にすること。

 ④シリアルモニタのコマンド入力部分に「AT」と入力して、「OK」の表示が出ればATモードになっている事が確認できる。
  ・Master/Slave の確認を行う。
   AT +ROLE?  とコマンド入力して、
    +ROLE:0  と応答があれば、Slave になっている。
    +ROLE:1  と応答があれば、Master になっているので、
   AT +ROLE=0 とコマンド入力し、Slave に変更する。

  ・次に、このBluetooth module のアドレスを表示させる。
   AT +ADDR?  とコマンド入力すると、アドレスが表示される。
   ( 例えば、XX:XX:XX のように表示される。)
  ・これをノートパッドなどに貼り付けて、「:」のところを「,」に編集する。

 ⑤ArduinoからUSBケーブルを外し、
   Slave用のBluetooth module もジャンパーケーブルから外す。

 ⑥Master用のBluetooth module をジャンパーケーブルに接続する。
   このとき、ジャンパーケーブルの接続ピン位置は2)と同じままで良い。

 ⑦
Bluetooth module のプッシュボタンを押した状態で、Arduino にUSBケーブルを接続(電源ON)し、ATコマンドモード起動する。

   ATコマンドモードにして行う事は、以下の3項目
    ・ROLE(役割)をMaster にすること。
    ・ペアリング接続先を1つにすること。
    ・Slave用module と接続するようにアドレスを設定すること。

   Arduinoに接続したBluetooth module をMaster 設定するには、
   前記の3項目の順に作業する。

 
ATコマンドで、先ず現在の役割設定を下記のようにして確認する。
   
 AT +ROLE?
    +ROLE:0   と表示されれば、Slave の設定になっている。

    この場合には、

    AT +ROLE=1   と打ち込んで、ROLEをMasterに設定する。

 ⑨ペアリングの為に、このSlaveのアドレスを調べる。
    AT +ADDR?  と打ち込み、表示されたアドレスをコピーして、ノートパッドなどに貼り付ける。
    ノートパッドの編集機能を使って、コピーしたアドレスの「:
(半角)」の部分を「,(半角)」に変更する(2箇所)。この編集したアドレス「XX,XX,XX」は、後(⑭)で使う。


 ⑩Arduino のUSB電源ケーブルを外し、
   Slave用のBluetooth module も外し、Master用のBluetooth module を接続する。
   この時のピン接続は、⑥と同じで良い。

 ⑪HC-05(
Bluetooth module)のプッシュボタンを押したまま、Arduino のUSB電源ケーブルを接続し、HC-05をATモードで起動させる。

 ⑫Arduino IDEのをシリアルモニタを起動し、ATモードでROLE をMaster に設定する。
   AT +ROLE?   先ず設定状況を確認し、(+ROLE:0  となっている筈なので、)

   AT +ROLE=1  と打ち込んで、Master に設定する。

 ⑬他のBluetooth とのコネクション(接続)モードを確認・設定する。
   AT +CMOD?   で現設定状態を確認して、
    +CMODE:0  ならば、1台のみに接続
    +CMODE:1  ならば、どのBluetooth Module とも接続できるモード

   ここでは、1台のみに接続したいので、+CMOD:0 としておきたい。

   AT +CMOD=0  と打ち込んで設定する。

 ⑭次に、接続するBluetooth module のアドレスを設定する。
   先ほどノートパッドを使って編集したアドレス「
XX,XX,XX」(=[address])をコピーして、


   AT +BIND=[address]  として設定する。


4)2台のArduinoが交信するための準備
 ①別のArduinoにHC-05(Bluetooth module)を接続する。

  (左側がBluetooth module で、右側がArduino (例えばUNO))

   STATEピン → 接続しないで開放のまま

   RXピン → TXピンへ
   TXピン → RXピンへ
   GNDピン → GNDピンへ
   +5Vピン → 5Vピンへ
   ENピン → 3.3Vピンへ

 ②Youtubeでは、これでHC-05を繋いだ2台のArduino が、互いに通信出来る筈・・・
   試してみたい。


参考:HC-06(ZS-040)をArduinoでATコマンド接続するには
  Martyn Currey「Arduino and HC-06 (ZS-040)


« October 2017 | Main | February 2018 »

June 2018
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Recent Trackbacks

無料ブログはココログ