OBLOQ-IoT模块+Micro:bit玩物联网浇花

2018-04-038.6万
精华项目
AI 快速预览详细 收起
本教程介绍了如何使用Micro:bit和OBLOQ-IoT模块实现物联网浇花。项目包括硬件准备、物联网平台设置、Makecode程序、BXY(Micropython)程序、Mind+程序以及手机APP控制。通过土壤湿度传感器监测植物状态,并通过舵机控制浇水。此项目不仅适合亲子共学,还能启发学生在智慧农业和智慧校园方面的创意。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图1

micro:bit从来到这个世界上,就是个古灵精怪的小创客,千变万化,这次要和DFRobot OBLOQ-IOT模块合作,变身物联网浇花神器了。

而且,超级简单,简单到丧心病狂。


项目提示:
本教程提供了从硬件准备,物联网平台设置,makecode程序,BXY(micropython)程序,Mind+程序,到手机APP控制完整的解决方案,同时还有扩展性,您可以在外壳设计,电子模块添加等方面发挥更多的创意。
希望这个项目,可以启发您在物联网+智慧农业,智慧校园等方面的创意。
教程较长,相当有料。;P

器材准备:A: Micro:bit+OBLOQ-IoT模块物联网浇花(完整版)
OBLOQ-IoT模块+Micro:bit玩物联网浇花图26
B:Micro:bit+OBLOQ-IoT模块物联网浇花(精简版) 适用已有micro:bit主板的伙伴

OBLOQ-IoT模块+Micro:bit玩物联网浇花图27                           
C:  Micro:bit物联网基础套装适用已有土壤湿度传感器和小舵机的伙伴
OBLOQ-IoT模块+Micro:bit玩物联网浇花图28
配件清单如下:
OBLOQ-IoT模块+Micro:bit玩物联网浇花图31
1、Gravity: UART OBLOQ - IoT物联网模块
2、Micro:Mate—最小的micro:bit多功能I/O扩展板
3、micro:bit 编程入门开发板
4、DMS-MG90 金属9g舵机 (1.8Kg)
5、一个水瓶,一段软管,或者就是护士给你一个打点滴用的药瓶和输液管。
6、还有一个重要的,电容式土壤湿度传感器 ,有没有感觉很漂亮,象一把剑。

亲子讨论:
在做这个小项目时,我家的小创客朱铭德也参与进来了,当我要找点滴瓶子时,他就问,是不是要做自动浇花,这小子,读过狄老师用吴凌可做物联网浇花的教程https://mp.weixin.qq.com/s/YupIN9GyKmgZ00ImVVxxgw
借狄老师动图一张。(版权属于狄老师。)

OBLOQ-IoT模块+Micro:bit玩物联网浇花图17
对了,就是要学狄老师的奇思妙想。
他又说,用micro:bit做成自动浇花不就行了吗,为什么还要物联网呢。
其实,这个小项目真是高射炮打蚊子,纯属装X,不过别的开源硬件都物联网浇花了,咱家这可爱的小bit也要玩物联网浇花,不用水泵,不用继电器,方便小创客学习。

看来,是时候让他读读夏青老师的文章了。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图2

自动浇花略过(此处省略200字及若干张图,还可再写个帖子凑数)。

物联网浇花,走起。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图3

物联网是将嵌入式系统技术、移动技术、网页技术全都融合在一起的,其发展的灵魂是以用户体验为核心,特点是与硬件、网络、平台、服务等完全不同的产业领域的相关者直接合作或者融合。

目前国内外已有多个成熟物联网平台,但绝大部分物联网平台都是面向专业开发人员,操作复杂,上手困难。DF推出了OBLOQ物联网模块,搭配DFRobot自有的物联网平台,大大降低了物联网的使用门槛。无需复杂的基础知识,就能迅速搭建出一套物联网应用。


OBLOQ串口转WIFI物联网模块,用以接收和发送物联网信息。模块尺寸紧凑,价格低,接口简单,即插即用,适用于3.3V~5V的控制系统。Obloq模块配套DFRobot EASY-IoT物联网平台

OBLOQ-IoT模块+Micro:bit玩物联网浇花图4

1、进入物联网

OBLOQ-IoT模块+Micro:bit玩物联网浇花图5

OBLOQ-IoT模块+Micro:bit玩物联网浇花图6

也可以直接进入 DF的物联网平台。Obloq模块配套DFRobot EASY-IoT物联网平台https://iot.dfrobot.com.cn/

OBLOQ-IoT模块+Micro:bit玩物联网浇花图7


2.注册与登陆(下面一部分抄陈大师的。)
       首次打开物联网平台后先进行用户注册,完成注册后,登陆平台(具体操作见)。首次登陆后界面是这样子的如下图:


3.查看并记录Iot_id和Iot_pwd
      在这里我们需要记住Iot_id和Iot_pwd的内容,点击“重新生成”后面的眼睛,就可以显示对应的字符数据。
