0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32项目分享:STM32智能语音台灯

机智云 2025-03-15 10:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

项目成品图片:

9527b630-0141-11f0-9434-92fbcf53809c.png



01

项目简介


1.功能详解


STM32智能语音台灯

功能如下:


1. STM32F103C8T6单片机系统板作为主控单元

2. 按键切换模式,支持智能/按键/远程/语音四种模式

3. 光敏电阻采集光照强度,超声波传感器采集坐姿距离,所有参数显示在OLED

4. 智能模式:自动识别有人开灯,并根据环境光强度控制灯的亮度

5. 按键模式:按键手动调节灯亮度(三档),可以按键控制计时

6. 远程模式:通过手机蓝牙APP远程控制台灯开关与计时操作

7. 语音模式:通过语音识别控制台灯调光与计时功能

8. 坐姿报警:超声波距离报警,距离小于10cm提醒坐姿



2.材料清单

STM32F103C8T6单片机

OLED 屏幕

光敏电阻传感器

光电红外传感器

超声波传感器

SNR016语音识别模块

HC-SR04超声波模块

大功率LED模块

有源蜂鸣器


02


原理图设计


95597ff8-0141-11f0-9434-92fbcf53809c.png


03


PCB硬件设计


PCB图

957229f4-0141-11f0-9434-92fbcf53809c.png9589764a-0141-11f0-9434-92fbcf53809c.png


04

程序设计


#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"
externu8 Res1, Res3;externinttimer1;u16 sonic_dis =0;intmain(void){ intkey =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); //10us EXTIX_Init(); hc_sr04_init(); //HC_SR04初始化


TIM4_Int_Init(9999,7199); //计时 TIM2_PWM_Init(899,0); //调节亮度

TIM_SetCompare2(TIM2,899);
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; } elseif(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; } elseif(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); } } elseif(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); } elseif(flag3 ==1) { TIM_SetCompare2(TIM2,800); }elseif(flag3 ==2) { TIM_SetCompare2(TIM2,600); }elseif(flag3 ==3) { TIM_SetCompare2(TIM2,400); }
if(key ==3) { flag4 = !flag4;//计时 } if(flag4 ==1) { TIM_Cmd(TIM4, ENABLE); //使能TIMx OLED_ShowNum(40,6, timer1,3,16); } if(flag4 ==0) { TIM_Cmd(TIM4, DISABLE); //使能TIMx OLED_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) { case1: TIM_SetCompare2(TIM2,400); break;//开灯 case2: TIM_SetCompare2(TIM2,899); break;//关灯

case3: TIM_Cmd(TIM4, ENABLE); OLED_ShowNum(40,6, timer1,3,16); break;//开启计时 case4: TIM_Cmd(TIM4, DISABLE); OLED_ShowNum(40,6, timer1,3,16); break;//关闭计时 case5: TIM_SetCompare2(TIM2,200); break;//三档灯光 case6: TIM_SetCompare2(TIM2,500); break;//二档灯光

case7: TIM_SetCompare2(TIM2,800); break;//一档灯光 case8: 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) { case1: TIM_SetCompare2(TIM2,400); break;//开灯 case2: TIM_SetCompare2(TIM2,899); break;//关灯 case3: TIM_SetCompare2(TIM2,800);

break;//一档灯光 case4: TIM_SetCompare2(TIM2,500); break;//二档灯光 case5:TIM_SetCompare2(TIM2,200); break;//三档灯光 case6: TIM_Cmd(TIM4, ENABLE); OLED_ShowNum(40,6, timer1,3,16); break;//开启计时 case7: TIM_Cmd(TIM4, DISABLE); OLED_ShowNum(40,6, timer1,3,16); break;//关闭计时 case8: TIM_Cmd(TIM4, DISABLE); timer1 =0;//清零 OLED_ShowNum(40,6, timer1,3,16); break; }
} if(key ==4) { timer1 =0; }
}}


05

实验效果

