汤果 发表于 2020-1-14 13:28:21

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


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

!(data/attachment/album/202001/14/125644nwq7tqjxyxlyju3t.png)

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

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

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

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

![通信机制](data/attachment/album/202001/14/130332i505pccqhifb3foh.png)

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

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

![指令](data/attachment/album/202001/14/130739v46o333oc3ououuj.png)

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

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

![创建滑块](data/attachment/album/202001/14/131413cxp2psspx3aga2fv.png)

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

![控件信息](data/attachment/album/202001/14/131534i0hiqghggbbbibe0.png)

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

![控件列表](data/attachment/album/202001/14/131600kw6gu7mvmw772vu2.png)

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

![滑块](data/attachment/album/202001/14/131848ykxrk2kj2re5j3dz.png)

代码如下所示:

![代码](data/attachment/album/202001/14/132030wwl6qjzfssl6jsgb.png)

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

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

![整数](data/attachment/album/202001/14/132347w4hlz8ryt4lqav47.png)

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

![微信](data/attachment/album/202001/14/132507byht45zh0o6d588h.png)

效果演示:

![演示](data/attachment/album/202001/14/132528gnh0fmrmqnnhhhtr.gif)

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

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

不错不错

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

多谢分享,学习了。
页: [1]
查看完整版本: [树莓派]7-物联网初探