MQTT 測試

本想用C# 用 MQTT.NET 寫一個 MQTT  server ,但看一看挺滿麻煩的
所以用 Mosquitto 當server 
用 C# M2Mqtt 寫個 client 端,這比較簡單
然後用 Arduino +mini D1 用 PubSubClient 一樣寫個 client 端
C# 跟 Arduino 能互通就可以
********************************
簡單說 Mosquitto server 是當個轉發者的角色
而Client 就負責 先登入一個(ID)不重複
訂閱:就是你要收到 那一類的訊息 
發布:就是你要發出 那一類的訊息  + 內容
發布者發布(訊息  + 內容)後,訂閱(訊息)的人(ID)都會收到
************************************************
1.先在 樹梅派 裝 Mosquitto ,windows 也可裝 但我有樹梅派 閒著也是閒著
樹梅派開好先
sudo apt-get update
sudo apt-get upgrade
(確保是最新版本,不然裝可能有問題)
sudo apt-get install mosquitto mosquitto-clients
裝起來想知道 OK不OK
參考 http://cheng-min-i-taiwan.blogspot.com/2015/03/raspberry-pimqtt-android.html
後面步驟做測試
**********************************************
2.C# 安裝 M2Mqtt
 參照 https://yazelin.github.io/usc2017nsp/week2.html
寫一個
裏頭要改的出了 MQTT server IP 外
他的 訂閱
string Topic = textBox1.Text;//直接用  "outTopic" 跟 Arduino 呼應 接收 esp 傳來的資料
 //設定主題及傳送品質 0 ( 0, 1, 2 )

client.Subscribe(new string[] { Topic }, new byte[] { 0 });

發布
string Topic =textBox2.Text;// 用 "inTopic"  跟 Arduino 呼應 送給 esp 
string Mess =textBox3.Text;// 1 是讓燈亮 0 關燈
//發佈主題、內容及設定傳送品質 QoS 0 ( 0, 1, 2 )

client.Publish(Topic, Encoding.UTF8.GetBytes(Mess), MqttMsgBase.QOS_LEVEL_AT_MOST_ONCE, true);
**********************************************************************************************************
3. Arduino 安裝  PubSubClient 
安裝完 範例部分有個 mqtt_esp8266
拿它來改
除了 wifi SSD 跟PASS 還有 MQTT的 IP 要改之外
BUILTIN_LED 改成你自己 LED 的port
就OK了
***********************************************
然後 C#程式 訂閱後有收到訊息
發布 1 LED亮  發布 0  LED滅
這樣大致就搞定了 
















留言

熱門文章