無線傳感器節(jié)點是帶有無線發(fā)射器的傳感器節(jié)點。它具有一個或多個帶有放大器和信號調(diào)節(jié)電路或數(shù)字/智能傳感器的傳感元件、一個微控制器單元、調(diào)制器和帶天線的發(fā)射器,以及一個電池。它由電池或太陽能供電,可感應溫度、陽光、土壤濕度或震動等,并將信號傳輸?shù)竭h程接收器。
許多這樣的傳感器節(jié)點以固定距離放置在一個大的地理區(qū)域中以覆蓋整個區(qū)域。它們都將數(shù)據(jù)發(fā)送到位于中央數(shù)據(jù)監(jiān)控和存儲系統(tǒng)中的接收器。所有傳感器節(jié)點都定期傳輸數(shù)據(jù)(值)。接收器從所有這些節(jié)點接收數(shù)據(jù)并存儲和顯示它以用于監(jiān)視和控制目的。
在農(nóng)田中,自動灌溉系統(tǒng)有許多遍布整個農(nóng)場的土壤濕度傳感器節(jié)點。這些周期性地將土壤濕度水平傳輸?shù)揭粋€中央接收器,該接收器連接到監(jiān)測和控制系統(tǒng)。如果某一特定區(qū)域的土壤濕度水平低于閾值水平,則該區(qū)域的水泵、電磁閥等將自動打開。因此,整個農(nóng)場所需的土壤濕度水平得以維持。
在兩國之間的邊界處,可以將帶有 PIR 接近傳感器的傳感器節(jié)點放置在固定距離處,以檢測邊界處的任何運動并向控制站發(fā)送警告/警報消息。
對于溫室,需要保持適當?shù)臏囟取穸群完柟?。因此,它配備了許多傳感器節(jié)點,可以感知溫室內(nèi)不同位置的溫度、濕度和陽光,并定期將數(shù)據(jù)發(fā)送到中央控制室。中央控制室根據(jù)收集的傳感器數(shù)據(jù)增加/減少冷卻、濕度或光照強度。
在該項目中,使用的多個傳感器是數(shù)字濕度和溫度傳感器、感測環(huán)境光的光敏電阻器 (LDR) 和感測土壤水分含量的土壤濕度傳感器。該項目還使用 Arduino Nano 作為微控制器 (MCU) 和 433MHz ASK RF 發(fā)射器模塊。可以有很多這樣的傳感器節(jié)點,但這里只使用兩個這樣的節(jié)點。
接收器包括 433MHz ASK RF 接收器模塊、實時時鐘 (RTC) 模塊和 Arduino Nano。兩個傳感器節(jié)點都傳輸溫度、濕度、環(huán)境光和土壤含水量的感測值數(shù)據(jù)。接收器接收來自兩個傳感器的值(共八個值)并將它們提供給計算機,計算機顯示這些值并存儲以備將來使用。
如圖 1 中項目的框圖所示,有兩個不同的部分——發(fā)射器(傳感器節(jié)點)和遠程數(shù)據(jù)接收器。傳感器節(jié)點由不同的傳感器、微控制器、射頻發(fā)射器和電池組成。
圖 1:項目框圖
傳感器
DHT11 是一種智能傳感器,可感應周圍的溫度和濕度并將此數(shù)據(jù)發(fā)送到微控制器。LDR 感應環(huán)境光,土壤濕度傳感器感應土壤水分含量。
微控制器
Arduino Nano 板用作微控制器,從所有三個傳感器讀取數(shù)據(jù)并使用 RF 發(fā)射器進行傳輸。
射頻發(fā)射器
具有 433MHz 載波頻率的基于 ASK 的射頻發(fā)射器模塊用于調(diào)制傳感器數(shù)據(jù)并將其傳輸?shù)浇邮掌鳌?/p>
電池
6V 或 9V 電池用于為完整的傳感器節(jié)點提供電源。
LED 閃爍表示傳感器節(jié)點處于活動狀態(tài),并且正在傳輸數(shù)據(jù)。
遠程數(shù)據(jù)接收器只有射頻接收器模塊和微控制器。
射頻接收器
具有 433MHz 載波頻率的基于 ASK 的 RF 接收器模塊用于解調(diào)和接收由傳感器節(jié)點的 RF 發(fā)射器模塊傳輸?shù)臄?shù)據(jù)。
微控制器。Arduino Nano 板用作微控制器,從 RF 接收器模塊獲取數(shù)據(jù)并將其提供給計算機,計算機將其存儲以備將來使用。
接收器中的 LED 閃爍表示接收器處于活動狀態(tài)并且正在接收數(shù)據(jù)。
傳感器節(jié)點(發(fā)射機)
圖 2:無線傳感器節(jié)點的電路圖
如圖2中傳感器節(jié)點的電路圖所示,發(fā)射器電路中只有五個主要組件:
1. 具有三個接口引腳的傳感器 DHT11:Vcc、Gnd 和數(shù)據(jù)輸出。Vcc 引腳由 Arduino 板提供 5V 電源,Gnd 引腳連接到公共地。數(shù)據(jù)輸出引腳連接到 Arduino Nano 板的數(shù)字引腳 D10。它被上拉電阻R3拉高,如圖2所示。
2. 土壤濕度傳感器 SS1,具有三個接口引腳:Vcc、Gnd 和 A0。Vcc 引腳由 Arduino Nano 板提供 5V 電源,Gnd 引腳連接到公共地。SIG/A0 引腳是傳感器的模擬輸出,連接到 Arduino Nano 板的模擬輸入引腳 A1。
3. LDR1,它與一個 10 千歐電阻器 (R2) 以下拉配置連接。它的輸出連接到 Arduino Nano 板的模擬輸入引腳 A0。
4. 433MHz 射頻發(fā)射器模塊 (TX1),具有四個接口引腳:Vcc、Gnd、Data 和 Antenna。Vcc 引腳連接到 Arduino 板的 5V 輸出,Gnd 連接到公共地。數(shù)據(jù)引腳連接到 Arduino 板的數(shù)字引腳 D11。天線 (ANT.1) 由直徑 1mm、長 35cm 的銅線(單芯)繞制而成,該銅線連接到天線引腳。
5. LED(LED1),通過限流電阻R1連接到數(shù)字引腳D12。
使用 9V 電池或穩(wěn)壓電源為 Arduino 板供電。Arduino 板的 Vin 引腳連接到電池,因此板載 7805 穩(wěn)壓芯片產(chǎn)生 5V 電源,提供給 DHT11 和 433MHz 射頻發(fā)射器模塊(TX1)。
傳感器節(jié)點定期檢測溫度、濕度、土壤濕度和環(huán)境光并傳輸這些值。但是,如框圖所示,可能有任意數(shù)量的傳感器節(jié)點。他們都會傳遞他們的價值觀??赡軙l(fā)生多個節(jié)點同時傳輸數(shù)據(jù)的情況。另外,接收方如何知道接收到的數(shù)據(jù)來自哪個節(jié)點?
為了克服這些問題,所有傳感器節(jié)點都在時間上同步,這樣兩個節(jié)點就不會同時傳輸。但如果發(fā)生這種情況,接收器將接受任何一個傳感器數(shù)據(jù)。此外,所有節(jié)點都被分配了編號(例如,從 1 到 N)。在他們傳輸數(shù)據(jù)之前,他們傳輸他們的節(jié)點號。因此,接收器知道數(shù)據(jù)來自哪個傳感器節(jié)點。
DHT11 傳感器可提供準確且經(jīng)過校準的溫度和濕度測量值。它為兩種測量提供直接的數(shù)字值。Arduino 微控制器讀取這些值并將它們轉(zhuǎn)換為字符形式 (ASCII)。
隨著落在 LDR1 上的環(huán)境光增加,其電阻降低,模擬電壓輸出增加。因此,LDR1 的模擬輸出電壓與環(huán)境光成正比。Arduino 將此模擬電壓轉(zhuǎn)換為數(shù)字值(0 到 1023 之間)并將其映射到 0 到 99% 之間。最后,它將此百分比值轉(zhuǎn)換為 ASCII 字符。
土壤水分傳感器 (SS1) 產(chǎn)生與土壤水分含量成反比的模擬電壓輸出。這意味著它的輸出電壓隨著土壤水分含量的增加而降低。Arduino 將此模擬電壓轉(zhuǎn)換為數(shù)字值(0 到 1023 之間)并將其映射到 0 到 99% 之間。最后,它將此百分比值轉(zhuǎn)換為 ASCII 字符。
然后這些數(shù)據(jù)通過Arduino的引腳D11發(fā)送到RF發(fā)射器模塊(TX1)。
TX1 得到這 10 個字符的字符串(我們可以稱它為數(shù)據(jù)包),使用 433MHz 載波調(diào)制它并通過天線 ANT1 傳輸它。每次發(fā)送數(shù)據(jù)包時,微控制器都會使 LED1 閃爍以指示正在發(fā)送數(shù)據(jù)。此循環(huán)在每個設定的時間段(例如 10 秒)后不斷重復。
遠程數(shù)據(jù)接收器
圖 3:遠程數(shù)據(jù)接收器電路圖
如圖3遠程數(shù)據(jù)接收器電路圖所示,該接收器電路只有三個主要元件:
1. 433 MHz RF 接收器模塊 RX1,具有四個接口引腳:Vcc、Gnd、數(shù)據(jù)輸出和天線。Vcc 引腳連接到 Arduino 板的 5V 輸出,Gnd 連接到公共地。數(shù)據(jù)引腳連接到 Arduino 板的數(shù)字引腳 D12。天線(ANT.2)與發(fā)射端相同,連接到天線引腳。
2、這里使用的RTC模塊是DS1307 RTC芯片,有四個接口引腳:Vcc、Gnd、SDA和SCL。Vcc 引腳連接到 Arduino 板的 5V 輸出,Gnd 連接到公共地。SDA 和 SCL 引腳用于面向 TWI (IIC) 字節(jié)的數(shù)據(jù)傳輸。它們分別連接到 Arduino Nano 板的 A4 (SDA) 和 A5 (SCL) 引腳。
3. LED(LED2),通過限流電阻R4連接到Arduino的數(shù)字引腳D10。
Arduino Nano 板和 RF RX1 模塊通過 USB 電纜從中央存儲系統(tǒng)計算機獲得電源。Arduino Nano 板還使用相同的 USB 電纜記錄數(shù)據(jù)并與計算機通信。
遠程數(shù)據(jù)接收器的工作和操作可以通過以下步驟來理解:
接收器首先檢查 RTC 是否正在運行并給出正確的日期和時間。如果 RTC 正在運行,Arduino 會在串行監(jiān)視器上顯示當前時間。
RF RX1 模塊從每個節(jié)點接收數(shù)據(jù)包。它解調(diào)這些數(shù)據(jù)包并將其提供給 Arduino 微控制器。
微控制器獲取數(shù)據(jù)包并從每個數(shù)據(jù)包中提取所有四個值:環(huán)境光、土壤水分含量、溫度和濕度以及節(jié)點編號。
它作為節(jié)點 x 通過 USB 串行發(fā)送以下數(shù)據(jù)到計算機:
土壤水分:XX %
光:XX%
濕度:XX%
溫度:XX°C
微控制器使 LED2 閃爍以指示正在接收數(shù)據(jù)。
此外,每次 Arduino 從任何傳感器節(jié)點獲取數(shù)據(jù)時,它都會從 RTC 模塊讀取時間和日期并將其串行發(fā)送到計算機。因此,傳感器節(jié)點數(shù)據(jù)值與時間和日期一起打印。
帶有時間和日期的所有四個傳感器數(shù)據(jù)值按順序顯示在串行監(jiān)視器上。
任何時候從任何節(jié)點接收到的每個數(shù)據(jù)包都會重復此過程。由于所有節(jié)點在時間上同步,它們一個接一個地依次傳輸數(shù)據(jù)。
接收器從所有節(jié)點一一獲取數(shù)據(jù),并在設定的時間段后更新任何節(jié)點的讀數(shù)。
首次打開 RTC 時,必須使用 rtc.adjust ( ) 函數(shù)(在程序中給出的注釋)設置其當前日期和時間。一旦為 RTC 設置了日期和時間,我們必須再次從程序中注釋掉 rtc.adjust ( ) 函數(shù)并再次上傳程序。因此,接收器程序?qū)⒃?Arduino Nano 板中上傳兩次。
有兩個源代碼:用于傳感器節(jié)點的 Labtesttxnode.ino 代碼和用于接收器的 LabtestRx.ino 代碼。Board1 中的 Labtesttxnode.ino 代碼用于從傳感器收集數(shù)據(jù)并處理數(shù)據(jù)。Board2 中的 LabtestRx.ino 代碼用于在串口監(jiān)視器上顯示節(jié)點傳輸?shù)臅r間、日期和狀態(tài)。在上傳源代碼之前,您需要包含相關庫 DHT.zip、RTClib.zip 和 VirtualWire.zip。
構(gòu)建和測試
變送器(傳感器節(jié)點)的實際尺寸 PCB 布局如圖 4 所示,其元件布局如圖 5 所示。在 PCB 上組裝電路后,將 9V DC 連接到 CON1。
圖 4:傳感器節(jié)點的 PCB 布局
圖 5:圖 4 中 PCB 的元件布局
接收器的實際尺寸 PCB 布局如圖 6 所示,其元件布局如圖 7 所示。 在 PCB 上組裝電路后,將電路板連接到筆記本電腦或臺式計算機,以串行方式監(jiān)控從各個節(jié)點發(fā)送的數(shù)據(jù)在 Arduino IDE 中監(jiān)控。
圖 6:接收器的 PCB 布局
圖 7:圖 6 中 PCB 的元件布局
-
接收器
+關注
關注
14文章
2468瀏覽量
71871 -
節(jié)點
+關注
關注
0文章
218瀏覽量
24419 -
無線傳感器
+關注
關注
15文章
770瀏覽量
98350 -
Arduino
+關注
關注
188文章
6468瀏覽量
186952
發(fā)布評論請先 登錄
相關推薦
評論