DENXブログ

同志社大学 電気情報研究会(DENX)の活動や日常風景などを紹介します。

obnizで学習リモコン作ってみた

こんにちは。今出川4年のキリンです。今年の誕生日に友達からobniz(オブナイズ)なるものをいただいたので家の照明をスマホから操作するリモコン(赤外線の学習リモコン)を作ってみました。今回はその紹介をしていきたいと思います。

obnizについて

まずobnizとはArduinoRaspberry Piのようなもの(実際にはそれぞれ似て非なるものらしいですが)です。 obnizはwi-fiに接続するだけで使える簡単設計になっており、かなり気軽に利用できます。初期設定自体もすごく簡単でした。 日本で開発されている商品なので日本語の記事やフォーラムが充実している点も良いです。 開発はhtml,css,javascriptで行うのでwebを少し触っていればすぐにできると思います。 また動作は少し遅いものの、オンラインエディタでも編集ができます。個人的にはショートカットも使用できる点が高評価でした。ブロックコーディングもできるので初心者でも安心です。 加えてobnizひとつにつきwebサーバーのリポジトリに5MBもらえるので、ただのwebサイトの公開も一応できます。今度これで晩御飯ルーレットでも作ろうかと考えています。

準備

さっそく作っていこうと思いますが、開発を始める前に必要なものがいくつかあるのでその用意をします。
➀.Micro USBケーブル
➁.赤外線レシーバ/エミッタ

まずobnizに給電するためのケーブルが必要です。Micro USBケーブルなのですがobnizには付属していないので注意してください。 赤外線の学習リモコンを作るので信号を受け取る赤外線レシーバと発信する赤外線エミッタを用意します。 僕はこれを買いました。公式は抵抗入りLEDを使えって言ってますが一応抵抗無しでも使えますが寿命は短くなるようです。(僕は抵抗入れてます)

https://www.amazon.co.jp/gp/product/B07LB3MJYN/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1www.amazon.co.jp

これらが揃えばいよいよ開発に取り掛かります!

➀. 赤外線の受信

赤外線を受信して信号を記録します。先にobnizに赤外線レシーバを取り付けます。 f:id:denx:20190707153918j:plain

次にコーディングです。obniz公式サイトからログインしてコーディングします。受信した赤外線をコピーする必要があるので全選択しやすいように表示部分はこのようにしています。
(※1) scriptタグ内のobniz-ID部分には自分のobniz-IDを入力します。
(※2) sensorについてですが赤外線レシーバは×が手前に見え、足を下に向けた状態で左からvcc, gnd, outputとなっており挿したIOに対応した数字を割り当てます。(分からなければ写真とコードを全く同じにすれば良いです)

<input type="text" value="" onfocus="this.select();" readonly>

<script>
  var obniz = new Obniz("obniz-ID"); // ※1
  obniz.onconnect = async function () {
    obniz.display.clear();
    obniz.display.print("Debug Mode");

    var sensor = obniz.wired('IRSensor', {vcc:0, gnd:1, output: 2}); // ※2
    sensor.start(function (arr) {
      $('input').val(arr);
    });
  }

</script>

赤外線レシーバに向けてリモコン操作を行うと信号が表示されるので保存しておいてください。

f:id:denx:20190707161746j:plain
表示されたら保存!

➁.赤外線の発信

先ほど保存した信号を発信できるようにします。先ほどと同じようにまず赤外線エミッタを取り付けます。

f:id:denx:20190707160425j:plain
A(アノード), K(カソード)

次にまたコーディングです。例のごとくobniz-ID部分には自分のIDを入力してください。
(※1) 赤外線エミッタの足の長い方がアノード(+)で短い方がカソード(-)です。先ほどと同じように対応させます。
(※2) [ ]の中に➀で保存しておいた信号を貼り付けてください。

<a id="button">ボタン</a>

<script>
  var obniz = new Obniz("obniz-ID");
  obniz.onconnect = async function () {

    var infraredLed = obniz.wired('InfraredLED', {anode: 10, cathode: 11}); // ※1

    $('#button').click(function(){
      infraredLed.send([ ]); // ※2
    });
</script>

これで仕組み自体は完成です!

③.見た目を整える

一応完成はしたのですが、せっかくなので見た目にもこだわっていきたいと思います。今回僕は照明のリモコンを作ったので家のリモコンに似たデザインにしてみます。装飾は普通にcssを書くだけでできます。 そして完成したのがこちら!

f:id:denx:20190707162539j:plain

まとめ

思ってたよりすごく簡単に作れました。今回のものは赤外線を利用してるものならテレビやエアコン、扇風機など何にでも使えます。 開発も進んでおり対応パーツ(https://obniz.io/ja/sdk/parts)も増えていっているので、気になるものがあればまた何か作ってみたいと思います。