深圳市组创微电子有限公司
销售部:158 1687 4032采购部:0755-8299 4126行政部:0755-8299 4126
咨询电话
0755-8299 4141

IoT智慧生活

客户成功故事与项目成功案例

智能开关硬件电路程序设计


智能家居是以住宅为平台,利用综合布线技术,网络通信技术与自动控制技术相结合发展的一种新兴技术产物。而智能开关是智能家居的一种体现形式。早期的智能开关只能通过其预设的程序执行操作,无法对设备进行远程控制且体现智能家居的智能化。之后出现的智能家居解决方案是将设备通过双绞线与网络实现连接,由于有线连接存在着传输距离短以及布线困难的问题,其在智能家居的设计中已被逐渐淘汰。随着无线技术的发展,其远距离,低功耗,低成本的优势逐渐体现。故现代智能家居多采用无线连接技术。Wi-Fi是一种允许电子设备连接到一个无线局域网的技术,通常使用2.4GHz射频频段进行数据传输。使用2.4GHz频段具有成本低,通用性强,发射电路结构简单等优势,故被智能家居的设计所广泛采用。

一、STC15系列单片机与ESP8266芯片概述

STC15系列单片机是宏晶科技生产的一系列兼容8051内核的低成本,低功耗,高速单片微型计算机。在STC15系列单片机中,STC15F2K60S2的应用较为广泛。其内置60K的大容量Flash储存器和2K的RAM。与传统8051内核单片机不同,STC15F2K60S2自带两个全双工的UART串口,并且在片内内置了一个8通道的10bit模数转换器,可以省去外接的A/D转换芯片,空余出数据总线供单片机I/O接口使用。除此之外其还内置了三个16位的定时器,高精度的晶体振荡器,1K的EEPROM供用户使用(通过IAP技术读写内部Flash储存器实现),内置的EEPROM可供掉电保存数据使用。

ESP8266是由ESPRESSIF公司生产的一款低功耗,高集成度的物联网Wi-Fi芯片。其内置了一个时钟频率160MHz的32位高速微处理器,标准数字外设接口、天线开关、射频模块、功率放大器、低噪放大器、过滤器和电源管理模块等。得益于其芯片的高集成度,ESP8266芯片可以在外围只有7个元件的情况下工作。

二、智能开关的设计与实现

整个系统根据其功能可分为控制模块,采集模块和通信模块。具体结构如图1所示。

图 1 智能开关内部总体结构

2.1控制模块

控制模块由IN4007型二极管,PC817光耦,S8050NPN型三极管和5V继电器组成。由于单片机I/O接口输出电流小,无法直接驱动继电器,故需光耦元件间接驱动,同时单片机引脚与继电器线圈之间通过光耦元件实现光电隔离,避免了强电电路和弱电电路之间的相互干扰,有效提高了系统的可靠性和稳定性。由于继电器线圈在断开时会产生较高的反电动势,为保护光耦元件不被损坏,需要在继电器线圈两端并联一个续流二极管,为了确保保护效果,在此选用开关速度较快的IN4007二极管作为续流二极管。由于驱动继电器需要较大的电流,较大的驱动电流可能会损坏光耦器件,故需在光耦输出的下一级连接一个S8050三极管用于放大光耦的控制信号。

2.2通信模块

单片机与上位机之间的通信在该设计中通过ESP8266物联网WiFi芯片实现。ESP8266芯片同时支持TCP与UDP协议,且支持Client与AP两种模式,可实现上位机与芯片间的局域网通信或直接通信。AT指令分析短信息的解码和编码是软件编程的核心。AT命令集是调制解调器通信接口的工业标准,是调制解调器可以识别并执行的命令。由于芯片支持基于字符串的AT指令,故将STC15单片机的RxD2,TxD2引脚与ESP8266-ESP-01模块的TxD,RxD引脚相接。

