目录
[2.1 硬件清单:](#2.1 硬件清单:)
[2.2 功能介绍:](#2.2 功能介绍:)
[资料获取 查看主页介绍:兆龙电子单片机设计](#资料获取 查看主页介绍:兆龙电子单片机设计)
一、设计背景和意义
1.1设计背景:
在日常家庭学习护眼照明、学生宿舍精准控光、办公场景舒适补光、老人居家便捷调光及儿童房智能护眼管控的背景下,亮度精准调节、色温智能适配、多场景便捷管控、用眼健康监测成为智能台灯类产品的核心需求。传统台灯控制方式存在明显局限:一方面,高端智能照明管控系统(如定制化室内光环境中控平台、工业级精准调光网关、品牌成套商用智能照明设备)功能虽全但成本高昂,部署复杂且需专业人员上门调试与后期维护,难以普及到普通家庭、小户型住宅、租房群体及小型办公场所等日常场景,且系统生态封闭性强,不同品牌、不同协议的调光设备与监测终端兼容性差,无法与个人移动终端、家庭智能设备、机智云物联网平台灵活联动,更换或升级成本高,无法满足不同人群(如普通家庭用户、学生、办公人员、独居老人)的便捷调光与护眼照明需求;另一方面,普通简易台灯装置(如传统机械调光台灯、单一档位定时台灯、基础款手动开关护眼灯)虽操作简单、价格低廉,但功能单一,仅能实现基础的亮度调节或固定时间启停,缺乏多维度光环境监测、色温智能调节、使用记录存储、远程调光控制及设备故障状态提醒(如光源老化、调光模块失灵、设备断电)等功能,无法满足现代化学习与办公场景下对全面覆盖、智能响应、便捷高效的调光与护眼管控需求。
现有关台灯管控方案还存在功能割裂与集成度低的问题:部分高端智能照明管控系统虽具备多维度光环境管控与护眼联动功能,但依赖复杂的软硬件架构与专属生态维护,后期使用成本高,难以覆盖预算有限的普通消费群体、学生群体或小型办公场景;而低成本台灯装置又在功能完整性与智能化上存在欠缺,无法实现光环境数据与台灯控制终端、移动 APP、机智云物联网平台的实时联动,导致调光响应延迟、亮度调节误差偏大、个性化需求(如学生学习时段自动护眼调光、老人居家柔和补光、办公场景智能补光)无法满足等问题,无法为用户舒适学习办公(如精准把控桌面光环境)及用眼健康管理(如追溯台灯使用时长、监测异常用眼光照)提供可靠支撑。基于此,本设计以 STM32 单片机为核心,融合高精度光环境采集与辅助模块(如光照强度传感模块、亮度 / 色温调节模块、定时控制模块、语音提醒模块)、LCD 显示模块、数据存储模块及基于机智云的物联网通信与异常提醒模块,构建低成本、高集成度的 STM32 单片机智能台灯控制系统 - 机智云版,以解决传统台灯控制方式操作繁琐、智能化程度低、功能单一及调光护眼管控效率低的问题。
1.2设计意义:
从使用体验与智能台灯精细化管控效率角度,该系统突破了传统台灯控制方式的局限:一是实现了多维度光环境监测与全场景调光联动(如支持环境光照强度实时采集、目标亮度 / 色温精准设定、灯光多档位智能调节、定时启停控制,联动机智云物联网通信模块、异常声光提醒模块、台灯智能调光执行模块),无需用户手动调节亮度 / 色温、频繁核对桌面光照或记录台灯运行状态,减少调光操作的繁琐性与光环境管控的延迟性;二是配备 OLED 实时显示模块,直观呈现当前环境光照强度 / 目标亮度 / 色温档位、系统运行状态(正常 / 异常)及提醒类型,同时支持数据自动存储(可通过机智云平台传输至移动 APP / 个人护眼管理平台 / 小型办公光环境管控平台),方便用户与办公管理员长期追溯光环境变化历史数据、台灯运行记录,也为优化桌面光环境方案、排查设备故障隐患及多区域照明统筹管控提供完整数据支撑;三是新增个性化光环境预警与自动调光功能,当监测到环境光照超出预设范围(如光线过暗自动提升亮度、光线过强自动降低亮度 / 切换柔和色温)或异常状态(如光照传感器失灵、调光模块卡滞、设备电量不足),系统根据状态类型自动触发对应执行动作(同时通过声光提醒模块反馈调光 / 预警信息与设备当前工作状态,机智云同步推送至关联移动终端),并联动台灯执行模块完成智能操作(如联动 "护眼模式触发",自动调节至预设护眼色温 / 亮度、记录触发时间与光照参数,同步更新护眼台账),无需人工现场干预即可实现智能台灯的精细化管控,大幅提升了调光操作的便捷性与用眼健康管理的高效性。
从技术实践与成本控制角度,本设计以 STM32 单片机为核心,充分利用其低功耗、高性价比的优势,搭配低成本的高精度光环境采集模块及通用外围模块,在保证调光精度(核心光照监测准确率可控制在 98% 以上,亮度 / 色温调节与预警响应时间可控制在 0.5 秒以内)的前提下,有效降低了系统整体成本,相比同功能的高端智能照明管控系统成本降低 40%-60%,更易普及到普通家庭、学生宿舍、小型办公场所、个体商铺及老人居家照料等场景。同时,系统支持模块化扩展(如后续可新增多区域光环境联动调控功能、多人个性化调光权限管理功能、基于机智云的远程手动调光与参数设置功能),为后续功能升级预留了空间,具备良好的灵活性与可扩展性。
**二、**实物展示
下方为实物演示视频
下方为实物展示图片

三、硬件功能介绍
2.1 硬件清单:
-
STM32F103C8T6
-
OLED显示
-
DHT11温湿度传感器
-
USB台灯
-
声光报警
-
SR501人体感应模块
-
超声波传感器模块
-
光照采集
-
RTC时钟
-
WIFI模块
2.2 功能介绍:
(1)检测功能:系统检测周围环境温湿度数据、距离、人体信号、光照强度
(2)显示功能:将检测到的传感器数据显示在OLED屏幕
(3)时钟显示:将当前的实时时间显示在OLED屏幕上
(4)控制功能:通过PWM信号对台灯进行多档位亮度调节(0-10挡)
(5)手动调节:可以通过按键对台灯挡位进行手动调光(0-10挡)
(6)模式选择:可选择手动模式或者自动模式
(7)护眼功能:系统检测到人距离台灯过近蜂鸣器报警
(8)阈值调节:系统传感器阈值大小可以通过按键或者APP自行设置调节
(9)云平台:通过WIFI模块连接网络 接入机智云服务器
(10)远程控制:可以通过APP查看数据、远程控制台灯挡位、远程调节阈值和模式切换
四、软件设计流程图

五、硬件PCB展示

六、软件主函序展示
int main(void)
{
ADCX_Init();
PWM_Init(100 - 1, 720 - 1);
Timer2_Init(9,14398);
Uart2_Init(9600);
Uart1_Init(115200);
IWDG_Init(); //初始化看门狗
LDR_Init();
OLED_Init();
DHT11_Init();
LED_Init();
Key_Init();
HC_SR501_Init();
HC_SR04_Init();
Buzzer_Init();
MyRTC_Init();
Sensorthreshold.Illumination_threshold = FLASH_R(FLASH_START_ADDR); //从指定页的地址读FLASH
Sensorthreshold.Distance_threshold = FLASH_R(FLASH_START_ADDR+2); //从指定页的地址读FLASH
GENERAL_TIM_Init();
userInit(); //完成机智云初始赋值
gizwitsInit(); //开辟一个环形缓冲区
// GPIO_SetBits(Buzzer_PROT, Buzzer);
// Delay_ms(1200);
while (1)
{
IWDG_ReloadCounter(); //重新加载计数值 喂狗
sensorScan(); //获取传感器数据
switch (menu)
{
case display_page:
MyRTC_ReadTime(); //调用此函数后,RTC硬件电路里时间值将刷新到全局数组
OLED_Menu_SensorData(); //显示主页面传感器数据、系统模式等内容
OLED_Menu(); //显示主页面的固定内容
if (!systemModel)
{
LED_PWM_KEY(); //按键控制LED的PWM
}
//切换系统模式
if (KeyNum == KEY_1)
{
KeyNum = 0;
systemModel = ~systemModel;
if (systemModel)
{
currentDataPoint.valueModel = 1;
}
else
{
currentDataPoint.valueModel = 0;
}
}
//判断是否进入阈值设置界面
if (KeyNum == KEY_Long1)
{
KeyNum = 0;
OLED_Clear(); //清屏
menu = settingsPage; //跳转到阈值设置界面
}
break;
case settingsPage:
OLED_SetInterfacevoid(); //显示阈值设置界面的固定内容
OLED_Option(SetSelection()); //实现阈值设置页面的选择功能
ThresholdModification(SetSelection()); //实现阈值调节功能
//判断是否退出阈值设置界面
if (KeyNum == KEY_2)
{
KeyNum = 0;
OLED_Clear(); //清屏
menu = display_page; //跳转到主界面
//存储修改的传感器阈值至flash内
FLASH_W(FLASH_START_ADDR, Sensorthreshold.Illumination_threshold, Sensorthreshold.Distance_threshold);
currentDataPoint.valueIllumination_threshold = Sensorthreshold.Illumination_threshold;
currentDataPoint.valueDistance_threshold = Sensorthreshold.Distance_threshold;
}
break;
case timeSettingsPage:
OLED_ThresholdTime(); //显示时间设置界面的内容
OLED_Time_Option(SetSelection()); //实现间设置界面的选择功能
TimeModification(SetSelection()); //实现时间调节功能
//判断是否退出时间设置界面
if (KeyNum == KEY_2)
{
KeyNum = 0;
//将更改的数据赋值回RTC数组中
MyRTC_Time[3] = hour;
MyRTC_Time[4] = minute;
MyRTC_Time[5] = second;
MyRTC_SetTime(); //调用此函数后,全局数组里时间值将刷新到RTC硬件电路
OLED_Clear(); //清屏
menu = settingsPage; //回到阈值设置界面
}
break;
}
//判断上位机是否更改阈值,如更改则保存至flash中
if (valueFlashflag)
{
valueFlashflag = 0;
//存储修改的传感器阈值至flash内
FLASH_W(FLASH_START_ADDR, Sensorthreshold.Illumination_threshold, Sensorthreshold.Distance_threshold);
}
userHandle(); //更新机智云数据点变量存储的值
gizwitsHandle((dataPoint_t *)¤tDataPoint); //数据上传至机智云
}
}
七、单片机实物资料
