物联网应用实战之Node-RED初体验(基于SenseCAP的解决方案)

今天来到深圳参加深圳柴火创客空间的物联网应用实战课程,收获颇丰,回到住处后,我打算把今天所学的内容好好地整理整理。

  1. 学习物联网一定要知道的基础知识
  2. 物联网的数据从哪里来?
  3. 怎么展示传感器接收上来的数据?

在这里插入图片描述

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.com.cn/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.cn/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.cn
端口:1883

客户端ID:
格式为org--, 可以在您的后台Organization页面中获取, 使用您自己随机生成的数字和小写字母。

比如我的是:
org-18574789748992-x
后面的x是我自己随便取的,建议大家取自己的名字拼音,这样不会弄混

--------点击“安全“,编辑安全选项------
点击“安全“,编辑安全选项
用户名:
格式为org-,可以在您的后台Organization中获取,也可以在“安全” - “API访问密钥中获取”
可以直接使用柴火的用户名:
org-18574789748992

密码:
在“安全” - “API访问密钥中”获取,点击相应的密钥id,才能获取到“密码”

配置完成后,我们添加一个debug节点:
在这里插入图片描述
这样就能在调试窗口就可以看到传感器传回的数据了:
在这里插入图片描述
以上就是今天的全部内容,明天将详细讲解一下数据处理部分

猜你喜欢

转载自blog.csdn.net/zbp_12138/article/details/107547589