1213浏览
查看: 1213|回复: 2

[树莓派]7-物联网初探

[复制链接]

上一节我们学习了感应小夜灯的制作,这节课我们来体验一下物联网应用。

IoT

大家在听到物联网时,脑海中会出现一个什么样的印象呢?物联网的英语是 Internet of Things,缩写为 IoT,这里的“物”指的是我们身边一切能与网络相连的物品。例如身上穿着的衣服、戴着的手表、家里的家用电器和汽车,或者是房屋本身,甚至正在读的这本 书,只要能与网络相连,就都是物联网说的“物”。

就像我们用互联网在彼此之间传递信息一样,物联网就是“物”之间通过连接互联网来共享信息并产生有用的信息,而且无需人为管理就能运行的机制。他们可以互相感知和沟通。

MQTT(Message Queue Telemetry Transport),遥测传输协议,是一种物联网协议,提供订阅/发布模式,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),可以简单概括为物联网打造。

MQTT 是一种能实现一对多通信(人们称之为发布或订阅型)的协议。它由3 种功能构成,分别是中介、发布者和订阅者。

通信机制

中介承担着转发 MQTT 通信的服务器的作用。相对而言,发布者和订阅者则起着客户端的作用。发布者是负责发送消息的客户端,而订阅者是负责接收消息的客户端。MQTT  交换的消息都附带“主题”地址,各个客户端把这个“主题”视为收信地址,对其执行传输消息的操作。 订阅者连接中介,把自己想订阅的主题名称告诉中介。这就叫作订阅。 然后发布者连接中介,以主题为收信地址发送消息。这就是发布。发布者一发布主题,中介就会把消息传递给订阅了该主题的订阅者。

古德微编程平台中物联网部分采用的就是 MQTT 协议。我们可以在【物联网】-->【常用】分类下找到相关的指令。首先我们需要设置物联网服务器。默认已经填好,不需要修改。之后就可以监听某一特定的主题。当接收到该主题的新数据,我们就可以采取新的操作。

指令

我们来做一个物联网滑块控制的灯,实现效果是用滑块来控制 LED 的亮暗程度。

首先点击左上角摄像头旁边的【更多功能】按钮。接着选择左侧菜单的【控件控制】,然后填写【应用名称】,最后点击【添加控件】按钮。

创建滑块

在新弹出来的表单中将信息填好后点击【确定】按钮。

控件信息

此时控件已经创建完成。点击右下角【生成新的网页】按钮可以弹窗生成一个新的控件页面。

控件列表

新的页面中有我们刚才创建的滑块。我们可以通过这个滑块来控制其他设备。底部的【分享】按钮可以生成一个网页二维码,我们可以用微信扫码,在手机上控制滑块。

滑块

代码如下所示:

代码

由于滑块的取值范围是 [0, 100],而 PWM 的最大值是 3000,所以我们要扩大 30 倍。代码实现的功能就是当检测到滑块的值发生变化,就将 5 号LED 的亮度按照规则映射到相应亮度。

温馨提示,从主题获取的数据类型是文本,所以一定要转成数字,否则灯灯亮度是不会变的!!!我们可以从【数学】分类下找到【获取整数】指令将主题获取的文本转换为整数。

整数

好了,现在可以控制小灯了。我们用微信扫描上述【分享】按钮生成的二维码进行控制吧。

微信

效果演示:

演示

(可能天气原因,我操作滑块很艰难,拖不动)

gada888  版主

发表于 2020-1-25 10:23:33

不错不错
回复

使用道具 举报

kylinpoet  初级技神

发表于 2020-2-18 11:17:54

多谢分享,学习了。
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail