今天来到深圳参加深圳柴火创客空间的物联网应用实战课程,收获颇丰,回到住处后,我打算把今天所学的内容好好地整理整理。
- 学习物联网一定要知道的基础知识
- 物联网的数据从哪里来?
- 怎么展示传感器接收上来的数据?
1. 学习物联网一定要知道的基础知识
什么是物联网?
物联网其实也是互联网,它是物物相连的互联网
物联网的发展
如果要追根溯源,那我们应该找到最早跟通信有关的技术:
- 1832年,俄国的希林男爵创造了电磁电报机
- 1833年,两位科学家发明了一套通讯码,使用电磁电报机进行1200m距离的通信
- 1844年,发送了第一条摩斯码的公共电报消息
人们有通信的需求,所以发明了电报,为了实现更远距离的传输,人们逐渐发展出了互联网:
- 1969年,Arpanet阿帕网诞生,它是世界上第一个计算机网络
- 1982年,一群大学生为了知道冰柜里的可乐有没有冰好,于是在可乐售卖机里实现了类似物联网的功能
- 1990年,john Pomkey的联网烤面包机被视为第一台物联网设备,接入了internet
就这样,物联网慢慢地走进我们的生活:
- 2008年,物联网设备总数超过人类总数
- 2010年,中国将物联网作为重点产业
- 2014年,亚马逊推出了智能音箱
- … …
物联网的应用场景
物联网的应用场景非常广泛:
- 物流(查询包裹)
- 零售(无人超市)
- 身份识别(身份证)
- 防伪(二维码)
- 交通(ETC)
- 动物(定位)
- … …
物联网的关键技术
就像互联网的七层结构一样,物联网有三层,从上往下,分别是:
- 应用层
- 网络层
- 感知层
应用层
提供丰富的基于物联网的应用,是物联网发展的根本目标,将物联网技术与行业信息化需求相结合,实现广泛智能化应用的解决方案集,关键在于行业融合、信息资源的开发利用、低成本高质量的解决方案、信息安全的保障以及有效的商业模式的开发。
数据处理
云计算
云计算其实是分布式计算的一种,可以对大量的数据做快速的处理
边缘计算
所谓边缘,就是在靠近物或数据源头的一侧,就近提供服务
对于数据实时性要求比较高的话,可以先使用边缘计算做处理
数据存储
云存储
云存储也就是把数据存到云服务器上
时序数据库
时序数据库主要指处理带时间标签的数据即时间序列数据
物联网操作系统
操作系统是位于计算机硬件和应用程序中间的系统软件,用于管理硬件和软件资源
数据传输通讯协议
-
REST/HTTP
-
CoAP协议
-
MQTT协议
网络层
网络层主要实现信息的传递、路由和控制,网络层可依托公众电信2网和互联网,也可以依托行业专用通信网络。
网络层主要有四类通讯协议:
近距离无线通信
- 无线射频识别 RFID
- 近场通信 NFC
- 蓝牙
- 蓝牙 MESH
- 红外
远距离无线通信
- WIFI
- Zigbee
- LoRa
有线通讯
- 以太网
- M-Bus
- PLC
- USB
- RS232
- RS485
远距离蜂窝通信
- 1/2/3/4/5G
- NB-IOT
感知层
实现对物理世界的感知识别、信息采集处理和自动控制,并通过通信模块将物理实体连接到网络层和应用层。
条形码
把信息做成条码,然后用相应的扫描设备把信息 读取出来
RFID
RFID即射频识别,俗称电子标签,它由3部分组成:
- 标签
- 天线(在标签和读取器间传递射频信号)
- 感应式读写器
传感器技术
传感器其实就是将被测指标转换成电信号的器件或装置
2. 物联网的数据从哪里来?
物联网的数据当然从传感器上来,当然,做传感器的厂家非常多,这里选择了Seeed的传感器作为数据源
这是一套工业级的传感器解决方案,摆上官网链接:
https://www.seeedstudio/sensecap-platform/
这是它的物联网网关:
接入SenseCAP平台后就可以查看数据了:
还可以把数据导出来:
这里是五个传感器,分别是:
- 空气温度
- 空气湿度
- 大气压力
- 土壤温度
- 土壤湿度
具体的配置方法很简单,这里就不多说了,我们重点看Node-RED的使用
也就是将采集到的数据充分利用起来的方法
3. 怎么展示传感器接收上来的数据?
首先是安装Node-RED,安装的方法网上有很多,这里就不一一讲解了。
Node-RED其实就是一个服务端,是一个图形化的操作界面,用起来还是很简单的。
当然,我们可以选择在本地安装,当然也可以在树莓派上使用它,又或者是使用云服务器去开Node-RED服务。
这里我在云服务器里开服务,选择的是阿里云的服务器,用什么服务器都一样,区别不大 :
出现以下信息就说明已经开启成功了:
这时我们就可以去访问这个服务端了(服务器的IP地址+端口号1880):
http://101.201.181.229:1880/
进去后的界面是这样子的:
下面就开始用Node-RED搭建一个物联网服务
使用Node-RED搭建一个物联网服务
物联网服务的搭建
Node-RED既可以做服务端,又可以做客户端
服务端的搭建
在搭建的时候,我们心里先要有一个基本流程:
- 先创建Web服务的HTTP端点
- 配置界面的内容即模板template
- 相应请求,发送界面
那下面就好办了,就像一个流程图:
下面我们只需要配置一下各自的属性即可:
双击节点即可打开配置界面,这里我们给http in配置URL地址:
点击完成,节点将会如下显示:
类似的,我们双击模板节点进行配置:
非常简单的HTML代码:
<html>
<head></head>
<body>
<h1>Hello World!</h1>
</body>
</html>
下面我们点击右上角的部署:
尝试进入我们刚刚配置的页面:
http://101.201.181.229:1880/hello
效果如下:
一个简单的服务端就已经配置好了,这里可以尝试修改模板,增加一些图片,如果你是前端小白,可以参考下面这个教程:
https://www.w3cschool/html/html-basic.html
客户端的搭建
思路是用http request节点获取上面服务器端的页面:
这里我们使用inject节点发送数据:
这里尝试发送时间戳,然后在http请求里配置刚刚写好的服务端的地址:
点击部署以后,就可以看到请求的文本了:
数据的接收与发送
数据的接收
最常见的接收数据方式是直接在URL地址里填上数据,也就是http get模式请求,以"?“字符为起点,每个参数用”&“分开,再用”="分开参数名称与数据。
这里我们直接配置http in节点:
下面我们在URL地址里传一个参数name:
http://101.201.181.229:1880/query?name=zbp
回车后,在debug的界面里:
输出的就是URL地址里的数据
当然,我们也可以更加完善一下,毕竟有可能传的参数很多,所以我们加一个模板:
在模板里做如下配置:
<html>
<head></head>
<body>
<p>My name is {{payload.name}}</p>
<p>I'm very {{payload.mood}}</p>
</body>
</html>
接着再来部署并请求一下:
http://101.201.181.229:1880/query?name=zbp&mood=happy
结果如下:
调试界面的输出:
数据的发送
数据的发送其实跟前面客户端比较类似:
假设我要发送的数据是123:
然后http请求配置前面的服务端:
点击inject节点左边的方块,就可以发送数据了,当然,也可以配置该节点自动发送数据:
更详细的调试信息:
获取SenceCap MQTT数据
接收所有设备的遥测数据
这里我们新建MQTT节点:
先在里面添加mqtt-broker节点:
然后配置主题:
具体操作过程:
-------双击mqtt in------
服务端:sensecap-openstream.seeed
端口:1883
客户端ID:
格式为org--, 可以在您的后台Organization页面中获取, 使用您自己随机生成的数字和小写字母。
比如我的是:
org-18574789748992-x
后面的x是我自己随便取的,建议大家取自己的名字拼音,这样不会弄混
--------点击“安全“,编辑安全选项------
点击“安全“,编辑安全选项
用户名:
格式为org-,可以在您的后台Organization中获取,也可以在“安全” - “API访问密钥中获取”
可以直接使用柴火的用户名:
org-18574789748992
密码:
在“安全” - “API访问密钥中”获取,点击相应的密钥id,才能获取到“密码”
配置完成后,我们添加一个debug节点:
这样就能在调试窗口就可以看到传感器传回的数据了:
以上就是今天的全部内容,明天将详细讲解一下数据处理部分
更多推荐
物联网应用实战之Node-RED初体验(基于SenseCAP的解决方案)
发布评论