门户网站建设询价公告,校园网站建设管理,重庆万泰建设集团有限公司,凡科建站手机版登录基于stm32的楼宇照明控制系统设计 项目说明一、绪论1.1 研究背景1.2 研究意义1.4 研究内容 二、系统方案设计2.1 微控制器方案选择2.2 信息检测模块方案选择2.3 WiFi模块选择2.4 终端显示2.5 WiFi无线通信实现方法 三、系统硬件电路图设计3.1 整体电路图设计3.2 主控制器设计3.… 基于stm32的楼宇照明控制系统设计 项目说明一、绪论1.1 研究背景1.2 研究意义1.4 研究内容 二、系统方案设计2.1 微控制器方案选择2.2 信息检测模块方案选择2.3 WiFi模块选择2.4 终端显示2.5 WiFi无线通信实现方法 三、系统硬件电路图设计3.1 整体电路图设计3.2 主控制器设计3.3 电源电路设计3.4 红外线传感器电路设计3.5 光敏电阻传感器电路设计3.6 继电器控制电路设计3.7 无线通信电路设计3.8 按键控制电路3.9 LED显示电路 四、系统软件设计4.1 整体软件设计流程图4.2 上位机通信设计4.2.1 ESP8266初始化设计4.2.2 单片机与云平台通信设计 4.3 按键控制电路4.4 传感器检测电路设计 五、系统调试5.1 ESP8266模块调试5.2 云平台调试5.2.1 准备工作5.2.2 实现数据上传 5.3 红外线传感器模块调试5.4 光敏电阻传感器模块调试5.5 整体调试5.5.1 照明系统自动控制5.5.2 按键实现灯光开关5.5.3 云平台控制灯光和监控 六、结 论附件PCB截图实物图 项目说明
楼宇照明在日常生活举足轻重楼宇照明控制系统在一定程度上实现对能源的节约及便利管理者的使用和控制。本次设计以STM32F103C8T6为核心处理器红外线传感器与光敏电阻传感器模块作为检测装置用于检测光照强度及人员经过情况继电器作为控制装置通过继电器状态改变实现自动控制ESP8266无线通信模块作为通信装置实现远程通信功能将相关数据上传至云平台并且接收云平台下发控制命令。照明系统可通过传感器检测、单片机系统控制、终端控制三种方式进行且终端可以对相关信息实现监控功能。传感器检测方面在光照强度较弱的情况下的情况若检测到有人经过自动开启灯光照明并延时熄灭。 实物图
一、绪论
1.1 研究背景
当今社会飞速发展投入生产生活的能源与日俱增为实现可持续发展我国倡导绿色发展理念。每个建筑物中都有大量的照明工具楼宇照明作为日常生活中必不可少的一部分为我们的生活提供许多便利然而在提供便利的同时其消耗的能源也是巨大的。传统照明方式一般采取定时开关或人工手动开关灯光的方式灯具彻夜保持工作状态依然会消耗大量能源并且减少灯具的使用寿命。在恶劣天气下若管理者疏忽则业主照明需求无法及时满足在浪费能源的同时也为管理者工作和业主使用带来不必要的麻烦。
1.2 研究意义
使用楼宇智能照明系统可以最大化实现灯光方面节能减排利用最少的能源保证要求的照明水平。所以在控制时只需要在每个照明回路的开关上安装一个节点控制器就可以了。这样既可以满足建筑物中各种照明需求又能节约能源。 智能照明控制系统依据当前环境光照强度进行判断在光照较弱的情况下通过传感器检测人员经过情况进行自动开关灯控制实现“人来灯亮人走灯灭”最大限度减少能源消耗。另外在主控制器设置控制按钮管理者可以通过按钮控制灯光亮灭与此同时管理者也可以通过网页实现对灯光照明情况的监控并可以实现对每层楼灯光的控制对于管理方面更为快捷高效。
1.4 研究内容
本次设计完成楼宇照明系统设计能够实现灯光自动照明以及远程控制该系统以STM32F103C8T6单片机为核心处理器在光照情况较弱时利用传感器检测是否由人员经过从而实现对楼层照明灯光控制以求实现照明系统的高效性及节省能源。无线通信模块可以实现对照明系统工作情况的远程检测和控制方便管理者工作。 具体工作如下 1使用继电器作为照明系统的控制开关实现对照明系统的自动控制 2当传感器检测到人员经过时照明系统自动开启并延时熄灭 3利用光敏电阻判断环境光照情况确定自动照明控制系统是否开启 4管理者可在终端监控不同楼层小灯的亮灭情况 5管理者可以在终端控制不同楼层小灯分别亮灭。
二、系统方案设计
本课题基于STM32微处理器平台实现对楼宇照明系统进行不同楼层经过人员检测、自动控制以及远程监控与控制等功能。在系统设计中实现微处理器系统电路、信息检测电路、远程通信电路、继电器控制电路、按键控制电路以及电源电路等系统硬件设计并对检测人员、控制、监控等功能进行代码化编程实现系统软件设计。包括以下几部分 1微控制器楼宇智能照明系统采用STM32F103C8T6作为控制核心 2信息检测模块使用光敏电阻传感器模块实现对光照强度阈值限制并在低于阈值即光照强度较弱的情况下使用红外线传感器作为对人员经过检测工具 3自动控制模块利用继电器作为自动控制开关根据红外线传感器输入信号进行判断控制继电器的吸合实现对灯光的自动控制 4按键电路单片机模拟主控制台通过按键控制可以实现模拟主控制台手动开关灯功能 5无线通信模块使用esp8266作为无线通信模块连接至云平台上传数据、下发命令实现对灯光远程控制以及监控功能。 整体设计框图如图所示
2.1 微控制器方案选择
微控制器是该楼宇照明系统的控制核心在设计中有两种方案选择分别是STC89C52与STM32F103C8T6。 STC89C52单片机是一个低功耗芯片内置8KB闪存可以存储程序代码具有32个IO管脚支持串口、定时器、计数器、中断等功能具备2个16位定时器与6个中断源、2级优先级具有双工串行通信接口。
2.2 信息检测模块方案选择 信息采集模块主要实现在光照较弱环境下检测人体并输入信号进而控制继电器工作功能。 对于光照检测模块有两种方案分别是光敏电阻传感器模块与GY30光照强度传感器模块。光敏电阻传感器模块可以通过电位器调节检测光线亮度阈值GY30光照强度传感器可以检测相当精确的光照值。结合实际考虑以及用户需求光敏电阻传感器模块更为方便在实际使用中由用户改变所需光照阈值且此设计对光照精确度要求较小光敏电阻传感器足够满足设计需求。结合以上分析选择光敏电阻传感器作为光照检测模块。 对于检测是否有人通过有以下两种方案可供选择分别是红外线传感器以及声音传感器。使用红外线传感器作为人体检测信息采集对环境光线的适应能力强产品体积小、使用简单、功耗小、响应快、精度高、性能稳定、可以长期稳定可靠工作并且可以手动调节阈值方便改变检测需求。HCSR501为常见用于检测人体的红外线传感器且该传感器模块具备检测到人员离开后输出电平延时改变功能满足“人来灯亮人走延时熄灭”设计理念。但考虑其最小检测范围为3米在调试与展示过程中难以展示效果使用红外避障传感器模拟该传感器完成设计。 声音传感器通过检测周围声音强度但传统声控灯若声音强度设定值偏低易造成一个楼层经过人所有楼层灯全部亮
2.3 WiFi模块选择
Wifi通信电路有以下两种芯片进行选择ESP8266芯片和ESP32芯片。 ESP8266芯片是一款集成MCU芯片将内存、计数器、接口、驱动等整合在单一芯片上单核处理运行频率为80MHZ。ESP32芯片为双核处理同时支持WiFi和蓝牙通信。
本次设计主要考虑实现远距离通信并且相较于ESP32而言ESP8266价格更便宜且上市时间长在软件方面会得到更多的支持在使用上会更加方便兼容因此选择ESP8266芯片作为WiFi通信芯片使用。
2.4 终端显示
使用WiFi进行无线通信对应终端显示选择如下 利用云平台接收数据实现对不同楼层小灯亮灭情况的监控并通过云平台发送数据实现控制灯的亮灭。云平台可以实现实时控制监测考虑使用方便以及直观性选择云平台进行照明情况的显示以及远程控制。 对于显示和控制页面分为APP和网页APP需要下载软件且考虑手机端与电脑端是否兼容而网页则可点击网址即可打开并进行相关操作。考虑使用便利性选择网页作为页面。
2.5 WiFi无线通信实现方法
本次设计实现远程通信将WiFi模块连接至路由器或热点进行联网使用OneNET云平台建立产品通过MQTT协议连接至云平台。将ESP8266与STM32F103C8T6串口2PA2与PA3建立串口通信通过AT指令与MQTT数据包上传实现WiFi的无线通信。 相关连接建立需要云平台产品设备ID、鉴权信息、产品ID等信息。同时本次设计需要可视化视图用于显示不同楼层灯光照明情况并且实现对不同楼层灯光照明的控制设计可视化视图包括按钮、文本等区域设定相关命令以及返回值实现数据的上传与下发。
三、系统硬件电路图设计
3.1 整体电路图设计
电路部分包括电源电路、预留电源与GND部分、稳压电路、上电指示灯、按键电路、串口调试电路、单片机最小系统、WiFi通信电路、继电器控制电路、传感器检测电路、LED控制电路。 3.2 主控制器设计
STM32F103C8T6最小系统由晶振电路、电源电路、时钟电路、启动配置电路、复位电路以及调试电路组成。 STM32F103C8T6最小系统主频72MHz具有3.3V稳压芯片最大可提供800mA电流具备预留USB通讯功能、复位按键具有BOOT选择端口电源指示灯与功能指示灯预留串口接口及32768Hz晶振。 设计中试穿PA2、PA3串口2进行无线串口通信PA9、PA10串口1用于程序下载以及调试。功能指示灯连接至PC13用于无线连接成功提醒以及在调试过程中作为现象指示灯。
3.3 电源电路设计
本次设计使用器件工作电压分别为5V以及3.3V在电源电路选择上使用5V外部电源供电搭配稳压模块AMS1117使电压降至3.3V供模块使用。 3.4 红外线传感器电路设计
上文中已说明由于HCSR501由于检测范围过大无法进行演示故使用红外避障传感器模拟该传感器两者在检测结果均通过高低电平输出判断且工作电压以及接口相同在实际应用中可替换。 红外避障传感器作为人体检测信息采集有两个红外管分别是发送管和接收管特点是对环境光线的适应能力强干扰较小便于安装等。红外避障传感器引脚上有VCC、GND、OUT三个引脚。其工作原理是红外光线发射管发射红外光线红外光线接收管接收红外光线当没有接收到返回的红外光线时OUT引脚输出高电平当接收到返回的红外光线时OUT引脚输出低电平。当传感器模块检测到障碍物或者有物体靠近时其模块的指示灯会亮起同时OUT引脚会变低电平。因模块是非接触式传感器所以具有响应快精度高等特点。 基于连接的红外传感器检测器向主控制器发送关于设备工作状态的信号继而使继电器控制电路完成相应功能。 利用三个红外线传感器作为不同楼层人员经过情况检测采集数据供系统判断进行开关灯状态改变。 三个红外线传感器输出端口分别与PB0、PB1、PB3连接将检测结果输入至单片机内用于后续继电器闭合状态判断。 3.5 光敏电阻传感器电路设计
光敏电阻传感器指的是利用光敏元件将光信号转换为电信号的传感器敏感波长在可见光波长附近可以根据光线的明暗变化输出电信号再将电信号放大处理。 当光照强度超过阈值时传感器输出低电平而当光照强度低于阈值时输出高电平。 本设计中光敏电阻传感器用作对当前环境光照情况的判断避免在楼宇当前光照条件满足业主正常使用时开启灯光造成不必要的能源浪费。由于整个楼宇光照水平相近在设计中仅使用一个光敏电阻传感器作为对整个楼宇的光照水平判断节约IO口的使用提高效率。 光敏电阻传感器分别接3.3V电源、GND以及PA9。 3.6 继电器控制电路设计
继电器是一种电控制器件具有输入回路和输出回路之间的互动关系。通常应用于自动化的控制电路中它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。 使用继电器作为控制开关LED灯作模拟楼道灯光。继电器为常开状态当传感器检测人员经过或手动控制LED变为亮时继电器闭合LED变为亮其余时刻继电器断开LED为灭的状态。 每个继电器控制电路连接到主控制器以接收关于设备状态的信息。如果从主机向从机发送任何信号则根据接收到的数据执行相关操作。 继电器模块内部线圈分别与5V电源、GND、单片机输出端口相连。输出端的公用接口连接5V驱动电源常开端口与LED电源端口连接。 3.7 无线通信电路设计
ESP8266专为移动设备可穿戴电子产品和物联应用设计可以通过AT指令配置和单片机上的串口进行通信利用WiFi进行数据传输。 设计中利用AT指令连接手机热点访问网址实现WiFi模块与云平台的通信。 由于实际工作中各灯光设备相距距离较远无法通过WiFi分别对各个灯光设备实现通信。因此STM32主控制器通过有线连接与灯光设备相连接通过控制继电器实现电流通断在主控制器实现对各个灯光设备控制再将STM32连接到云平台云平台与主控制器进行通信实现远程控制和监控功能。 云平台用于显示灯光的亮灭状态也可以从云平台设备发送信号以便可以远程控制它。该应用程序可以通过 MQTT协议与主控制器通信。 ESP8266的VCC引脚接3.3V工作电源GND引脚接地TX与RX分别与STM32的串口2的RX、TX连接RST引脚与PA1连接用于ESP8266每次工作初始化时复位。 3.8 按键控制电路
通过设置按键控制继电器吸合和断开实现对灯光亮灭的控制模拟实现主控制器对灯光设备控制。 3.9 LED显示电路
使用三个5V供电的LED灯模拟楼道灯光USB底座作为接口连接LED。LED电源输入端口连接至继电器的常开端口当继电器吸合时电路导通LED亮。 四、系统软件设计
4.1 整体软件设计流程图
本次设计软件流程共分为三个部分分别是WiFi通信部分传感器部分按键部分三者均通过控制继电器状态实现对LED的控制。 设计分为上位机与下位机两部分上位机实现数据的显示以及控制命令发送下位机实现系统对LED的自动控制以及按键控制功能。 当硬件通电并连接热点后连接至OneNET云平台产品产品设可视化视图并生成网页用户可通过网页上按键控制下发命令经程序解析后转换为对继电器状态的控制实现控制功能三个继电器状态打包为数据每隔5sOneNET最低刷新速率上传至云平台并在可视化视图文字显示部分展示。以上内容与光照强度及是否检测有人无关。 同时光敏电阻传感器检测光照强度当低于设定阈值时若红外线传感器检测有人经过控制继电器吸合并持续至检测到无人后延时8s实现“人来灯亮人走延时熄灭”功能。 按键部分主要对输出至继电器端口的状态取反实现主控制器控制功能与光照强度及是否检测有人无关。 相关程序使用keil编写flymcu烧录使用C语言实现。 以下为整体软件设计流程图。 4.2 上位机通信设计
4.2.1 ESP8266初始化设计
ESP8266与单片机串口2进行串口通信。TX、RX分别与PA3、PA2连接用于串口通信VCC接3.3V工作电压GND接地RST引脚接PA1用作复位功能。 ESP8266初始化首先需要对串口2的PA2和PA3进行初始化设置将PA1连接的RST引脚低电平复位再将其设为高电平工作状态。接下来发送AT指令完成模式设置、DHCP功能打开连接热点与网址建立TCP连接等工作。 Station为客户端模式即ESP8266可以连接至热点或路由器然后通过其访问网络发送或获取信息。 以下为ESP8266初始化程序流程图。 4.2.2 单片机与云平台通信设计
首先需完成ESP8266STM32OneNET云平台建立通信。通过OneNET云平台建立的产品ID、设备ID、鉴权信息协议名等信息整合至MQTT数据包使用ATCIPSEND指令上传建立连接。 关于数据上传云平台需要将需上传数据整合为数组形式集中发送。设定云平台数据源名称分别为LED1LED2LED3当数据上传至云平台后相应显示部分根据数据源数值显示对于内容从而实现对数据的上传及显示实现监控LED状态功能。 当数据返回值为1即继电器状态为1显示部分为灯x亮x表示灯的序号数据返回值为0即继电器状态为0显示部分为灯x灭。数据返回值设定在云平台可视化视图中创建。 关于命令下发程序以控制LED1亮为例命令内容为“LED1:1”控制LED1灭命令内容为“LED1:0”。 命令下发通过可视化视图中的按键部分完成。 根据命令下发内容首先判断平台是否返回数据通过搜索IPD字头以及帧尾进行判断若收到返回数据返回数值为原数据若为收到返回值为空。获取平台返回数据后搜索帧尾若找到则将其中数字部分字符转换为数值形式并判断命令中是否具有关键词LED1、LED2、LED3若有则匹配关键词至相应继电器状态中实现对继电器的控制。 以下为数据下发流程图。 4.3 按键控制电路
按键控制设置中断方式为下降沿触发。读取输出至继电器的端口状态当按下按键时根据if条件语句判断若端口输出为0则继电器状态改为1若输出为1则继电器状态改为0改变LED显示状态。
4.4 传感器检测电路设计
传感器检测电路主要包括光照强度检测电路以及红外线检测电路。 主要逻辑为当光照强度低于阈值若红外线传感器检测到人则继电器吸合直至红外线传感器检测至人离开延时8s继电器断开。 光照强度低于阈值时输出为1高于阈值时输出为0。使用while函数当光照强度低于阈值时才可以进行下一步程序。 继电器输入为1时吸合LED为亮继电器输入为0时断开LED灭。 红外线传感器检测到人时输出为0未检测到人时输出为1。使用中断函数下降沿触发检测到人中断开启继电器状态变为1。使用while函数当检测到人员离开后方可进行下一步程序即定时器开启延时8s后继电器状态改为0。 设计中定时器用于模拟HCSR501模块延时改变电平功能在实际使用中可删除定时器部分函数。 五、系统调试
5.1 ESP8266模块调试
将ESP8266模块与电脑连接利用AT指令集查看该模块是否可以正常工作。由于设计采用MQTT协议不能直接使用原始AT指令集直接连接至云平台产品因此烧录MQTT固件库但烧录后发现AT指令无法正常使用查找相关资料后发现设计中原始固件库可以满足设计需求因此烧录回原始固件库并将ESP8266与STM32连接利用编程语言实现对云平台产品的连接。 下图为AT指令调试结果能够实现连接热点功能手机端显示该连接设备。 5.2 云平台调试
5.2.1 准备工作
首先登入OneNET云平台选择多协议接入中的MQTT协议建立产品并生成相关设备ID、鉴权信息、产品ID。以上信息在程序连接云平台以及建立数据源中需要用到[。 下图为创建的OneNET产品。
下图为设计的可视化视图可以实现对不同楼层灯光的监控和控制。由于权限问题按钮只能起控制作用无法根据返回数值改变相应状态因此设置显示文字用于显示LED状态。可视化视图可以发布生成网址手机端和电脑端点击网址即可进入控制页面。 依据上文中软件流程设计的连接云平台实现STM32ESP8266OneNET平台连接串口通信部分显示“连接成功”云平台部分显示“在线”状态。
5.2.2 实现数据上传
设置显示部分数据源为AAAA根据keil编程上传AAAA对于数据为2。文字部分显示内容返回值设定为当返回数据为1时显示内容为“1”返回数据为其他时显示内容为“2”。当前数据源值为2因此显示部分为“2”。 实现这一功能时由于对数据类型不熟悉导致程序中数据类型错误一直无法实现数据上传。查找相关资料后选择正确的数据类型完成上传。 实现根据上传数据改变文字显示内容过程由于最初数据源格式错误未设定数据源格式导致无法根据上传数据改变内容查找相关资料根据资料内容完成数据源格式创建实现该功能。 5.3 红外线传感器模块调试
红外线传感器在检测到人后指示灯亮同时输出低电平当为检测到人时输出为高电平。因此在设计中使用下降沿触发中断当中断触发串口输出“有人来”。 调试过程中以一个传感器为例以下为调试现象。 5.4 光敏电阻传感器模块调试
因此在调试该模块过程中利用串口通信显示现象。首先对光照低于阈值时输出高电平进行调试程序代码为输出低于阈值单片机系统板PC13亮此时光敏电阻传感器模块指示灯灭且串口输出“光照弱”。现象如下图所示。 接下来将光照强度与红外线检测结合当光照强度低于阈值时判断是否有人经过若有人经过则输出“光照低于阈值 低于光照有人来”此时模块现象为光敏电阻传感器指示灯灭红外线传感器指示灯亮现象如下图所示。
5.5 整体调试
5.5.1 照明系统自动控制
起初使用delay延时函数实现延时功能但在延时期间其他指令无法响应倘若另一红外传感器检测到人或云平台下发命令单片机无法响应。因此使用定时器进行延时功能。 实际使用中HCSR501红外热释电自带检测到人后延时改变输出电平功能自带延时功能且考虑STM32F103C8T6中定时器数量未必满足实际所需综合以上该延时功能仅在设计中为模拟红外热释电传感器使用实际中可以去除。 下图为光照强度超过阈值但红外线传感器检测到人根据程序逻辑此时LED应为灭的状态。现象如图。 下图为光照强度低于阈值且红外线传感器检测到人此时LED为亮。
5.5.2 按键实现灯光开关
下图可视化视图未下发命令且光照强度超过阈值此时LED为亮状态由按键控制且网页上对于LED2状态文字为“灯2亮”。 图5.16 按键控制LED状态
5.5.3 云平台控制灯光和监控
由于权限设置该可视化视图中按钮仅能做命令下发功能无法根据数据源返回数据改变相应状态。 可视化视图控制LED1按钮按下对应继电器状态变为1LED亮。此时光照强度超过阈值因此该现象为云平台下发命令控制且由图中可见对应LED状态显示为“灯1亮”现象如下。 六、结 论
系统以STM32F103C8T6作为核心芯片应用串口通信、中断、定时器等功能利用WIFI进行无线通信传感器进行检测继电器实现自动开关功能实现楼宇照明控制系统设计。 设计结合实际住宅、办公楼情况以光照强度作为是否开启灯光标准在低于设定光照强度阈值时红外线传感器监测到人即开启灯光。同时设计在终端以及主控制器设置控制灯光按钮对管理者而言更加方便可以更好应对特殊情况。终端网页对于使用者而言更加方便可以随时点击网址查看网页上显示灯光的状态实现监控功能。 设计内容从实际出发考虑具备实用性同时考虑节能环保实现设计的基本功能但设计内容仍存在不足在节能性上可以对供电方式加以完善例如太阳能供电。
附件PCB截图实物图 希望你喜欢这个项目并在构建过程中找到乐趣如果你有任何问题或需要帮助欢迎在评论区交流。 作者Svan. 注意本博文为不得在未经本人同意进行转载或者二次创作违者必究