12021| 5
|
[入门教程] BXY+Obloq-IoT物联网(+App)双向数据传输测试,浇花也可用APP... |
在社区发过一个OBLOQ-IoT模块+Micro:bit玩物联网浇花,当时用的是一个IOT_TOPIC来实现数据的接收和发送,虽然实现了物联网浇花的功能,但总感觉有点缺憾。 这个贴子进行的是BXY+Obloq-IoT物联网双向数据传输测试。 所以这里可以实现多个IOT_TOPIC的数据接收和发送,那么,用一个IOT_TOPIC接收土壤温度数据,一个IOT_TOPIC控制舵机浇花,将会变得轻松,物联网远程浇花也可以用APP实现了。:victory: 先放上测试视频镇楼。 如果你想对bit+obloq IoT有更多了解,建议look下大圣老师和吕老师进行的一系列尝试,这将有助于理解这个帖子的内容: 光阴的故事--Obloq软件包测试 OBLOQ-IoT模块+Micro:bit玩物联网浇花 用App控制Micro:bit物联网小风扇 micro:bit+OBLOQ轻松玩起物联网(一)远程控制风扇 BXY+Obloq-IoT(+APP)物联网多设备控制,可以做个智能家居... BXY+Obloq-IoT物联网多传感器数据上传测试 准备工作: 平台注册设置。(略去,具体参看BXY+Obloq-IoT(+APP)物联网多设备控制,可以做个智能家居...) 硬件准备:Micro:bit物联网基础套装 micro:bit 1 micro:mate 扩展板 1 obloq IoT 模块 1 USB线及其他自己用到的传感器和输出模块。 大圣老师用了一个环境光传感器,两个灯串。 IOT平台工作间如下。 App平台如下。 如果你也要用APP显示平台数据并控制设备,可以参考使用手机app与Easy Iot物联网平台进行通讯和用App控制Micro:bit物联网小风扇。 工作了半天IOT平台的数据。 启动BXY,软件下载及df官方教程链接:https://docs.dfrobot.com.cn/bxy/ 这个帖子对应的探索在BXY中没有例程,不过读懂了接收和发送,合并起来就可以了。 特别提醒:现在IOT功能DF做了点小限制,从服务器接收数据时没有时间间隔的,但是发送数据的话,最快5秒钟发送一条。 所以不要发送太快哦,太快就会接收不到并且有假死的症状了。这时就只能断电后重新给扩展板供电再次接入wifi了。后面DF把服务器带宽这些提升好,还会把这部分功能再升级一下。同时为了保护板子,不建议用bit板上的重启键哦。 上面测试用的程序如下,你可以有用到可以参考。注:本例中光线传感器接在p0,对应IOT_TOPIC1接收光线传感器数据,两个灯串接在p8和p12,对应IOT_TOPIC2,IOT_TOPIC3发送控制数据1,0开关灯。 [mw_shl_code=python,true]from microbit import * import Obloq SERVER = "iot.dfrobot.com.cn" PORT = "1883" SSID = "*********" PASSWORD = "***********" IOT_ID = "***********" IOT_PWD = "********" IOT_TOPIC1 = "*********" IOT_TOPIC2 = "*********" IOT_TOPIC3 = "*********" uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin2, rx=pin1) def ConnectWifi(): while Obloq.connectWifi(SSID,PASSWORD,10000) != True: display.show(".") display.scroll(Obloq.ifconfig()) #设置MQTT的回调函数 def event(e,param): if e == "MqttConneted":#MQTT连接成功 display.scroll("OK") if e == IOT_TOPIC2:#收到了订阅的topic2的信息 display.scroll(param)#显示订阅topic2信息 if param == "1": pin12.write_digital(1) if param == "0": pin12.write_digital(0) if e == IOT_TOPIC3:#收到了订阅的topic3的信息 display.scroll(param)#显示订阅topic3信息 if param == "1": pin8.write_digital(1) if param == "0": pin8.write_digital(0) if e == "SubOk":#订阅成功 display.scroll("OK") ConnectWifi() #初始化MQTT的配置 Obloq.mqttSet(event,SERVER,PORT) #连接MQTT Obloq.connectMqtt(IOT_ID,IOT_PWD) Obloq.subTopic(IOT_TOPIC2)#订阅Topoic2 Obloq.subTopic(IOT_TOPIC3)#订阅Topoic3 while True: val = pin0.read_analog() sleep(10000) #向服务器的IOT_TOPIC1发送 Obloq.pubLish(IOT_TOPIC1,str(val))[/mw_shl_code] 如果不太明白程序意思,回到上两个帖子再看下呗。 物联网浇花测试例程:p0 土壤温度传感器 对应IOT_TOPIC1,采集数据时间为10秒一次,建议使用时增长一些。p12 舵机,对应IOT_TOPIC2,发送1、0控制舵机动作,合适度数请根据实际情况调整。 [mw_shl_code=python,true]from microbit import * import Obloq import Servo sv=Servo(pin12) SERVER= "iot.dfrobot.com.cn" PORT= "1883" SSID= "woaixcl" PASSWORD = "xcl13703403503" IOT_ID = "H1-YrdHhvf" IOT_PWD = "SyMYSdB3wz" IOT_TOPIC1 = "SkneZ4pRM" IOT_TOPIC2 = "r1NWwN23z" uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin2, rx=pin1) def ConnectWifi(): while Obloq.connectWifi(SSID,PASSWORD,10000) != True: display.show(".") display.scroll(Obloq.ifconfig()) #设置MQTT的回调函数 def event(e,param): if e == "MqttConneted":#MQTT连接成功 display.scroll("OK") if e == IOT_TOPIC2:#收到了订阅的topic2的信息 display.scroll(param)#显示订阅topic2信息 if param == "1": sv.angle(170) if param == "0": sv.angle(90) if e == "SubOk":#订阅成功 display.scroll("OK") ConnectWifi() #初始化MQTT的配置 Obloq.mqttSet(event,SERVER,PORT) #连接MQTT Obloq.connectMqtt(IOT_ID,IOT_PWD) Obloq.subTopic(IOT_TOPIC2)#订阅Topoic2 while True: val = pin0.read_analog() sleep(10000) #向服务器的IOT_TOPIC1发送 Obloq.pubLish(IOT_TOPIC1,str(val))[/mw_shl_code] 注意1、改成自己的信息。 注意2、修改合适的舵机度数(不建议用两个0,180极值,例如30-150度之间,这样减少舵机抖动。) 如果舵机不能运行,请看是不是少了第4行。 pin12.set_analog_period(20) 大圣老师进行了App查看数据并控制舵机运行测试(具体舵机度数以自己实测为准)。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed