HTTP协议在IIoT边缘设备上的落地实战:树莓派+DHT-12温湿度传感器教程
编者按:IIoT通过分层架构采集多源传感器数据、安全传至云端、执行分析转化为可执行智能。《工业互联网应用开发》剖析架构与满足策略。
改编自《工业互联网应用开发》,作者Alena Traukina、Jayant Thomas、Prashant Tyagi、Kishore Reddipalli。
第3章 IIoT边缘开发(续)
应用层协议——HTTP
本节演示如何用树莓派网关通过HTTP协议将DHT-12温湿度传感器数据发送至远程服务器。

DHT-12传感器到接收端的数据流
HTTP是Web最广泛采用协议,支撑几乎所有网站与移动应用。下表汇总关键特性助你评估是否适配IIoT场景。
| 关键项 | 数值 |
|---|---|
| 开源 | 是 |
| OSI层 | 应用层 |
| 数据类型 | 文本、HTML、脚本、样式、字体、JSON、XML、流、二进制 |
| 局限 | 不适合大二进制载荷 |
| 可用操作 | 发送/接收数据 |
| 延迟 | 低 |
| 用途 | 按需请求 |
| 安全 | 是(TLS/SSL) |
| 压缩 | 是(如gzip) |
所需软硬件
软件:Node.js 6+、request包、rpi-dht-sensor包、Docker
硬件:树莓派3 Model B、2A/5V电源、8GB+ microSD卡、DHT-12温湿度传感器、面包板杜邦线、以太网线
设备组装
按接线图通过面包板将DHT-12接入树莓派。
SD卡准备
- 下载最新Raspbian Lite镜像(树莓派官网)
- 插入SD卡至电脑,用Etcher(balena.io/etcher)烧录镜像
- 启用SSH:在
/boot分区创建空文件sshcd /Volumes/boot && touch ssh - 启用Wi-Fi:在
/boot创建wpa_supplicant.confnetwork={ ssid="YOUR_SSID" psk="YOUR_WIFI_PASSWORD" } - 插回SD卡上电启动树莓派
启动后通过SSH登录(默认pi/raspberry)开始配置传感器应用。
Node.js项目搭建
- 创建项目目录:
mkdir -p ~/sensor - 在
~/sensor/package.json写入配置(含request、rpi-dht-sensor依赖) - 在
~/sensor/index.js粘贴代码,替换REMOTE-SERVER-ADDRESS.com为实际服务器地址:var rpiDhtSensor = require('rpi-dht-sensor'); var request = require('request'); var receiver = 'https://REMOTE-SERVER-ADDRESS.com:8080'; var dht = new rpiDhtSensor.DHT11(2); function read() { var readout = dht.read(); var data = { temperature: readout.temperature.toFixed(2), humidity: readout.humidity.toFixed(2) }; console.log(data); data.device = 'raspberry'; request.post({url: receiver, form: data}, function(err) { if(err) console.log('Failed to send to ' + receiver); }); setTimeout(read, 1000); } read(); - 可选:创建
Dockerfile(FROM hypriot/rpi-node:boron-onbuild)
执行npm install后npm start,传感器开始每秒向HTTP端点发送温湿度读数。
完整端到端方案(云端接入、分析、仪表盘)请参考原书IIoT架构指南。
物联网技术