2018-4-25 18:25:04 [显示全部楼层]
查看: 7861|回复: 5

[入门教程] BXY+Obloq-IoT物联网(+App)双向数据传输测试,浇花也可用APP...

[复制链接]
本帖最后由 rzyzzxw 于 2018-5-19 15:10 编辑

   在社区发过一个OBLOQ-IoT模块+Micro:bit玩物联网浇花,当时用的是一个IOT_TOPIC来实现数据的接收和发送,虽然实现了物联网浇花的功能,但总感觉有点缺憾。 截图201804251418293901.png
   这个贴子进行的是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线及其他自己用到的传感器和输出模块。
   大圣老师用了一个环境光传感器,两个灯串。
截图201804251753255617.png
    IOT平台工作间如下。
截图201804251459185063.png
   App平台如下。 如果你也要用APP显示平台数据并控制设备,可以参考使用手机app与Easy Iot物联网平台进行通讯用App控制Micro:bit物联网小风扇
截图201804251754587415.png
    工作了半天IOT平台的数据。
截图201804251758432278.png


    启动BXY,软件下载及df官方教程链接:http://docs.dfrobot.com.cn/bxy/
    这个帖子对应的探索在BXY中没有例程,不过读懂了接收和发送,合并起来就可以了。
特别提醒:现在IOT功能DF做了点小限制,从服务器接收数据时没有时间间隔的,但是发送数据的话,最快5秒钟发送一条。
    所以不要发送太快哦,太快就会接收不到并且有假死的症状了。这时就只能断电后重新给扩展板供电再次接入wifi了。后面DF把服务器带宽这些提升好,还会把这部分功能再升级一下。同时为了保护板子,不建议用bit板上的重启键哦。
    上面测试用的程序如下,你可以有用到可以参考。
    注:本例中光线传感器接在p0,对应IOT_TOPIC1接收光线传感器数据,两个灯串接在p8和p12,对应IOT_TOPIC2,IOT_TOPIC3发送控制数据1,0开关灯。
[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))



  如果不太明白程序意思,回到上两个帖子再看下呗。  



截图201804252042319343.png
  物联网浇花测试例程: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、改成自己的信息。
截图201804252043372196.png
  注意2、修改合适的舵机度数(不建议用两个0,180极值,例如30-150度之间,这样减少舵机抖动。)
无标题.png
  如果舵机不能运行,请看是不是少了第4行。
  pin12.set_analog_period(20)
  大圣老师进行了App查看数据并控制舵机运行测试(具体舵机度数以自己实测为准)。
截图201804252059327631.png




hnyzcj  版主

发表于 2018-4-26 12:40:27

厉害朱老师
回复

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-4-26 13:57:05


谢谢陈大师支持,我能读明白一点micropython了。:handshake
回复

使用道具 举报

chinazmde  高级技师

发表于 2018-4-26 19:27:21

大圣老师,我也要学习。
回复

使用道具 举报

我行我素  见习技师

发表于 2019-3-3 10:24:11


厉害朱老师
回复

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2019-3-3 10:49:43

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail