資料介紹
描述
![pYYBAGNomaiAW-WRAAFrch7fB3g035.jpg](https://file.elecfans.com/web2/M00/78/A1/pYYBAGNomaiAW-WRAAFrch7fB3g035.jpg)
建立無線氣象站是一次很棒的學習經(jīng)歷。完成此項目的構建后,您將更好地了解無線通信的工作原理、傳感器的工作原理以及 Arduino 平臺的強大功能。以這個項目為基礎和獲得的經(jīng)驗,將來您將能夠輕松構建更復雜的項目。
氣象站是一種使用許多不同傳感器收集與天氣和環(huán)境相關的數(shù)據(jù)的設備。我們可以測量很多東西,比如:
- 溫度
- 濕度
- 風
- 氣壓
- 紫外線指數(shù)
- 雨
在我們將要建造的氣象站中,我們將測量兩個位置的溫度和濕度并顯示當前日期和時間。建立氣象站非常容易。但是,制造商能否制造出具有彩色 TFT 顯示屏和與商業(yè)設備相匹配的功能的設備?答案是肯定的!借助開源軟件和硬件的力量,可以輕松構建這個令人印象深刻的氣象站!
該項目由兩部分組成:發(fā)射器和接收器。
發(fā)射器測量溫度和濕度,并將數(shù)據(jù)無線發(fā)送到接收器。接收器測量溫度和濕度,接收來自遠程傳感器的數(shù)據(jù),并在大型彩色 TFT 顯示屏上顯示所有內(nèi)容。
讓我們建立這個項目!
第 1 步:獲取所有零件
![poYBAGNomauAQ8nuAAHerLKiScU114.jpg](https://file.elecfans.com/web2/M00/78/10/poYBAGNomauAQ8nuAAHerLKiScU114.jpg)
構建此項目所需的部分如下:
- Arduino 到期 ? http://edu8s.tv/part/ArduinoDue
- Arduino 超級 ? http://edu8s.tv/part/ArduinoMega
- Arduino Nano ? http://edu8s.tv/part/ArduinoNano
- 3.2" TFT 顯示屏 ? http://edu8s.tv/part/32TFT
- DHT22 ? http://educ8s.tv/part/DHT22
- NRF24L01 ? http://edu8s.tv/part/NRF24L01
- DS3231 RTC ? http://edu8s.tv/part/DS3231
該項目的成本約為40美元。如果您使用 Arduino Mega 而不是 Arduino Due,您可以將項目成本降低 5 美元。我選擇使用 Arduino Due 作為接收器,因為它速度非常快,而且內(nèi)存很大。隨著我們?yōu)轫椖刻砑痈喙δ?,這將在未來非常有用。
第 2 步:溫濕度傳感器 - DHT22
![poYBAGNombCAc-lfAAHBAGn-_Lk785.jpg](https://file.elecfans.com/web2/M00/78/10/poYBAGNombCAc-lfAAHBAGn-_Lk785.jpg)
DHT22 是一種非常流行的溫度和濕度傳感器。它價格便宜,易于使用,并且規(guī)格聲稱具有良好的精度和準確性。
DHT 傳感器由兩部分組成:電容式濕度傳感器和熱敏電阻。里面還有一個芯片,做一些模數(shù)轉換,輸出帶有溫度和濕度的數(shù)字信號。使用任何微控制器都可以輕松讀取數(shù)字信號。
DHT22的特點
- 低成本
- 3 至 5V 電源和 I/O
- 轉換期間使用的最大電流為 2.5mA
- 0-100% 濕度讀數(shù),精度為 2-5%
- -40 至 125°C 溫度讀數(shù) ±0.5°C 精度
- 減緩
與 Arduino 的連接非常簡單。我們將帶有 + 號的傳感器引腳連接到 Arduino 的 5V 或 3.3V 輸出。我們將帶有 - 符號的傳感器引腳連接到 GROUND。最后,我們將 OUT 引腳連接到 Arduino 的任何數(shù)字引腳。
為了在 Arduino 中使用 DHT22 傳感器,我們必須使用 DHT 庫。
https://github.com/adafruit/DHT-sensor-library
第 3 步:DS3231 實時時鐘模塊
![poYBAGNombKAevYYAACNCmaADi4822.jpg](https://file.elecfans.com/web2/M00/78/10/poYBAGNombKAevYYAACNCmaADi4822.jpg)
DS3231 實時時鐘模塊顧名思義就是一個實時時鐘。使用它的電池,它可以保持多年的時間,因為它具有最低的功耗。
DS3231 是一款低成本、極其精確的 I2C 實時時鐘 (RTC),具有集成的溫度補償晶體振蕩器 (TCXO) 和晶體。該設備包含電池輸入,并在設備的主電源中斷時保持準確的計時。晶體諧振器的集成提高了設備??的長期精度,并減少了生產(chǎn)線中的零件數(shù)量。
RTC 維護秒、分鐘、小時、星期、日期、月份和年份信息。對于少于 31 天的月份,月末的日期會自動調(diào)整,包括閏年的更正。時鐘以 24 小時制或 12 小時制運行,帶有 AM/PM 指示器。提供了兩個可編程的時間警報和一個可編程的方波輸出。地址和數(shù)據(jù)通過 I2C 雙向總線串行傳輸。
模組成本極低;它的成本約為 2 美元,包括電池!我們將使用它來保持我們的氣象站項目的時間。
第 4 步:NRF24L01+:無線模塊
![pYYBAGNombWAIp20AAIM0G-GhDQ733.jpg](https://file.elecfans.com/web2/M00/78/A2/pYYBAGNombWAIp20AAIM0G-GhDQ733.jpg)
NRF24L01 模塊是一種低成本的雙向收發(fā)器模塊。它將幫助您了解它的工作方式。
第 5 步:構建發(fā)送器
![poYBAGNombiAKd28AAFFE7HozrU532.jpg](https://file.elecfans.com/web2/M00/78/10/poYBAGNombiAKd28AAFFE7HozrU532.jpg)
讓我們首先構建發(fā)射器。
就是這樣,您的發(fā)射器已準備就緒。現(xiàn)在讓我們繼續(xù)討論接收器。
第 6 步:構建接收器
![poYBAGNombuANCicAADYTn8PG78889.jpg](https://file.elecfans.com/web2/M00/78/10/poYBAGNombuANCicAADYTn8PG78889.jpg)
為了構建接收器,我們需要以下部分:
- Arduino Due 或 Mega
- DS3231實時時鐘模塊
- DHT22溫濕度傳感器
- NRF24L01+無線模塊
- 3.2" 彩色 TFT 顯示屏
- 面包板
- 7頭針
- 一些電線
首先,我們彎曲 7 個接頭引腳并將它們放置在一些 Arduino Due 引腳上。我們需要一個接地,一個接 3.3V。我們需要兩個 I2C 引腳。我們需要從 6 到 8 的剩余 3 個數(shù)字引腳。我們還必須將三根電線焊接到 Arduino Due 引腳的硬件 SPI 引腳。我們需要 MOSI、MISO 和 SCK。仔細檢查圖表。我們將電線連接到插頭引腳,我們準備好連接顯示器。
連接 DS3231
- Arduino 3.3V 輸出上的 VCC 引腳
- GND 引腳連接到 Arduino 的 GND 和
- SDA(串行數(shù)據(jù)線)引腳到 Arduino 的 SDA 引腳和
- SCL(串行時鐘線)引腳到 Arduino 的 SCL 引腳
連接 DHT22 傳感器
- Arduino 3.3V 輸出上的 VCC 引腳
- GND 引腳連接到 Arduino 的 GND 和
- 輸出引腳到 Arduino 的數(shù)字引腳 8
連接 NRF24L01 模塊
- GND 引腳到 Arduino 的 GND
- VCC 引腳到 Arduino 3.3V
- Arduino 數(shù)字引腳 6 的第 3 個引腳
- Arduino 數(shù)字引腳 7 的第 4 個引腳
- 我們焊接的第 5 個引腳到 SCK 引腳
- 我們焊接的第 6 個引腳到 MOSI 引腳
- 我們焊接的 MISO 引腳的第 7 個引腳
第 7 步:發(fā)送器代碼
![pYYBAGNomb6AFzJSAAB04p8yAfY721.jpg](https://file.elecfans.com/web2/M00/78/A2/pYYBAGNomb6AFzJSAAB04p8yAfY721.jpg)
首先,我們必須下載 RF24 庫,以使我們在使用 NRF24L01 無線模塊時更輕松。我們還需要 DHT22 傳感器的 DHT 庫。
讓我們先看看發(fā)射器代碼。它發(fā)出一個簡單的數(shù)據(jù)結構,其中包含兩個浮點數(shù),即溫度和濕度。
為了建立通信鏈接,我們必須在兩個模塊之間創(chuàng)建一個“管道”。該管道需要有一個地址。兩個模塊都必須從同一個管道中寫入和讀取才能進行通信。這是我們在代碼中定義的第一件事。我們將管道地址設置為“0”。接下來,我們定義要與其他模塊通信的通道。NRF24L01 芯片支持 126 個不同的通道。兩個模塊需要使用相同的通道才能相互通信。在此示例中,我使用通道 115。接下來,我定義我要使用模塊提供的最大發(fā)射功率。它使用更多功率,但擴展了通信范圍。接下來我們定義傳輸?shù)臄?shù)據(jù)速率。我將其設置為 250Kbs,這是可能的最低數(shù)據(jù)速率,以實現(xiàn)更好的范圍。
在循環(huán)函數(shù)中,我們從傳感器讀取溫度和濕度值,將數(shù)據(jù)保存到數(shù)據(jù)結構中,然后通過將數(shù)據(jù)結構寫入管道來發(fā)送數(shù)據(jù)結構。而已。您可以在本教程中找到附加的代碼。
第 8 步:接收方代碼
![poYBAGNomcGAc70cAAC1JBBxtGc264.jpg](https://file.elecfans.com/web2/M00/78/10/poYBAGNomcGAc70cAAC1JBBxtGc264.jpg)
現(xiàn)在讓我們看看接收器代碼。我們需要 4 個庫。首先,我們必須從此鏈接下載用于顯示的庫:
顯示庫:https ://github.com/Bodmer/TFT_HX8357_Due
下載庫后,您必須打開 User_Setup.h 文件。注釋第 13 行并取消注釋第 14 行,因為我們的顯示器使用的是 HX8357C 驅動程序。現(xiàn)在我們可以繼續(xù)使用其他 3 個庫。我們需要一個庫用于實時時鐘,一個用于 DHT22 傳感器,最后一個用于無線模塊。
- NRF24L01:https ://github.com/TMRh20/RF24
讓我們看一下代碼。如果尚未設置,我們要做的第一件事就是將時間設置到實時時鐘模塊。為了做到這一點,在setRTCTime
函數(shù)中輸入當前日期和時間,取消注釋第setRTCTime
54 行的函數(shù)調(diào)用并將程序上傳到 Arduino。現(xiàn)在時間已定。但是我們必須再次注釋setRTCTime
該函數(shù)的調(diào)用并再次將程序上傳到Arduino。
接收器的代碼工作如下。在設置函數(shù)中,我們初始化所有傳感器和模塊并打印用戶界面。然后,在循環(huán)功能中,我們不斷檢查新的無線數(shù)據(jù)。如果有新數(shù)據(jù),我們會將這些數(shù)據(jù)保存在變量中并在顯示器上打印出來。我們每分鐘讀取一次溫度和濕度,并且僅在值發(fā)生變化時才更新顯示。通過這種方式,我們可以進一步減少顯示屏的閃爍!我還準備了一個以華氏度顯示溫度的代碼版本。您可以在本教程中找到所附代碼的兩個版本。
第 9 步:測試項目
![poYBAGNomcOAa9kGAAIisIg82Rs664.jpg](https://file.elecfans.com/web2/M00/78/10/poYBAGNomcOAa9kGAAIisIg82Rs664.jpg)
啟動所有設備并查看一切是否按預期工作的最后一步。謝謝參觀!
- Arduino在線氣象站(NodeMCU)
- Arduino氣象站
- Arduino UNO迷你氣象站
- 使用Arduino Nano的迷你氣象站
- 使用Arduino的IoT無線氣象站 0次下載
- Sigfox和Arduino氣象站
- 與Sigfox連接并使用Arduino的氣象站
- 基于Arduino的無線氣象站 0次下載
- Arduino物聯(lián)網(wǎng)氣象站
- 基于Arduino UNO的氣象站 2次下載
- Arduino氣象站項目
- 帶有Arduino的Lora氣象站
- 使用Arduino和NodeMCU的氣象站
- 使用NRF24L01、DHT11 DHT22的Arduino無線氣象站
- Arduino氣象站的設置開源分享
- 基于幾何的泰森多邊形來生成形體骨架 1004次閱讀
- 4G氣象站的設計與實現(xiàn) 991次閱讀
- 如何利用ESP32實現(xiàn)太陽能氣象站的設計 4646次閱讀
- 如何利用ESP8266實現(xiàn)防雨物聯(lián)網(wǎng)氣象站的設計 5136次閱讀
- 如何利用粒子光子把你的雨傘變成氣象站 1532次閱讀
- 如何使用ESP32創(chuàng)建一個氣象站 4040次閱讀
- 利用Arduino Nano 33 IoT構建的微型互聯(lián)網(wǎng)氣象站 3654次閱讀
- 如何手動制作一個風速儀 6100次閱讀
- 基于樹莓派組成的可隨身攜帶氣象站設計方案 2989次閱讀
- 如何使用兩個dht傳感器及HC12模塊制作遠程氣象站? 2977次閱讀
- 基于創(chuàng)建帶有空氣質(zhì)量傳感器的室內(nèi)氣象站 2358次閱讀
- dfrobotDIY智能氣象站套件簡介 1756次閱讀
- 基于ARM微處理器和Linux的無線氣象數(shù)據(jù)通信系統(tǒng) 1181次閱讀
- 基于STM32的自動氣象站控制模塊設計 8676次閱讀
- arduino是什么以及arduino能干什么 4.5w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論