24小(xiǎo)时联系電(diàn)话:18217114652、13661815404

中文(wén)

您当前的位置:
首页>
電(diàn)子资讯>
技术专题>
使用(yòng) Arduino 的无線(xiàn)...

技术专题

使用(yòng) Arduino 的无線(xiàn)传感器节点和遠(yuǎn)程数据接收器


使用(yòng) Arduino 的无線(xiàn)传感器节点和遠(yuǎn)程数据接收器

无線(xiàn)传感器节点是带有(yǒu)无線(xiàn)发射器的传感器节点。它具有(yǒu)一个或多(duō)个带有(yǒu)放大器和信号调节電(diàn)路或数字/智能(néng)传感器的传感元件、一个微控制器单元、调制器和带天線(xiàn)的发射器,以及一个電(diàn)池。它由電(diàn)池或太阳能(néng)供電(diàn),可(kě)感应温度、阳光、土壤湿度或震动等,并将信号传输到遠(yuǎn)程接收器。

许多(duō)这样的传感器节点以固定距离放置在一个大的地理(lǐ)區(qū)域中以覆盖整个區(qū)域。它们都将数据发送到位于中央数据监控和存储系统中的接收器。所有(yǒu)传感器节点都定期传输数据(值)。接收器从所有(yǒu)这些节点接收数据并存储和显示它以用(yòng)于监视和控制目的。

在农田中,自动灌溉系统有(yǒu)许多(duō)遍布整个农场的土壤湿度传感器节点。这些周期性地将土壤湿度水平传输到一个中央接收器,该接收器连接到监测和控制系统。如果某一特定區(qū)域的土壤湿度水平低于阈值水平,则该區(qū)域的水泵、電(diàn)磁阀等将自动打开。因此,整个农场所需的土壤湿度水平得以维持。

在两國(guó)之间的边界处,可(kě)以将带有(yǒu) PIR 接近传感器的传感器节点放置在固定距离处,以检测边界处的任何运动并向控制站发送警告/警报消息。

对于温室,需要保持适当的温度、湿度和阳光。因此,它配备了许多(duō)传感器节点,可(kě)以感知温室内不同位置的温度、湿度和阳光,并定期将数据发送到中央控制室。中央控制室根据收集的传感器数据增加/减少冷却、湿度或光照强度。

在该项目中,使用(yòng)的多(duō)个传感器是数字湿度和温度传感器、感测环境光的光敏電(diàn)阻器 (LDR) 和感测土壤水分(fēn)含量的土壤湿度传感器。该项目还使用(yòng) Arduino Nano 作為(wèi)微控制器 (MCU) 433MHz ASK RF 发射器模块。可(kě)以有(yǒu)很(hěn)多(duō)这样的传感器节点,但这里只使用(yòng)两个这样的节点。

接收器包括 433MHz ASK RF 接收器模块、实时时钟 (RTC) 模块和 Arduino Nano。两个传感器节点都传输温度、湿度、环境光和土壤含水量的感测值数据。接收器接收来自两个传感器的值(共八个值)并将它们提供给计算机,计算机显示这些值并存储以备将来使用(yòng)。

如图 1 中项目的框图所示,有(yǒu)两个不同的部分(fēn)——发射器(传感器节点)和遠(yuǎn)程数据接收器。传感器节点由不同的传感器、微控制器、射频发射器和電(diàn)池组成。

1:项目框图

传感器

DHT11 是一种智能(néng)传感器,可(kě)感应周围的温度和湿度并将此数据发送到微控制器。LDR 感应环境光,土壤湿度传感器感应土壤水分(fēn)含量。

微控制器

Arduino Nano 板用(yòng)作微控制器,从所有(yǒu)三个传感器读取数据并使用(yòng) RF 发射器进行传输。

射频发射器

具有(yǒu) 433MHz 载波频率的基于 ASK 的射频发射器模块用(yòng)于调制传感器数据并将其传输到接收器。

電(diàn)池

6V 9V 電(diàn)池用(yòng)于為(wèi)完整的传感器节点提供電(diàn)源。

LED 闪烁表示传感器节点处于活动状态,并且正在传输数据。

遠(yuǎn)程数据接收器只有(yǒu)射频接收器模块和微控制器。

射频接收器

具有(yǒu) 433MHz 载波频率的基于 ASK RF 接收器模块用(yòng)于解调和接收由传感器节点的 RF 发射器模块传输的数据。
微控制器。Arduino Nano 板用(yòng)作微控制器,从 RF 接收器模块获取数据并将其提供给计算机,计算机将其存储以备将来使用(yòng)。

