福野泰介の一日一創 - create every day

BASICでつくるIoT、PM2.5表示デバイスをIchigoJamとESP-WROOM-02で試作

2015/11/22
#IchigoJam #opendata 

1時間おきに更新される福井県内のPM2.5。
35ug/m3より高い時にLEDが光って警告してくれるデバイスをつくりました。


「鯖江のPM2.5濃度の値が35ug/m3より高い時にLEDが光って警告するデバイス」

IchigoJamをネットにつなぐために、右上の青いチップが無線LAN(ESP-WROOM-02)を使っています。電源は、単3電池2本。 無線LANもIchigoJamのCPUだけなら3.3Vなので、これだけでOK!

PM2.5の数値をスマホへ通知する際につくったJavaのサーバープログラムにちょっと加え、1時間おきに鯖江(神明)の数値をIchigoJam用の簡易サーバーに送るように改造しました。

IchigoJam用のプログラムはひとまずLED、1つだけなので簡単。

10 INPUT P 20 LED P>=35 30 GOTO 10

数値を受け取り、値が35を超えていたらLEDが光ります。
これをSAVE0で保存しておき、BTNとGNDをジャンパー線でつないでおくと自動起動する状態になるので、通信状態にした無線LANに接続すればできあがり!

あとはかわいい外観をつくったり、LEDをいろいろ付け加えてわかりやすく表示したり、サーボをつないでぐりぐり動かしたり、自由に飾り付けできます。 IchigoJamはチップ単体を取り外せるので、もっとコンパクトに実装することも可能です。

開発中のIchigoJamの1.1のbeta14で、UARTの第二パラメーターとしてESC信号無効化機能を追加しました。

5 UART 1,2

と追加すると、ESC(=#1B)信号が来てもプログラムが停止しなくなります。また、一方的にデータを受信するのみなので、IchigoJamから無線LAN側への線を接続しなければ無線LANチップをコントロールすることが物理的にできないので、安心です。

もし、この信号線を活かしておき、ESC信号を不正に送られるとIchigoJamのプログラムが停止し、プログラムを自由に書き換えることができ、無線LANチップをコントロールして、ネットワーク内部のデータを不正に持ちだしたり、どこか別のネットワークへ不正なアクセスを自動的にされてしまう、いわゆる踏み台にされたりして危険です。

ホワイトハッカーにならずとも、ネットワーク越しにIchigoJamを乗っ取る経験は、ネットワークセキュリティーの基本につながるいい経験となるはず。

電池を長持ちさせたいときは、単1電池など大きな電池を使ったり、ACアダプターにつなげてしまうのもありですが、ESP-WROOM-02は消費電力が大きいのでIchigoJam側の3.3Vをつないでも動かないので注意。

いろんなIoTデバイスづくりに夢ふくらませましょう!

関連リンク
- IchigoJamをIoTデバイスとして使用する時の簡易セキュリティ対策 ( 開発・運営全般 ) - ボクにもわかる地上デジタル(ブログ) - Yahoo!ブログ
- PM2.5の勝手WebAPI化
- PM2.5の簡易API
- IFTTTを使ったPM2.5のスマホ通知
- ESP-WROOM-02でPM2.5の数値を受け取る
- ESP-WROOM-02を通信状態にしてIchigoJamへ接続

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像