前回の MQTT準備 の続編となります、
デバイス側からのPublishと逆のパターンで、
デバイス側からSubscribeし、web画面からのPubデータ(スイッチのON/OFF)
を受信
ONの場合、リレー回路をON、LED(12V)を点灯
OFFの場合、リレー回路をOFF、LEDをOFF
クラウド経由で、周辺デバイスの ON/OFFのスイッチ機能を
実装してみます。
[MQTT 構成]
broker : test.mosquitto.org
publish(Pub) : Chrome Android
subscribe(Sub) : IoT device
*) 少し高めの電圧流す為、ご注意下さい。
*) 前回と同様、テスト用の broker(MQTT Server), pahoのJSライブラリ等
を使用。
*) 関連URL/version 等は、執筆時点を記載しています
# 部品
今回は、LED側の電源を
DCアダプタ (19V 程度)を使用。
降圧レギュレータで、12Vまで下げて電源供給しています。
*)入出力コンデンサは、レギュレータに付属のもの
*) 12V出力側周辺に、ヒューズ等追加したほうが
良さそうですが、短時間のテストの為 直結しています。
リレーモジュール 5V
LED 12V / 80[en]
降圧レギュレータ 12V / 100[en]
抵抗 1,100 ohm (1000 + 100)
DCジャック -メス (DIP, 内径= 2.1mm)
DCアダプタ -19V(1200 mA)
*) 部品箱で適当に探した電源、おそらくPC用
*)その他、マイコン周辺は前回と同様。
# 配線
LEDは、リード線(アノード / カソード) に電線をハンダづけ
リレー出力端子は、小さい為、電線をハンダづけ
してます。
# web スイッチ操作画面
chrome Android
カンタンな ON/OFF操作のみ実装。
# code
#arduino-sdk , mqtt_arduino_relay_2.ino
arduino-adk 1.6.5
前回と同様、mqttライブラリが必要
スケッチの例 -[PubSubClient] - [mqtt_basic]
を参考にしました
Topicを適当に決めて、Pubしてみます
char mTopicIn[]="test-topic-1020A/relay";
D7に、リレー配線しておきます。
# web スイッチ画面
paho-mqtt JS版使います。
mqttws31.js, jquery 読み込み
# JS : mqtt-pub-sample-2-app.js
mqtt-publishの実装
# html : mqtt-pub-sample-2.htm
スイッチ操作画面
# テスト
web スイッチ画面から、
ON 押すと、LED点灯します。
OFF押すと、消灯。
# まとめ
web画面のON/OFF操作から 1秒弱で、
デバイスが動作しました。
リアルタイム操作としては、ある程度使える範囲かと思います。
室内のスマホ等から ON/OFFしてみると、あまりインパクトないのですが
クラウド経由の為、外出先からでも同じ動作になるはずです。
(ネット接続可能な場合)
arduino-lib
http://knolleary.net/arduino-client-for-mqtt/
paho-mqtt javascript
http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/
# 関連の記事
http://knaka0209.blogspot.jp/2015/10/mqtt-1.html
# 開発者向けのまとめ記事
http://knaka0209.blogspot.jp/2015/04/agri.html
0 件のコメント:
コメントを投稿