写点什么

物联网基础知识整理及实战

用户头像
garlic
关注
发布于: 2021 年 01 月 02 日
物联网基础知识整理及实战

利用假期把郭朝斌老师的《物联网开发实战》专栏里的联网智能电灯案例实战了一下,顺便并把之前基础知识整理一下。

物联网定义


设备通过 Internet 与其他设备和系统进行数据连接和交换。看下 wiki 的定义


The Internet of things (IoT) describes the network of physical objects—“things”—that are embedded with sensors, software, and other technologies for the purpose of connecting and exchanging data with other devices and systems over the Internet。


搜索关键词 Internet of things (IoT) from wiki


物联网架构


物联网平台 不同应用场景架构也不同, 下面是一个简化后的架构:

  1. 设备通过传感器获取相关信息,使用相关的通讯技术如 Wi-Fi, BLK, ZigBee,发送数据;

  2. 使用实现约定的号的通讯模式及网络协议将数据送往边缘节点(类似 CDN 或者由于设备功能限制只能将数据交给功能更强的设备与后台通讯)或者直接发送到网关;

  3. 平台层接收到相关数据后通过相关应用处理, 并提供给用户相关界面,完成设备控制和定制任务下发。



图片参考《物联网开发实战》-05 | 系统实例:怎样设计一个简易物联网系统?


更形象一些:

图片来自 https://www.netburner.com/learn/architectural-frameworks-in-the-iot-civilization/


下面是 AWS IoT – 互联家居方案的工作原理图:


图片来自 https://aws.amazon.com/cn/iot/solutions/connected-home/?c=i&sec=uc2


 可以看到比我们上面描述的多了一些,“ Greengrass" 是做边缘计算的, 对应到互联网上有点类似 CDN, 物联网设备由于使用通信技术,网络信号,设备本身的运算能力,有些设备是需要边缘处理能力的。腾讯物联网平台也可以看到类似的产品。


由于这两个技术都没有实际用过如有错误请指正, 另外腾讯的架构图没找到, 实战环节中使用的腾讯物联网平台



物联网基础知识


这里按照老师讲解整理了一份脑图。


联网智能电灯实战


元器件使用的课程配套元器件,参考课程中的电路板链接好了就可以

关于按键功能的实现


  1. 这里使用了按钮的原器件, 链接方法: 将 S 接入到 NodeMCU 的 D5 位置, 另外两端参考继电器接法接入分别到 VCC, GND 位置就好了, 手工控制灯的开关了。


  1. 对应增加一个代码文件,支持按键开关。 当然不支持的话可以返回固定值即可。

from machine import ADC from machine import Pin
class Button(): def __init__(self, pin): self.switchpin = Pin(pin, Pin.IN)

def state(self): return self.switchpin.value()
复制代码


小程序控制界面:



连接图



按键开关



远程开关,可以通过开发平台上的调试功能,也可以使用腾讯连连小程序, 控制



也可以通过光照传感器控制开关




语音控制的电灯, 不过这个“小艾”不怎么听话



实现过程遇到一些问题

  1. tensorflow 中提示 utf-8 转码的问题,python3 所有 string 是 unicode 编码。 手工调整一下就可以;

  2. 录制指令是开始 pyaudio 的库录制语音, 有报错, 后改为直接使用 arecord ,PreciseRunner(engine, on_activation=lambda: flow_control()) 日志显示线程相关信息, 不确定 pyaudio 是否线程支持有问题。

  3. 语音训练的时候,可以通过 precise-listen 录制一些反例, 识别率会高一些, 验证模型也可以用这个命令,具体操作可以参考这个链接 https://github.com/MycroftAI/mycroft-precise/wiki/Training-your-own-wake-word#how-to-train-your-own-wake-word


其他的按照老师提供的代码操作就可以了。


参考引用



郭朝斌老师的《物联网开发实战》

封面图片 来自 https://www.freecodecamp.org/news/introduction-to-iot-internet-of-things/




用户头像

garlic

关注

还未添加个人签名 2017.11.15 加入

还未添加个人简介

评论 (2 条评论)

发布
用户头像
请问继电器怎么连接的到led灯的,那个方孔不能插入
2021 年 02 月 08 日 17:09
回复
排线用一端公头,一端母头的, 公头接继电器, 那个使用螺丝松开插到底下的孔里,固定螺丝就看可以了 :)
2021 年 02 月 13 日 23:05
回复
没有更多了
物联网基础知识整理及实战