Lab技術ネタ、デバイスネタを...この広告は、90日以上更新していないブログに表示しています。ThingsでLチカする方法を解説します。HomeとはGoogleが開発したスマートスピーカーです。2016年11月にアメリカで発売されましたがしばらく日本では買うことができず、2017年10月にようやく日本でも発売されました。AmazonのスマートスピーカーであるEchoに対抗してか、セールも行われ思わず買ってしまった人も多いのではないでしょうか。Homeはタッチパネルやキーボードなどの入力装置は持たず、基本的に話しかけることで操作します(一応、本体上部を触って音量の操作などができる)。話しかけることで天気や交通情報を教えてくれたり、音楽を再生したりすることができます。ThingsですがこちらもGoogleが開発したもので、IoT向けのプラットフォームとして発表したOSなどを含むソフトウェア群です。Thingsを使うメリットの一つではないでしょうか。Pi3(ARMプロセッサを搭載したシングルボードコンピュータ)を購入するのが1番確実です。今回の登場人物たちさて、本題に入っていきますがまずは今回の登場人物たちを整理しておきます。Database大まかな流れとしては以下の図の通りです。Thingsを連携させることができます。Lチカ、つまりLEDをチカチカさせるということで半田ごてを使った電子工作なイメージを思い浮かべるかもしれませんが、今回ハンダ付けは必要ありません。ブレッドボードという穴の空いた実験用の基盤を使うことでハンダ付けをせずに穴にLEDやジャンパ線などを差し込むだけで完成します。Things単体でLチカしてみましょう。Thingsがインストール済みであることを前提とします。インストールの仕方などはこのあたりを参考にしてください。Studioを使います。Things向けアプリのプロジェクトを作成することができます。Activityの種類を選ぶ画面ではEmptyActivityの方を選びます。Things向けに作成した場合に通常のAndroidアプリと異なる点はdependenciesに以下の記述があることです。Things向けのクラス群を使うことができるようになります。逆にそれ以外はほぼAndroidアプリと同じであり、通常のAndroidアプリ開発を行うときと同じように開発を行うことができます。input/outputの略で日本語では「汎用入出力」となり、簡単に言うと他のデバイスに入力にも出力にも使える便利なデジタル信号の出入口です。今回は出力として使い、LEDに電力を流すことで点灯させるという使い方をします。入力として使うとセンサーを繋いで温度や明るさなどを得るという使い方ができます。Pi3にはいくつかのGPIOがあります。Pi3のピン配置を公開しておりアプリから利用する名前も記載されているのでこちらを見るのが良いでしょう。いうクラスを使います。メソッドでGPIOの一覧が取得できるのでログに出力してみます。}次のように利用できるGPIOの名前が出力されます。BCM27(13番ピン)を使うことにします。BCM13〜〜以下省略〜〜それでは実際にGPIOを利用します。手順は以下の通りです。するGPIOを出力で利用するのか入力で指定するのか指定する。出力の場合は初期値も合わせて指定する。する先ほどのコードの後に2つのGPIOの初期設定を行います。メソッドに利用するGPIOの名前を指定します。メソッドを呼び出します。これを忘れるとアプリを終了しても他のアプリでこれらのGPIOを操作することができなくなってしまいます。}これでGPIOを利用する準備が整いました。Homeから操作することですが、まずは画面にSwitchを表示してSwitchをオン/オフしたらLEDが点灯/消灯するようにします。Gpioクラスのvalueにture/falseを設定することで出力のオン/オフとなります。その結果、LEDが点灯/消灯します。これでGPIOの操作は完璧です。Homeから操作できるようにします。Homeとの連携は今回はIFFFTを使います。比較して細かい設定ができないことや、タイムラグが大きいことなど欠点もありますが簡単に使うことができるよう大きなメリットがあります。Firebaseのプロジェクトを作成してデータベースを準備するIFFFTからWebhookでデータベースの値を変更し、AndrodThingsではその値の変化を監視します。Firebaseのプロジェクトを作成します。いうキーを作っておきます。本来はよろしくないのですがセキュリティ(ルール)の設定を変更します。IFFFTからWebhookで書き込みできるように認証なしでアクセスできるルールとします。この設定にするとURLを知っていれば自由に読み書きできてしまうので注意してください。実際に何か実用的なものを作って運用する際にはセキュリティを意識しましょう。いうアドレスでデータを書き込むことができるようになりました。Assistantレシピを設定します。いう言葉をトリガーとし、それに続く言葉を変数としてtahtで使うようにすることを意味します。トリガーを受けて動作するアクションであるthatにはWebhooksを設定します。これを黄色用も同じように作成します。ほげほげ」と話しかけるとほげほげの部分がFirebaseのデータベースに保存されるようになりました。Databaseの値を監視し、その値によってLEDを点灯/消灯させる処理を実装します。Firebaseの公式ドキュメントの手順通りにbuild.gradleへの追記とjsonファイルを配置してFirebaseを扱えるようにしておきます。onCreateでGPIOの設定をした後に次のように記述します。値が変化した際に、バリューを見てLEDを点けるか消すかの判断をしています。})ポイントはバリューの文字列からスペースを除いている点です。」とスペースが入ってきたためです。「オン」と発音しても「音」と期待通りの文字列が入って来なかったためwhenで分岐させる際の値として「音」も指定しています。音声入力は期待通りの読みで入ってくるとは限らないためできるだけ多くの文字列で判断した方が良いでしょう。今回はとりあえずLEDを点灯させただけですが、赤外線LEDを使ってエアコンのリモコン代わりにしたり、センサーと組み合わせたりとかアイデア次第で使い方が広がると思います。Thingsを活用してみては如何でしょうか。最後にデモしてる動画は置いておきます。2018で登壇してきました。消し専用アプリ:ついイレのiOS版をリリースしましたつい消し専用アプリ:ついイレのiOS版をリリースしました。(1)はてなブログをはじめよう!crossbridge-labさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。