【IoT毕设】ESP8266模块+机智云AIoT+智能插座设计
摘要:为了让插座实现远程控制,并能够统计当前总线电压以及电流并实现对动态功率的计算,设计了一种基于ATmega328P和机智云物联网平台的智能插座。
该设计系统由ESP8266 WiFi模块、HWPT01模块、ZHT118F模块、CS5460模块等组成。利用MQTT协议机智云物联网平台实现协作对接,同时配置Web端数据,利用APP端进行远程控制。测试结果表明,系统可以远程控制智能插座开关,以及实时实时检测电流、电压、功率等参数。测试结果表明,系统可以远程控制智能插座开关,以及实时实时检测电流、电压、功率等参数。
0 引 言
随着物联网技术以及科技的发展与进步,基于物联网技术的智能插座逐渐进入市场[1]。该插座能够接入网络并实现手机等设备的远程开关机操作,实现对热水器、传统空调等电器设备的远程控制[5]。但当前,此类插座功能单一,仅能够实现远程开关的设计,而无其他功能,对于安全问题尚未有明显的改进,因此,仍具有一定的局限性。
当前的物联网插座仅适用于墙面安装的插座,而对于拓展用的插排,尚未有成熟的产品上市。因此,本文提出了一种基于物联网的智能插座设计,该设计以国产芯片ATmega328P作为主控制器,对接机智云平台,结合Android APP和Web端实现对插排的远程控制[4]。本设计以双孔插排为例,每个插孔均具有独立的控制开关,可实现对插口的独立控制。
同时,系统具有电压以及电流监控功能,能够实时监控插排的整体电压电流变化并计算实时功率,当功率过载时系统能够发出警报,若一定时间内功率未降低,则系统将强行关断插座,防止发生火灾。智能插排的发展对于安全用电具有一定的实际意义。
1 硬件电路设计
1.1 系统设计
本次设计采用内置模/数转换器的ATmega328P单片机作为智能插排MCU核心,它通过控制ESP8266无线WiFi模块、隔离继电器、LCD显示器、报警蜂鸣器并结合电流传感器ZHT118F、电压传感器HWPT01、电压电流采集器实现了对智能插排的远程控制以及过载警报及功能。整体系统结构图如图1所示。
图1 系统结构图
用户可以在手机APP端对智能插排进行远程控制,实现自动联网,远程控制开关,上传实时电流、电压和功率等参数信息至云平台,过载警报等功能。
1.2 各模块电路设计
(1) 主控模块
本次设计选用内置有模/数转换器的Atmel公司的ATmega328P单片机作为主控制器,该单片机内置有10位的模/数转换器,可满足本次设计需求。
(2) ESP8266模块
ESP8266模块成本低、体积小,方便嵌入到设备中,可运行LwIP协议,支持AP、STP、AP+STP三种模式[2]。它集成了 net、PWM、I2C、GPIO接口,而且支持 LUA 脚本语言开发,大大降低了开发难度。
(3) 电压传感器模块
本次选用的电压传感器为深圳同立源公司的HWPT01,它具有一次电压变二次电压、保护电路、测量等作用。
(4) 电流传感器模块
本次测量电流的模块选用ZHT118F,匝数比为1000∶1,最大可感测5 A电流,由于其输出电流信号同样为交流信号,因此,通过整流电路转换为直流信号后被单片机读取。
(5) 电压/电流采集电路设计
本设计采用独立的电压以及电流采集芯片实现对电压以及电流的采集[1],该芯片为CS5460,它是一款常用的电能计量芯片,能够实现对直流以及交流电压/电流的采集,内置的24位高精度ADC也能满足采集精度要求。CS5460芯片原理图如图2所示。
图2 CS5460电路原理图
(6) 电磁继电器控制模块
本次设计使用的继电器隔离电压为250 V、最大电流为10 A,为保证电路安全,通过光耦电路实现信号隔离。
2 系统软件设计
2.1 显示程序设计
显示屏幕通过SPI总线与单片机相连,单片机不具有硬件SPI总线设计,编译器集成有软件SPI库文件,仅需按照库文件的需求初始化SPI总线,即可使用SPI总线通信。设置显示屏显示时,首先应设置显示屏初始化,发送相关控制指令至显示屏,设置光标移动方向以及初始显示位置等信息后才可进行显示操作,显示程序流程如图3所示。
图3 显示程序设计流程图
先需进行SPI总线的初始化,之后向SPI总线发送显示屏的控制指令,完成对显示屏的设置工作后,向显示屏发送数据指令,之后显示屏显示内容,完成一次显示,再次显示时无须重新设置显示屏,可直接移动光标至指定位置后,发送显示数据即可实现显示屏的显示功能,完成操作。
2.2 电压/电流感测及警报程序流程设计
电压/电流的感测通过CS5460实现,该电路通过一组四线制通信总线实现与系统的通信,系统通过对芯片的寄存器操作实现对数据的读取,其数据读取程序流程如图4所示。
图4 电压/电流感测程序流程
进行电压以及电流数据读取时,首先初始化通信总线,之后通过寄存器控制命令将读取电压/电流的控制指令写入芯片的寄存器,之后芯片将启动转换并将数据发送至输出寄存器,系统通过读取输出寄存器的值即可获知电路的电压以及电流数据,然后转换为实际的电压/电流值,并相乘计算有功功率。计算完成后,将相关数据发送至显示器显示,实现对电压/电流的感测以及功率的计算。系统带有功率报警功能,当功率超过1100W时,系统将发出警报提醒,若一定延时后仍未关闭插座,则系统将强制关闭插座以保障用电安全。
2.3 联网服务器设置
本文拟使用机智云物联网平台的服务器设计,该平台属于开放式平台,可以免费接入10台设备进行测试,在产品发布之前将免费提供使用服务,适合本次设计使用[8]。
机智云平台对ESP8266模块具有很好的支持,并提供专用的固件程序用于简化通信设计[9]。首先打开机智云官网,然后登录机智云开发者中心,在下载中心找到模组相对应固件,如果平台未开放您所需的固件,也可以到机智云官方店铺去采购,固件下载示意图如图5所示。
图5固件选择
机智云提供各常用无线模块的专用固件下载,针对ESP8266有两种固件,由于本次不涉及大数据处理计算,因此无须采用支持ECE雾计算的固件,下载后,利用烧录器配合专用的烧录软件对固件进行烧录。
本设计使用的ESP8266-12F具有32 MB程序存储器,默认端口波特率为115 200,因此,按照该设置,烧录系统固件,等待固件烧录完成,即可实现本次设计的专用固件设计。
固件烧录完成后,可配置联网服务器,登录机智云服务器后,创建新的项目,本次设计属于配件类,同时采用WiFi类型的数据传输[6],其余设置采用默认设置即可。设置完成后,系统将自动生成产品的PK序列号以及PS数据通信密码,序列号用于识别项目名称,通信密码用于进行数据传输加密,工程创建完成后,即可针对各个传输的数据进行数据节点的创建。
本次设计中,共有4个传感器数据以及一组风扇控制数据需要进行交换,因此本次数据节点设计了5组。通信时,单片机通过串行通信总线与ESP8266通信,系统首先等待ESP8266初始化,并自动连接WiFi[6],之后即可发送启动TCP/IP连接命令,利用机智云的IP地址(47.94.102.102)实现与机智云服务器的对接,对接完成后,即可发送项目的PK码以及PS码,用于项目识别以及加密通信。
2.4 手机APP设计
手机APP是实现数据监控以及系统控制的重要工具,采用机智云服务器时,通过项目可生成集成有通信协议的以及数据打包格式的APP源代码,仅需在源代码中添加部分项目信息并编译,即可实现手机APP的设计。
其中,ControlModule模块为设备控制模块,用于控制模块;DeviceModule模块为设备模块,用于控制设备。本设计中,将设备信息以及数据通信设置添加至对应模块后,即可实现与手机的通信[7]。
3 系统测试结果分析
完成对硬件电路的搭建以及对软件程序的编译后,将软件程序通过下载器烧录至单片机中。系统上电后开始工作,将采集各个传感器数据并通过LCD1602显示,同时上传至服务器,通过手机APP进行显示。图中显示,当前电压为237 V,电流为0.19 A,此时功率为46 W,与负载标称额定功率大致相等,系统检测结果准确,启动手机APP,显示情况如图6所示。可见,测试结果与终端显示结果相同,系统能够实现相应功能。
图6 手机端APP显示结果
4 结 语
本文提出了一种基于单片机的智能插座设计,该设计能够实现对插座的电压、电流以及功率的检测等,并能够实现对插座的远程控制。依据传统插座的结构,通过添加单片机控制器、LCD1602显示屏、LCD1602显示屏、电压/电流传感器以及ESP8266 WiFi模块实现对插座的控制。测试结果表明,系统能够实现对电压/电流的检测以及功率的计算、过载报警功能,同时能够实现远程开关控制,最终实现基于单片机的智能插座设计。