基于点灯科技平台的智能开关设计
一、总体方案设计
设计由WIFI模块、电压检测模块、STM32微控制器三部分组成,能够通过ESP8266WIFI模块与点灯科技云平台进行数据的交互,设计间通过UART串口进行通信,利用继电器实现开关的通断,开关间能够组建控制通信网络完成相互通信。
硬件电路由STM32F103C8T6芯片、主从WIFI模块、电压检测接入电路、OLED显示模块以及DHT11温湿度采集电路等组成。设计将环境温度采集后,由WIFI发送至云平台端,平台端能够实时地监测目前开关附近温湿度以及负载状态,能够在OLED屏幕上实时显示设备相关信息,云平台能够远程控制设备的开断,设计能够提供不同电压的供电电源,并对当前电压进行监测,能够完成局部组网,覆盖局域内所有的开关设备。设计组成框图如图1所示。
图1 系统总体框图
二、硬件设计
设计在硬件上通过模块化完成,电压检测、电压转换等关键电路进行自主设计,使设计能够长时间保证稳定的运行。
(一)MCU模块
STM32F103C8T6封装体积小,价格相对较低,相比于8位单片机性能更加优,在本设计中以STM32F103C8T6微控制器为最小系统的核心处理设备初始化与交互数据的处理。使用串口通信方式与WIFI模块数据交换,其他IO引脚主要用于单片机的晶振连接、主从WIFI选择、继电器通断信号、温湿度的数据传输、LCD显示数据、电压数模转换等其他数据处理信号。
考虑电压检测和数据传输需要高精度,内置晶振无法满足高频振荡需求,故采用外置12M晶振接入PD0、PD1引脚,发挥微控制器的性能。
(二)无线模块
ESP8266无线模块工作电压为3-3.6v,内置2位CPU独立运行、TCP/IP协议,拥有三种工作模式,分别为AP模式(连接其他WIFI),STA模式(作为热点被连接),AP/STA模式(共存模式)。模块能够采用自带内部处理器进行二次开发,通过串口与STM32连接。设计每12ms交换一次数据到微控制器进行处理执行。
设计中串口读取采用事件触发方式。能够实现数据的实时收发。其ESP8266接线图如图2所示。
图2 ESP8266接线图
图2中,左边为主WIFI,分别连接微控制器STM32F103C8T6的PA5、PA7引脚。通过将三极管的集电极连接单片机的VCC引脚,发射极连接单ESP8266VCC引脚,基极接入单片机PB0引脚,能够完成系统的主从两种模式选择,在设备休眠状态时减少功耗。其中主模式下,设计使用AT指令将从WIFI模块初始化为服务器接收处理子设备回传数据,从模式下接收主设备传回服务器连接密钥,接入主设备。完成子设备间的局部网络进行数据交互,考虑设备间存在长距离传输,使用AT指令将数据打包上传到家庭网络中,主设备通过IP地址查询各设备间回传数据。
(三)电压转换模块
设计中大部分模块工作于3.3-5v电压,智能化开关的要求需要接入220v的市电电压,设计采用降压模块使220V电压降压为5V~3V之间。其工作原理图如图3所示。
图3 电压转换电路图
图3中的FUSE保险管(0.5A/250VAC)主要在模块发生异常时,起保护电路的作用。NTC5D-7热敏电阻主要用于抑制浪涌电流,使电路不受损坏。ZOV07D471K压敏电阻的作用是在雷击浪涌时,使电源模块不受损坏。电容对电源输入输出进行滤波,最终实现把220V的电源转为3.3V直流电源供各模块使用。
最终设计能够将电源火线与零线分别接入L、N经过功率变压器使220V电压转换为设备正常工作电压,稳定驱动各模块功能正常运行。
(四)继电器驱动模块
开关通过继电器的方式来实现远程开关控制,控制模块包含二极管、5V 继电器、NPN型三极管以及PC817 光耦。考虑到单片机 I/O 控制引脚传输电流小,不能直接驱动继电器,所以采用光耦元件进行间接驱动[3]。当获得执行信号时,单片机控制引脚将由高电平变为低电平,三极管导通,使继电器贴合,达到电路的开关作用,以驱动设备的运行。
继电器与电视机、电灯等电器设备是直接相连的,用户通过继电器来控制设备的运行状态。因此,继电器的选择对设计控制系统起着直接控制的作用。本文设计选择“220V电压10A”机械式继电器,其电路如图4所示。
图4 继电器驱动电路图
本设计在机械继电器的基础上使用微控制器STM32F103C8T6进行手动和远程控制开关进行信号点实时监控,手动开关节点接入单片机引脚PC0并将其设置为上拉,另一端接入单片机GND,PC0接口检测到低电平时设计做出对应的动作。从而将手动开关转换为数字开关,方便与远程虚拟开关进行数据交互,能够高效管理执行动作。
考虑在运行过程中用电设备的电路老化导致设备短路造成设备不可逆的损害,在火线接入点接入220V10A保险丝,避免设备短路燃烧,导致火灾的发生。
(五)DHT11温度采集模块
DHT11传感器是一种具有已校准数字信号输出的温湿度传感器,其主要使用专用的数字模块采集技术以及温湿度传感技术,可靠性与稳定性均非常高;同时其使用单线制串行接口,温度的测量范围为0-50度,湿度的测量范围为20%-90%RH,并且信号传输距离能达20M以上。
DHT11具有4pin引脚封装,分别为GND、5V、DATA数据接口、NC空脚,其线路连接如图5所示。
图5 DHT11线路连接图
设计过程中,DHT11与STM32F103C8T6单片机采用单总线协议数据传输,能够实时将当前的温湿度发送回单片机。
(六)OLED屏幕模块
屏幕模块主要由OLED(Organic Light-Emitting Diode)组成,即有机发光二级管,其自身会发光,不需要背光源,而且对比度高、重量轻、反应快,其与小型嵌入式设备有很好的兼容性。
屏幕有单色和彩色两种可选,彩色方案功耗较高,为降低功耗,本设计采用单色版显示方式显示设备的运行状态与主从设置状态。表1为OLED的四种工作模式,本设计采用IIC模式读写显示模块。
表1 OLED显示屏工作模式
接口方式 |
BS1 |
BS2 |
4线SPI |
0 |
0 |
IIC |
1 |
0 |
8位6800 |
0 |
1 |
8位8080 |
1 |
1 |
设计中OLED的SCL时钟信号线、SDA数据传输线分别与微控制器STM32F103C8T6硬件IIC接口连接,以完成控制器对屏幕显示内容的控制。
(七)APP点灯科技
点灯科技拥有大量的经验和技术积累,从而为物联网领域提供了一套完整的云平台的工具和服务具有快速部署支持主流品牌的语音控制接入,多硬件开发,支持多种通信技术。Blinker不限制硬件、硬件外设、开发方式可自由扩展功能,以此降低硬件厂家以及开发者的开发成本。
提供稳定设备接口(设备管理、数据接口、设备上线与通信MQTT等)在满足快速开发提供多元化数据接口。
三、软件设计
设计的软件部分分为主从WIFI模块配置通信、温湿度读取、继电器驱动控制、0.96寸OLED屏显示五部分。系统在上电后首先进入设备初始化,之后选定本设计为主开关还是从开关,对WIFI模块进行配置从而完成与点灯科技云平台之间的网络连接,网络连接成功后微控制器STM32F103能够通过串口发送数据给ESP8266,并每12ms完成一次数据的监测,最终将数据传到点灯科技云平台,当云平台发送数据到ESP8266,ESP8266会将数据传至微控制器对数据进行处理并执行对应的动作。设计的主程序流程图如图6所示。
图6 主程序流程图
底层工作完成后,如图7所示,设备成功接入网络,正常工作。为增强微控制器的实时处理数据,采用中断方式处理交互数据。
图7 设备中断数据流程图
(一)云平台相关配置
在设计中采用局部网络通信与无线网络通信进行数据交互。局部通信通过微控制器STM32F103对ESP8266WIFI模块进行初始化并连接主设备[4]。无线网络通信选用点灯科技云平台作为物联网云平台,使用ArduinoIDE编译软件完成ESP8266的二次开发[5]。首先在点灯科技云平台中需要创建开关数据名、交互数据,编辑交互界面,如图8所示。
图8 云平台配置页面
对其中的几种相关数据进行配置其相关配置如表2所示。
表2 数据配置表
数据名 |
数据标识 |
数据类型 |
num-abc |
温度 |
数值类型 |
shidu |
湿度 |
数值类型 |
btn-abc |
楼梯开关 |
布尔类型 |
ran-6r8 |
亮度调节 |
数值类型 |
(二)主ESP8266WIFI模块软件设计
主ESP8266WIFI模块用于接收处理云平台Blinker返回的数据和从ESP8266WIFI模块发送的数据,设计首先进行串口初始化以等待微控制器STM32F103C8T6传送网络配置数据,并对数据进行效验与解析[6],初始化APP所需要的相关按键处理函数,等待网络连接成功。如果长时间连接不成功将会返回状态数据给微控制器STM32F103进行数据处理。
当设备成功接入后,将会处理云平台、微控制器的交互数据,最终发送处理过的数据到云平台和微控制器。主ESP8266WIFI配置流程如图9所示。
图9 主ESP8266WIFI配置流程图
(三)从ESP8266WIFI模块软件设计
MQTT协议主要工作在TCP/IP协议族上,它通过发布(Publish)/订阅(Subscribe)的范式工作,它是为硬件性能低的远程设备和网络状态不佳的情况而设计的消息协议[7-10]。从ESP8266WIFI模块用于创建局域服务器、接收发送数据。本设计首先进行串口初始化,等待局域网组建成功,设备建立通信通道,使用AT指令方式对MQTT协议进行数据解析与主设备间进行数据交互。图10是从ESP8266WIFI模块的配置流程图。
图10 从EDP8266WIFI配置流程图
(四)DHT11配置
DHT11 上 的DATA 主要用于STM32F103C8T6与 DHT11之间的通信、同步,其使用单总线数据格式对数据进行解析,同时采用定时中断的方式每隔12ms将DATA信号线拉低,进行40bit数据读取。数据格式如表3所示。
表3 DHT11数据格式
数据位 |
数据名称 |
0-7 |
湿度整数 |
8-15 |
湿度小数 |
16-24 |
温度整数 |
25-32 |
温度小数 |
33-40 |
数据效验 |
(五)OLED模块配置
本设计采用IIC通信与OLED屏进行数据读写,首先进行硬件IIC初始化,确保数据读写正常。对OLED自带寄存器进行数据的写入初始化设备,显示本设计对应的内容。如图11所示,分别显示当前设备模式(1主模式,0从模式)、日期、温度、湿度。
图11 OLED显示内容
四、设计测试
由于设计需要场景进行测试,简易搭建了一个建筑模型,利用建模软件设计绘制打印房屋建筑。图12表示将本设计智能开关接入模拟场景,家居灯控开光中,设备连接将各房间的控制开关接入点灯科技平台,由主开关进行数据交互控制房间的电灯运行状态,以及房屋环境温湿度。
图12 开关使用场景
图13为场景灯的远程开关实验效果。图14为将设备对宿舍灯开关进行改装的效果图。
(a)打开灯界面 (b) 灯打开效果
(c)关闭灯界面 (d)灯关闭效果
图13 远程开、关灯效果
图14 宿舍灯开关改装
五、结语
本文设计了一种基于点灯科技云平台的分布式智能开关,可以通过手机APP远程控制和手动控制设备的开关状态,实时检测设备的运行状态。本设计解决了设备的远程控制问题,实现物联网远程监控设备运行状态和所处环境数据监控,让人们在不修改原有电路的基础上使需要控制的设备与互联网接通实时远程控制设备。经过测试,该设计能够完整地完成预计功能,性能稳定可靠,在一定场景下能够有很好的应用。
本设计的代码文件链接:https://pan.baidu.com/s/1Y0-Ynd5TxqB-0enYcgnaAg
提取码:1234
--来自百度网盘超级会员V3的分享