IIoT 边缘开发——实现 HTTP 连接
编者注:工业物联网 (IIoT) 承诺提供对工业运营的深入洞察,并提高互联机器和系统的效率。大规模 IIoT 应用程序依赖分层架构从各种传感器收集数据,将数据可靠、安全地移动到云端,并执行提供洞察力和效率所需的分析。在工业互联网应用程序开发中,作者详细介绍了 IIoT 架构,并讨论了满足与这些系统相关的广泛要求的方法。
改编自工业互联网应用开发,作者:Alena Traukina、Jayant Thomas、Prashant Tyagi、Kishore Reddipalli。
第 3 章 IIoT 边缘开发(续)
作者:Alena Traukina、Jayant Thomas、Prashant Tyagi、Kishore Reddipalli
应用级协议——HTTP
在本节中,我们将尝试构建一个简单的 IoT 应用程序,使用 Raspberry Pi 集线器和 HTTP 协议将数据从 DHT-12 温度和湿度传感器发送到接收器设备:
从 DHT-12 传感器到接收器的数据流
HTTP 提供多种使用选项,是网络上最流行的协议之一。每次打开网站或运行移动应用程序时,很可能是您使用的 HTTP 协议。
在下表中,您可以找到该协议的更详细说明,以了解它是否适合您的需求:
键 价值 开源是OSI层应用数据类型文本、HTML、脚本、样式、字体、JSON、XML、流、二进制限制不适合大量二进制数据可能的操作发送/接收数据延迟低使用按需请求安全性是压缩是为了构建应用程序,我们需要以下内容。
所需软件:
- Node.js 6+ (https://nodejs.org/en/download/)
- 请求包(https://www.npmjs.com/package/request)
- rpi-dht-sensor 包 (https://www.npmjs.com/package/rpi-dht-sensor)
- Docker (https://docs.docker.com/engine/installation/)
所需硬件:
- Raspberry Pi 3(B 型)A 电源适配器 (2A/5V)
- 一张 microSD 卡 (8 GB+) 和一个 SD 适配器
- 一个 DHT-12 温度和湿度传感器模块一个面包板和一套杜邦电缆
- 用于有线网络连接的以太网电缆
组装设备
在构建应用程序之前,您需要通过面包板将 DHT-12 传感器连接到 Raspberry Pi。
准备一张SD卡
要准备 SD 卡,请按照所述的操作顺序进行操作:
- 下载最新的 Raspbian LITE 映像(可从 https://raspberrypi.org/downloads/raspbian/ 获得)。
- 将您的 SD 卡连接到计算机并使用 Etcher (https://io/) 将 Raspbian .img 文件刷入 SD 卡。
- 启用 SSH:
cd /Volumes/boot
touch ssh
- 要启用 Wi-Fi,请创建包含以下内容的 conf 文件:
network={
ssid=”YOUR_SSID”
psk=”YOUR_WIFI_PASSWORD”
}
- 创建/home/pi/sensor 文件夹
- 创建/home/pi/sensor/package.json 包含以下内容的文件:
{
“name”:“sensor”,
“version”:“1.0.0”,
“描述”:“”,
“main”:“index.js”,
“脚本”:{
“start”:“node index.js”,
“测试”:“回声“错误:未指定测试”&&退出1“
},
“作者”:“”,
“许可证”:“ISC”,
“依赖项”:{
“请求”:“^2.81.0”,
“rpi-dht-sensor”:“^0.1.1”
}
}
字体>
- 创建/home/pi/sensor/index.js 文件,替换 REMOTE-SERVER-ADDRESS.com 具有实际价值。该文件应包含以下内容:
var rpiDhtSensor =require('rpi-dht-sensor');
var request =require('request');
var receiver ='http://REMOTE-SERVER-ADDRESS.com:8080';
var dht =new rpiDhtSensor.DHT11(2 );
function read () {
var readout =dht.read();
VAR数据={
温度:readout.temperature.toFixed(2),
湿度:readout.humidity.toFixed(2)
};
的console.log (data);
data.device ='raspberry';
request.post({url:receiver, form:data}, function(err) {
if(err) console.log ('未能发送到 ' + 接收者);
});
setTimeout(read, 1000);
}
read();
- 创建/home/pi/sensor/Dockerfile 包含以下内容的文件:
FROM hypriot/rpi-node:boron-onbuild
物联网技术