基于ESP8266 的智能灯光控制系统硬件设计
2024-01-23亓相涛马凯凯王卫国
亓相涛,马凯凯,王卫国
(1.武汉商学院,湖北 武汉 430056;2.山东鲁软数字科技有限公司,山东 济南 250000)
0 引 言
随着科技的发展,生活和工作中的灯光照明方式在不断地更新,各种照明灯具功能更加贴近使用者的需求[1-4]。无线传输技术的进步使得灯光控制进入了联网联控时代,传统的单线连接单开关控制已经慢慢退出了应用舞台。以城市路灯照明系统为例,过去的路灯多为白炽灯,耗能高,且采用单灯单控或单线路串联集中控制,而最新的各省市智慧城市路面照明系统的设计基本都实现了无线联网控制[5-6]。单个照明立柱平台预先埋入了多个无线控制终端,可以实现路灯照明强度的调节,并可以检测照明线路的通断和反馈,实现对各灯具终端状态的实时监控。预留的终端控制线路还可以连接其它立柱平台供电设备,如节日礼灯、交通导引屏幕及路面监控摄像头设备等[7-8]。在城市路灯系统的无线控制过程中远距离的数据传输可以通过LoRA、4G 或5G 通信实现。人们工作和生活中的室内照明灯具终端设备与控制端距离一般在20 m 以内,可以通过蓝牙、ZigBee 或WiFi 通信技术实现联网控制。对比蓝牙、ZigBee 与WiFi 技术,从功耗来看,蓝牙与ZigBee 耗能低,WiFi 模块的能耗相对较高;从模块的实时性来看,WiFi 的优势要高于蓝牙与ZigBee 技术;从室内场所的设备通信模块普及率来看,WiFi 信号在家庭和工作场所覆盖率要高很多[9-10]。因此,本文以WiFi 传输技术为基础,完成一款智能灯光控制系统的硬件设计。
1 系统总体功能
智能灯光控制系统硬件设计划分为主控模块、外围控制模块、电源模块及下载模块,如图1 所示。
图1 智能灯光控制系统硬件结构
主控模块主要完成ESP8266 控制器的输入输出引脚连接、主控芯片上电复位及主动按键复位。外围控制模块主要实现灯光设备的连接控制、继电器设备的控制、传感器信号采集控制及模数转换模块控制。其中:灯光控制细化了4 个终端,分别为单控制灯及红绿蓝三种彩色灯;继电器控制为强电控制预留了接口;传感器信号采集控制可以根据采集的温度和湿度数据,为自动控制灯光状态提供决策信号源;模数转换部分可以接入光敏设备或旋钮电压控制器以自动或主动调节灯光状态及强度。
整体硬件系统采用5 V 电源接入供电,使用AMS117 转换5 V 到3.3 V,为ESP8266 及其他模块供电。下载模块选用了CH340C 实现上位机USB 线路烧写数据到终端。
2 ESP8266 主控模块
智能灯光控制系统选择ESP8266 为硬件控制中心,ESP8266 器件具有WiFi 通信的功能,内部封装了WiFi 的协议栈,可以实现无线传输的透传功能,通过串口的AT 指令控制模块发送数据及接收外界传回的数据并保存。控制器支持硬件信号发布AP 模式、单STA 终端接入模式及AP 与STA 实时切换模式。AP 模式下控制器的天线可以将信号以辐射方式发送,通过产生WiFi 热点提供数据接入服务,允许其他设备通过用户名和密码验证接入或无验证接入;STA模式下终端设备作为接入方搜索到其他AP 信号源并申请接入,支持TCP 与UDP 协议的数据传输。ESP8266 芯片多数IO 引脚资源及串口资源在WiFi 数据发送接收功能上发挥了作用,外展出的引脚有22 根。其中8 号和9 号引脚用于供电,并采用3.3 V 供电;3 号引脚为芯片使能端高电平有效,当多个ESP8266 协同工作时该引脚起使能控制作用,本设计添加10 kΩ 的电阻接3.3 V 电源上拉保持高电平状态;1 号引脚为复位信号端,平时为高电平状态,当检测到该引脚有低电平信号且持续2 个机器周期以上时则芯片复位重启。复位电路分为上电复位与按键主动复位,其电路连接如图2 所示。
图2 智能灯光控制系统硬件结构
ESP8266 主控器芯片2 号引脚为模拟信号输入引脚,芯片采集输入的信号电压值,通过修改esp_init_data_default.bin二进制文件的第107 字节数据,可以在芯片内部设定参考电压,数值在0 ~3.3 V 之间。ESP8266 的第6、7、10 号引脚分别为GPIO12、GPIO13、GPIO15,连接红绿蓝三色LED灯,高电平点亮使能。ESP8266 的第5 号引脚为GPIO14,连接报警扬声器模块,高电平报警使能。ESP8266 的第4 号引脚为GPIO16,连接继电器控制模块,继电器模块的常闭或常开端连接36 V 以上的灯光照明模块,高电平供电使能。ESP8266 的第14 号引脚为GPIO5,连接数字化温湿度传感器模块,串行数据输入输出。ESP8266 的第12、13 号引脚为GPIO0 与GPIO4,连接两个按键SW1 与SW2,按键按下输入低电平,松开输入高电平。其中SW1 同时具有数据下载指示的功能,当系统复位时,检测到GPIO0 引脚有电平信号,系统进入应用程序下载进程。引脚连接如图3 所示。
图3 ESP8266 电路连接
ESP8266 控制器的GPIO16 引脚除了具备基本的输入输出功能外,还具有低功耗睡眠模式唤醒功能。当该引脚由低电位跳转为高电位时系统由低功耗睡眠模式退出进入工作模式。控制芯片的GPIO4 与GPIO5 分别对应SDA 与SCL,可以通过软件实现I2C 的功能。芯片的GPIO12、GPIO13、GPIO14、GPIO15 分别对应SPI 功能的MISO、MOSI、SCLK、CS。EPS8266 的所有输入输出引脚都可以加载实现PWM 的功能。控制芯片的输入输出引脚在控制板载外围电路上,同时系统设计增加了复用的接口,将可使用的引脚以双列直插的排针为底座引出,当使用板载电路时用跳线帽连接使用端,可以使用跳线引出进行其他控制。
3 灯光控制模块
智能灯光控制系统的硬件采用了红绿蓝三色的LED 模块,LED 为共阳性5 V 供电,负极端连接1kΩ 的电阻并与NPN 三极管的共发射极运算放大电路连接。在三极管的集电极端引出测试引脚,调试阶段可以检测发光二极管的功能可用性。灯光控制电路如图4 所示。
图4 灯光控制电路
强电灯具的通断需要通过继电器进行控制,继电器模块控制板驱动采用双NPN 三极管共发射极放大电路级联的方式完成,在继电器接入端增加了稳压二极管,增强了电路的安全性。继电器控制电路如图5 所示。
图5 继电器控制电路
智能照明系统设计了蜂鸣音频提醒功能,在GPIO16 引脚上接入NPN 三极管的驱动,连接自鸣的音频模块,可以实现报警预警、定时提醒、按键音提醒等功能。音频控制电路如图6 所示。
图6 音频控制电路
智能灯光控制系统的灯光强度可以根据使用环境实现自动调节,ESP8266 通过GPIO5 引脚连接温湿度传感器,通过2 号引脚接入ADC 信号,检测环境的光照强度。本系统选用的是DHT11温湿度传感器,该传感器支持数字型输入输出,采用单总线模式。GPIO5 号引脚接入4.7 kΩ 的上拉电阻至3.3 V 电源,当信号线输入18 ~30 ms 低电平信号时DHT11起始响应并发出应答信号,应答标志为引脚拉高后的83 μs 的低电平信号。随后ESP8266 进入输入模式,接收来自DHT11的一组温湿度数据。温湿度传感器电路连接如图7 所示。
图7 温湿度传感器控制电路
灯光照明系统若应用在无人控制场景,则需要感应检测环境的光照强度以自动控制灯光照明。系统中ESP8266 的ADC 引脚连接了光敏电阻,其与3 个电阻并串联。当光照强度极弱时ADC 引脚端输入趋向0.628 V;当光照达到极大值,光敏电阻阻值趋向于0,ADC 引脚端输入趋向0。电路如图8 所示。
图8 光照强度检测电路
电路中ADC_A、ADC_B 为跳线连接引脚,如有其它模拟信号输入可连接至ADC_A 引脚上,具体数值根据实际电路再做运算。
4 供电及数据下载
智能灯光控制系统使用Mini_USB 接口供电,一般供电电压为5 V,同时该USB 接口还可以完成ESP8266 芯片的程序下载。ESP8266 芯片供电电压为3.3 V,因此系统硬件设计使用AMS1117-3.3 完成5 V 至3.3 V 的电压转换。系统设计了USB 转串口电路,方便直接使用USB 线接入上位机电脑下载程序,转换芯片型号为CH340C,该芯片具有自己的内部晶振,在时间精度允许的情况下可以使用自带的时钟电路。供电及下载电路如图9 所示。
图9 供电及下载电路
ESP8266 芯片的内部FLASH 有多种型号,常见的为8 MB,其中存储空间划分了多个扇区,每个扇区4 KB 大小。WiFi 主控芯片程序的下载文件有多个,分别为:eagle.flash.bin、eagle.irom0text.bin、blank.bin和esp_init_data_default.bin。前两个为主程序编译生产的代码,blank.bin 为初始化系统参数数据,esp_init_data_default.bin为初始化射频参数数据。在8 MB 的FLASH 存储空间的芯片数据下载过程中,将eagle.flash.bin写入0X00000起始的空间中,eagle.irom0text.bin 写入0X10000 起始的空间中,blank.bin 写入0x7FB000和0x7FE000起始的两段空间中,esp_init_data_default.bin写入0x7FC000 起始的空间中。系统的下载软件工具可选择ESP8266_FLASH_DOWNLOAD_TOOLS。使用下载工具选择好下载二进制文件并进行串口连接就绪后,点击下载。此时硬件终端操作需要将ESP8266 的GPIO0 引脚接入低电位;然后按下复位按键,进入多程序文件下载过程。下载结束后将ESP8266 的GPIO0 引脚电位拉高,系统复位进入程序自运行。
5 结 语
智能灯光控制系统设计是以核心处理芯片ESP8266 为控制中心完成的;对比了蓝牙、ZigBee、LoRA 技术,系统的无线数据传输选择了WiFi 的信号传输方式。本设计主要针对灯光控制系统硬件的主控模块、外围控制模块、电源模块及下载模块四部分展开设计,详细描述了中控处理器ESP8266 各引脚的线路连接、红绿蓝三色LED 灯控制连接、传感器模块与继电器模块的控制连接、电源供电芯片的选择连接及系统程序下载的操作。系统硬件的设计经后续PCB绘制、打板焊接测试后,证明其功能和性能与预期相符,能较好地实现主动无线控制灯光照明及检测环境数据自动控制灯光照明。