亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

打造低成本家庭无线传感器网络:Arduino + 树莓派 + Xively 物联网平台

项目概述

本教程将教你如何创建一个由低成本无线传感器模块组成的网络。许多现成无线模块价格昂贵,不适合多传感器阵列。虽然 Wi-Fi 和 Zigbee 模块流行且易用,但其成本使得在传感器阵列中大规模部署不切实际。然而,没有那些昂贵功能的低成本射频模块完全能胜任此类用途。Arduino 平台可轻松可靠地使用低端无线电模块通信。

硬件组装完成后,你将利用树莓派平台将数据发布到 Xively 物联网服务,随时间追踪数值并在阈值条件下触发动作。

本项目包含三部分:两个发射单元和一个接收单元。发射单元由 Arduino 开发板、传感器和射频发射器组成。接收单元由 Arduino 开发板、射频接收器、逻辑电平转换器和树莓派组成。

可用于本项目的 Arduino 兼容板种类繁多。本项目对开发板的最低要求是两个数字 GPIO 引脚和一个模拟引脚。选择符合成本和简易性需求的 Arduino 兼容板。

本教程使用一组适合面包板且易于编程的 Arduino Nano 板。不过,Arduino Pro Mini 或 Trinket 的 5V 版本也能很好工作,且价格更低。这些板子需要稍多的编程和使用经验。请明智选择。

发射端电路相对简单。仅用一个引脚从温湿度传感器读取信息,另一个引脚将数据发送到射频发射器。面包板接线图如下。

9V 电源连接到圆筒插座,使底部电轨为 9V。Arduino 内部稳压器产生 5V 供无线电和传感器使用,即图中顶部电轨。

传感器自带 10k Ω 上拉电阻,连接数据引脚到电源,另一根线连到 GPIO D3。

请仔细遵循下方设置,并仔细核对传感器和射频模块数据手册,确保元件在面包板上正确定位,电源、地、信号引脚连接正确。源码包含的 Fritzing 图提供更多细节。

天线是板子的重要部分,因为射频模块没有内置天线。我用一根 6 英寸公对母跳线插在面包板上,效果足以覆盖我家所有房间和室外一点范围。如图注所示,若需更远距离,6.5 英寸为最佳。

关于射频使用的说明:不同国家对频率使用有不同法规。请在广播前确保合规。话说回来,这些模块信号强度勉强能穿出房间。在理想条件下,可广播至 500 英尺。

发射端使用两个 Arduino IDE 未捆绑的库。按下述下载并解压到你的草图目录下名为 Libraries 的子目录。

本教程假设你有 Arduino 编程经验。如没有,官方 Arduino 网站有很好的入门指引。

12345 #define MYID 1 // 此板的 ID 号,每块板刷入时修改 // ID 将随数据传输,以便识别发射设备 #define TRANSPIN 3 // 发射引脚 #define DHTPIN 4 // DHT 连接引脚 #define UNIT 0 // 0 华氏度,1 摄氏度

MYID 定义是发射端用于唯一标识自身的数字 ID。因为会在不同位置部署多个发射端,每个必须有唯一 ID。该数字在配置接收端脚本时会再次用到。

串口监视器会复位 Arduino,屏幕应显示类似:

12 Humidity: 44.00 % Temperature: 60.80 *F Sending Message: ID:1:TS:23143:TF:60.79:RH:44.00

消息由 Name:Value 对组成,接收端将解析处理。发射端按长随机间隔广播信号。传感器数值变化不大也不频繁,每分钟广播一次以上无增值。随机等待时间允许多传感器共存。

即使两发射端信号冲突丢失,随机间隔也能确保下次广播不重叠。随机种子来自未使用模拟口的 analogRead,返回随机值确保无两发射端同步。

上述输出示例代码设为华氏度。消息字符串中的 TF:60.79 表明我实验室温度刚低于 61 度。相对湿度 RH:44.00 是舒适的 44%。从凉湿环境可推断我实验室在地下室。推断正确。

发射端默认等待 2 到 5 分钟广播。若为调试想加快,修改草图末尾 delay() 值为 5000(毫秒)。正式部署时强烈建议改回并重新上传。

接收端负责通过射频接收组件接收广播消息,并通过串口线发送给树莓派。使用 Arduino 接收信号有两个重要原因。VirtualWire 代码利用 Arduino 的实时特性管理信号调制解调。

这意味着接收单元需在同一频率工作。此外,接收处理器对抖动容忍度极低,而树莓派因其抢占式非实时操作系统容易产生抖动。对比 Arduino Pro Mini 加射频接收模块的成本与可直接与树莓派通信的 Zigbee 模块,发现外挂 Arduino 依然很划算。

此时请勿将树莓派的 5V 和地线连到面包板。备好跳线,但不要同时从 USB 和树莓派给 Arduino 供电。

注意材料清单中的逻辑电平转换器与 Fritzing 库中的不完全相同,但引脚标签清晰,只是位置不同。请务必将正确导线连到实际转换器的正确引脚。

该组件用于将 Arduino 的 5V 串口信号转换为 3.3V 树莓派串口信号,避免损坏树莓派。见下图辅助理解。

更多详情:家庭无线传感器网络构建

制造工艺

  1. 长车道无线监测方案:树莓派集成低成本驱动道传感器
  2. 在 18 世纪谷物磨坊部署无线传感器网络
  3. 基于 Infineon 3D 磁传感器的 Arduino 无线磁通讯实验
  4. K30 CO₂ 传感器:室内空气质量实时监测
  5. DIY 数字身高仪:Arduino Nano + VL53L0X 激光测距 + OLED 显示
  6. DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
  7. USB-BLE 无线 MIDI 适配器三种方案:让乐器无线连接 iOS 设备
  8. Arduino Cloud 集成:随时随地监控家中温度
  9. 鲁棒长距离无线传感器网络:远程数据监测的可靠之选
  10. 切换无线传感器网络:技术迁移的6大关键考量
  11. 读懂低功耗无线传感器网络:驱动高效 IoT 方案的核心引擎
  12. 企业部署与管理无线传感器网络指南