Armadillo-IoT+Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュール DA00で、 マグネットセンサーの接点のオープン/クローズ状態を取得して、Herokuに通知する仕組みを作ってみた。 ここでは、株式会社日本アレフのマグネットセンサーAD-1001/AD-1011を使用する。 このマグネットセンサーは、 マグネットが近いと、接点がクローズ マグネットが遠いと、接点がオープン になるようだ。
1.Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュールを使用するための準備
フォーラムのArmadillo IoTの運用にあたってによると 現時点(2015.5.7)では、このスレッドに添付されているパッチlinux-2.6.26-at25_support-didoad-addon.patch を当てる必要があるので、上記スレッドを参考にパッチを適用して、イメージをArmadillo-IoTに書き込む。
将来的にパッチが必要なくなれば、この手順はとばす。
2.Armadillo-IoTの絶縁デジタル入出力/アナログ入力アドオンモジュールにマグネットセンサーを接続
ここでは、絶縁デジタル入出力/アナログ入力アドオンモジュールをArmadillo-IoTのCON1に接続したものとして説明する。 Armadillo-IoT ゲートウェイスタンダードモデル製品マニュアル18.6.3.3. CON2 デジタル入出力インターフェースより、 マグネットセンサーを絶縁デジタル入出力/アナログ入力アドオンモジュールの端子台のデジタル入力DI1(CON2の5,6ピン)に接続する。
3.マグネットセンサーのオープン/クローズ状態を確認する
絶縁デジタル入出力/アナログ入力アドオンモジュールのデジタル入力の確認方法は、 Armadillo IoTの運用にあたってを参考。 上記手順2でDI1に接続したので、
[armadillo ~]# cat /sys/class/gpio/DI1_CON1/value
で確認できる。
Armadillo-IoT ゲートウェイスタンダードモデル製品マニュアル図18.28 CON2 デジタル入力部より、 マグネットが近いと接点がクローズ状態となるため、DI1はLowレベルになり、
[armadillo ~]# cat /sys/class/gpio/DI1_CON1/value 0
となる。 マグネットが遠いと接点がオープン状態となるため、DI1はHighレベルになり、
[armadillo ~]# cat /sys/class/gpio/DI1_CON1/value 1
となる。
4.マグネットセンサーの状態をHerokuに送って、Webブラウザで見る
上記手順3に、/sys/class/gpio/DI1_CON1/valueをポーリングして、 マグネットが近い--->/sys/class/gpio/DI1_CON1/valueが"0"-->"close"という文字をHerokuに送信 マグネットが遠い--->/sys/class/gpio/DI1_CON1/valueが"1"-->"open"という文字をHerokuに送信 という仕組みを追加する。 Herokuへの送信中はArmadillo-IoTの側面の緑LED(led3)を点灯するようにもする。
まず、 Armadillo-IoTからHerokuに送信した文字をWebブラウザで見るを一通り実行して Armadillo-IoTからHerokuに送信した文字がWebブラウザで見えることを確認する。 (下記文中の"***.herokuapp.com"は自分で作成したHerokuのURLに読み替える。)
Armadillo-IoTに下記スクリプトを作成する。 (ここでは、send_magnetというファイル名とする)
#!/bin/sh VAR1=0 VAR2=close while : do VAR1=`cat /sys/class/gpio/DI1_CON1/value` if [ 0 -eq $VAR1 ] ; then VAR2=close else VAR2=open fi echo 1 > /sys/class/leds/led3/brightness wget -O- -q --post-data="data=$VAR2" https://***.herokuapp.com/series echo 0 > /sys/class/leds/led3/brightness sleep 1 done
上記スクリプト(send_magnet)に実行権限を付けて実行する。
[armadillo ~]# chmod +x send_magnet [armadillo ~]# ./send_magnet
Webブラウザで、https://***.herokuapp.comにアクセスすると、Armadillo-IoTが送信した マグネットセンサーの状態(open/close)が表示される。 注意)Webブラウザの表示の更新には再読み込みが必要。 補足)Armadillo-IoTからHerokuに送信した文字をWebブラウザで見るのHerokuで動作しているアプリ(app.js)により、 Armadillo-IoTにはHerokuが受け取った文字列が返信されて、標準出力に見える。