該系統是一個基于ESP32NodeMCU的空氣質量監測系統,用于檢查PM、顆粒物(PM)以及濕度以及溫度、海拔和壓力。對位置環境的各個方面進行測試,然后顯示在TFT屏幕上,并使用ThingSpeakIoT(物聯網)平臺。
顆粒物
灰塵和PM會對人體構成健康風險。PM2.5的直徑可以小于2.5微米,PM10的寬度也可以小于10微米。這意味著PM10報告也將包括PM2.5。這兩種顆粒都比人的頭發短,人的頭發直徑約為70微米。
PM10
諸如碎石、磨煤、水泥行業內的回轉窯等操作,以及移動車輛攪動的道路上的灰塵,都會增加PM10的水平。24小時PM10限值為150ug/m3。
PM2.5
它是由任何類型的燃燒產生的細顆粒的結果,例如機動車輛熱電廠、住宅中的木材燃燒、與森林有關的農業燃燒火災以及各種其他工業過程。24小時平均值的PM2.5限值為35ug/m3。
電路
它由ESP32NodeMCUSDS011、BME280ILI9163TFT顯示屏、電阻以及晶體管2N2219組成。ESP32NodeMCU位于該電路的中心部分。
基于物聯網的空氣質量系統示意圖如圖所示:
ESP32NodeMCU:
它是一款集成了Wi-Fi和雙模藍牙的低功耗(MCU)微控制器。它是早期ESP8266微控制器的升級版。ESP32如圖所示。可以使用ArduinoIDE將代碼發送到ESP32NodeMCU。(EFY實驗室使用ESP-Wroom-32版本1.1來測試草圖。)
TFT顯示屏
在測試過程中使用了帶有支持SPI串行總線技術的彩色顯示屏的3.65厘米(1.44英寸)觸摸屏。
SDS011。Nova的粉塵探測器SDS011可以說是在尺寸、精度和成本方面最有效的顆粒物傳感器之一。它帶有一個UART接口,測量精度為0.3ug/m3。工作電壓5V。
BME280
為了讀取溫度和壓力以及相對濕度,采用了經濟實惠的BME280模塊。
2N2219
晶體管2N2219(T1)可用作SDS011中的開關。它的集電極連接到SDS011的GND引腳,發射極連接到電路的地。如果ESP32的15腳為高電平,邏輯T1導通,SDS011通過T1接地。否則SDS011無法接地。
ThingSpeak,一個基于物聯網的平臺
該項目建立在ThingSpeak云計算之上。ThingSpeak是一個開源物聯網應用程序和API,允許您通過LAN使用HTTP協議通過Internet存儲和檢索設備中的數據。它允許開發傳感器記錄軟件、位置跟蹤應用程序以及提供狀態更新的社交網絡。如果您定期將數據從傳感器傳輸到ThingSpeak,它將生成數據,然后將其存儲并實時顯示趨勢。它還具有內置的數學建模作為免費提供的MATLAB文檔。
帳戶和頻道設置。在www.thingspeak.com上設置帳戶和頻道。為此,您需要有一個有效的電子郵件帳戶。該網站將向您發送一封確認電子郵件。按照電子郵件中的鏈接確認您的帳戶并建立一個帳戶。
從這一點開始,您可以制作任意數量的頻道。如果您創建一個頻道,您將收到三個ThingSpeak身份,例如頻道ID、用于寫入的API密鑰和用于讀取的API密鑰。記下這些,以防您將來需要這些以使用程序源。每個通道最多八個傳感器信息,例如PM2.5和PM10溫度和高度、相對濕度和壓力。
每個通道八個數據。每個通道能夠接收來自各種設備的八個數據信號。這意味著,使用ThingSpeakAPI,您將能夠為每個頻道上傳8個數據。然后使用ThingSpeak收集、記錄數據并轉換為趨勢數據,例:https://thingspeak.com/channels/279012
軟件
該項目的軟件(environment_thingspeak.in)是用Arduino編程語言編寫的。PM2.5和PM10都與相對濕度(RH)有關。
因此有必要在軟件(或草圖)中添加一個RH校正來調整讀數。
ESP32上的SDS011。ESP32在ArduinoIDE上運行。由于Arduino是一項尖端技術,因此幾乎所有傳感器都有一個應用程序庫。對于SDS011,有一個現成可用的庫,它使用可直接與ArduinoUno一起使用的SoftwareSerial庫。
ESP32與SoftwareSerial不兼容。它帶有三個UART端口,并利用HardwareSerial連接UART設備。現有的命令和庫可以與硬件串行結合使用,以從傳感器獲取PM信息。這些命令存儲在data.h文件中。它應該與Arduino草圖保存在同一位置,然后通常與草圖一起編譯。
SDS011在SDS011模式下休眠。根據規格,SDS011可以有2mA的休眠電流。傳感器很少處于睡眠模式。此外,與睡眠相關的命令已包含在data.h文件中,以便您進行測試。但是,GPIO13(第15腳)用于接通NPN晶體管(2N2219)以確保SDS011在活動階段保持運行,然后將其切換到斷電模式。
我正在將程序上傳到ESP32。然后一切都準備好由您執行。將設備連接到PCB或Veroboard以實現通用目的。連接到ESP32的USB電源。
啟動ArduinoIDE并添加ESP32庫和任何其他相關庫。打開Arduino代碼(environment_thingspeak.info)。
在開始草圖時更改或提供Wi-FiID和密碼。將ThingSpeak頻道編號替換為您的頻道編號以及API密鑰和API密鑰。
通過選擇Tools(r)Board選項下方的下拉菜單來選擇ESP32DebModule。之后,在Tools(r)Port選項下方的下拉菜單中選擇正確的USB端口。按上傳。
如果一切正常,您的程序將開始通過ESP32板進行通信,并將代碼上傳到ESP32MCU。
幾分鐘后,您將能夠看到PM2.5或PM10以及TFT顯示屏上顯示的其他信息。類似的數據將顯示在Arduino的串口監視器上。
在任何Internet瀏覽器中啟動ThingSpeak頻道。您的智能手機瀏覽器也可以使用。數據完美堆疊,如圖所示:
測試
空氣質量監測系統實際尺寸的PCB布局如圖所示:
如果一切正常,您就能觀察空氣質量監測器TFT顯示屏上正確的值。
可能的拓展
項目中SDS011由5V供電。但是,您可以將2節3.7V鋰離子電池與極小的線性穩壓器(例如7805)一起使用,以降壓至5V。
您還可以使用一個極小的轉換器將電壓提升到1.5V至5V。您可以使用一節鋰聚合物電池和轉換器,使其成為便攜式設備。
-
mcu
+關注
關注
146文章
17841瀏覽量
360504 -
質量監測系統
+關注
關注
0文章
5瀏覽量
5606 -
ESP32
+關注
關注
20文章
1007瀏覽量
18839
發布評論請先 登錄
【Tisan物聯網申請】室內空氣質量監測系統
STM32空氣質量檢測應用教程
【Thunderboard Sense試用申請】移動空氣質量監測站
什么是空氣質量網格化監測?
怎樣去設計基于STM32的空氣質量監測系統
基于單片機的空氣質量監測的設計資料分享
空氣質量監測站的用處是什么
如何利用ESP8266實現便攜式空氣質量監測站的設計

評論