摘要:本文,將介紹如何通過這個芯片連接到巴法云的設(shè)備云。例如向主題推送數(shù)據(jù),可為示例調(diào)試測試的內(nèi)容就是上面的指令,使用網(wǎng)絡(luò)調(diào)試助手連接上巴法云后,修改就可以直接發(fā)送指令了。
巴法云物聯(lián)網(wǎng)云平臺,就如它的文檔介紹的,是一個專注物體聯(lián)網(wǎng)的神奇的設(shè)備云平臺(cloud.bemfa.com),它有以下特征,輕量級,支持發(fā)布/訂閱模式,提供遺囑機(jī)制,支持TCP長連接,全平臺兼容。本文,將介紹如何通過esp8266這個芯片連接到巴法云的TCP設(shè)備云。
到巴法云官網(wǎng)或直接進(jìn)入 https://cloud.bemfa.com/u_login.php?reurl=https://cloud.bemfa.com/tcp/index.html
如下圖,點擊“微信一鍵登錄”,掃碼直接登錄注冊,然后直接進(jìn)入“控制臺”
登錄后,會直接跳轉(zhuǎn)到巴法云云平臺的個人控制臺,如下圖,選中TCP設(shè)備云,輸入主題名“test”,點擊新建主題,便可以創(chuàng)建一個名為test的主題,之后我們就可以對這個主題進(jìn)行訂閱或發(fā)布了。
完成上面后,我們可以使用 SSCOM5 串口/網(wǎng)絡(luò)調(diào)試助手來調(diào)試我們之前創(chuàng)建的主題。uid即用戶私鑰,可以直接在用戶控制臺獲取
這主要參考官方文檔關(guān)于 TCP設(shè)備云部分。
TCP服務(wù)器地址IP: bemfa.com 服務(wù)器端口:8340
訂閱主題格式
? cmd=1&uid=7d54f85af42976ee3c2693e6xxxxxxxx&topic=light002/r/n
正常返回:
cmd=1&res=1
發(fā)布信息格式
? cmd=2&uid=7d54f85af42976ee3c2693e6xxxxxxxx&topic=light002&msg=off/r/n
正常返回:
cmd=2&res=1
訂閱主題,并獲取一次已推送的消息
? cmd=3&uid=7d54f85af42976ee3c2693e6xxxxxxxx&topic=light002/r/n
正常返回:
cmd=3&uid=7d54f85af42976ee3c2693e6xxxxxxxx&topic=light002&msg=on
獲取一次時間
? cmd=7&uid=7d54f85af42976ee3c2693e6xxxxxxxx&type=1/r/n
正常返回:
2021-06-11 16:39:27
獲取一次已發(fā)消息
? cmd=9&uid=7d54f85af42976ee3c2693e6xxxxxxxx&topic=light002/r/n
正常返回:
cmd=9&uid=7d54f85af42976ee3c2693e6xxxxxxxx&topic=light002&msg=on
發(fā)送心跳
? ping/r/n
正常返回:
cmd=0&res=1
json響應(yīng)
上述任意指令中加入 mode=1 時,服務(wù)器響應(yīng)的數(shù)據(jù)格式是 json 類型。
例如發(fā)送:
cmd=2&uid=4d9ec352e0376f2110a0c601a2857225&topic=light002&msg=on&mode=1
正常響應(yīng):
{“cmd”:2,“res”:1}
此時訂閱light002的設(shè)備將收到:
{“cmd”:2,“time”:1623402740,“uid”:“4d9ec352e0376f2110a0c601a2857225”,“topic”:“l(fā)ight002”,“msg”:“on”}
其中time為發(fā)送消息的時間戳
字段說明
cmd:為消息類型
cmd=1 時為訂閱消息,當(dāng)設(shè)備發(fā)送一次此消息類型,之后就可以收到發(fā)往該主題的消息
cmd=2 時為發(fā)布消息,向訂閱該主題的設(shè)備發(fā)送消息
cmd=3 是訂閱消息,和cmd=1相同,并且會拉取一次已發(fā)送過的消息
cmd=7 是獲取時間,獲取當(dāng)前北京時間
cmd=9 為遺囑消息,拉取一次已經(jīng)發(fā)送的消息
uid:用戶私鑰
可在控制臺獲取
topic:用戶主題
可以在控制臺創(chuàng)建主題,格式為英文或數(shù)字,相當(dāng)于設(shè)備標(biāo)識
msg: 為消息體
用戶想要發(fā)送到某個主題的數(shù)據(jù)
獲取時間指令說明
type=1 獲取當(dāng)前日期和時間,例如:2021-06-11 17:20:54
type=2 獲取當(dāng)前時間,例如:17:20:54
type=3 獲取當(dāng)前時間戳,例如:1623403325
符號說明
/r/n: 為回車換符,每條指令后都需要有回車換行
&: 為連接符,各字段間用’&"隔離
心跳說明
發(fā)送任意數(shù)據(jù) 為心跳消息,包括上述指令也算是心跳,但要以回車換行結(jié)尾。
心跳消息是告訴服務(wù)器設(shè)備還在線,可30秒發(fā)送一次,結(jié)尾以/r/n結(jié)尾。
可選功能
推送消息時:主題名后加/set推送消息,表示向所有訂閱這個主題的設(shè)備們推送消息,假如推送者自己也訂閱了這個主題,消息不會被推送給它自己,以防止自己推送的消息被自己接收。
推送消息時:主題名后加/up推送消息,表示只更新云端數(shù)據(jù),不進(jìn)行任何推送。
例如向主題 light002推送數(shù)據(jù),可為 light002/set , light002/up
示例:cmd=2&uid=4d9ec352e0376f2110a0c601a2857225&topic=light002/set&msg=on
測試的內(nèi)容就是上面的指令,使用網(wǎng)絡(luò)調(diào)試助手連接上巴法云后,修改uid,就可以直接發(fā)送指令了。下面圖片是返回的結(jié)果。
這里給出測試代碼,ESP8266 Arduino IDE開發(fā)環(huán)境的配置,以及ESP8266的相關(guān)編程,可以參考我的另一篇博文《esp8266環(huán)境配置以及相關(guān)學(xué)習(xí)資料》。下面代碼,訂閱了一個test主題,當(dāng)有信息下發(fā)時,會直接將數(shù)據(jù)輸出到ArduinoIDE的串口查看器上。
#include #include ESP8266WiFiMulti wifiMulti; // 建立ESP8266WiFiMulti對象const char* host = "bemfa.com"; // 網(wǎng)絡(luò)服務(wù)器地址const int httpPort = 8340; // http端口80 // WiFi連接信息const char* WiFi_SSID = "ling";const char* WiFi_Password = "ling....9";// 建立WiFi客戶端對象,對象名稱clientWiFiClient client; void setup(){ Serial.begin(9600); WiFi.mode(WIFI_STA); // 設(shè)置ESP8266為無線終端模式 wifiMulti.addAP(WiFi_SSID, WiFi_Password); Serial.println("Connecting ..."); // 嘗試進(jìn)行wifi連接。 int i = 0; while (wifiMulti.run() != WL_CONNECTED) { delay(1000); Serial.print(i++); Serial.print(" "); } // WiFi連接成功后將通過串口監(jiān)視器輸出連接成功信息 Serial.println(""); Serial.print("Connected to "); Serial.println(WiFi.SSID()); // WiFi名稱 Serial.print("IP address:/t"); Serial.println(WiFi.localIP()); // IP //連接巴法云 client.connect(host, httpPort); Serial.print("conneted bamfa!/n"); //訂閱主題test client.print("cmd=1&uid=<填你們自己的uid>&topic=test/r/n"); } void loop(){ // 判斷登錄狀態(tài) if(not client.connected()){ //連接巴法云 client.connect(host, httpPort); Serial.print("reconneted bamfa!/n"); //訂閱主題test client.print("cmd=1&uid=<填你們自己的uid>&topic=test/r/n"); } //輸出結(jié)果 while (client.connected() || client.available()){ if (client.available()){ String line = client.readStringUntil("/n"); Serial.println(line); } } delay(10);}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/122386.html
摘要:教程傳送門基于平臺開發(fā)連接巴法云簡介實驗準(zhǔn)備硬件軟件實驗步驟點燈實驗發(fā)送溫濕度指令升級總結(jié)關(guān)于巴法云專注于開源,智造,創(chuàng)新,分享。 Arduino教程傳送門????...
摘要:使用實現(xiàn)連網(wǎng)實現(xiàn)巴法云物聯(lián)網(wǎng)使用硬件程序思路基于正點原子的測試程序在巴法云物聯(lián)網(wǎng)創(chuàng)建的主題初始化代碼比較簡陋主函數(shù)代碼如果想用串口助手調(diào)試,接線方法如下使用硬件我這里使用的是正點原子家的開發(fā)板精英版和模塊。 ...
摘要:具體操作如下創(chuàng)建自己的設(shè)備進(jìn)入到阿里云控制臺,找到物聯(lián)網(wǎng)平臺,創(chuàng)建屬于自己的設(shè)備點擊公共實例進(jìn)行創(chuàng)建里面有個設(shè)備管理,點擊產(chǎn)品,里面有個創(chuàng)建產(chǎn)品輸入名稱即可,然后選擇標(biāo)準(zhǔn)品類這里我創(chuàng)建的是溫濕度檢測。 ...
摘要:導(dǎo)入文件后,如果只是簡單使用,只需要修改兩個地方,一個是主題名字,一個是,均需開發(fā)者置換成自己的主題名字和用戶私鑰,均可在巴法云控制臺獲取點擊跳轉(zhuǎn)。 esp32-...
摘要:下面是演示視頻物聯(lián)網(wǎng)文章目錄前言一準(zhǔn)備二操作步驟配置配置三效果展示總結(jié)前言實現(xiàn)萬物互聯(lián)第一步,千里點燈,然后添加你想要的模塊就可以了,接下來我們進(jìn)入正文。 前面學(xué)習(xí)...
閱讀 4276·2021-10-13 09:39
閱讀 481·2021-09-06 15:02
閱讀 3229·2019-08-30 15:53
閱讀 1039·2019-08-30 13:04
閱讀 2028·2019-08-30 11:27
閱讀 2009·2019-08-26 13:51
閱讀 2091·2019-08-26 11:33
閱讀 2901·2019-08-26 10:36