6502浏览
查看: 6502|回复: 4

[项目教程] 物联网挑战赛第一题作业:忘了关灯照样有办法

[复制链接]
本帖最后由 珠韵 于 2018-7-30 22:40 编辑

各位创客爱好者朋友,不知道您有没有遇到这种情况,有时候忽然想起自己家里(或者办公室)灯好像没关,又好像关了。我就是这样一个人,老会惦记自己好像忘记关灯了。
我这个第一题的作业的灵感就来了,我要做一个能够远程检测灯有没有关闭,没有关就通过远程命令把灯给关闭了。我的思路是这样的:
1.先看图,用到的器材有micro:bit+Micro:Mate+ OBLOQ - IoT物联网模块。
物联网挑战赛第一题作业:忘了关灯照样有办法图1
2.思路,现将物联网模块和平台进行连接,然后通过网络发送指令检测板子上的LED灯是否亮着,亮着就关闭。
思路就这么简单,现在开始玩起来吧。

第一阶段,接线并联网。
关于连接的方法,我几个月前写过一篇教程,各位可以看一下,这里就不重复了。
连接的几点诀窍,我总结起来:
(1)4P线,绿接1,蓝接2,红黑3V5V无所谓。(经测3V5V都能带动OBLOQ模块)。
(2)wifi的SSID要注意大小写。
(3)测试的时候,要将电源线(数据线)插在扩展板上。

第二阶段,我们开始来写程序吧。
物联网挑战赛第一题作业:忘了关灯照样有办法图2
【程序解读】
(1)当开机时,初始化设置物联网模块的参数,这里有个新变化,就是“自动连接”这个程序块现在可以选择服务器了,我们选择默认的服务器。
(2)当micro:bit的A键按下,点阵屏灯全亮,B按下,灯全灭。按A+B向物联网发送当前亮度值。

通过这个程序,我测出灯开的时候的亮度值和灯灭的时候的亮度值。请看下面演示视频。
物联网挑战赛第一题作业:忘了关灯照样有办法图3
接收到的数据如下图:
物联网挑战赛第一题作业:忘了关灯照样有办法图4
可以看出,灯亮的时候为67和56,灯灭的时候是36和33,我取中间值45。
开始更改程序。起初写的程序如下图。(初始化部分和前面是一样的,就不再贴出来了)
物联网挑战赛第一题作业:忘了关灯照样有办法图5
我设计的时候的设想是电脑端发送“liangdu”,返回板子的亮度,用来检测灯是否开着。发送“guandeng”,直接关闭LED点阵屏,发送“zidong”则检测亮度是否大于45,如果大于45就关闭LED。
结果我在测试时发现指令“guandeng”和“zidong”均能正常操控,在开灯的情况下关闭灯。但是发送“liangdu”却无法得到反馈值。
琢磨了好久,没有搞定。已经是半夜了,就在群里发了问题,先睡觉了。
第二天早成,我参考了群友们的意见,进行测试。包括用点阵屏先显示一下接收的字符,发现正常。创建topic_1,把亮度值改发送到topic_1上,结果失败。

后来我在发送消息前加了延时等待1秒,结果能返回亮度值了。
物联网挑战赛第一题作业:忘了关灯照样有办法图6
我觉得可能是程序没有延时,运行太快的缘故吧。
下图是运行效果,怎么样,还不错吧。
物联网挑战赛第一题作业:忘了关灯照样有办法图8
后来一想,micro:bit的亮度级别值受环境光影响,变化很大,白天和黑夜的值差异大,这个办法不好使,我就想起了makecod有检测点阵屏LED是否亮着的功能,用这个就更加方便了。

于是又修改了程序。
物联网挑战赛第一题作业:忘了关灯照样有办法图7
解读一下,当无线接收到消息后,判断,如果(0,0)的LED灯亮着,就关闭LED。
经过测试非常灵,效果非常好,这个办法检测灯是否亮着并关闭灯很好用。

这时,我又想到了一个问题,我只是想把灯关闭,不管亮着还是没有亮着,我都发送一个关灯的命令就可以了。
物联网挑战赛第一题作业:忘了关灯照样有办法图9
这次我用手机微信小程序进行测试了,效果非常好,发送任意字符,就能把灯关闭。
下图是录制的视频。
物联网挑战赛第一题作业:忘了关灯照样有办法图10

OBLOQ模块确实非常有意思,现在又有小程序了,更加方便了!


digi_cow  高级技匠

发表于 2018-7-31 07:38:18

解读一下,当无线接收到消息后,判断,如果(0,0)的LED灯亮着,就关闭LED。
经过测试非常灵,效果非常好,这个办法检测灯是否亮着并关闭灯很好用。

巧妙!这是结合硬件进行程序设计的乐趣吧
回复

使用道具 举报

rzyzzxw  版主

发表于 2018-7-31 08:12:53

本帖最后由 rzyzzxw 于 2018-7-31 09:52 编辑

大赞,吕老师把bit玩得出神入化了。图片和视频都做得好专业。
回复

使用道具 举报

微笑的rockets  NPC

发表于 2018-7-31 10:18:02

我很喜欢这个作业,通过一步步的完成来解决实际问题,最后再总结发现问题和需求之间的差距。最后找到真正需要的功能和方法。
其实很多强迫症最后只是需要再关闭一下即可,无论是开着还是关着。
但在这个过程中个,我们通过这个过程学习到了很多的知识。而这些知识可能在这个应用里面并不是最关键的,但是谁知道在未来是否会成为关键的知识点呢?
整个项目学习的过程中,这个不就是我们所需要学习的点吗?
回复

使用道具 举报

我爱蘑菇  中级技师

发表于 2018-8-6 18:36:56

吕老师,从您的帖子里解决了我迷惑很久的问题。原来我遇到的时好时坏的问题用延时解决了。
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail