2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

obniz+赤外線LED+TypeScriptでリモコンコンセント(OCR-05W)を動かす

Last updated at Posted at 2020-03-25

はじめに

こんにちは。電気毛布エンジニアの@tmitsuoka0423です。

昨日書いた「obniz+赤外線LEDでリモコンコンセント(OCR-05W)を動かす」では、obniz のパーツライブラリページ上で動作確認しましたが、今回は TypeScript で実装していきます。
ソースコードはhttps://github.com/tmitsuoka0423/obniz-ocr-05wで公開しています。

今回使うもの

品名 画像 価格
obniz Board 5,500円くらい
赤外線センサー OSRB38C9AA 50円くらい
赤外線LED OSI5FU5111C-40 20円くらい
リモコンコンセント OCR-05W 1,200円くらい

obnizと素子を接続する

以下図のように接続します。
Screenshot from Gyazo

リモコンの赤外線信号を解析する

まずは、赤外線センサーを使ってリモコンの信号を受信するプログラムを作成します。
(確認してないですが、このプログラムを使って OCR-05W 以外のリモコンの信号も受信できると思います)。

receive.ts
import Obniz from 'obniz';

const obniz = new Obniz('OBNIZ_ID_HERE');

obniz.onconnect = async () => {
  const sensor = obniz.wired('IRSensor', { vcc: 0, gnd: 1, output: 2 });
  console.log('リモコンのボタンを短く押してください…');

  sensor.start(function (arr) {
    console.log('受信したシグナル:');
    console.log(JSON.stringify(arr));

    obniz.close();
  });
}

これをコンパイルして実行する。
Screenshot from Gyazo
と表示されるので、リモコンのボタンを押すと、めっちゃ長い信号が受信される。

無事受信できた。

リモコンコンセントにobnizから信号を送信する

プログラムは以下の通り。

send.ts
import Obniz from 'obniz';

const on: (0 | 1)[] = [1, 1, 1, 1, 1, ()]; // 受信したリモコンの信号をコピペする。
const off: (0 | 1)[] = [1, 1, 1, 1, 1, ()]; // GitHubに全量を載せています。

const obniz = new Obniz('OBNIZ_ID_HERE');

obniz.onconnect = async () => {
  const led = obniz.wired('InfraredLED', { anode: 3, cathode: 4 });
  led.send(on);
  // led.send(off);
  console.log('信号を送信しました。');

  obniz.close();
}

動かしてみる。

まとめ

obniz+TypeScript でリモコンコンセントの操作ができるようになりました。

JavaScript で書くのと比べて、TypeScript だとプロパティ名の補完が効くようになるのでオススメです。
gnd とか vcc とかピン名を調べる手間がなくなります。

次回は AWS にデプロイしていきます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?