问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于STM32单片机的智能照明控制系统设计(代码+原理图+APP)

创作时间:
作者:
@小白创作中心

基于STM32单片机的智能照明控制系统设计(代码+原理图+APP)

引用
CSDN
1.
https://blog.csdn.net/qq_58404700/article/details/146165856

本文设计了一种基于STM32单片机的智能照明控制系统,该系统采用STM32F103C8T6作为主控芯片,结合SR-05红外热释电人体传感器模块、INA226路灯功率检测模块、L298N路灯驱动电路模块、0.96寸OLED12864显示屏模块、独立按键电路模块、ESP8266-01S WiFi模块以及蜂鸣器模块,实现了照明系统的智能化控制。系统具有OLED显示、WiFi远程控制、光敏电阻环境亮度采集、自动人体感应控制、手动按键控制、电压电流监测以及故障报警等功能。本文详细介绍了系统的硬件设计、软件实现以及测试结果,验证了系统的可靠性和实用性。

一、引言

随着物联网技术的不断发展,智能照明系统在城市照明、家居照明等领域得到了广泛应用。智能照明系统能够根据环境亮度、人体活动等因素自动调节照明状态,提高照明效率和能源利用率。本文设计了一种基于STM32单片机的智能照明控制系统,旨在实现照明系统的智能化、自动化控制,提高照明系统的实用性和用户体验。

二、系统总体设计

2.1 系统架构

本系统以STM32F103C8T6单片机为核心,结合SR-05红外热释电人体传感器模块、INA226路灯功率检测模块、L298N路灯驱动电路模块、0.96寸OLED12864显示屏模块、独立按键电路模块、ESP8266-01S WiFi模块以及蜂鸣器模块,构建了完整的智能照明控制系统。系统架构如图1所示。

图1 系统架构图

2.2 功能需求

本系统需实现以下功能:

  1. 使用OLED显示灯的状态(亮灭)、工作模式(自动或手动)、环境亮度值、灯的档位(三个不同亮度)。
  2. 使用WiFi模块连接手机,实现在手机APP端显示并且控制灯的状态、工作模式、工作档位。
  3. 使用光敏电阻模块采集当前环境的亮度值,并且将亮度值上传到手机APP端。
  4. 自动模式下,使用SR-05传感器检测人体,亮度值较低且检测到人体时,灯会自动打开,10秒后没有再次检测到人体自动关灯。
  5. 使用L298N驱动模块驱动路灯,手动模式下,设置三个按键可控制灯的亮灭、工作模式、工作档位。
  6. 电压电流超过安全阈值,路灯自动断电;路灯故障时蜂鸣器报警,同时手机APP端收到路灯故障通知。

三、硬件设计

3.1 STM32F103C8T6主控芯片

STM32F103C8T6是一款基于ARM Cortex-M3内核的32位微控制器,具有高性能、低功耗、易于开发等优点。本系统采用STM32F103C8T6作为主控芯片,负责系统的数据处理和控制逻辑。STM32F103C8T6具有丰富的外设接口,包括USART、I2C、SPI等,方便与其他模块进行通信。

3.2 SR-05红外热释电人体传感器模块

SR-05红外热释电人体传感器模块采用热释电效应原理,能够检测人体发出的红外辐射,实现人体感应功能。本系统使用SR-05传感器模块在自动模式下检测人体活动,当检测到人体且环境亮度较低时,自动打开路灯。

3.3 INA226路灯功率检测模块

INA226是一款高精度电流和功率监测芯片,能够实时监测路灯的电流和功率。本系统采用INA226模块对路灯的功率进行监测,并将监测数据上传到手机APP端,方便用户了解路灯的能耗情况。

3.4 L298N路灯驱动电路模块

L298N是一款高性能的直流电机驱动芯片,能够驱动直流电机、步进电机等负载。本系统使用L298N模块作为路灯的驱动电路,通过PWM信号控制路灯的亮度。L298N模块具有过流保护、短路保护等功能,提高了系统的安全性。

3.5 0.96寸OLED12864显示屏模块

0.96寸OLED12864显示屏模块具有高对比度、快速响应时间和低功耗等优点,适合用于显示系统状态和信息。本系统采用OLED显示屏模块显示灯的状态、工作模式、环境亮度值和灯的档位等信息,方便用户了解系统状态。

3.6 独立按键电路模块

独立按键电路模块用于手动控制路灯的状态、工作模式和工作档位。本系统设置了三个独立按键,分别用于控制灯的亮灭、切换工作模式和调整灯的档位。

3.7 ESP8266-01S WiFi模块

ESP8266-01S是一款低功耗的WiFi模块,支持STA/AP/STA+AP三种工作模式。本系统采用ESP8266-01S模块实现与手机APP的通信,用户可以通过手机APP远程控制路灯的状态、工作模式和工作档位,并实时查看系统状态和能耗情况。

3.8 蜂鸣器模块

蜂鸣器模块用于在系统出现故障时发出报警声,提醒用户及时处理。本系统设置了蜂鸣器模块,在电压电流超过安全阈值或路灯故障时发出报警声,并通过WiFi模块将故障信息发送到手机APP端。

四、软件设计

4.1 主程序设计

本系统主程序采用C语言编写,主要包括初始化、数据采集、数据处理、控制逻辑和通信等功能。主程序流程图如图2所示。

图2 主程序流程图

