关注分享主机优惠活动
国内外VPS云服务器

Esp8266 TCP接入巴法云物联网云平台

本文将介绍如何通过该芯片连接巴法云的设备云。比如向主题推送数据,可以为例子调试和测试的内容就是上面的指令。用网络调试助手连接到八法云后,修改后可以直接发送指令。

前言Bafayun物联网云平台,正如其文档中所描述的,是一个专注于物联网的神奇设备云平台(cloud.bemfa.com)。它具有以下特点:轻量级,支持发布/订阅模式,提供意愿机制,支持TCP长连接,平台兼容。本文将介绍如何通过esp8266连接Bafa Cloud的TCP设备云。

(1)注册添加TCP设备(1)在Bafayun官网注册Bafayun账号或者直接输入https://cloud.bemfa.com/u_login.php?.·勒乌尔= https://cloud.bemfa.com/TCP/index.html如下图所示,点击“微信一键登录”,扫码直接登录,然后直接进入“控制台”。

(2)登录创建主题后,会直接跳转到八法云平台的个人控制台,如下图。选择TCP设备云,输入主题名“test”,点击New Theme创建一个名为test的主题。然后我们可以订阅或发布这个主题。

(2)订阅发布的主题后,我们可以使用SSCOM5串口/网络调试助手来调试我们之前创建的主题。Uid是用户的私钥,可以直接从用户控制台获得。

(1)TCP设备相关说明这个主要是指关于TCP设备云的官方文档。TCP服务器地址IP:bemfa.com服务器端口:8340。

订阅主题格式cmd = 1 & uid = 7d 54 f 85 af 42976 ee3c 2693 e 6 xxxxxxxx & topic = light 002/r/n normal return:cmd = 1 & RES = 1。

发布信息格式cmd = 2 & uid = 7d 54 f 85 af 42976 ee3c 2693 e 6 xxxxxxxx & topic = light 002 & msg = off/r/n normal return:cmd = 2 & RES = 1。

订阅主题,获取推送消息cmd = 3 & uid = 7d 54 f 85 af 42976 ee3c 2693 e 6 XXXXXX & topic = light 002/r/n normal return:cmd = 3 & uid = 7d 54 f 85 af 42976 ee3c 2693 e 6 XXXXXX & topic = light 002 & msg = on。

采集时间cmd = 7 & uid = 7d 54 f 85 af 42976 ee3c 2693 e 6 xxxxxxxx & type = 1/r/n normal return:2021-06-11 16:39:27。

获取一次发送的消息cmd = 9 & uid = 7d 54 f 85 af 42976 ee3c 2693 e 6 XXXXXX & topic = light 002/r/n normal return:cmd = 9 & uid = 7d 54 f 85 af 42976 ee3c 2693 e 6 XXXXXX & topic = light 002 & msg = on。

正常发送心跳ping/r/n r/n return:cmd = 0 & RES = 1。

Json响应当mode=1添加到上述任意一条指令中时,服务器响应的数据格式为json类型。比如发送:cmd = 2 & uid = 4d 9 c 352 e 0376 f 21110 a 0 c 601 a 2857225 & topic = light002 & msg = on & mode = 1正常响应:{"cmd": 2," res": 1}此时订阅light 002的设备会收到:{"cmd "。" uid ":" 4d 9 EC 352 e 0376 f 21110 a 0c 601 a 2857225 "," topic": "light002 "," msg": "on"}其中time是已发送消息的时间戳。

字段描述cmd:当消息类型为cmd=1时,为订阅消息。当设备发送一次该消息类型时,它可以接收发送到该主题的消息。当cmd=2时,它是一个发布消息。向订阅该话题的设备发送消息时,cmd=3为订阅消息,与cmd=1相同,检索已发送一次的消息,检索当前北京时间cmd=9为意愿消息。

可以在控制台获取主题:可以在控制台创建英文或数字格式的用户主题,相当于设备标识msg:用户希望发送到主题的数据,用于消息体。

获取时间指令描述type=1获取当前日期时间,例如2021-06-11 17:20:54 type=2获取当前时间,例如17:20:54 type=3获取当前时间戳,例如1623403325。

符号描述/r/n:对于回车,每个指令后面必须跟回车和换行符&:对于连接器,字段用' & '分隔。

Heartbeat表示将任何数据作为心跳消息发送,包括上面的指令,也是心跳,但它以回车和换行符结束。心跳消息告诉服务器设备仍然在线,可以每30秒发送一次,以/r/n结尾。

可选功能推送消息时:添加/设置在话题名称后推送消息,意思是将消息推送至订阅该话题的所有设备。如果推送者订阅了这个话题,消息就不会推送给自己,以免自己推送的消息被自己收到。

推送消息时:add /up在主题名称后推送消息,表示只更新云端数据,不做任何推送。比如推送数据到题目light002,可以是light002/set,light002/up。

例如:cmd = 2 & uid = 4d 9 EC 352 e 0376 f 21110 a 0c 601 a 2857225 & topic = light 002/set & msg = on。

(2)调试测试的内容就是上面的说明。用网络调试助手连接巴法云后,修改uid,就可以直接发送指令了。下图是返回的结果。

(三)访问ESP8266到Bafayun这里是测试代码,ESP8266 Arduino IDE开发环境的配置,以及ESP8266的相关编程。请参考我的另一篇博文《esp8266环境配置及相关学习资料》。下面的代码订阅了一个测试主题,当分发信息时,它会直接将数据输出到ArduinoIDE的串行查看器。

# include # include esp8266 wifi multi wifi multi;//建立ESP8266WiFiMulti对象const char * host = " BEM fa . com ";//网络服务器地址const int httpPort = 8340// http port80//wifi连接信息const char * WiFi _ SSID = " lingconst char* WiFi_Password = "ling....9";//创建一个WiFi客户端对象,对象名为clientWiFiClient clientvoid setup(){ serial . begin(9600);WIFI . mode(WIFI _ STA);//将ESP8266设置为无线终端模式Wifi Multi。Addap (WiFi _ SSID,WiFi _ Password);Serial.println("正在连接...");//尝试建立wifi连接。int I = 0;while (wifiMulti.run()!= WL _连接){延迟(1000);serial . print(i++);serial . print(" ");WiFi连接成功后,通过串口显示器输出serial . println(" ");Serial.print("连接到");Serial.println(WiFi。SSID());// WiFi名称Serial.print("IP地址:/t ");serial . println(wifi . localip());//IP//Connect bafa yun client . Connect(host,http port);serial . print(" conned bam fa!/n ");//订阅test client . print(" cmd = 1 & uid = & topic = test/r/n ");} void loop(){ //确定登录状态if(not client . connected()){//Connect bafa yun client . Connect(host,http port);Serial.print("reconneted bamfa!/n ");//订阅test client . print(" cmd = 1 & uid = & topic = test/r/n ");}//输出结果while(client . connected()| | client . available()){ if(client . available()){ string line = client . read strintil("/n ");serial . println(line);} }延迟(10);}

未经允许不得转载:主机频道 » Esp8266 TCP接入巴法云物联网云平台

评论 抢沙发

评论前必须登录!