步驟1:所需的零件和工具
所需部件:
NodeMCU Board V0。 9或1.0
DHT-11的溫度和濕度
BMP-280的氣壓
雨量傳感器(可選)
18650AA可充電鋰離子電池x1
TP4056充電板
太陽能電池板(5.5至6v/100-120ma)
10kohm Resistor x1
其他材料和工具:
穿孔板(PCB)x1
AWG電線
螺釘端子x2
母頭針
MDF板
烙鐵
管道膠帶
熱膠槍
微型USB電纜
用于測試(可選):
面包板
跳線電線
第2步:測量天氣數據
NodeMCU Board:
NodeMcu板實際上是一個Arduino帶wifi屏蔽。這個wifi盾被稱為esp8266。屏蔽可以作為單獨的控制器購買和使用,眾所周知的版本是esp8266 V1,它只有2個數字引腳。后來的版本確實有更多的數字引腳。
所以我們使用這個wifi屏蔽使用 Thingspeak API將我們的傳感器數據傳輸到我們的網絡應用程序。
DHT-11
DHT-11有一個名為DHT-22的后繼產品,它更準確,耗電更少。您可以根據顏色區分DHT-11/DHT-22。市場上的大多數DHT-11傳感器都是藍色的,其中DHT-22是白色的。
DHT-11有4個引腳從左邊開始:
Vin (左起第一個)
數據
的 NULL
的 GND
BMP-280
BMP-280傳感器用于測量氣壓。 BME280是博世的下一代傳感器,是BMP085/BMP180/BMP183的升級產品 - 具有0.25米的低海拔噪聲和相同的快速轉換時間。
該傳感器的優點是它可以使用I2C或SPI與微控制器進行通信。為了簡單方便接線,我使用了I2C版本板。
雨量傳感器(可選)
雨水傳感器檢測水,完成傳感器板印刷導線上的電路。傳感器板充當可變電阻器,在潮濕時從100k歐姆變為干燥時的2M歐姆。
我在測試階段使用了Rain傳感器,但在最終項目中已將其刪除,因為它在該項目中的使用效果不是很好。如果您的項目中需要雨量傳感器,您可以使用它(我也為雨量傳感器編寫了相應的代碼。)
步驟3:連接傳感器
我建議你一個接一個地連接傳感器,開始使用DHT11/DHT22傳感器。一旦傳感器正常工作,您可以繼續添加下一個傳感器。
成功連接后,轉到編碼階段。
數據連接:
DHT-11
數據------- D4
Vin ---------- 3.36v
Gnd --------- Gnd
在Data和Vin之間加一個10k歐姆的電阻
BMP-280
SCL ------- D1
SDA ------- D2
Vin --- ------ 3.36v
Gnd -------- Gnd
雨量傳感器
數據 - ----- A0
Vin -------- 5v/3.36v
Gnd ------- Gnd
第4步:編碼
首先,我嘗試了互聯網上的幾個草圖。我發現大多數草圖都是用LUA語言編寫的,因此對我來說沒用(因為我認為使用Arduino IDE)。
然后我開始編寫自己的代碼并獲得成功。
在執行代碼之前,請下載微控制器和傳感器所需的必要庫。
在下面的代碼中:
輸入您的Wifi SSID名稱和密碼。
Thingspeak API
我們要推送數據對于Thingspeak,我們必須開帳戶。 Thingspeak是一項云服務。接下來,Thingspeak提供了幾種與您的數據交互的選項,例如Thingtweet,Thinghttp等。
只需訪問thingspeak.com并創建一個帳戶即可。至少填寫設置中的第一個和第二個字段。如果連接溫度和濕度傳感器(如下一步所述),請填寫字段1中的“溫度”,字段2中的“壓力”(請參見上圖)。如果你想連接其他傳感器,如雨量傳感器,只需對其余的字段做同樣的事情。
現在轉到API的部分
復制API密鑰并將其粘貼到代碼中。
鏈接:
第5步:電源
我的計劃是無線部署氣象站。要連續運行,必須有連續的電源。為電路提供連續電源的最佳方法是使用電池。但是幾天之后電池就會耗盡,去那里充電是非常困難的。因此,使用太陽能充電電路來利用來自太陽的自由能量來為電池充電并為NodeMCU板供電。我使用的是18650鋰離子電池。
為電池充電沒有任何復雜情況(過度充電/過度放電 ),我有使用TP4056充電板,完美適用于3.7v/1Amp。它具有內置保護電路,如果電池在充電或放電時達到最大值,則會切斷與電池的連接。
除了保護之外,它還為我們提供了使用微電池為電池充電的選項。 USB電纜以及太陽能電池板(通過終端)。因此,我們有多種充電選項。
深度睡眠模式(可選):
通過上述設置,我們可以使用太陽能電池板運行氣象站(100mA)每天約10小時。之后,我們需要使用充電器為電池充電,以便在第二天使用。如果您可以在不需要時將其關閉或者在家中使用氣象站,這不是什么大問題。
但如果您希望它連續運行并將其放置在您居住的偏遠地區為了降低ESP8266 WiFi芯片的功耗,我們將采用深度睡眠模式,這是ESP芯片最省電的選擇。無法頻繁關閉它,這就成了一個問題。
為了降低ESP8266 WiFi芯片的功耗,我們將使用深度睡眠模式。它允許ESP8266進入休眠狀態并節省電池電量。您可以定期喚醒它進行測量并發布它們。
NodeMCU(最大功耗)--------------------- 170 mA
NodeMCU(深度睡眠)------------------------------------ 0.02 mA
此項目的平均消耗量(基于所使用的傳感器)-------------------------- 120 mA
如果我們需要5分鐘的周期(深度睡眠時間為4.5分鐘,傳輸時間為0.5分鐘)
4.5分鐘x 0.02毫安--------------- - 0.09 mA-mins
0.5 min x 120 mA ----------------- 60 mA-mins
_______________________________________
5分鐘----------------------------- 60.09 mA-mins
因此整個氣象站需要12.018 mA才能運行。
要運行一天,需要12.018 x 24 = 288.432 mA
如果我們平均需要3小時的陽光每天。我們可以從額定每天5v/100mA的太陽能電池板上獲得100mA x 3 = 300mA 。
因此,它足以運行氣象站而無需外部充電。
在使用深度睡眠功能之前,必須將NodeMCU D0引腳連接到RST引腳。
LDO S111733PI
這是一款低壓差穩壓器,可提供任何輸入電壓的恒定輸出為3.3v。電池的輸出不會是恒定值,因為完全充電的電池可以輸出4.2v來炸送NodeMCU板。 NodeMCU板具有(5v及以上)Vin插槽以及(3至3.36v)輸入電壓插槽。項目中使用的所有傳感器都需要3.36-3.6v,任何上述電壓都會損壞它們或顯示不準確的數據。
因此,使用LDO必須長時間運行氣象站。
步驟6:組裝PCB
成功測試后,將組件焊接到PCB上的時間。為此,你需要一個像樣的焊鐵,焊錫,鉗子。
首先,我切斷了NodeMCU板,BMP-280,DHT-11,雨量傳感器和LDO的直母插頭引腳。最好根據高度焊接組件。首先焊接較小高度的元件。
在組裝插頭引腳和螺釘端子后,是時候將電路板插入各自的接頭中。
我已將TP4056電路板連接到使用雙面膠帶的PCB。
最后,我將18650電池插入電池座。
注意:我很抱歉我的焊接技巧,這是我的第一次焊接,我仍在練習:)
第7步:一體機中的一切
是時候為我們的PCB構建一個機箱了。我用了3mm厚的MDF板來制作一個盒子。太陽能電池板完美地安裝在它的頂部。
我在盒子的兩邊分別為充電端口和NodeMCU編碼端口做了兩個孔。我不會在惡劣的條件下使用氣象站,所以我沒有使用任何防漏外殼。但如果您打算在外面有效地使用氣象站,那么您可以使用一些塑料或金屬外殼。
步驟8:可視化數據
Thingspeak服務為您提供各種圖形和圖表,以顯示傳感器數據。此外,您甚至可以使用Thingspeak Read API來創建自己的網絡應用程序并將數據傳輸到它。
-
氣象站
+關注
關注
1文章
749瀏覽量
15660
發布評論請先 登錄
相關推薦
評論