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

解密交通氣象站:數(shù)據(jù)驅(qū)動的交通氣象服務(wù)革新

智慧校園:氣象站引領(lǐng)氣象知識科普
自動氣象站的工作原理與應(yīng)用
綠色校園,智慧氣象:走進(jìn)我們的氣象站
自動超聲波氣象站:智慧氣象的重要組成部分
多功能便攜式氣象站,監(jiān)測氣象變化
校園內(nèi)環(huán)境監(jiān)測氣象站

車載小型氣象站:實時、準(zhǔn)確地監(jiān)測氣象
區(qū)域生態(tài)自動氣象站:數(shù)據(jù)監(jiān)測與傳輸

校園氣象站高校科普論文氣象站多功能氣象站

基于啟揚IMX8MPlus核心板的自動氣象站應(yīng)用解決方案

開源項目!自制一個太陽能電子墨水屏氣象站

評論