第1步:構(gòu)建氣象站的部件
要?jiǎng)?chuàng)建氣象站,我首先需要收集以下項(xiàng)目:
材料
NodeMCU ESP8622電路板
DHT22溫度/濕度模塊
小型穿孔板
5伏太陽(yáng)能電池
黃色LED
1安培太陽(yáng)能充電器控制器
三節(jié)AA 3.7伏鋰離子充電電池
三節(jié)AA電池座
0.9-5伏至5伏升壓增壓器模塊
各種電線
各種1/2英寸樺木
1英寸鉸鏈和螺絲
白色油漆
木膠
抽屜旋鈕
工具
烙鐵
表鋸
斜切鋸
鉆孔按下:
1英寸鉆頭
1/8英寸鉆頭
5 mm鉆頭
釘槍
熱膠槍
螺絲刀
步驟2:讓氣象站運(yùn)行
在互聯(lián)網(wǎng)上進(jìn)行了一些搜索之后,我在Losant.com上找到了一個(gè)非常好的教程,介紹如何構(gòu)建這樣的設(shè)備ESP8266和DHT22溫度/濕度模塊。 (您可以在e-Bay上花幾美元買(mǎi)一臺(tái)DHT22)
經(jīng)過(guò)一番研究,我決定使用NodeMCU ESP8266板
一旦我將所有各個(gè)部分聚集在一起,我就按照教程中有關(guān)如何將NodeMCU連接到DHT22的說(shuō)明進(jìn)行操作。然后我插入提供的程序代碼,將我的NodeMCU連接到電源并觀察它的生命。
在我成功的鼓舞下,我想對(duì)Losant提供的程序進(jìn)行一些小改動(dòng):
我想添加一點(diǎn)心跳LED讓我知道電路板正在工作。我還想將數(shù)據(jù)發(fā)送速率降低到10秒(原始程序設(shè)置為2秒),以便在我想用電池運(yùn)行電路板時(shí)節(jié)省電量。我偶爾會(huì)發(fā)現(xiàn)NodeMCU板會(huì)在幾個(gè)小時(shí)后“凍結(jié)”,因?yàn)槲野l(fā)現(xiàn)WiFi連接每隔一段時(shí)間就會(huì)掉線,所以我希望電路板每小時(shí)左右重新啟動(dòng)一次作為“刷新”機(jī)制。采用Losant開(kāi)發(fā)的原始代碼,我將其修改為:
/**
* Example for sending temperature and humidity
* to the cloud using the DHT22 and ESP8266
*
* Copyright (c) 2016 Losant IoT. All rights reserved.
* Modifications by Small Workshop Chronicles
* https://www.losant.com
*/ #include “DHT.h”
#include
#include
#include
#include #define DHTPIN 4 // what digital pin the DHT22 is conected to
#define DHTTYPE DHT22 // There are multiple kinds of DHT sensors DHT dht(DHTPIN, DHTTYPE); // WiFi credentials.
const char* WIFI_SSID = “”;
const char* WIFI_PASS = “”; // Losant credentials.
const char* LOSANT_DEVICE_ID = “”;
const char* LOSANT_ACCESS_KEY = “”;
const char* LOSANT_ACCESS_SECRET = “”; WiFiClientSecure wifiClient; 《立方厘米= 1》 《立方厘米= 1》 《立方厘米= 1》 LosantDevice device(LOSANT_DEVICE_ID); void connect() { // Connect to Wifi.
Serial.println();
Serial.println();
Serial.print(“Connecting to ”);
Serial.println(WIFI_SSID); // WiFi fix: https://github.com/esp8266/Arduino/issues/2186
WiFi.persistent(false);
WiFi.mode(WIFI_OFF);
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASS);
此代碼需要注意的關(guān)鍵事項(xiàng):
我添加了一個(gè)名為timeTotal在每個(gè)循環(huán)周期中遞增1。當(dāng)計(jì)數(shù)達(dá)到30000時(shí),系統(tǒng)重新啟動(dòng)。
每次通過(guò)digitalWrite命令通過(guò)WiFi發(fā)送數(shù)據(jù)時(shí),LED都會(huì)閃爍。
我更改了循環(huán)中的timeSinceLastRead值檢查以10000毫秒發(fā)送數(shù)據(jù),而默認(rèn)值為2000毫秒(或10秒對(duì)2秒)
一旦我得到了編譯并加載到我的NodeMCU的代碼,然后我將一個(gè)白色LED連接到電路板的D1端口,并將所有東西連接到電源。
每10秒鐘看一次LED閃爍是一個(gè)非常好的跡象。
現(xiàn)在電路板還活著,我需要它與互聯(lián)網(wǎng)交談。 Losant提供的主要服務(wù)之一是來(lái)自物聯(lián)網(wǎng)設(shè)備的云托管數(shù)據(jù)。它們提供了一系列非常容易設(shè)置的儀表板小部件,您可以將它們與您的設(shè)備一起使用。
回顧他們的教程我設(shè)置了一個(gè)Losant帳戶,設(shè)置了設(shè)備ID和密鑰(我有插入我的程序代碼并重新編譯回NodeMCU)并在我發(fā)送的溫度數(shù)據(jù)上創(chuàng)建了一些儀表板小部件。
好的一點(diǎn)是,嵌入這些儀表板小部件也很容易進(jìn)入任何網(wǎng)站。
哦,順便問(wèn)一下,有人對(duì)我門(mén)外的溫度感到好奇嗎?
然后,我建立了我的第一個(gè)物聯(lián)網(wǎng)設(shè)備。
目前只有幾個(gè)電子鉆頭坐在面包板上,依靠外部電源,但我的最終目標(biāo)是將它放在一個(gè)更合適的家中,以便我的新創(chuàng)造更適合生活在元素之外,沒(méi)有任何地方可以插入果汁。
第3步:采取網(wǎng)格的氣象站
雖然我很開(kāi)心事情結(jié)果如何,為了給電臺(tái)加電,我仍然需要將它連接到USB電源。由于我想讓氣象站位于室外,我需要找到一種方法來(lái)保持其通電,而無(wú)需將其插入墻上插座。
由于NodeMCU只需要5伏特運(yùn)行,它確實(shí)使它成為電池耗盡的理想選擇。如果它可以用電池運(yùn)行,那么這也意味著電池本身可以用太陽(yáng)能電池充電。
考慮到這一點(diǎn),我去了我的電子樂(lè)高盒子并拿出以下物品:
5伏太陽(yáng)能電池
1安培太陽(yáng)能充電器控制器
三節(jié)AA 3.7伏鋰離子充電電池
三節(jié)AA電池座
0.9-5伏至5伏升壓升壓模塊
各種電線
通過(guò)這些部件,我可以很容易地組裝一個(gè)可以通過(guò)太陽(yáng)能電池為3.7伏鋰電池充電的電路。當(dāng)電池正在充電時(shí),太陽(yáng)能電池也為NodeMCU供電。當(dāng)太陽(yáng)沒(méi)有出來(lái)時(shí),電池通過(guò)5伏轉(zhuǎn)換器模塊為NodeMCU供電。
我開(kāi)始將電線連接到太陽(yáng)能電池的負(fù)極和正極端子,然后焊接另一端的太陽(yáng)能電池。連接到太陽(yáng)能充電器控制器的輸入端子。
幸運(yùn)的是,輸入連接標(biāo)記在充電器的電路板上。
一旦太陽(yáng)能電池連接到控制器,我就連接了將電池座連接到控制器板上的電池端子。
雖然我懷疑一個(gè)3.7伏的電池可能已經(jīng)足夠了,但我決定將三個(gè)電池座并聯(lián)在一起,以便擁有盡可能多的存儲(chǔ)容量可用于NodeMCU - 如果有任何延長(zhǎng)的時(shí)間段,沒(méi)有充足的陽(yáng)光。此外,如果其中一個(gè)電池發(fā)生故障,這也會(huì)給系統(tǒng)增加一些冗余。
我事先已經(jīng)確認(rèn)太陽(yáng)能充電器非常樂(lè)意為3節(jié)電池充電。在我將所有東西永久連接在一起之前。
在連接電池和太陽(yáng)能電池的情況下,最后一步是將5伏轉(zhuǎn)換器連接到充電控制器。再次通過(guò)將電線連接到轉(zhuǎn)換器的負(fù)極和正極端子,然后將導(dǎo)線的另一端焊接到充電器控制器的負(fù)載輸出端子來(lái)完成。
這樣,太陽(yáng)能電源為了確保NodeMCU的建立。
為了確保在連接NodeMCU之前一切正常,我首先安裝電池并將整個(gè)裝置放在陽(yáng)光下。
如果一切都正確連接,我應(yīng)該看到控制器上的紅色狀態(tài)LED亮起 - 這表明電池正在充電。幾個(gè)小時(shí)后,LED變?yōu)榫G色,表示電池已充滿電。
同樣,5伏轉(zhuǎn)換器也顯示紅色LED,表明它正在工作。
對(duì)我來(lái)說(shuō)幸運(yùn)的是,一切都在第一次嘗試時(shí)亮起來(lái)了!
成功刷新,然后插入NodeMCU并讓它開(kāi)始記錄外面的天氣 - 安全在知道該設(shè)備將由于太陽(yáng)而持續(xù)供電。
但是,一旦太陽(yáng)下山,電池只持續(xù)了大約6個(gè)小時(shí),第二天我就無(wú)法讓它們充足電以保持NodeMCU的運(yùn)轉(zhuǎn)。
經(jīng)過(guò)一些額外的研究我發(fā)現(xiàn)NodeMCU在運(yùn)行時(shí)有點(diǎn)費(fèi)力,即使它沒(méi)有做任何實(shí)際的工作。
顯然,這是這些設(shè)備的常見(jiàn)問(wèn)題。但他們確實(shí)碰巧擁有所謂的深度睡眠模式,它可以讓你有效地為NodeMCU供電一段時(shí)間,讓它醒來(lái)做任務(wù)再重新入睡。
這種深度睡眠模式是通過(guò)組合編程代碼來(lái)調(diào)用休眠模式和將復(fù)位引腳連接到NodeMCU上的D0引腳的硬件配置來(lái)實(shí)現(xiàn)的。
復(fù)位引腳用于發(fā)送向D0引腳發(fā)出信號(hào)以觸發(fā)喚醒命令。
這確實(shí)造成了一些問(wèn)題,但是我已經(jīng)在我的代碼中分配了D0引腳以使我正在使用的LED閃爍表明系統(tǒng)正在運(yùn)行。為了解決這個(gè)問(wèn)題,我能夠?qū)4引腳分配為我的LED的閃爍引腳,
然后我刪除了我在程序中的延遲代碼,并在其位置上實(shí)現(xiàn)了一個(gè)命令來(lái)放置NodeMCU每隔30分鐘進(jìn)入深度睡眠狀態(tài)。
基本上,該程序現(xiàn)在將做的是:
登錄Losant網(wǎng)站
發(fā)送一陣數(shù)據(jù)約1分鐘
進(jìn)入睡眠狀態(tài)30分鐘
醒來(lái)再做一遍。
回到我的原始程序,我把它更改為此(更改表明LED指向D0并且更多的睡眠調(diào)用以“新代碼”的注釋突出顯示):
我也改變了LED連接從D0引腳到NodeMCU上的D4引腳。
然后我將復(fù)位引腳連接到D0引腳。
最后,與NodeMCU的連接看起來(lái)像上圖所示的電路圖。
一次我做了必要的布線更改并將新代碼上傳到NodeMCU,我將NodeMCU插回太陽(yáng)能充電器電路。
事實(shí)證明這更成功。
在實(shí)施睡眠模式的情況下,NodeMCU每小時(shí)僅真正開(kāi)啟2分鐘,這使得太陽(yáng)能充電器有足夠的時(shí)間在睡眠周期內(nèi)為電池充電,并最大限度地減少了夜間的電力消耗,因此NodeMCU是
現(xiàn)在我已經(jīng)整理了我的氣象站的電子設(shè)備了,現(xiàn)在我需要為我的氣象站找出一個(gè)合適的外殼,這樣它才能在這些元素中存活下來(lái)。
步驟4:為物聯(lián)網(wǎng)氣象站構(gòu)建史蒂文森屏幕
現(xiàn)在,我已經(jīng)制定了電子解決方案,下一步就是安置一切在一個(gè)耐候的外殼仍然允許車(chē)站進(jìn)入外面的空氣,以確保準(zhǔn)確的讀數(shù)。
基本上我需要建造的是史蒂文森屏幕。
引用維基百科的史蒂文森屏幕是:
“。..。..史蒂文森屏幕或儀器避難所是保護(hù)氣象儀器免受降水影響的避難所或外殼來(lái)自外部源的直接熱輻射,同時(shí)仍然允許空氣在它們周?chē)杂闪魍?。?]它構(gòu)成標(biāo)準(zhǔn)氣象站的一部分。史蒂文森屏幕保存儀器,可能包括溫度計(jì)(普通,最大/最?。瑵穸扔?jì),干濕度計(jì),露點(diǎn),氣壓計(jì)和溫度計(jì)。史蒂文森屏幕也可稱為棉花區(qū)域避難所,儀器避難所,溫度計(jì)避難所,熱屏幕或溫度計(jì)屏幕。其目的是提供一個(gè)標(biāo)準(zhǔn)化的環(huán)境,其中測(cè)量溫度,濕度,露點(diǎn)和大氣壓。..。..“
簡(jiǎn)而言之,它是一個(gè)盒子,里面有孔或槽,可以讓空氣進(jìn)來(lái),但防雨。
我正在研究史蒂文森如何篩選我發(fā)現(xiàn)這些屏幕通常是簡(jiǎn)單的盒子,有雙百葉窗邊。我的屏幕計(jì)劃是盡可能簡(jiǎn)單地構(gòu)建它,同時(shí)保持對(duì)元素的必要保護(hù)。
最后,我碰巧在Weather for Schools網(wǎng)站上找到了一個(gè)簡(jiǎn)單的天氣盒的計(jì)劃。
在查看說(shuō)明之后,我意識(shí)到,通過(guò)一些小的修改,這對(duì)我想做的事情很有效。
為了開(kāi)始構(gòu)建我首先剪出了基本的形狀通過(guò)我在上面的切割圖中使用我已經(jīng)鋪設(shè)的1/2英寸廢棄樺木來(lái)確定切割出的碎片。
當(dāng)我切出側(cè)面碎片時(shí),我還切了一個(gè)一端是15度角。
一旦屏幕的部分被切掉,我就拿起我的卷尺,并在兩側(cè)和門(mén)片中間每2英寸標(biāo)記一個(gè)點(diǎn)。
然后我在我標(biāo)記的每個(gè)位置鉆了一個(gè)1英寸的孔,
這些孔將充當(dāng)通風(fēng)孔,以便讓空氣流到氣象站傳感器。
接下來(lái),我將史蒂文森屏幕的兩側(cè)貼在后面,用一些釘子和木頭膠釘。
然后我在背部的頂部鉆了一個(gè)1/8英寸的孔來(lái)做作為懸掛屏幕的安裝點(diǎn),當(dāng)它準(zhǔn)備安裝時(shí)。
隨著側(cè)面和背面的連接,我將史蒂文森屏幕的底部連接到側(cè)面和背面,但首先我需要鉆一個(gè)小的底部中心有5mm的孔。
這個(gè)洞的原因是給我一些方法來(lái)直觀地指示氣象站何時(shí)傳輸數(shù)據(jù)。您可能還記得,我編程N(yùn)odeMCU在發(fā)送數(shù)據(jù)時(shí)閃爍LED,
我的計(jì)劃是將LED安裝到史蒂文森屏幕的底部,以便我可以直觀地判斷傳輸何時(shí)發(fā)生。
我在底部中心鉆了一個(gè)洞,在底部角落之間標(biāo)記了兩條對(duì)角線,然后鉆出了兩條線在中間相交的洞。
鉆完孔后,底部用膠水和釘子釘固定在屏幕上。
最后,我把史蒂文森屏幕的頂部與我用的方式完全相同。在底部,我需要首先在頂部中心鉆一個(gè)洞,以便讓太陽(yáng)能電池的電線通過(guò)。
鉆孔后,頂部連接到兩側(cè),史蒂文森屏幕后面帶著一些膠水和布拉德釘子。
現(xiàn)在屏幕的主體已經(jīng)構(gòu)建完畢,我花了時(shí)間給屏幕一個(gè)白漆的外套。建議使用白色,這樣太陽(yáng)光線就可以從史蒂文森屏幕上反射出來(lái)而不會(huì)直接影響到盒子的內(nèi)部溫度。
我關(guān)注的下一件事就是門(mén)。我希望能夠打開(kāi)門(mén),以便我可以輕松檢查氣象站的狀況或進(jìn)行任何維護(hù),如更換電池。
為了使門(mén)易于打開(kāi),我決定安裝一個(gè)小木抽屜拉,我碰巧坐在我的垃圾箱里。
為了安裝門(mén)拉,我在門(mén)頂中央標(biāo)記了一個(gè)點(diǎn)并鉆了1個(gè)/那個(gè)位置有8英寸的孔。
然后我把門(mén)拉進(jìn)了鉆孔。
然后我用一些螺絲將鉸鏈安裝在史蒂文森屏幕的底部安裝了門(mén)。
一旦鉸鏈的一半連接到底部,我就連接了另一半鉸鏈到門(mén)的底部邊緣。
一旦我安裝了鉸鏈,我就對(duì)門(mén)進(jìn)行了測(cè)試,以確保我可以很容易地打開(kāi)和關(guān)閉門(mén)。
那個(gè),史蒂文森的畫(huà)面基本完成。
第五步:全部放在一起
該過(guò)程的最后一步是將氣象站的電子設(shè)備安裝到Stevenson屏幕本身。
首先我開(kāi)始通過(guò)收集我在建造太陽(yáng)能電池時(shí)使用的所有各種電子樂(lè)高氣象站的電路。
我開(kāi)始安裝時(shí)首先將電線連接到太陽(yáng)能電池板的正極和負(fù)極端子。
一旦焊料冷卻后,我就在焊點(diǎn)上涂上少量熱膠,以便為焊點(diǎn)提供一些天氣保護(hù)。
然后我將一些熱膠涂在史蒂文森屏幕的頂部,將連接到太陽(yáng)能電池板的電線穿過(guò)屏幕頂部,并將太陽(yáng)能電池板連接到屏幕頂部。
安裝太陽(yáng)能電池板后,下一步是連接太陽(yáng)能充電器控制器板。正如我前面提到的,連接控制器板只需將正極和負(fù)極導(dǎo)線從太陽(yáng)能電池接線到控制器上的輸入端子,將電池座焊接到電池端子,最后將5伏轉(zhuǎn)換器焊接到輸出端控制器的終端。
隨著電子設(shè)備全部接線,然后將它們安裝到史蒂文森屏幕中,方法是用熱膠將它們固定在屏幕背面。
當(dāng)我安裝組件時(shí),我確保在Stevenson屏幕的底部留出足夠的空間,以便安裝NodeMCU和傳感器。
在安裝NodeMCU之前,我首先將LED安裝到屏幕底部,并用一些熱膠將其固定到位。
最后,我將一些熱膠涂在NodeMCU和傳感器模塊的背面,并將其安裝到Stevenson屏幕的背面。
我將LED焊接到NodeMCU板,將NodeMCU插入5伏轉(zhuǎn)換器并安裝鋰電池。
運(yùn)氣好的話,氣象站應(yīng)該正常運(yùn)轉(zhuǎn)。
在包裝之前,我在所有暴露的電子表面上涂上一層熱膠涂層,以起到防風(fēng)雨的作用。
隨之而來(lái)的 - 氣象站已經(jīng)安裝完畢,史蒂文森屏幕已準(zhǔn)備就緒。
為了安裝史蒂文森屏幕,我選擇了一個(gè)可以獲得相當(dāng)大的空氣流動(dòng)的地方,同時(shí)在白天提供足夠的直射陽(yáng)光以保持電池充電。
到目前為止,氣象站工作得很好,并且自從我在大約6個(gè)月前安裝它以來(lái)一直保持通電狀態(tài)。
最后,整個(gè)車(chē)站花了我大約15美元建造 - 考慮從商店購(gòu)買(mǎi)類似氣象站和無(wú)線互聯(lián)網(wǎng)連接的成本,這是非常便宜的,我最終學(xué)習(xí)關(guān)于IOT設(shè)備如何工作的一點(diǎn)點(diǎn)!
-
太陽(yáng)能
+關(guān)注
關(guān)注
37文章
3424瀏覽量
114367 -
氣象站
+關(guān)注
關(guān)注
1文章
759瀏覽量
15705 -
NODEMCU
+關(guān)注
關(guān)注
13文章
289瀏覽量
21479
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論