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