【STM32方案开源】基于STM32的智能语音台灯框架

news/2025/11/8 16:48:09/文章来源:https://www.cnblogs.com/yxysuanfa/p/19202641

目录

一、设计背景和意义

1.1设计背景

1.2设计意义

二、实物效果展示

2.1实物图片

2.2实物演示视频

三、硬件功能简介

3.1项目功能详解

3.2元器件清单

四、主框图与软件流程图

五、硬件PCB展示

六、软件程序设计

七、项目资料包内容

资料获取:查看主页介绍“充哥单片机设计”


一、设计背景和意义

1.1设计背景

随着“智能家居”理念的广泛普及以及物联网、嵌入式系统等前沿技术的发展,传统家居照明产品正经历着由“人工控制”向“智能联动”“自动响应”转变的深刻变革。作为家庭和办公场景中使用频率极高的照明设备,台灯的作用和体验也正在被重新定义。传统台灯产品普遍存在照度不可调、能耗高、操作方式单一、缺乏人性化设计等问题,无法满足当代用户对“舒适、健康、节能、智能”照明体验的多重需求,尤其对于长时间用眼的学生和办公人群来说,缺乏动态调光、护眼提醒等功能更是隐患重重。

1.2设计意义

该平台利用集成DHT11环境温湿度传感器、光敏电阻、HC-SR04超声波测距模块、AS312人体感应模块以及DS1302时钟模块,能够实时监测用户周围环境状况及使用行为,从而在不同模式下自动判断灯光状态是否需要开启并调节至合适亮度,在实现节能照明的同时,也提升了用眼健康与运用便捷性。此外,系统通过ESP8266 WiFi模块接入机智云平台,使用户能够随时随地通过手机APP控制灯光设备,并远程查看环境资料及历史记录,提升了系统的人机交互体验与实用性。

从学术研究的角度来看,本课题综合了嵌入式软硬件设计、物联网通信、自动控制、传感器应用等多个知识点,体现了计算机科学与现代智能硬件工程融合的特点,具有较强的技术综合性和工程完成价值。对于培养学生系统开发能力、动手实践能力和工程创新思维具有积极意义。

二、实物效果展示

2.1实物图片

2.2实物演示视频

【开源】基于STM32的智能语音台灯框架

三、硬件效果简介

3.1项目功能详解

1.传感器检测:温湿度、距离、人体信号、光强
2.数据显示:0.96OLED屏幕
3.执行机构:控制LED灯开关和亮度、蜂鸣器
4.接入云平台:通过ESP8266 WIFI联网后,接入机智云平台
5.App远程监控:经过App远程监控传感器数据,控制台灯的亮度、开关
6.阈值数据设定:体系通过按键/APP设定阈值
7.模式切换:可以通过按键或者手机App达成自动/手动/定时模式的切换
8.语音控制:语音助手控制台灯亮度,开关
9.护眼能力:当平台检测到人距离台灯过近(坐姿不标准)蜂鸣器报警

3.2元器件清单

  1. 主控STM32F103C8T6
  2. ESP8266-WIFI模块
  3. 红外热释电人体存在检测模块
  4. 超声波坐姿检测传感器
  5. 蜂鸣器模块
  6. 0.96OLED显示屏幕
  7. 光敏电阻检测
  8. USB灯座+灯片
  9. DS1302时钟模块
  10. 四个按键模块
  11. DHT11温湿度传感器

四、主框图与软件流程图

主框图

流程图

五、硬件PCB展示

