HubotとSlackのDockerイメージを使ってMQTTのPublishとSubscribeを実装してみます。Hubotのスクリプトはnpmパッケージをrequireしてプログラムを書くことができます。再利用性を考えるとコマンドは外部パッケージにした方がよいですが、カジュアルにscriptsディレクトリにデプロイして使うこともできます。MQTTブローカーに環境データをpublishするRaspberry Pi 2や、MQTTブローカーからメッセージをsubscribeしてLEDライトの電源を制御するBeagleBone Blackについては次回まとめようと思います。
MeshbluでオープンソースのIoTをはじめよう - Part4: Hubot with Slack on Docker
これまでにRaspberry Piと環境センサーから計測したデータをMeshbluのMQTTブローカーにpublishしたあとはfreeboardのダッシュボードに表示しました。今回はHubotとSlackを使ってインタラクティブなインタフェースを追加しようと思います。SlackはモダンなUIでWebhookや他のWebサービスとのインテグレーションがしやすいので便利に使えます。
MeshbluでオープンソースのIoTをはじめよう - Part3: BeagleBone BlackからDS18B20の温度データをfreeboardに表示する
BME280]の環境センサを使ってRaspberry Pi 2から環境データをMQTT publishしました。同様にBeagleBone BlackとDS18B20の組み合わせでも試してみます。MeshbluがMQTTとWebSocketをブリッジします。ブラウザ上のfreeboadがJavaScriptでWebSocketをsubscribeします。
BeagleBone Blackで1-WireセンサのDS18B20を使う - Part3: DS18B20
ーネルが3.8.13でもBeagleBone Blackで1-WireのDS18B20を使えるようにするのは結構面倒ですが、capemgrを使った方法が紹介されているのでなんとかなりそうです。DTSを記述後DTCでコンパイルして作成したDTBのバイナリを使ってpin muxしてピンの機能を変更します。Dallas one-wire temperature reading on BeagleBone Black with dto BeagleBone and DS18B20 Temp Sensor
BeagleBone Blackで1-WireセンサのDS18B20を使う - Part2: SDカードにDebian7.8をインストールする
BeagleBone BlackのeMMCにはDebianが入っていますが、今までSDカードはUbuntuを入れて使っていました。3.8.13のカーネルが必要なのでDebian 7.8を使おうと思います。久しぶりにSDカードを作成したら結構嵌まりました。
BeagleBone Blackで1-WireセンサのDS18B20を使う - Part1: SDカードのUbuntuの復旧
ことの始まりは1-WireセンサのDS18B20をBeagleBone Blackに接続しようとしたことです。SDカードにインストールしていたUbuntu 14.04はカーネルが3.14と新しくCapemgrが存在していません。dtb-rebuilderを使ってDTSを編集してビルドした後、/boot/uEnv.txtのDTBを書き換える必要があります。ところが書き間違えてSDカードからbootしなくなりました。なんとかSDカードは復旧したのですが、カーネルが3.8.13のDebian 7.8を入れ直した方がよさそうです。
ES6で書くIsomorphicアプリ入門 - Part3: React Isomorphic Demo
ES6で書くIsomorphicアプリのBoilerplateを調べました。いくつか手を動かしながら勉強していこうと思います。最初はなるべくシンプルなIsomorphicな動作を選びたいのですが、Reactアプリは複雑になりがちで周辺ツールも多くどの構成を選んだら良いか悩みます。Tutorial Setting Up a Simple Isomorphic React appのポストがとてもわかりやすいので写経していきます。
MeshbluでオープンソースのIoTをはじめよう - Part2: BME280の環境データをfreeboardに表示する
今回はRaspberry Pi 2に配線した環境センサのBME280からMeshbluのブローカーにMQTTを使ってデータを送信してみます。。取得した温度、湿度、気圧のデータは、オープンソースのIoT用ダッシュボードのfreeboadに表示します。簡単にブラウザからリアルタイムのグラフを作成することができます。
MeshbluでオープンソースのIoTをはじめよう - Part1: インストールする
IoTのためのメッセージングプラットフォームのMeshbluを使いやすくするためにDocker Composeにまとめました。MeshbluはOctobluがオープンソースで開発をしています。MeshbluはMQTT、HTTP REST、WebSocket、CoAPなど複数のプロトコルを使って相互にブリッジすることができます。例えばRaspberry PiからMQTTでpublishして、ブラウザからWebSocketでsubscribeするといった使い方ができます。MQTTのsubscribeに対してREST APIからメッセージをPOSTすることもできるので、さまざまなデバイスやサービスを連係することができます。
IoTでアボカドの発芽促進とカビを防止する - Part2: BeagleBone Blackで植物育成LEDライトを制御する
アボカドの種の水耕栽培を始めて1週間くらい経ちました。芽がでるまで1ヶ月くらいかかるようです。植物育成LEDライトはカビの防止と生育に効果があるみたいなので、半日照明を当てていたら乾燥しすぎて種にヒビが入ってしまいました。温度や湿度を見ながらLEDライトを当てる時間を調整する必要があります。LEDは電源コンセントにつながる普通のライトです。マイコンから制御する方法をいろいろ考えていると、USB連動電源タップとプログラムから制御可能なUSBハブを使うと上手くいきそうです。以下のポストを参考にさせていただきました。