95a9f276-0141-11f0-9434-92fbcf53809c.png9600fa08-0141-11f0-9434-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 台灯
    +关注

    关注

    1

    文章

    138

    浏览量

    33101
  • STM32
    +关注

    关注

    2313

    文章

    11195

    浏览量

    374673
  • 智能语音
    +关注

    关注

    11

    文章

    829

    浏览量

    50347
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    诚接stm32项目

    诚接stm32项目价格私聊
    发表于 05-17 10:20

    stm32项目搭建基础

    初学者吧stm32项目搭建基础好吧进入主题,我们现在要搭建一个stm32项目我还是把问题写在最开始把1. 注册keil你的keil需要注册当你编写了几行类似于helloworld的小
    发表于 08-23 08:47

    如何在IAR for ARM中创建STM32项目

    如何在IAR for ARM中创建STM32项目
    发表于 11-30 07:16

    CubeMX如何创建stm32项目

    CubeMX如何创建stm32项目
    发表于 02-14 06:24

    STM32项目设计:基于STM32F4的mp3、wav音乐播放器 (UCOSIII操作系统、GUI控件)

    STM32项目设计:基于STM32F4的mp3、wav音乐播放器 (UCOSIII操作系统、GUI控件)
    发表于 11-15 15:21 50次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>设计:基于<b class='flag-5'>STM32</b>F4的mp3、wav音乐播放器 (UCOSIII操作系统、GUI控件)

    STM32项目分享:智能家居(机智云)系统

    STM32项目分享:智能家居(机智云)系统
    的头像 发表于 07-28 08:10 4430次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:<b class='flag-5'>智能</b>家居(机智云)系统

    STM32项目实战:基于STM32F4的智能灯光控制系统(LVGL),附项目教程/源码

    智能灯光控制系统_STM32F4》项目完整文档、项目源码,私信小雯老师免费领取。STM32项目
    的头像 发表于 10-17 16:16 3001次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>实战:基于<b class='flag-5'>STM32</b>F4的<b class='flag-5'>智能</b>灯光控制系统(LVGL),附<b class='flag-5'>项目</b>教程/源码

    STM32项目实战:基于STM32U5的智能灯光控制系统(LVGL),附项目教程/源码

    智能灯光控制系统_STM32U5》项目完整文档、项目源码,点击免费领取。项目资料领取:https://s.c1ns.cn/F5XyU
    的头像 发表于 11-07 18:50 3690次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>实战:基于<b class='flag-5'>STM32</b>U5的<b class='flag-5'>智能</b>灯光控制系统(LVGL),附<b class='flag-5'>项目</b>教程/源码

    STM32项目实战:基于STM32U5的火灾报警系统(LVGL),附项目教程/源码

    《火灾报警系统_STM32U5》项目完整文档、项目源码,点击下方链接免费领取。项目资料领取https://s.c1ns.cn/F5XyUSTM32
    的头像 发表于 11-13 14:18 2948次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>实战:基于<b class='flag-5'>STM32</b>U5的火灾报警系统(LVGL),附<b class='flag-5'>项目</b>教程/源码

    STM32项目实战:基于STM32U5的智能大棚温控系统(LVGL),附项目教程/源码

    智能大棚温控系统_STM32U5》项目完整文档、项目源码,点击下方链接免费领取。项目资料领取https://s.c1ns.cn/F5XyU
    的头像 发表于 11-13 17:08 2924次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>实战:基于<b class='flag-5'>STM32</b>U5的<b class='flag-5'>智能</b>大棚温控系统(LVGL),附<b class='flag-5'>项目</b>教程/源码

    STM32项目分享:智能台灯系统

    01—项目简介1.功能详解基于STM32智能台灯系统。功能如下:亮度控制:按键控制照明灯的亮度(5挡亮度)计时功能:按键启动计时,累
    的头像 发表于 11-29 01:02 3353次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:<b class='flag-5'>智能</b><b class='flag-5'>台灯</b>系统

    STM32项目分享:智能台灯(机智云)系统

    01—项目简介1.功能详解STM32智能台灯(机智云)系统功能如下:1.检测功能:系统检测周围温湿度数据、距离、人体信号、光照强度L
    的头像 发表于 03-10 08:03 2193次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:<b class='flag-5'>智能</b><b class='flag-5'>台灯</b>(机智云)系统

    STM32项目分享:STM32智能语音分类垃圾桶

    01—项目简介1.功能详解STM32智能语音分类垃圾桶功能如下:1.STM32F103C8T6单片机系统板作为主控单元2.舵机驱动垃
    的头像 发表于 03-15 10:02 3302次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:<b class='flag-5'>STM32</b><b class='flag-5'>智能</b><b class='flag-5'>语音</b>分类垃圾桶

    STM32项目分享:智能鞋柜

    01—项目简介1.功能详解STM32智能鞋柜功能如下:DHT11检测鞋柜温湿度,温度低于阈值开启加热,湿度高于阈值开启加热和通风;P
    的头像 发表于 05-27 18:04 1156次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:<b class='flag-5'>智能</b>鞋柜

    STM32项目分享:智能语音台灯(机智云)

    01—项目简介1.功能详解STM32智能语音台灯(机智云)功能如下:STM32F103C8T6单
    的头像 发表于 07-24 18:03 1832次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:<b class='flag-5'>智能</b><b class='flag-5'>语音</b><b class='flag-5'>台灯</b>(机智云)