本作品為設計一個具有物聯網功能及數據監控與量測的插座,透過電力線傳輸(Power-line communication)技術並且利用居家現成的電力線網路形成居家電力線區域網路(LAN),解決家中網路佈線及無線網路訊號強度的問題。我們透過設計一個電力線網路控制伺服器去控制電力線網路上的交通,進而與各個插座終端進行控制與交換資料,並且設計一個網路雲端伺服器及易於使用的人機介面之使用者APP與電力線網路伺服器作為溝通,讓使用者可以簡單的透過APP來控制與監控家中各個插座所在的環境資訊及用電資訊,來達到智慧家庭(smart home)的應用。
智慧家庭(smart home),是家庭系統的整合,家電結合了網路系統、家居照明控制、家庭數據監控等等。
本作品利用盛群HT66F2390微控制器設計一個具有物聯網功能及數據監控與量測的插座,透過電力線傳輸技術(Power-line communication)將家庭中各個插座連接形成一個區域網路(LAN),並將各個插座的資訊透過電力線網路控制伺服器彙整,並且統一透過網路收發,使用者只須透過APP則可以取得家中各個插座的資訊與控制。
利用家中現成的電力線網路可以做到電源供電、訊息傳輸的功能,可以省下布線的空間與費用,也能解決無線網路強度的問題,使用者只須將家電插在智慧插座上,則可以讓所有的家電智慧自動化與雲端化,來達到智慧家庭(smart home)的應用。
工作原理
工作方法
利用電力線傳輸技術,將各個插座端點的資訊透過電力線將訊息傳送至電力線網路控制伺服器,並且統一由電力線網路控制器進行網路的收發訊息與控制,使用者只須利用APP與電力線網路控制伺服器進行控制,則可以得到家中各個插座端點的訊息與控制權。
作品功能
本作品主要功能為,數據量測、插座智慧化、APP遠端控制及數據監控、具電力線傳輸技術,四大特色。
數據量測
插座端點具有量測溫度、濕度、可燃性氣體、用電量之資訊的功能,並同時將數據透過電力線網路上傳至網路。
插座智慧化
插座端點具有數據的監控及判斷,並擁有自動開關插座的功能。
APP遠端控制及數據監控
作品支援使用者可以透過APP遠端監控各
個插座的環境資訊,也可透過APP進行設定,例如定時開關插座、電流過載數值、推播設定等。
具電力線傳輸技術
作品透過電力線傳輸技術將資訊上傳至電力線網路[2,3],使用方便,只需將本作品之插座插上居家電力插座後即可連上網路,解決家中網路佈線及無線網路訊號強度的問題。
MCU主要核心功能
本作品之插座終端與電力線網路控制伺服器皆使用HT66F2390作為主要控制器[1],使用了程式記憶體(Program Memory)、特殊功能暫存器(Special Function Register)、中斷控制電路(Interrupt)、看門狗計時器(Watchdog Timer)、計時模組(Standard Type TM)、輸入/輸出(Input/Output)、通用非同步收發傳輸器(UART)、類比數位轉換電路(Analog to Digital Converter)、電子抹除式可複寫唯讀記憶體(E EPROM),共有9種功能。
作品結構
系統架構
本作品利用MCU設計一個具有物連網傳輸的智慧插座,插座具有監控及量測插座周遭環境的溫溼度、可燃性氣體及電源使用量的功能,並結合電力線傳輸技術將家中各個插座端的資訊透過電力線形成一個居家電力線網路,作品分別為三個主要部分,分別為插座終端、電力線網路控制伺服器、雲端伺服器及使用者APP三個部分,系統架構如圖一所示。
插座終端
插座終端為本作品的插座本體,利用HT66F2390 MCU為主要控制器,插座終端為DHT11溫濕度感測器、MQ-9氣體感測器、ACS712電流感測器、CJ-06電力線通訊收發模組而組成的系統,插座擁有量測溫溼度、可燃性氣體、電流大小數據之功能,同時也擁有監控數據超標之警示,自動切斷電源等功能,而在數據與狀態收集後會透過電力線通訊收發器將數據上傳至電力線網路,插座終端系統架構如圖二所示。
電力線網路控制伺服器
電力線網路控制伺服器為了因應電力線網網路在同一個載波頻率上只能進行雙向半雙工的通訊,因此設計這個電力線網路控制伺服器去對電力線網路上的資訊做交通控制,使電力線網路上的資訊可以正常通訊,同時結合ESP8266 Wi-Fi模組建立與雲端伺服器作為對外的網路連線,讓使用者可以透過APP與雲端伺服器連線,進而建立與電力線網路上各個設備的訊息溝通,達到遠端監控及控制的功能,系統如圖三所示。
雲端伺服器及使用者APP
雲端伺服器是由MYSQL資料庫、網路控制與資料伺服器及mosquitto MQTT broker所組成,負責接收來自電力線網路控制伺服器的資訊,並將訊息解讀後儲存於資料庫中,同時將訊息轉發至使用者APP,使用者則可以透過APP得知各個插座終端的訊息並且下達控制指令,雲端伺服器在接收APP訊息後會將指令發送至電力線網路控制伺服器,並且透過電力線網路控制伺服器將訊息傳送至各個插座終端,雲端伺服器架構圖如圖四所示。
ESP8266 WI-FI模組
ESP8266是一款超低功耗的UART-Wi-Fi傳輸模組,擁有業內極富競爭力的封裝大小和超低能耗技術,專為移動裝置和物聯網應用設計,可將用戶的物理裝置連線到Wi-Fi無線網路上,進行互聯網或區域網路通訊,實現聯網功能。在本次作品中利用ESP8266 Wi-Fi模組與MQTT伺服器建立連線,來達到MCU與網路溝通的功能。
DHT11溫溼度感測器
DHT11為一個溫溼度感測模組,利用DHT11
內部數位類比轉換器轉換為數位訊號後傳送至HT66F2390 MCU進行溫溼度數值的讀取,一次完整的資料為40bit,資料格式為8bit濕度整數資料 + 8bit濕度小數資料 + 8bit溫度整數資料 + 8bit溫度小數資料 + 8bit較驗碼,MCU發送起始訊號後,DHT11發送回應資料,送出40bit之資料,通訊流程如圖五所示。
MQ-9氣體感測器
MQ-9為一個氣體感測器,他擁有檢測一氧化碳,甲烷與丙烷之有毒可燃氣體,當檢測到氣體濃度的不同則會輸出相對應的類比電壓,偵測範圍一氧化碳為10~1000ppm,甲烷與丙烷為100~1000ppm,我們利用MCU之A/D轉換獲取相對應的氣體濃度。
ACS712電流感測器
ACS712是一個線性的霍爾感測器,用來偵測電流,ACS712霍爾感測IC透過感知電流流過銅導體所產生的磁場,並將數據轉換成類比訊號。本作品利用型號ACS712ELCTR-05B-T的感測器,並可以測量±5A之AC與DC電流,每1A之輸出電壓變化為185mV,無檢測電流通過時,輸出電壓=VCC/2,輸出特性如圖六所示。
圖六 : ACS712ELCTR-05B-T輸出特性表 |
|
CJ-06電力線傳輸通訊模組
CJ-06是一款由才智科技所研發的電力線傳輸通訊模組,可以使用於250V以下50Hz/60Hz中進行雙向半雙工通訊,模組擁有提供9600bps的UART通訊界面,內建CRC-16的錯誤檢測可以去去除錯誤封包,CJ-06使用Quadrature phase-shift keying調變,在惡劣環境下仍能保有優異的傳輸性能,CJ-06的相關指標如圖七所示。
Mosquitto MQTT伺服器
Mosquitto是一個開放原始碼MQTT伺服 器。MQTT是一種 machine-to-machine(M2M)頻寬很低的通訊協定,可以讓各種設備互相溝通,於本作品中Mosuitto MQTT將擔任MCU,網路伺服器及使用者APP主要溝通的媒介。
3.7.1 MQTT架構
在MQTT 架構中,分為三種 Publisher(發 送訊息者)、Subscriber(接收訊息者)、 Broker(轉送訊息者)。而不同的訊息可能會需 要傳遞給不同的接收者,所以訊息在發送的時 候,發送者(publisher)必須標示這則訊息的 主題(topic),而轉送訊息者(broker)則會依照這則訊息的主題,將訊息傳遞給有訂閱該 主題的接收者(subscriber)。
網路控制與資料伺服器
於本次作品中利用Python撰寫一個伺服器,負責透過MQTT接收與控制來自MCU及使用者APP的資要,並將部分數據資訊儲存於MYSQL資料庫中,用來提供使用者做為歷史資訊的查詢。
通訊協定
在本作品中插座端點與電力線網路控制伺服器需在電力線網路上進行溝通,所以我們制訂了通訊協定,分別為S2N(Server to Node)及N2S(Node to Server)兩種通訊協定,通訊方式如圖九所示,兩者通訊協定皆以frame為一個單位,而frame包含的內容將由下方介紹。
S2N通訊協定
電力線網路控制伺服器(Server)在對各個插座端點(Node)進行指令下達皆須透過S2N協定進行溝通,而S2N協定frame所包含之資訊如下列所標示。
offset
|
name
|
0
|
Start Signal
|
1
|
Node Address
|
2
|
Function Code
|
3
|
Data Byte High
|
4
|
Data Byte Low
|
5
|
End of frame
|
表一:S2N之frame定義
Start Signal: 為frame之起始訊號,資料長度為1byte,資料固定為0x44。
Node Address: 資訊frame傳送之目標位置,資料長度1byte,資料定址從0x00至0xff。
Function Code: 電力線網路控制伺服器下達給插座端點之指令,如開啟開關、關閉開關、定時關機等14種指令,資料長度為1byte。
Data Byte: Data Byte為Function Code指令所附加之值,例如設定定時之時間、電流之臨界值等,資料長度為2byte分別為Data Byte High與Data Byte Low。
End of frame: S2N之frame結束位元,資料長度為1byte,資料固定為0x0d。
N2S通訊協定
N2S為插座端點(Node)回傳資訊給電力線網路控制伺服器(Server)的通訊方法,而N2S協定frame所包含之資訊如表二所示。
offset
|
name
|
0
|
Start Signal
|
1
|
Node Address
|
2
|
Hum_Int
|
3
|
Temp_Int
|
4
|
Temp_Dec
|
5
|
ppm_H
|
6
|
ppm_L
|
7
|
Amp_H
|
8
|
Amp_L
|
9
|
Node Status
|
10
|
Switch Status
|
11
|
End of frame
|
表二:N2S之frame定義
Start Signal: 為frame之起始訊號,資料長度為1byte,資料固定為0x44。
Node Address: 插座終端(Node)自身的位置,資料長度1byte,資料定址從0x00至0xff。
Hum_Int:插座終端擷取之濕度整數值,資料長度為1byte。
Temp: 插座終端擷取之溫度值,資料為溫度整數值與溫度小數值,資料長度為2byte,分別為Temp_Int與Temp_Dec。
ppm: 插座終端擷取之氣體濃度數值,資料為高位元氣體數值(ppm_H)與低位元氣體數值(ppm_L)之結合,資料長度為2byte。
Amp: 插座終端擷取之電流數值,資料為高位元電流數值(Amp_H)與低位元電流數值(Amp_L)之結合,資料長度為2byte。
Node Status: 插座終端的狀態值,如電流過大、可燃性氣體濃度超標等5種狀態,資料長度為1byte。
Switch Status: 插座終端的插座開關狀態、狀態為開或關兩種態,資料長度為1byte。
End of frame: N2S之frame結束位元,資料長度為1byte,資料固定為0x0d。
軟體架構
軟體架構分別為插座終端程式、電力線網路控制伺服器控制程式以及網路伺服器及APP程式三個部分。
插座終端MCU主控程式
上電後程式開始分別擷取電流數值、溫溼度值及氣體濃度數值,並判斷是否超過使用者設定之數值,若超過設定數值MCU會自動開啟或關閉插座輸出,並將數值及狀態存入暫存器,並且將數值透過N2S協定將狀態及數值傳回電力線網路控制伺服器,流程如圖十所示。
插座終端S2N協定接收中斷副程式
MCU透過硬體UART接收到資料之後,會進入中斷副程式,判斷資料是否為S2N通訊協定,若確定MCUS2N通訊協定無誤並且是MCU之Address,則會執行S2N通訊協定所敘述的功能,程式流程如圖十一所示。
一
電力線網路控制伺服器MCU主程式
電力線網路控制伺服器負責發送S2N協定,並且接收來自插座終端傳的訊息將其上傳至雲端伺服器,也會檢查是否有來自WI-FI的訊息,並將訊號利用N2S協定傳送至電力線網路,程式流程如圖十二所示。
圖十一 : 插座終端S2N協定接收中斷副程式流程圖 |
|