六、软件程序设计

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "oled.h"
#include "usart.h"
#include "exti.h"
#include "timer.h"
#include "HC_SR04.h"
#include "kalman.h"
#include "lsens.h"
#include "adc.h"
#include "hongwai.h"
#include "BEEP.h"
#include "usart2.h"
#include "usart3.h"
extern u8 Res1, Res3;
extern int timer1;
u16 sonic_dis = 0;
int main(void)
{int key = 0, flag1 = 0, flag2 = 0, flag3 = 0, flag4 = 0, guangmi = 0, flag5 = 0;delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);uart_init(115200);usart3_Init(9600);LED_Init();BEEP_Init();OLED_Init();KEY_Init();Lsens_Init();hongwai();                    //人体TIM3_Int_Init(9, 71);         //10usEXTIX_Init();hc_sr04_init();               //HC_SR04初始化TIM4_Int_Init(9999, 7199);    //计时TIM2_PWM_Init(899, 0);        //调节亮度BEEP = 0;OLED_ShowCHinese(35, 0, 0);OLED_ShowCHinese(50, 0, 1);OLED_ShowCHinese(65, 0, 2);OLED_ShowCHinese(80, 0, 3);      //标题OLED_ShowCHinese(0, 2, 6);OLED_ShowCHinese(15, 2, 7);OLED_ShowString(30, 2, ":", 16); //模式OLED_ShowCHinese(0, 4, 16);OLED_ShowCHinese(15, 4, 17);OLED_ShowString(30, 4, ":", 16); //状态OLED_ShowCHinese(70, 4, 22);     //无人OLED_ShowCHinese(85, 4, 23);OLED_ShowString(100, 4, ":", 16);//状态OLED_ShowCHinese(0, 6, 24);      //时间OLED_ShowCHinese(15, 6, 25);OLED_ShowString(30, 6, ":", 16);OLED_ShowString(65, 6, "s", 16);while (1){usart2_init(9600);                                      //蓝牙通信sonic_Trig();                                           //超声波sonic_dis = sonic_distance / 10;OLED_ShowNum(75, 6, sonic_distance / 10, 4, 16);OLED_ShowString(110, 6, "cm", 16);if (sonic_distance / 10 > 10){BEEP = 0;}else if (sonic_distance / 10 <= 10){BEEP = 1;}guangmi = Lsens_Get_Val();                              //亮度OLED_ShowNum(110, 4, guangmi, 2, 16);key = KEY_Scan(0);if (key == 1){flag1 += 1;if (flag1 > 3)flag1 = 0;}if (flag1 == 0)                              //智能模式{OLED_ShowCHinese(45, 2, 4);OLED_ShowCHinese(60, 2, 5);OLED_ShowCHinese(75, 2, 6);OLED_ShowCHinese(90, 2, 7);if (renti == 0){OLED_ShowCHinese(40, 4, 18);//有人OLED_ShowCHinese(55, 4, 19);flag2 = 1;}else if (renti == 1){OLED_ShowCHinese(40, 4, 20);//无人OLED_ShowCHinese(55, 4, 21);flag2 = 0;}if (flag2 == 1){if (guangmi > 20 && guangmi <= 40){TIM_SetCompare2(TIM2, 200);}if (guangmi > 40 && guangmi <= 60){TIM_SetCompare2(TIM2, 400);}if (guangmi > 60){TIM_SetCompare2(TIM2, 800);}}else if (flag2 == 0){TIM_SetCompare2(TIM2, 899);//关灯}}if (flag1 == 1){OLED_ShowCHinese(45, 2, 8);OLED_ShowCHinese(60, 2, 9);OLED_ShowCHinese(75, 2, 10);OLED_ShowCHinese(90, 2, 11); //按键模式if (key == 2){flag3 +=1 ;if(flag3>3){flag3=0;}}if (flag3 == 0){TIM_SetCompare2(TIM2, 899);}else if (flag3 == 1){TIM_SetCompare2(TIM2, 800);}else if (flag3 == 2){TIM_SetCompare2(TIM2, 600);}else if (flag3 == 3){TIM_SetCompare2(TIM2, 400);}if (key == 3){flag4 = !flag4; //计时}if (flag4 == 1){TIM_Cmd(TIM4, ENABLE);  //使能TIMxOLED_ShowNum(40, 6, timer1, 3, 16);}if (flag4 == 0){TIM_Cmd(TIM4, DISABLE);  //使能TIMxOLED_ShowNum(40, 6, timer1, 3, 16);}}if (flag1 == 2){OLED_ShowCHinese(45, 2, 12);OLED_ShowCHinese(60, 2, 13);OLED_ShowCHinese(75, 2, 14);OLED_ShowCHinese(90, 2, 15); //远程模式switch (Res1){case 1: TIM_SetCompare2(TIM2, 400);break; //开灯case 2: TIM_SetCompare2(TIM2, 899);break; //关灯case 3: TIM_Cmd(TIM4, ENABLE);OLED_ShowNum(40, 6, timer1, 3, 16);break; //开启计时case 4: TIM_Cmd(TIM4, DISABLE);OLED_ShowNum(40, 6, timer1, 3, 16);break; //关闭计时case 5: TIM_SetCompare2(TIM2, 200);break; //三档灯光case 6: TIM_SetCompare2(TIM2, 400);break; //二档灯光case 7: TIM_SetCompare2(TIM2, 800);break; //一档灯光case 8: TIM_Cmd(TIM4, DISABLE);timer1 = 0;OLED_ShowNum(40, 6, timer1, 3, 16);break; //清零}}if (flag1 == 3){OLED_ShowCHinese(45, 2, 26);OLED_ShowCHinese(60, 2, 27);OLED_ShowCHinese(75, 2, 28);OLED_ShowCHinese(90, 2, 29); //远程模式Uart3_SendCMD2(0x01, guangmi);Uart3_SendCMD2(0x02, sonic_distance / 10);switch (Res3){case 3: TIM_SetCompare2(TIM2, 400);break; //开灯case 4: TIM_SetCompare2(TIM2, 899);break; //关灯case 5: TIM_SetCompare2(TIM2, 200);break; //三档灯光case 6: TIM_SetCompare2(TIM2, 400);break; //二档灯光case 7: TIM_SetCompare2(TIM2, 800);break; //一档灯光case 8: TIM_Cmd(TIM4, ENABLE);OLED_ShowNum(40, 6, timer1, 3, 16);break; //开启计时case 9: TIM_Cmd(TIM4, DISABLE);OLED_ShowNum(40, 6, timer1, 3, 16);break; //关闭计时case 0x10: TIM_Cmd(TIM4, DISABLE);timer1 = 0;//清零OLED_ShowNum(40, 6, timer1, 3, 16);break;}}if (key == 4){timer1 = 0;}}
}

