獲取溫度、濕度和壓力,并通過(guò)互聯(lián)網(wǎng)顯示;一切都由太陽(yáng)提供動(dòng)力。
背景
對(duì)于我的第一個(gè) IoT 項(xiàng)目,我想構(gòu)建一個(gè)氣象站并將數(shù)據(jù)發(fā)送到 data.sparkfun.com。
小更正:當(dāng)我決定在 Sparkfun 開設(shè)賬戶時(shí),他們不接受更多的連接,所以我選擇了另一個(gè)物聯(lián)網(wǎng)數(shù)據(jù)收集器 thingpeak.com。
地點(diǎn)
該系統(tǒng)將放置在我的陽(yáng)臺(tái)上,并將檢索溫度、濕度和氣壓。
構(gòu)建
本項(xiàng)目選用的微控制器是 DFRobot 提供的 FireBeetle ESP32 IOT 微控制器。
請(qǐng)查看DFRobot wiki 頁(yè)面以獲取有關(guān)此微控制器以及如何使用 Arduino IDE 上傳代碼的更多信息。
所有物理參數(shù)均由BME280 傳感器給出。
要將系統(tǒng)完全“無(wú)線化”,所需的電源由兩塊 6V 太陽(yáng)能電池板提供,可提供 2W 的功率。電池將并聯(lián)。
然后將產(chǎn)生的能量存儲(chǔ)在容量為 +/- 1000mAh 的 3.7V 聚合物鋰離子電池中。
DFRobot的 Solar Lipo Charger 模塊將負(fù)責(zé)能源管理。
成分
連接組件
FireBeetle ESP32 IOT 微控制器由 3.7V 電池供電,該電池連接到電池輸入端口中的太陽(yáng)能鋰電池充電器。太陽(yáng)能電池連接在 PWR In 端口中。FireBeetle ESP32 IOT 微控制器的 Vcc 和 GND 端口連接到 Solar Lipo 充電器的 Vout 端口。
BME280 電源由 FireBeetle ESP32 IOT 微控制器中的 3.3V 端口供電。通信通過(guò) I2C 線路 (SDA / SCL) 完成。
為了修復(fù)盒子中的所有組件,我使用了穿孔板、一些接頭和電線。
基本思想是這樣的:
最后的樣子:
對(duì)于太陽(yáng)能電池,我只是用熱膠將它們固定在盒子的頂蓋上。由于盒子本身已經(jīng)有洞,所以不需要再鑿更多。
一切都已安裝并準(zhǔn)備安裝。
代碼
為了讓您使用我的代碼,需要進(jìn)行一些更改:
第一個(gè)是定義您的 wifi 網(wǎng)絡(luò)名稱和密碼。
第二個(gè)是從Thingspeak.com獲取 API 密鑰。我將在下面解釋。
如果您愿意,您也可以定義一個(gè)新的睡眠間隔。
Thingspeak.com
如果您沒有 Thingspeak 帳戶,則需要訪問(wèn)www.thingspeak.com并自行注冊(cè)。
驗(yàn)證您的電子郵件后,您可以轉(zhuǎn)到頻道并創(chuàng)建一個(gè)新頻道。
添加要上傳的變量。對(duì)于這個(gè)項(xiàng)目,溫度、濕度和壓力。
向下滾動(dòng)并按“保存頻道”。
在此之后,您可以單擊 API Keys。
并檢索 API 寫入密鑰。然后將其添加到您的代碼文件中。
如果一切正常,您的氣象站可以開始向您的頻道發(fā)送數(shù)據(jù)。
結(jié)論及拓展
在我的項(xiàng)目最后,我將一如既往地為未來(lái)的改進(jìn)留出空間,這并沒有什么不同。
在開發(fā)過(guò)程中,我開始關(guān)注系統(tǒng)的能耗。我已經(jīng)讓 ESP32 和 BME280 進(jìn)入睡眠狀態(tài),即便如此,我的耗電量也只有 2mA 左右。由于 BME280 負(fù)責(zé)這個(gè),我可能需要一個(gè)開關(guān)在睡眠模式下完全關(guān)閉模塊。
另一個(gè)有趣的功能是檢索電池電壓。在對(duì) ESP32 的一些內(nèi)部功能進(jìn)行了一些調(diào)查和測(cè)試后,沒有任何效果。所以我可能會(huì)添加一個(gè)分壓器并將其連接到模擬輸入并直接讀取電壓。
-
太陽(yáng)能
+關(guān)注
關(guān)注
37文章
3373瀏覽量
114015 -
氣象站
+關(guān)注
關(guān)注
1文章
736瀏覽量
15619 -
ESP32
+關(guān)注
關(guān)注
17文章
950瀏覽量
16992
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論