本作品为设计一个具有物联网功能及数据监控与量测的插座,透过电力线传输(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协定接收中断??程式流程图 |
|