CodeFactor GitHub last commit (branch) GitHub Created At GitHub branch status
基於esp32打造的空氣盒子 氣象站 thingspeak 網站
-
具備測量 pm1、pm2.5、pm10、濕度、溫度、大氣壓儀器及本體鋰電池電壓監測
-
於每日世界協調時 00:00, 06:00, 12:00, 18:00 將資料上傳 thingspeak 資料庫
-
18650 鋰電池供電
- esp32 NodeMCU-32s v1.3 ai-thinker
- pms5003t
- BMP280
- 迷你DC-DC四段升壓板
- 360K ohm 電阻 *2
- 按鈕、單/多芯線、杜邦線、電源插座(2.1mm)
-
空氣盒子主控板
-
屬性 :
項目屬性 值 單位 工作電壓 $3ドル.3$$ $$V$$ WiFi頻段 $2ドル.4$$ $$GHz$$ 通訊鮑率 $9600ドル$$ $$bps$$
-
pm1、pm2.5、pm10、溫度、濕度監測
-
使用UART交互接口
-
pms.sleep() 下仍消耗不少電,成為 deepsleep 下的主要耗電者
-
機器端接口為2.0排針
-
屬性 :
項目屬性 值(thingspeak上傳倍率) 單位 交互電壓 3.3 $$V$$ 工作電壓 5 $$V$$
-
溫度、氣壓監測
-
使用I2C交互接口
-
屬性 :
項目屬性 值(thingspeak上傳倍率) 單位 交互電壓 3.3 $$V$$ 工作電壓 3.3 $$V$$
-
鋰電池供電模組
-
使用5V(開開)降壓模式
-
鋰電池沒電(輸入低於 2.5V 時)時自動切斷
-
屬性 :
項目屬性 值 單位 輸入電壓範圍 2.5 ~ 5 $$V$$ 輸出電流 1 $$A$$ 輸出電壓(設為) 5 $$V$$ 空載輸入端電流 1 $$mA$$
| 麵包板號 | 項目屬性 | esp32-pin | 設備 | 設備-pin |
|---|---|---|---|---|
| 30 | bmp280供電 | 3V3 | bmp280 | VCC |
| 26 | 電壓監測 | GPIO34 | 360kohm*2 | 麵包板上排負極軌 |
| 17 | PMS5003t接地 | GND | PMS5003t | GND |
| 12 | esp32供電 | VIN(5V) | 升壓板 | +5V |
| 15 | 外部喚醒接口 | GPIO15 | 按鈕(s1) | 麵包板下排正極軌 |
| 19 | PMS5003t UART | GPIO16 (RX2) | PMS5003t | TX |
| 20 | PMS5003t UART | GPIO17 (TX2) | PMS5003t | RX |
| 24 | esp32接地 | GND | 升壓板 | 麵包板上排負極軌 |
| 25 | bmp280 SDA | GPIO21 (I2C-SDA) | bmp280 | SDA |
| 28 | bmp280 SCL | GPIO22 (I2C-SCL) | bmp280 | SCL |
| 30 | bmp280 接地 | GND | bmp280 | GND |
-
程式內未含token.h標頭檔,請自行創建txt檔複製以下文字,填入各項資訊並將檔名改為token.h,否則程式將出現編譯錯誤。
#define CHANNEL_ID 1231233 // ur channel id #define CHANNEL_WRITE_API_KEY "KKKKKKKKKKKK" // ur CHANNEL_WRITE_API_KEY #define ssid "213123" // ur ssid #define pw "" // ur password (沒有就填"")
-
插入一個電池電壓大於2.5V的18650電池,以 2.1mm DC 電源插頭連接
-
喚醒方式分為以下三種:
-
硬體重置(CPU & RTC reset):
-
第一次上電,或按下 EN 鈕時觸發
-
觸發時啟動各硬體並聯網,擷取數據並同步RTC時鐘,但不傳送資料
-
-
RTC時鐘喚醒:
-
於每日世界協調時 00:00, 06:00, 12:00, 18:00 (即台灣時間 02:00, 08:00, 14:00, 20:00 ) 自動喚醒
-
觸發時啟動各硬體並聯網,擷取數據並傳送資料,但只於 01:00 ~ 02:59同步RTC時鐘
-
-
外部喚醒:
- 觸發時啟動各硬體並聯網,擷取數據並同步RTC時鐘,傳送資料
喚醒後啟動 PMS5003t 及 bmp280 並讀取電池電壓,連線後等待 PMS5003t 風扇運轉滿 30 秒並讀取數據,上傳後同步RTC時鐘再進入深度睡眠等待下次時鐘喚醒
-
-
喚醒時將嘗試連線200秒,如無法連接則將跳過所有需要網路的工作( RTC 同步、傳送資料到 thngspeak 等)
-
上傳至 thingspeak 網站,以折線圖標示
-
部分資料單位倍率如下:
項目屬性 值(thingspeak上傳倍率) 單位 氣壓 $$\times{10^{-1}}$$ $$hpa$$ 溫度 $$\times{10^{-1}}$$ $$\degree{C}$$ 空氣品質 $$\times{1}$$ $$\mu{g/m^3}$$ 濕度 $$\times{10^{-1}}$$ $$%$$ 電池電壓 $$\times{10^{-1}}$$ $$V$$
-
主控板上的 micro USB 接口已經插了一條 USB 線,即通訊介面為 USB-A 公頭,連接手機後可用 USB terminal app 監控設備狀況,連接 Arduino IDE 亦可上傳程式
-
鋰電池輸出電壓範圍在 2.7 到 4.2V 間,升壓板最低輸入電壓為 2.5V,應在鋰電池電壓低於 2.7V 時更換並充電,以免造成過放