正常工作时,芯片模组的供电端Vcc连接3.3V直流电源,GND端接地,同时,芯片正常工作时应将CH_PD端的电平拉高。由于模块串行口初始波特率为115200bps,可以在与单片机连接前通过相应的AT指令语句AT+CIOBAUD=<波特率>,<数据位>,<停止位>,<奇偶校验位>,<流控位>设置为自定义的波特率,设置完成后需将单片机串行口也设置为相同波特率。上电完成的同时需要将ESP8266芯片初始化,AT+CWMODE=<工作方式>指令用于确定芯片的工作方式,方式1为Client模式,方式2为AP模式,在此选用方式1。设置完成后单片机向ESP8266发送无线网络的相关信息,通过AT指令:AT+CWJAP=<SSID>,<Password>设置无线网络的SSID与密码,设置完成后,通过单片机对返回的字符串进行比较,若ESP8266芯片返回”WIFICONNECTED”和”WIFI GOT IP”字符串,则说明网络连接成功,否则连接失败进行重新连接。设备的IP地址由局域网内DHCP服务器自动分配。成功连接无线网络后需要对上位机TCP服务器的IP地址以及端口号进行配置,通过AT指令:AT+CIPSTART=<Type>,<IP Address>,<Port>可以配置,其中Type中可选择采用UDP或者TCP协议,由于UDP是一种无连接的传输层协议,在数据传输过程中不及TCP协议可靠,在此选用TCP协议作为传输协议。设置完成后若芯片返回字符串”CONNECT OK”则表明单片机与上位机即成功建立了基于无线局域网的通信。

2.3采集模块

由于智能开关的负载有限,若长期超载工作则会引起设备过热引发火灾或者损坏设备,故需要对智能开关进行过载保护。电流通过导线时会产生磁场,利用线性霍尔元件可以间接测量出导线中通过的电流。在此采用霍尔元件检测电流,将回路中电流值转换为电压值模拟信号输送给模数转换器处理,STC15F2K60S2单片机内部集成了10bit的模数转换器,故无需外接额外的A/D转换IC即可完成转换。电流上限阈值由上位机传输到单片机。当系统运行时每隔一定周期比较设定值与霍尔传感器的采集值,若测定值大于设定值则断开继电器切断电源。考虑到上电系统需保持上次设定参数,每次设置的参数都存入单片机自带的E2PROM中,在程序初始化中调用E2PROM,读取断电前设定的参数。

2.4程序总体设计

由于C语言具有很强的功能性与结构性,可以有效缩短单片机系统的开发周期且易于调试与维护,所以在此选用C语言作为智能开关系统的开发语言。系统上电后先将掉电前储存在E2PROM中的变量读入内存,而后进行ESP8266的初始化工作,初始化完成及建立与上位机的TCP连接后向上位机发送就绪指令。当系统接收到来自上位机的指令后将触发一次串行口中断,在中断程序内放入字符串比较函数,单片机可根据不同指令作出不同响应。值得注意的是:与传统12T周期的51单片机不同,STC15FK60S2的机器周期为1T,故在传统51内核单片机上运行的延时程序需要加速12倍后在STC15系列单片机上使用。

三、智能开关上位机程序的设计

在此选用Visual Basic.NET作为上位机程序的编程语言。对于软件开发人员来讲,使用VB.NET开发技术相对简单,入门较快。在上述设计中ESP8266与上位机的通信是基于TCP协议的,故可以在上位机上使用Socket与其建立通信。VB.NET中内置Socket类,当设备接入网络后,在设备IP地址,端口号和通信协议均已知的条件下即可与设备建立通信。经不断调试,程序能够按要求与智能开关通信。

结语

经过不断的测试,修改电路与程序,基于STC15F2K60S2的智能开关上电后运行正常,能够与上位机之间通过无线局域网进行通信。经过后期测试,系统的控制模块,通信模块与采集模块均工作正常,实现了系统的设计目标。使用时无需额外布线,只需将开关连接交流电源和无线局域网即可工作。多设备同时工作时只需通过不同的IP地址即可区分不同设备,便于实现系统的集群化分布与统一控制。

以上就是我们深圳市组创微电子有限公司为您介绍的智能开关开发示例。如果您有智能开关控制板方案开发需求,可以放心交给我们。我们代理多种单片机、语音芯片、双模蓝牙IC、wifi芯片。品牌有松翰单片机、应广单片机、杰理蓝牙、安凯蓝牙、全志、瑞昱(realtek)。我们的技术服务范围有:PCB设计、单片机开发、蓝牙方案、软硬件定制开发、APP开发、小程序开发、微信公众号开发等。还可以承接智能电子产品方案设计、生活电器开发、美容仪器研发、物联网平台应用、智能家居控制系统、TWS耳机、蓝牙耳机音箱开发、儿童益智玩具方案开发、电子教育产品方案设计等。