码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。
| 在社区发过一个OBLOQ-IoT模块+Micro:bit玩物联网浇花,当时用的是一个IOT_TOPIC来实现数据的接收和发送,虽然实现了物联网浇花的功能,但总感觉有点缺憾。 
    这个贴子进行的是BXY+Obloq-IoT物联网双向数据传输测试。    如果你想对bit+obloq IoT有更多了解,建议look下大圣老师和吕老师进行的一系列尝试,这将有助于理解这个帖子的内容: 
 
 IOT平台工作间如下。 
 App平台如下。 如果你也要用APP显示平台数据并控制设备,可以参考使用手机app与Easy Iot物联网平台进行通讯和用App控制Micro:bit物联网小风扇。 
 工作了半天IOT平台的数据。 
 
 
 特别提醒:现在IOT功能DF做了点小限制,从服务器接收数据时没有时间间隔的,但是发送数据的话,最快5秒钟发送一条。     所以不要发送太快哦,太快就会接收不到并且有假死的症状了。这时就只能断电后重新给扩展板供电再次接入wifi了。后面DF把服务器带宽这些提升好,还会把这部分功能再升级一下。同时为了保护板子,不建议用bit板上的重启键哦。     上面测试用的程序如下,你可以有用到可以参考。 [Python] 纯文本查看 复制代码 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))如果不太明白程序意思,回到上两个帖子再看下呗。 
 
 物联网浇花测试例程:p0 土壤温度传感器 对应IOT_TOPIC1,采集数据时间为10秒一次,建议使用时增长一些。p12 舵机,对应IOT_TOPIC2,发送1、0控制舵机动作,合适度数请根据实际情况调整。 [Python] 纯文本查看 复制代码 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行。 
 | 














