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

在家中构建无线传感器网络

本教程将教您如何创建具有成本效益的无线传感器模块网络。许多现成的无线模块对于在多个传感器单元中使用来说可能过于昂贵。虽然 Wi-Fi 和 Zigbee 模块很流行且易于使用,但它们的成本可能使它们无法用于传感器阵列。然而,有一些低成本的 RF 模块没有所有昂贵的功能,可以很好地满足这些目的。 Arduino 平台可以使用低端无线电模块轻松可靠地进行通信。

硬件组装好后,您将利用 Raspberry Pi 平台将数据发布到 Xively 的物联网服务,您可以在那里跟踪随时间变化的值并在阈值条件下触发。

该项目将包括三个部分,两个发射单元和一个接收单元。发射器由 Arduino 板、传感器和 RF 发射器组成。接收单元由Arduino板、RF接收器、逻辑电平转换器和Raspberry Pi组成。

有多种 Arduino 兼容板可用于该项目。该项目对电路板的最低要求是两个数字 GPIO 引脚和一个模拟引脚。选择与此项目的成本和简单性需求相匹配的 Arduino 兼容板。

在本教程中,我使用了一组适合面包板且易于编程的 Arduino Nano 板,但是,5V 版本的 Arduino pro mini 或 Trinket 也可以很好地工作,而且价格要低得多。然而,这些需要更多的经验来编程和使用。明智地选择。

发射器本身是相对简单的电路。只有一个引脚用于从温度和湿度传感器检索信息,一个引脚用于将该数据发送到 RF 发射器。面包板图如下所示。

9V 电源将连接到桶形连接器,使底部导轨为 9V。 Arduino 中的电源调节器将产生 5V 电压,可安全用于无线电和传感器,即图中的顶部电源轨。

该传感器带有一个 10k ohm 电阻器,用于将数据引脚连接到电源作为上拉电阻器,而另一根线将其连接到 GPIO D3。

请小心遵循以下设置,并确保仔细检查传感器和 RF 模块的数据表,以确保组件正确放置在面包板中,并且电源、接地和信号引脚连接到正确的引脚。 fritzing 图包含在源包中以获取更多详细信息。

天线是电路板的重要组成部分,因为射频模块没有内置天线。我使用了插入面包板的 6 英寸母对公跳线,它工作得很好,可以从我家的所有地方和外面一点点接收信号。如图所示,如果您需要额外的范围,6.5 英寸最适合此天线。

关于 RF 使用的说明。不同国家/地区对频率的使用有不同的法律和规则。请确保您在广播前遵守这些规则。话虽如此,来自这些模块的信号几乎不足以传递到您家外。不过,在完美的条件下,这些模块的广播范围可达 500 英尺。

发射器使用两个未与 Arduino IDE 捆绑的库。下载如下所述的库并将它们解压缩到名为 Libraries 的子目录中的 Sketch 目录中。

本教程假设您对 Arduino 有一定的经验以及如何使用 Arduino IDE 对其进行编程。如果没有,Arduino 官方网站上有很好的说明。

12345 #define MYID 1 //这个板子的ID号。为您刷入的每块板更改此设置。 //ID会和数据一起传输,这样你就可以知道是哪个设备在传输 #define TRANSPIN 3 // 在什么引脚上传输 #define DHTPIN 4 // DHT 连接到哪个引脚 #define UNIT 0 // 0 表示华氏温度,1 表示摄氏度

MYID 定义是一个数字 ID,发射器使用它来唯一标识自己。由于您将在不同位置拥有多个发射器,因此为每个发射器设置一个唯一 ID 非常重要。设置接收器脚本时将再次使用此编号。

串行监视器窗口会重置 Arduino,因此您应该会在屏幕上看到如下所示的一行代码:

12 湿度:44.00% 温度:60.80 *F 发送消息: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 (ms)。强烈建议您在准备好全职使用时将其改回并重新上传代码到您的发射器。

接收器板将负责在其 RF 接收器组件上接收广播消息,并通过串行线将该消息发送到 Raspberry Pi。 Arduino 板用于接收信号有几个非常重要的原因。 VirtualWire 代码利用 Arduino 的实时性来管理调制和解调信号。

这意味着接收单元需要以相同的频率运行。此外,由于采用抢占式非实时操作系统,接收处理器几乎没有抖动空间,Raspberry Pi 容易出现抖动。将 Arduino Pro Mini 加 RF 接收器模块的成本与可以直接与 Raspberry Pi 通信的 Zigbee 模块的成本进行比较,发现使用外部 Arduino 仍然非常经济。

此时不要将 5V 和地线从 Pi 连接到面包板。将跳线放在手边,但您不想同时通过 USB 端口和 Raspberry Pi 为 Arduino 供电。

请注意,上面材料列表中的逻辑电平转换器与 Fritzing 库中的逻辑电平转换器并不完全相同,但引脚输出已被很好地标记,只是在不同的地方。请确保正确的电线连接到实际逻辑电平转换器上的正确引脚。

为了将 5V Arduino 串行信号转换为 3.3V Raspberry Pi 串行信号而不损坏 Pi,需要该组件。请参阅下图以获取更多帮助。

欲了解更多详情:在家中构建无线传感器网络


制造工艺

  1. 无线传感器网络:切换技术时要记住的 6 件事
  2. 什么是低功耗无线传感器网络?
  3. 无线车道传感器接口
  4. 为 18 世纪 Gristmill 构建传感器网络
  5. 如何喂养和维护您的无线传感器网络
  6. 无线磁性数据传输
  7. 使用 K30 传感器监测二氧化碳
  8. 你有多高?
  9. 带有 Arduino 或 ESP8266 的电容式指纹传感器
  10. USB-BLE 无线 MIDI 适配器
  11. 使用 Arduino Cloud 随时随地了解您家的温度!
  12. 远程无线传感器网络