はじめに
こんにちは。電気毛布エンジニアの@tmitsuoka0423です。
昨日書いた「obniz+赤外線LEDでリモコンコンセント(OCR-05W)を動かす」では、obnizのパーツライブラリページ上で動作確認しましたが、今回はTypeScriptで実装していきます。
ソースコードはhttps://github.com/tmitsuoka0423/obniz-ocr-05wで公開しています。
【クラウドファンディング実施中!】mouful(モウフル)
「電気毛布につけるだけ!スマホで布団の温度調節できるmouful(モウフル)」
というクラウドファンディングを実施しています。
電気毛布の
△中~強にして寝る→暑くて体がカラカラになってしまう
△弱にして寝る→温まらなくて眠れない
△強→弱にして寝る→面倒臭くてやらなくなる
という課題を解決します。
○1週間レンタルでフィードバックしてくれる方
○開発メンバー
を募集しています!
クラウドファンディングページはこちら→https://camp-fire.jp/projects/view/220261
今回使うもの
品名 | 画像 | 価格 |
---|---|---|
obniz Board | ![]() | 5,500円くらい |
赤外線センサー OSRB38C9AA | ![]() | 50円くらい |
赤外線LED OSI5FU5111C-40 | ![]() | 20円くらい |
リモコンコンセント OCR-05W | ![]() | 1,200円くらい |
obnizと素子を接続する
リモコンの赤外線信号を解析する
まずは、赤外線センサーを使ってリモコンの信号を受信するプログラムを作成します。
(確認してないですが、このプログラムを使ってOCR-05W以外のリモコンの信号も受信できると思います。)
importObnizfrom'obniz';constobniz=newObniz('OBNIZ_ID_HERE');obniz.onconnect=async()=>{constsensor=obniz.wired('IRSensor',{vcc:0,gnd:1,output:2});console.log('リモコンのボタンを短く押してください…');sensor.start(function(arr){console.log('受信したシグナル:');console.log(JSON.stringify(arr));obniz.close();});}
これをコンパイルして実行する。
と表示されるので、リモコンのボタンを押すと、めっちゃ長い信号が受信される。
昨日から作っているobniz+赤外線LED+リモコンコンセントをTypeScriptで書き直し中。
— Takahiro Mitsuoka (@tmitsuoka0423) March 25, 2020
まずはリモコン受信。#obniz#iotpic.twitter.com/Uj8A0TqliA
無事受信できた。
リモコンコンセントにobnizから信号を送信する
プログラムは以下の通り。
importObnizfrom'obniz';conston:(0|1)[]=[1,1,1,1,1,(略)];// 受信したリモコンの信号をコピペする。constoff:(0|1)[]=[1,1,1,1,1,(略)];// GitHubに全量を載せています。constobniz=newObniz('OBNIZ_ID_HERE');obniz.onconnect=async()=>{constled=obniz.wired('InfraredLED',{anode:3,cathode:4});led.send(on);// led.send(off);console.log('信号を送信しました。');obniz.close();}
動かしてみる。
obniz+赤外線LED+TypeScriptで信号送信もできた。#obniz#iotpic.twitter.com/6fFlRiVIyr
— Takahiro Mitsuoka (@tmitsuoka0423) March 25, 2020
まとめ
obniz+TypeScriptは補完が効くようになるのでオススメ。