實驗一--Easy IoT實現mqtt實驗
mind+圖形化程式設計Easy IoT上mqtt訊息的通訊
一、實驗目的及要求
【實驗一】實現Easy IoT配置。
【實驗二】實現Easy IoT上mqtt訊息的通訊。
二、實驗原理與內容
實現mind+下Easy IoT上mqtt訊息的通訊。
甲按A鍵傳送訊息至topic0,同時監聽topic1,乙監聽topic0,按A鍵傳送訊息至topic1。
三、實驗軟硬體環境
硬體:掌控板
軟體:Mind+
四、實驗過程
【實驗一】實現Easy IoT配置。
進入Easy Iot註冊並登入,生成Iot_id(user)和Iot_pwd(password),新增兩個裝置用於topic0和topic1,如圖:
【實驗二】實現Easy IoT上mqtt訊息的通訊。
準備工作
開啟mind+連線掌控板,選擇上傳模式,因為我們要實現的是mqtt訊息的通訊,所以我們在擴充套件中選擇網路服務分類下的MQTT以及Wi-Fi選項,如圖:
第一步、連線網路、初始化MQTT以及連線MQTT
先用手機或者電腦設定並開啟一個wifi熱點,這裡我們設定一個提示首先在掌控版螢幕上顯示“正在連線網路”,當網路連線成功後再顯示“網路連線成功”
然後初始化MQTT引數如圖: 下一步連線MQTT,這裡我們也設定一個提示,當MQTT連線成功後在螢幕上顯示“mqtt連線成功。
程式碼塊如下:
第二步、傳送訊息
按下A鍵,傳送訊息至Topic0,這裡我們設定一個提示,當傳送訊息成功後,在螢幕上顯示“訊息傳送成功”,
程式碼塊如下:
第三步、接收訊息
甲=監聽Topc1,當收到Topic1發來的MQTT訊息,螢幕上提示“您有新的訊息”,並亮起掌控板上所有led燈作為提示,在螢幕上顯示所接收到的MQTT訊息,
程式碼塊如下:
以下為該實驗的C程式碼:
#include <MPython.h>
#include <DFRobot_Iot.h>
// 函式宣告
void onButtonAPressed();
void obloqMqttEventT1(String& message);
// 靜態常量
const String topics[5] = {"8bDcSmKGg","RhtcSiFGR","","",""};
const MsgHandleCb msgHandles[5] = {NULL,obloqMqttEventT1,NULL,NULL,NULL};
// 建立物件
DFRobot_Iot myIot;
// 主程式開始
void setup() {
mPython.begin();
myIot.setMqttCallback(msgHandles);
buttonA.setPressedCallback(onButtonAPressed);
myIot.wifiConnect("ckx", "12345679");
display.setCursorLine(1);
display.printLine("正在連線網路");
while (!myIot.wifiStatus()) {yield();}
display.setCursorLine(2);
display.printLine("網路連線成功");
display.fillScreen(0);
delay(3000);
myIot.init("iot.dfrobot.com.cn","rGm5IiKGR","","rGmcSmFGRz",topics,1883);
myIot.connect();
while (!myIot.connected()) {yield();}
display.setCursorLine(1);
display.printLine("mqtt連線成功");
delay(3000);
display.fillInLine(1, 0);
}
void loop() {
}
// 事件回撥函式
void onButtonAPressed() {
while (!(!buttonA.isPressed())) {yield();}
myIot.publish(topic_0, "陳可行");
display.fillScreen(0);
display.setCursorLine(1);
display.printLine("訊息傳送成功");
delay(3000);
display.fillInLine(1, 0);
}
void obloqMqttEventT1(String& message) {
display.setCursorLine(1);
display.printLine("您有新的訊息");
rgb.write(-1, 0xFFFFFF);
display.setCursorLine(2);
display.printLine(message);
delay(3000);
rgb.write(-1, 0x000000);
display.fillScreen(0);
}
五、測試/除錯及實驗結果分析
將程式碼上傳到裝置後,掌控板開始連線網路,連線MQTT
陳可行(我)按下A鍵,傳送MQTT訊息“陳可行”至Topic0,傳送成功後螢幕顯示“訊息傳送成功”,Easy Iot上的相應Topic收到訊息“陳可行”,
搭檔陳登祖(監聽Topic0)掌控板顯示收到的訊息“陳可行”,並亮起LED燈。
陳可行(我)監聽Topic1,搭檔陳登祖按下他的掌控板的A鍵傳送MQTT訊息“陳登祖”至Topic1,Easy Iot上的相應Topic收到訊息“陳登祖”,
掌控板顯示收到的訊息“陳登祖”,並亮起LED燈。
在組合程式碼塊時最好在每一步都加上必要的提示,方便我們在出現錯誤的時候進行除錯,也方便讓我們知道程式進行到了哪一步。
六、實驗結論與體會
這次實驗讓我瞭解了掌控板的幾大功能,更熟練地運用圖形化程式設計軟體mind+。
相關文章
- 實現mind+下Easy IoT上mqtt訊息的通訊。MQQT
- easy-captcha實現驗證碼驗證APT
- 實驗一
- 實驗一.
- 實驗9.單臂路由實現Vlan互通實驗路由
- 實驗一和實驗二截圖
- WebGL 實現雨水特效實驗Web特效
- 實驗一 思路
- 實驗一(3)
- 物聯網 實驗一 掌控版的使用 智慧燈和MQTTMQQT
- 實驗11.ACL實驗
- 實驗| Pyecharts實現散點圖Echarts
- 實驗一演算法描述及其程式實現演算法
- 實驗5.OSPF配置實驗
- 20個實驗之實驗11
- 20個實驗之實驗10
- 20個實驗之實驗16
- 30個實驗之實驗23
- 30個實驗之實驗25
- 實驗一 總結
- 實驗一———美團APPAPP
- 第一週實驗
- OPP__實驗一
- 實驗
- C實現奇偶校驗
- js 實現 FCS效驗JS
- Django實現驗證碼Django
- java實現驗證碼Java
- rails實現驗證碼AI
- 實驗7.Vlan劃分實驗
- 實驗10.3層vlan互通實驗
- 實驗8.Vlan Hybrid實驗
- 電路原理實驗一
- Oracle恢復實驗(一)Oracle
- 劉思含實驗一
- 實驗一原型設計原型
- 實驗二——進展一
- 為網站實現一個驗證碼網站