[應用] 環境品質監控系統

系統架構

由環境監測元件和運算控制元件所組成的硬體,如圖一所示,再搭配流程控制軟體組成一個完整的系統。每個環境監測元件透過無線網路的方式連接到運算控制元件,將每處環境的數值傳給運算元件,再由運算元件計算出最佳的環境狀態,進而控制電力、空調或風扇等周邊系統。
圖一:環境監控系統方塊圖

圖二:環境監控系統實際架設情況

上圖二是環境監控系統實際架設的情況,分別配有不同ID的兩個環境監測元件,圖下方有一個配置網路的運算控制元件。因此,運算控制元件可以收到來自不同ID的環境監測數值,搜集道這些數值後可針對環境變化進行最佳化的運算,調整適當的電力控制或空調系統。圖三是用來監測環境的元件方塊圖,由Arduino控制器做為元件的核心處理器,晶片上提供常用的通訊介面,因此相當方便再搭配周邊的感測元件。

圖三:環境監測元件的內部方塊圖


下圖四是元件的實體電路,我們可以觀察LCM的數據,LCM上面會顯示當時感測器量測到的溫度(單位: 攝氏C)、溼度(單位: %)、照度(單位: 流明)CO2濃度(單位: ppm)、空氣品質、人體移動偵測等。WiFi連線的狀態也會顯示在上面,每個數字代表的狀態如下:
0:指令錯誤,未收到回應。
2:已連接到WiFi AP,獲得IP位址,但還未建立TCP
3:已建立TCP連線。
4:斷開網路連線。
5:未連接到WiFi AP
圖四:環境監測元件的實體圖


        下圖五是環境監控系統的主控制器內部架構圖,ARM控制器透過RS-485介面與WiFi模組相連接,用來接收來自環境監測元件的資料。主控制器具有ethernet網路介面,可與外部的設備相通訊,利用工業標準Modbus TCP通訊協定進行資訊交換。

圖五:主控制器的系統架構圖

規格說明

主控制器的系統規格如下:
a) ARM核心運算時脈達到120 MHz,具有10/100 Mbps網路通訊 
b)
支援Modbus RTU Modbus TCP通訊,可以連接HMI人機介面 
c) 4
秒內迅速開機,並且開始執行流程 
d)
可同時支援連接DIO板、AIO板或RS-232 
e)
內建RTC時鐘 
f)
數位I/O板:12DI8DO(包含relay) 

通訊協定

主控制器對外的通訊協定是以Modbus TCP模式進行,外部的電腦可以這樣的協定來撈取目前感測器的資料。主控制器的Modbus機台站號是用IP位址的最後一碼來當站號,比如說主控制器的位址為192.168.1.100,因此其Modbus站號為100

Modbus通訊協定中定義了很多暫存器的位址,但是我們真正用到的位址只有幾個。目前感測器的資料定義在類比輸入暫存器(analog input)裡面,如下圖所示,Modbus ID的起始位址從1開始。我們把AI-1~5定義為第一個感測器的數據資料,AI-6~10定義為第二個感測器的數據資料。每個感測器資料的排列順序分別為AI-1:溫度(實際溫度x10)AI-2:濕度(實際濕度x10)AI-3:照度、AI-4CO2 ppmAI-5:空氣品質數值,AI-6/10以此類推。

參考資料

[2] DHT22溫濕度感測元件
[3] BH1750照度感測元件
[4] MQ135空氣品質感測元件
[5] MG811 CO2感測元件
[6] MTARDIRF-PIR人體移動感測元件
[7] ESP8266 WiFi模組 http://espressif.com/zh-hans

留言

此網誌的熱門文章

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[筆記] Raspberry Pi 樹莓派的軟體開發

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

[應用] 藍芽 BLE client/server 架構:BLE remote controller

[筆記] Visual Studio 遠端偵錯的設定步驟

[應用] STM32 DFU (Device Firmware Upgrade)

[模組] 無線資料傳輸:nRF905 和 nRF24L01 (以 Arduino 為控制器)