基于FireBeetle ESP32 IOT單片機(jī)設(shè)計(jì)太陽氣象站
獲取溫度,濕度和壓力,并在互聯(lián)網(wǎng)上顯示它們;一切都由太陽提供能量。
對(duì)于我的第一個(gè)物聯(lián)網(wǎng)項(xiàng)目,我想建立一個(gè)氣象站,并將數(shù)據(jù)發(fā)送到data.sparkfun.com。
小更正:當(dāng)我決定在Sparkfun開設(shè)賬戶時(shí),他們不接受更多連接,所以我選擇了另一個(gè)物聯(lián)網(wǎng)數(shù)據(jù)收集器。
位置
這個(gè)系統(tǒng)將被放置在我的陽臺(tái)上,它將獲取溫度、濕度和氣壓。
FireBeetle
本項(xiàng)目選用的單片機(jī)是DFRobot提供的FireBeetle ESP32 IOT單片機(jī)。
傳感器
所有物理參數(shù)均由BME280傳感器給出。也可以查看維基頁面獲取更多信息。
電源
為了使系統(tǒng)完全“無線化”,兩個(gè)6V的太陽能電池板提供了所需的電力,可以提供2W的電力。電池將并聯(lián)連接。
然后將產(chǎn)生的能量存儲(chǔ)在3.7V聚合物鋰離子電池中,容量為+/- 1000mAh。
DFRobot的太陽能油脂充電器模塊將負(fù)責(zé)能源管理。
組件
連接組件
FireBeetle ESP32物聯(lián)網(wǎng)微控制器由3.7V電池供電,該電池連接到電池輸入端口的太陽能Lipo充電器。太陽能電池連接在壓水堆端口。FireBeetle ESP32 IOT微控制器的Vcc和GND端口連接到太陽能Lipo充電器的Vout端口。
BME280電源由FireBeetle ESP32 IOT微控制器中的3.3V端口提供。通信通過I2C線(SDA / SCL)完成。
為了固定盒子中的所有組件,我使用了一個(gè)perfboard,一些頭和電線。
基本思想是這樣的:
最后的造型:
對(duì)于太陽能電池,我只是用熱熔膠把它們固定在盒子的頂蓋上。因?yàn)楹凶右呀?jīng)有洞了,不需要再做了。
一切都安裝好了,準(zhǔn)備安裝了。
代碼
為了讓您使用我的代碼,需要進(jìn)行一些更改。
第一個(gè)是定義你的wifi網(wǎng)絡(luò)名稱和密碼。
第二種是從Thingspeak.com獲取API Key。我將在下面解釋它。
如果你愿意,你也可以定義一個(gè)新的睡眠間隔。
Thingspeak.com
在您的電子郵件通過驗(yàn)證后,您可以進(jìn)入頻道并創(chuàng)建一個(gè)新頻道。
添加想要上傳的變量。在本項(xiàng)目中,設(shè)置為“溫度”、“濕度”和“壓力”。
向下滾動(dòng)并按“保存頻道”。
在此之后,您可以單擊API密鑰。
并檢索API寫鍵。然后將其添加到代碼文件中。
如果一切正常,您的氣象站可以開始向您的頻道發(fā)送數(shù)據(jù)。
結(jié)論
一如既往,在我的項(xiàng)目中,我將為未來的改進(jìn)留出空間,這并沒有什么不同。
在開發(fā)過程中,我開始關(guān)注系統(tǒng)的能耗。我已經(jīng)將ESP32和BME280置于睡眠狀態(tài),即使如此,我也有大約2mA的消耗!!由于BME280負(fù)責(zé)這一點(diǎn),我可能需要一個(gè)開關(guān)在睡眠模式下完全關(guān)閉模塊。
另一個(gè)有趣的功能是檢索電池電壓。經(jīng)過一些調(diào)查和測(cè)試的一些內(nèi)部功能ESP32沒有工作。所以我可能會(huì)添加一個(gè)分壓器并將其連接到模擬輸入并直接讀取電壓。
本文編譯自hackster.io