七、项目资料包内容

资料获取:查看主页介绍“充哥单片机设计”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/959832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年实验室全钢通风橱订制厂家权威推荐榜单:实验室全钢排风柜/全钢结构步入式通风柜/全钢台式通风柜源头厂家精选

在现代实验室建设中,全钢通风橱作为保障实验人员安全的核心装备,其性能直接关系到实验室的运营安全与效率。据实验室设备行业数据显示,2025年中国实验室通风设备市场规模预计达到87亿元,年复合增长率稳定在10%-12%…

flask: 对Flask-SQLAlchemy查询得到的数据遍历处理

一,代码: @user.route("/list/") def user_list():meta = {"title": "用户列表","code": 200,"msg": ""}# 得到数据库中的数据users = User.query.all…

go 工作区(workspace)模式

使用go写一个处理数学运算的小通用包 go.mod文件如下 module gitee.com/demo_go/utils_mathgo 1.25.3utilsmath.go 文件内容如下 package utilsmathimport "fmt"func AddInt(a, b int) int {fmt.Printf(&quo…

# [NOIP 2016 提高组] 天天爱跑步 题解

简要题意 给定一个拥有 \(n\) 个节点的树和 \(m\) 条运动路径,求对于每个点 \(u\) , 在 \(w_i\) 时刻经过此点的玩家数量。 思路 暴力 首先暴力模拟每个玩家的运动路径来计算对每个节点 \(u\) 是否有贡献是不可取的,…

2025年搓管机全套管实力厂家权威推荐榜单:旋挖全套管/全回转钻机全套管/全回转全套管源头厂家精选

在基建工程持续发展的推动下,搓管机全套管作为桩基施工的关键设备,其性能直接关系到施工效率与工程质量。据基建行业数据显示,2025年中国桩工机械市场规模预计达到387亿元,年复合增长率保持在12%-15% 的区间。 搓管…

842318 - Frequently asked questions about validations and substitutions

Symptom This note deals with frequently asked questions about validation and substitution maintenance. Solution I. Creating, activating and transporting validations and substitutions 1. Which transacti…

jmter题目

一. 基础HTTP GET接口请求测试 (一). 打开JMeter,新建测试计划,右键添加“线程组”(线程数1、循环次数1)。(二). 线程组下添加“HTTP请求”,服务器名称/IP填写httpbin.org,端口80,请求方法选GET,路径填写…

提高组数学:扩展欧几里得

同余\({\Huge\equiv}\)是同余符号 \[a \equiv b \pmod{n} \]读作:\(a\)与\(b\)模\(n\)同余 定义:\(a\)除以\(n\)的余数等于\(b\)除以\(n\)的余数。 例 \[10 \equiv 6 \pmod{2} \]\(\because\) \[10 \% 2 = 0 \\ 6 \%…

2025广州人力资源服务推荐榜:精典人才领衔,派遣/外包靠谱公司精选3家

在企业用工需求不断升级的当下,广州人力资源服务市场愈发成熟,人力资源派遣、外包、劳务外包等服务成为企业降本增效的关键选择。本次精选 3 家口碑过硬的服务商,其中广州精典人才创新有限公司以全维度优势登顶,为…

51汇编--外部中断

51汇编--外部中断光二极管L0~L6)。外部中断1使P1.7翻转(P1.7连接到发光二极管。按键次数,并将计数结果显示在发光二极管上(P1.0~P1.6连接7个发。将外部中断0和外部中断1分别设置为高优先级和低优先级。将单脉冲信…

第182天委派与非委派约束

非约束委派 第一种做法域控管理员得有登陆过主机: 类似PTT横向的第三种手法 第二种手法的利用: 需要DC的版本在windows server 2012以上 在漏洞利用的时候需要注意修改host的内容约束委派

51汇编-跑马灯

51汇编-跑马灯P1口接八只发光二极管,编写程序使发光二极管逐个循环点亮,形成跑马灯效果,要求编写延时子程序。本文完全免费,非VIP文章,如果您发现变为VIP文章,请邮箱联系我:openwebsite@foxmail.comP1口接八只发…

51汇编--AD和DA

51汇编--AD和DA模/数转换的正确性。写入到DAC0832的数据来自内部RAM 30H单元(可在程序暂。2.升关状态为1时选择DAC0832的输出为ADC0809的模拟输入,验证数模和。1.开关状态为0时选择电位器输出为ADC0809的模拟输入,将…

flask:用Flask-SQLAlchemy访问mysql

一,安装第三方库 $ pip3 install Flask-SQLAlchemy 二,建立到数据库的连接 import os from dotenv import load_dotenvfrom flask import Flask,jsonifyfrom flask_sqlalchemy import SQLAlchemy# 加载变量 dotenv_p…

51汇编--定时器与计数器

51汇编--定时器与计数器2.用定时器1的方式2计数,T1脚接单脉冲发生器输出,用(P1.0~P1.6连。1.用定时器0的方式1定时,P1.7接发光二极管L7,使该发光二极管每秒钟。闪烁5次,要求采用中断方式。尝试改变闪烁频率,观…

2025年废棉开花机制造企业权威推荐榜单:化纤块开花机/废布专用开花机/纤维专用开花机源头厂家精选

在资源循环利用政策的推动下,废棉开花机已成为纺织废料再生行业的核心装备,其性能直接关系到纤维回收品质与生产效率。 废棉开花机作为纺织废料回收的关键设备,通过开松、分梳、清洁等工序,将废棉、废布和化纤块等…

2025年杭州工厂外贸代运营公司权威推荐榜单:海外社媒推广/海外社媒营销/外贸推广源头公司精选

在跨境电商高速发展与政策双重驱动下,杭州外贸代运营行业已形成专业化、精细化的服务生态。据行业报告显示,2024年中国电商代运营市场规模已突破2800亿元,年增长率达19.3%,其中长三角地区服务商占据全国40%以上市场…

51汇编--数码管显示

51汇编--数码管显示把LED_CS接到CS0,若接到其他位置,需要改段地址和位地址的D12~D14位。将内部RAM30H~32H单元中存储的6位十进制数显示在6个数码管上。要求编写将一个内存单元中的压缩BCD码转换为两个七段显示码的子…

深入解析:Isaac Lab 2.3深度解析:全身控制与增强遥操作如何重塑机器人学习

深入解析:Isaac Lab 2.3深度解析:全身控制与增强遥操作如何重塑机器人学习pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

51汇编--串口通信

51汇编--串口通信实现PC机与单片机之间的串口通信,波特率为2400bits/s。给PC机(使用查询方式),接收的数据存储在30H地址开始的内部RAM中。个字节的数据给单片机,单片机接收完数据后发送两个确认字节55H和AAH。本文…