4.添加设备记录Topic
        点击“添加新设备”按钮创建一个新设备,并记录下该设备的Topic。如下图所示。
至此,物联网平台设置工作到此结束。(抄到这里。;P

5、进入https://makecode.microbit.org/---高级---添加软件包---输入网址https://github.com/DFRobot/pxt-Obloq---添加OBLOQ软件包
OBLOQ-IoT模块+Micro:bit玩物联网浇花图8
OBLOQ-IoT模块+Micro:bit玩物联网浇花图9

OBLOQ-IoT模块+Micro:bit玩物联网浇花图22

6、接线,将microbit的串口与Obloq连接(p2 tx连rx,p1 rx连tx)。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图18
VCC接3.3和5V都行的。
用充电宝或者电源适配器供电到扩展板,我把舵机接p12,供电开关切换到5V。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图10
7、编程
开机时连接启动物联网,并将土壤湿度传感器的值上传物联网平台。(用于测试,时间设为一分钟,实用时可以延长。)
OBLOQ-IoT模块+Micro:bit玩物联网浇花图12

在平台上(可以电脑,也可用手机)发送指令,bit接收到指令后控制舵机角度。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图11
8、测试
查看平台数据,用pc或手机登录物联网平台DFRobot EASY-IoT物联网平台 https://iot.dfrobot.com.cn/,进入个人工作间。

OBLOQ-IoT模块+Micro:bit玩物联网浇花图14
查看详情。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图13

平台向浇花系统发送指令
OBLOQ-IoT模块+Micro:bit玩物联网浇花图15
OBLOQ-IoT模块+Micro:bit玩物联网浇花图16
bit接收到指令k后控制舵机运动角度,开始浇花。

bit接收到指令g后控制舵机运动角度,开始浇花。

(以上测试是没有浇花的测试)
特别提醒:现在IOT功能DF做了点小限制,从服务器接收数据时没有时间间隔的,但是发送数据的话,最快5秒钟发送一条。
所以不要发送太快哦,太快就会接收不到并且有假死的症状了。这时就只能断电后重新给扩展板供电再次接入wifi了。

9、测试视频。
具体制作过程可以参考狄老师教程。
这里不再啰嗦了呢。
我用了从实验室拿的胶塞和玻璃管来做了,比狄老师的成本高了许多。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图19
玻璃管太重,后来换成了台萌的吸管了。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图20
装盒子里,我可不想bit让水浇了。
土壤湿度传感器也保护下。


OBLOQ-IoT模块+Micro:bit玩物联网浇花图21

这盆吊兰本来不旱,不过浇一会,数据还是有了变化。
变小了。
对比干燥时的数据700+(前几天测过),变小了很多。

用手机控制下试试,也很棒哦。
这样在外出时,就可以随时查看花宝宝是否缺水。

如果缺水了,就发个命令过去吧。

妈妈再也不怕花宝宝口渴了。


在后面有一个教程,写和是用手机APP来控制micro:bit物联网硬件---用App控制Micro:bit物联网小风扇
您可以把这个浇花改成用手机APP控制。是不是可以更厉害啊。

我们的QQ群号码:484477101(中小学microbit课堂教学群)



以下为4月25日更新。

下面程序是进行的是BXY+Obloq-IoT物联网双向数据传输测试。
这里可以实现多个IOT_TOPIC的数据接收和发送,那么,用一个IOT_TOPIC接收土壤温度数据,一个IOT_TOPIC控制舵机浇花,将会变得轻松,物联网远程浇花也可以用APP实现了。:victory:
参考帖子:BXY+Obloq-IoT物联网(+App)双向数据传输测试,浇花也可用APP...
https://mc.dfrobot.com.cn/thread-36861-1-1.html
(出处: DF创客社区 - 分享创造的喜悦)

App设置参考教程:
使用手机app与Easy Iot物联网平台进行通讯用App控制Micro:bit物联网小风扇


物联网浇花测试例程:p0 土壤温度传感器 对应IOT_TOPIC1,采集数据时间为10秒一次,建议使用时增长一些。p12 舵机,对应IOT_TOPIC2,发送1、0控制舵机动作,合适度数请根据实际情况调整。
[mw_shl_code=python,true]from microbit import *
import Obloq

pin12.set_analog_period(20)

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":      
      pin12.write_analog((0.5 + 180/90)*1023/20)   
    if param == "0":      
      pin12.write_analog((0.5 + 90/90)*1023/20)
  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查看数据并控制舵机运行测试(具体舵机度数以自己实测为准)。
1、物联网平台设置:
OBLOQ-IoT模块+Micro:bit玩物联网浇花图23
2、Mqtt Buddy APP (安卓端点击下载
打开软件,默认有两个官方示例,不用管(也可长按删除),点右上角”+“ 新增设备。

3、设置参数:
3.1按照easyiot的设置填写:
NAME和ADDRESS是物联网服务器地址,填  iot.dfrobot.com.cn
PORT填: 1883
USERNAME和USERPASS是物联网分配的用户名和密码,点击easyiot网站上的小眼睛,然后对应填写即可完成
填写完毕点击软件里面的CREATE按钮确定。

3.2如下图出现一个新设备,点击进入设置

3.3如下为设备界面,右上角连接服务器显示为蓝色即表示连接到了服务器(若没有亮需检查前一步的设置)。
确定连接好之后点击右上角的”+“添加通信设备

3.4选择通信按钮的形式,我们选择先选择一个BUTTON(按钮),用来控制设备

3.5  topic从easyiot网站上填写成相同的:
OBLOQ-IoT模块+Micro:bit玩物联网浇花图25

3.6再添加一个传感器按钮。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图24


5月14日更新:程序更新一下哈。DF的BXY其实出的有自己的伺服机构模块的。所以改一下,更好理解。如果要详细了解,可以参考下面帖子。
玩转micro:bit-用BXY控制小舵机、360舵机和带驱动N20电机

[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]


哈哈,确认过眼神!这是我想要的物联网浇花!
OBLOQ-IoT模块+Micro:bit玩物联网浇花图30

哈哈,要不要也来个玩玩。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图29
精简版购买链接:Micro:bit+OBLOQ-IoT模块物联网浇花(精简版)

哇,让我们一起轻松玩转物联网吧。




6月20日更新:Mind+也能玩物联网浇花。
内容参考另一个帖子:
用Mind+做物联网浇花,小朋友也可以玩

OBLOQ-IoT模块+Micro:bit玩物联网浇花图32OBLOQ-IoT模块+Micro:bit玩物联网浇花图33OBLOQ-IoT模块+Micro:bit玩物联网浇花图34


6月21日更新:
自己写个APP来浇花,参考下面的帖子:
这个不能算物联网应用,不过写个APP简单用一下,也是挺好玩的。
玩转micro:bit-手机APP+bit蓝牙通信浇花
https://mc.dfrobot.com.cn/thread-37517-1-1.html
(出处: DF创客社区 - 分享创造的喜悦)
OBLOQ-IoT模块+Micro:bit玩物联网浇花图35


2018,7,22,更新

1、前面的数据处理方式还有需要优化的地方,DF现在第个设备只给了1000条数据量,不节约使用,很快就会用完的。
     这次参加了物联网比赛,学到了新的方法,在需要采集土壤湿度数据时发送指令时才采集,这样可以节约宝贵的数据资源。
2、3D外壳也做了一个,有喜欢的拿去。附件中有。
OBLOQ-IoT模块+Micro:bit玩物联网浇花图36




OBLOQ_IOT.rar

256.45 KB, 下载次数: 38

售价: 5 创造力  [记录]

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(33)
进击的徐老师
进击的徐老师
感谢分享
JOVI
JOVI
学习学习
花生编程
花生编程
这个舵机控制浇水开关帮到我了,非常感谢!!
花生编程
花生编程
厉害厉害
耘想
耘想
评论内容
红袖添香撵佛珠
红袖添香撵佛珠
竟然在微信读书上找到了答案。
红袖添香撵佛珠
红袖添香撵佛珠
这本书叫什么名?看起来不错,想看。
俺是胡胡
俺是胡胡
666666666666666
爱编程的小付
爱编程的小付
解决了,microbit供电不足。谢谢。
rzyzzxw
rzyzzxw
作者
回复爱编程的小付
赞哈
爱编程的小付
爱编程的小付
为什么我做的只收不发?
并且是绿灯
DFSkHFA03WD
DFSkHFA03WD回复爱编程的小付
你好,请问你之前物联网OBLOQ只收不发的问题解决了吗?
我就是司夏
我就是司夏
创造力如何才能提升呀
rzyzzxw
rzyzzxw
作者
回复我就是司夏
多发贴子,多回复
晚辰
晚辰
大佬还在么,想购买你的那个完整版,想知道里面包含哪些东西呢?
王尧坤
王尧坤
厉害
明天已在
明天已在
真棒
明天已在
明天已在
叶先
叶先
学习中
20870886
20870886
哦,现在可以发送数据到平台,可是发送数据给模块哦,舵机不动呢,是我的程序有问题么?大咖帮忙啊
rzyzzxw
rzyzzxw
作者
回复20870886
扩展板供电啊。
20870886
20870886
我是小白一枚,请教各位,我设置和编程后,下载后,只是 bit有网络信号的图案在显示,舵机不动啊,而且平台也收不到土壤湿度的信息
test9988
test9988
真心做的不错!
好好学习一下!
zsz
zsz
其实可以用一个继电器控制一个水泵的
rzyzzxw
rzyzzxw
作者
回复zsz
哈哈,那个成本高了,这个便宜。