BXY+Obloq-IoT物联网(+App)双向数据传输测试,浇花也可用APP...
在社区发过一个OBLOQ-IoT模块+Micro:bit玩物联网浇花,当时用的是一个IOT_TOPIC来实现数据的接收和发送,虽然实现了物联网浇花的功能,但总感觉有点缺憾。这个贴子进行的是BXY+Obloq-IoT物联网双向数据传输测试。
所以这里可以实现多个IOT_TOPIC的数据接收和发送,那么,用一个IOT_TOPIC接收土壤温度数据,一个IOT_TOPIC控制舵机浇花,将会变得轻松,物联网远程浇花也可以用APP实现了。:victory:
先放上测试视频镇楼。
https://v.youku.com/v_show/id_XMzU2NDE1Njc2OA==.html
如果你想对bit+obloq IoT有更多了解,建议look下大圣老师和吕老师进行的一系列尝试,这将有助于理解这个帖子的内容:
光阴的故事--Obloq软件包测试
OBLOQ-IoT模块+Micro:bit玩物联网浇花
用App控制Micro:bit物联网小风扇
micro:bit+OBLOQ轻松玩起物联网(一)远程控制风扇
BXY+Obloq-IoT(+APP)物联网多设备控制,可以做个智能家居...
BXY+Obloq-IoT物联网多传感器数据上传测试
static/image/hrline/5.gif
准备工作:
平台注册设置。(略去,具体参看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平台的数据。
static/image/hrline/5.gif
启动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开关灯。
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))
如果不太明白程序意思,回到上两个帖子再看下呗。
static/image/hrline/5.gif
物联网浇花测试例程:p0 土壤温度传感器 对应IOT_TOPIC1,采集数据时间为10秒一次,建议使用时增长一些。p12 舵机,对应IOT_TOPIC2,发送1、0控制舵机动作,合适度数请根据实际情况调整。
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))
注意1、改成自己的信息。
注意2、修改合适的舵机度数(不建议用两个0,180极值,例如30-150度之间,这样减少舵机抖动。)
如果舵机不能运行,请看是不是少了第4行。
pin12.set_analog_period(20)
大圣老师进行了App查看数据并控制舵机运行测试(具体舵机度数以自己实测为准)。
厉害朱老师 hnyzcj 发表于 2018-4-26 12:40
厉害朱老师
谢谢陈大师支持,我能读明白一点micropython了。:handshake 大圣老师,我也要学习。
厉害朱老师 我行我素 发表于 2019-3-3 10:24
厉害朱老师
:$
页:
[1]