M5StickC で毎朝照明を自動で点灯する
最近寒いのでカーテンを遮光・遮熱のものに変えた。 遮熱のほうはあまり実感がないが遮光のほうはばっちりで、 昼間でもカーテンを閉めれば部屋がかなり暗くなる。
寝てる間は暗くてよいのだが、 朝になっても明るさで自然に目が覚めるということがなくなった。 時計を見ないと大まかな時間すら分からないのは思いの外不便だ。 そこで、以前購入した M5StickC を使って 毎朝自動で照明を点灯させることを思いついた。
使用する照明器具とリモコン
私の部屋の照明はNECライティング(現ホタルクス)の LEDシーリングライトHLDX0801 を使用している。 昨年買い換えたのだが、 これはシーリングライトとしてはかなりの薄型で、 引掛シーリングと合わせても高さ6cmくらいしかない。 以前使用していたものは高さ15cmほどあったため、 圧迫感がなくなり気に入っている。 唯一の不満点はリモコンが付属していないことで、別途 RE0206 を購入し使用している。
リモコンの信号解析
まずは点灯時に RE0206 から発信される赤外線信号を調べるため Grove 接続の IR ユニット を購入した。 M5StickC 単体でも赤外線の発信はできるが、受信はできないため、 リモコンの信号を調べる場合は別途購入する必要がある。
M5StickC/M5Stack Fireで赤外線リモコンを作ろうと四苦八苦したのでメモ - カワリモノ息子の技術メモ的な〜 を参考に Arduino IDE から IRremoteESP8266 をインストールし、スケッチ例の IRvecvDumpV3 を開く。 kRecvPin を 33 に変更して M5StickC へ書き込んだあと、 IR ユニットへ向けてリモコンのボタンを押すと シリアルモニタへ信号が表示された。
赤外線リモコンの信号にはいくつか種類があるらしいが、 NEC製品なので当然NECフォーマットだった。
スケッチの作成
M5StickC で設定時刻に赤外線信号を送信するスケッチを作成した。
saasan/m5stickc-ir-timer: M5StickCで設定時刻に赤外線信号を送信する
IR_SEND_DATA の 0x41B6659A が上記で解析した点灯するための信号で、 これを IRsend クラスの sendNEC メソッドで送信している。
タイマーの時刻は ボタンA(正面の「M5」ボタン)で時、 ボタンB(側面の小さいボタン)で分を変更できるようにした。
送信するリモコンの信号を変えればいろいろと応用できそう。