在主程序中,首先进行系统初始化,包括时钟配置、外设初始化、变量初始化等。然后,系统进入数据采集阶段,通过光敏电阻模块采集环境亮度值,通过SR-05传感器模块检测人体活动,通过INA226模块监测路灯功率。采集到的数据经过处理后,根据控制逻辑判断是否需要调整路灯状态。如果需要调整,则通过L298N模块控制路灯亮度,并通过OLED显示屏模块显示系统状态。同时,系统通过ESP8266-01S模块与手机APP进行通信,实现远程控制和状态显示。在出现故障时,系统通过蜂鸣器模块发出报警声,并通过WiFi模块将故障信息发送到手机APP端。

4.2 数据采集与处理

数据采集与处理是系统的重要功能之一。本系统通过光敏电阻模块采集环境亮度值,通过SR-05传感器模块检测人体活动,通过INA226模块监测路灯功率。采集到的数据经过滤波、去噪等处理后,用于控制逻辑的判断和路灯状态的调整。

在采集环境亮度值时,系统采用ADC模块对光敏电阻的电压值进行采样,并通过计算得到环境亮度值。在检测人体活动时,系统采用数字输入方式读取SR-05传感器模块的输出信号,并根据信号状态判断是否存在人体活动。在监测路灯功率时,系统通过I2C接口与INA226模块通信,读取路灯的电流和功率值。

4.3 控制逻辑设计

控制逻辑是系统的核心部分,负责根据采集到的数据判断是否需要调整路灯状态。本系统采用状态机的方式实现控制逻辑的设计,根据当前状态和环境条件进行状态转移和动作执行。

在自动模式下,系统根据环境亮度值和人体活动状态进行状态转移。当环境亮度值低于设定阈值且检测到人体活动时,系统转移到“开灯”状态,打开路灯。在“开灯”状态下,如果10秒内没有再次检测到人体活动,则系统转移到“关灯”状态,关闭路灯。在手动模式下,系统根据按键输入进行状态转移和动作执行。用户可以通过按键控制灯的亮灭、切换工作模式和调整灯的档位。

4.4 通信协议设计

本系统采用ESP8266-01S模块实现与手机APP的通信。为了确保通信的可靠性和高效性,本系统设计了自定义的通信协议。通信协议包括帧头、帧长度、数据域、校验码和帧尾等部分。帧头和帧尾用于标识数据帧的起始和结束;帧长度表示数据域的长度;数据域包含控制命令、状态信息、能耗数据等内容;校验码用于校验数据的正确性。

在通信过程中,系统首先发送数据帧给手机APP,手机APP接收到数据帧后进行解析,并根据解析结果执行相应的操作或显示相应的信息。同时,手机APP也可以发送控制命令给系统,系统接收到控制命令后进行解析,并根据解析结果调整路灯的状态或工作模式。

为了确保通信的实时性和可靠性,本系统采用了TCP协议进行通信。TCP协议具有可靠传输、流量控制和拥塞控制等优点,能够保证数据在传输过程中的完整性和顺序性。在通信过程中,系统作为TCP服务器,手机APP作为TCP客户端,通过建立TCP连接实现数据的双向传输。

五、系统测试与验证

5.1 测试环境搭建

为了验证系统的功能和性能,本系统在实验室环境下进行了测试。测试环境包括一个模拟的照明区域、一个STM32F103C8T6开发板、SR-05红外热释电人体传感器模块、INA226路灯功率检测模块、L298N路灯驱动电路模块、0.96寸OLED12864显示屏模块、独立按键电路模块、ESP8266-01S WiFi模块、蜂鸣器模块以及光敏电阻模块等。同时,还准备了一部安装了定制APP的智能手机作为测试终端。

5.2 功能测试

在功能测试中,主要测试了系统的OLED显示功能、WiFi远程控制功能、光敏电阻环境亮度采集功能、自动人体感应控制功能、手动按键控制功能以及电压电流监测和故障报警功能等。测试结果表明,系统能够正确显示路灯的状态、工作模式、环境亮度值和灯的档位等信息;用户可以通过手机APP远程控制路灯的状态、工作模式和工作档位,并实时查看系统状态和能耗情况;系统能够正确采集环境亮度值,并根据亮度值和人体活动状态自动调整路灯状态;手动模式下,用户可以通过按键控制路灯的亮灭、切换工作模式和调整灯的档位;系统能够实时监测电压和电流值,并在超过安全阈值时自动断电;在路灯故障时,系统能够发出报警声,并通过WiFi模块将故障信息发送到手机APP端。

5.3 性能测试

在性能测试中,主要测试了系统的响应时间、稳定性以及能耗等指标。测试结果表明,系统在接收到控制命令后能够迅速响应并调整路灯状态,响应时间小于1秒;系统在长时间运行过程中保持稳定,没有出现崩溃或异常现象;系统的能耗较低,符合节能要求。

六、结论与展望

本文设计了一种基于STM32单片机的智能照明控制系统,该系统结合了SR-05红外热释电人体传感器模块、INA226路灯功率检测模块、L298N路灯驱动电路模块、0.96寸OLED12864显示屏模块、独立按键电路模块、ESP8266-01S WiFi模块以及蜂鸣器模块等,实现了照明系统的智能化、自动化控制。系统具有OLED显示、WiFi远程控制、光敏电阻环境亮度采集、自动人体感应控制、手动按键控制、电压电流监测以及故障报警等功能。测试结果表明,系统功能和性能均符合预期要求,具有较高的实用性和可靠性。

未来,可以进一步优化系统的控制算法和通信协议,提高系统的响应速度和通信效率。同时,可以考虑增加更多的传感器和执行器,如温湿度传感器、光照强度传感器、智能调光器等,以丰富系统的功能和应用场景。此外,还可以将系统与其他智能家居设备进行联动控制,实现更加智能化的家居照明体验。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号