無線増設ブザー側ソース

無線増設警告側説明
スイッチが押されたときに、呼び出し側からの電波を受信し、警告音の回路を25秒間ONにします。(音楽ではなく、ただのブザーの場合は、5秒間ほどでもよいかもしれません。)
ブザーを複数設置する場合も、同じものを複数配置するだけです。
使用arduino
私は、無線Lanを使って、初めにこのチャイムの増設を始めたので、それ用に用意したWemos D1ボードをそのまま使っています。
Wemos D1ボードは、かなり癖があり使いにくいので、WiFiの必要がない無線の場合は、UNO互換のボードを使う方がよいでしょう。
その場合は、同じピン位置を利用するなら、以下のように変更します。
GPIO16→2 GPIO12→6 GPIO13→7 GPIO15→10
警告音について
チャイムの音色に凝らずに、工作を簡単に済ませたい場合は、5V用のブザーをGPIO16(右の下から3番目)端子につなぎます。
WeMos D1では、出力端子はGPIO03や01(右の下2つ)ではうまく動きませんでした。
電圧は3Vしか流れませんが、一応はブザーが鳴ったのが分かるぐらいの音はします。この場合、12mA程度の電流が流れていました。
もっと好きな音を出そうとするなら、「高音質 TFカード Uディスク Mp3デコーダ モジュール デコーダボード 無損失デコード 増幅器」というやつを使います。
Mp3デコーダ モジュール を使えるようにするのは結構面倒(方法は、リンク参照)でしたが、このボードのお陰で、ともかく、我が家は朝ドラ「あまちゃん」のテーマソングの最初の部分を流すことができるようになりました。
無線の到達距離がそれほどではないので、各部屋に置こうとすると電波が届かないかもしれませんが、結構大きな音がするので、2階は、真ん中の廊下に設置しておけば、2部屋とも来客が分かります。
無線受信モジュールの接続
無線受信モジュールの接続については、先に説明しました。
無線増設ブザー側ソースコード
#include <RH_ASK.h> #include <SPI.h> // Not actualy used but needed to compile #define PASS "Chime1" // 識別用パスワード** int BEEP_SOCKET = 16; // 警告音出力接続ピン #define BEEPTIME 25000 // 1000分の1秒単位 RH_ASK driver; void setup(){ Serial.begin(115200); // Debugging only if (!driver.init()){ Serial.println(F("radio init failed")); } pinMode(BEEP_SOCKET, OUTPUT); digitalWrite(BEEP_SOCKET, LOW); } void chackpass(){ uint8_t buf[30]; char buf2[30]; uint8_t buflen = sizeof(buf); if (driver.recv(buf, &buflen)){ // Non-blocking // Message with a good checksum received, dump it. Serial.print(F("buflen=")); Serial.println(buflen); int i=0; for(i=0;i<buflen;++i){ buf2[i]=(char)buf[i]; } buf2[i]=”; if(strcmp(buf2,PASS)==0){ Serial.print(F("Pass: ")); Serial.println(F("OK")); on(); } } } void on(){ Serial.println(F("BEEP!!")); digitalWrite(BEEP_SOCKET, HIGH); delay(BEEPTIME); digitalWrite(BEEP_SOCKET, LOW); } void loop(){ chackpass(); }
ケース
ケースは、100均の3個108円のタッパーを使いました。セリエで売っているクリアーボックス小を使う方が、きれいな仕上がりにはなると思います。
タッパーは、リレーの高さが入らないので、少々はみ出しますし、見た目は今一歩ですが、何も固定しなくともぴったりしていて、中で部品が全くごそごそしないので、私はこちらを使っています。
スピーカーは、ホットボンドで蓋に固定しました。