接收器中的 LED 闪烁表示接收器处于活动状态并且正在接收数据。
传感器节点(发射机)

2:无線(xiàn)传感器节点的電(diàn)路图

如图2中传感器节点的電(diàn)路图所示,发射器電(diàn)路中只有(yǒu)五个主要组件:

1. 具有(yǒu)三个接口引脚的传感器 DHT11VccGnd 和数据输出。Vcc 引脚由 Arduino 板提供 5V 電(diàn)源,Gnd 引脚连接到公共地。数据输出引脚连接到 Arduino Nano 板的数字引脚 D10。它被上拉電(diàn)阻R3拉高,如图2所示。

2. 土壤湿度传感器 SS1,具有(yǒu)三个接口引脚:VccGnd A0Vcc 引脚由 Arduino Nano 板提供 5V 電(diàn)源,Gnd 引脚连接到公共地。SIG/A0 引脚是传感器的模拟输出,连接到 Arduino Nano 板的模拟输入引脚 A1

3. LDR1,它与一个 10 千欧電(diàn)阻器 (R2) 以下拉配置连接。它的输出连接到 Arduino Nano 板的模拟输入引脚 A0

4. 433MHz 射频发射器模块 (TX1),具有(yǒu)四个接口引脚:VccGndData AntennaVcc 引脚连接到 Arduino 板的 5V 输出,Gnd 连接到公共地。数据引脚连接到 Arduino 板的数字引脚 D11。天線(xiàn) (ANT.1) 由直径 1mm、長(cháng) 35cm 的铜線(xiàn)(单芯)绕制而成,该铜線(xiàn)连接到天線(xiàn)引脚。

5. LEDLED1),通过限流電(diàn)阻R1连接到数字引脚D12
使用(yòng) 9V 電(diàn)池或稳压電(diàn)源為(wèi) Arduino 板供電(diàn)。Arduino 板的 Vin 引脚连接到電(diàn)池,因此板载 7805 稳压芯片产生 5V 電(diàn)源,提供给 DHT11 433MHz 射频发射器模块(TX1)。
传感器节点定期检测温度、湿度、土壤湿度和环境光并传输这些值。但是,如框图所示,可(kě)能(néng)有(yǒu)任意数量的传感器节点。他(tā)们都会传递他(tā)们的价值观。可(kě)能(néng)会发生多(duō)个节点同时传输数据的情况。另外,接收方如何知道接收到的数据来自哪个节点?

為(wèi)了克服这些问题,所有(yǒu)传感器节点都在时间上同步,这样两个节点就不会同时传输。但如果发生这种情况,接收器将接受任何一个传感器数据。此外,所有(yǒu)节点都被分(fēn)配了编号(例如,从 1 N)。在他(tā)们传输数据之前,他(tā)们传输他(tā)们的节点号。因此,接收器知道数据来自哪个传感器节点。

DHT11 传感器可(kě)提供准确且经过校准的温度和湿度测量值。它為(wèi)两种测量提供直接的数字值。Arduino 微控制器读取这些值并将它们转换為(wèi)字符形式 (ASCII)

随着落在 LDR1 上的环境光增加,其電(diàn)阻降低,模拟電(diàn)压输出增加。因此,LDR1 的模拟输出電(diàn)压与环境光成正比。Arduino 将此模拟電(diàn)压转换為(wèi)数字值(0 1023 之间)并将其映射到 0 99% 之间。最后,它将此百分(fēn)比值转换為(wèi) ASCII 字符。

土壤水分(fēn)传感器 (SS1) 产生与土壤水分(fēn)含量成反比的模拟電(diàn)压输出。这意味着它的输出電(diàn)压随着土壤水分(fēn)含量的增加而降低。Arduino 将此模拟電(diàn)压转换為(wèi)数字值(0 1023 之间)并将其映射到 0 99% 之间。最后,它将此百分(fēn)比值转换為(wèi) ASCII 字符。

然后这些数据通过Arduino的引脚D11发送到RF发射器模块(TX1)。

TX1 得到这 10 个字符的字符串(我们可(kě)以称它為(wèi)数据包),使用(yòng) 433MHz 载波调制它并通过天線(xiàn) ANT1 传输它。每次发送数据包时,微控制器都会使 LED1 闪烁以指示正在发送数据。此循环在每个设定的时间段(例如 10 秒(miǎo))后不断重复。

遠(yuǎn)程数据接收器

3:遠(yuǎn)程数据接收器電(diàn)路图

如图3遠(yuǎn)程数据接收器電(diàn)路图所示,该接收器電(diàn)路只有(yǒu)三个主要元件:

1. 433 MHz RF 接收器模块 RX1,具有(yǒu)四个接口引脚:VccGnd、数据输出和天線(xiàn)。Vcc 引脚连接到 Arduino 板的 5V 输出,Gnd 连接到公共地。数据引脚连接到 Arduino 板的数字引脚 D12。天線(xiàn)(ANT.2)与发射端相同,连接到天線(xiàn)引脚。

2、这里使用(yòng)的RTC模块是DS1307 RTC芯片,有(yǒu)四个接口引脚:VccGndSDASCLVcc 引脚连接到 Arduino 板的 5V 输出,Gnd 连接到公共地。SDA SCL 引脚用(yòng)于面向 TWI (IIC) 字节的数据传输。它们分(fēn)别连接到 Arduino Nano 板的 A4 (SDA) A5 (SCL) 引脚。

3. LEDLED2),通过限流電(diàn)阻R4连接到Arduino的数字引脚D10

Arduino Nano 板和 RF RX1 模块通过 USB 電(diàn)缆从中央存储系统计算机获得電(diàn)源。Arduino Nano 板还使用(yòng)相同的 USB 電(diàn)缆记录数据并与计算机通信。

遠(yuǎn)程数据接收器的工作和操作可(kě)以通过以下步骤来理(lǐ)解:

接收器首先检查 RTC 是否正在运行并给出正确的日期和时间。如果 RTC 正在运行,Arduino 会在串行监视器上显示当前时间。

RF RX1 模块从每个节点接收数据包。它解调这些数据包并将其提供给 Arduino 微控制器。

微控制器获取数据包并从每个数据包中提取所有(yǒu)四个值:环境光、土壤水分(fēn)含量、温度和湿度以及节点编号。

它作為(wèi)节点 x 通过 USB 串行发送以下数据到计算机:

土壤水分(fēn):XX %

光:XX%

湿度:XX%

温度:XX°C

微控制器使 LED2 闪烁以指示正在接收数据。

此外,每次 Arduino 从任何传感器节点获取数据时,它都会从 RTC 模块读取时间和日期并将其串行发送到计算机。因此,传感器节点数据值与时间和日期一起打印。

带有(yǒu)时间和日期的所有(yǒu)四个传感器数据值按顺序显示在串行监视器上。

任何时候从任何节点接收到的每个数据包都会重复此过程。由于所有(yǒu)节点在时间上同步,它们一个接一个地依次传输数据。

接收器从所有(yǒu)节点一一获取数据,并在设定的时间段后更新(xīn)任何节点的读数。

首次打开 RTC 时,必须使用(yòng) rtc.adjust ( ) 函数(在程序中给出的注释)设置其当前日期和时间。一旦為(wèi) RTC 设置了日期和时间,我们必须再次从程序中注释掉 rtc.adjust ( ) 函数并再次上传程序。因此,接收器程序将在 Arduino Nano 板中上传两次。

有(yǒu)两个源代码:用(yòng)于传感器节点的 Labtesttxnode.ino 代码和用(yòng)于接收器的 LabtestRx.ino 代码。Board1 中的 Labtesttxnode.ino 代码用(yòng)于从传感器收集数据并处理(lǐ)数据。Board2 中的 LabtestRx.ino 代码用(yòng)于在串口监视器上显示节点传输的时间、日期和状态。在上传源代码之前,您需要包含相关库 DHT.zipRTClib.zip VirtualWire.zip

构建和测试

变送器(传感器节点)的实际尺寸 PCB 布局如图 4 所示,其元件布局如图 5 所示。在 PCB 上组装電(diàn)路后,将 9V DC 连接到 CON1

4:传感器节点的 PCB 布局

5:图 4 PCB 的元件布局

接收器的实际尺寸 PCB 布局如图 6 所示,其元件布局如图 7 所示。 在 PCB 上组装電(diàn)路后,将電(diàn)路板连接到筆(bǐ)记本電(diàn)脑或台式计算机,以串行方式监控从各个节点发送的数据在 Arduino IDE 中监控。

6:接收器的 PCB 布局

7:图 6 PCB 的元件布局

请输入搜索关键字

确定