你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32项目设计:基于stm32的智能家居系统设计

[复制链接]
STMCU小助手 发布时间:2022-8-15 19:14
一、项目功能概述
% s1 Z" r! |: z, ]0 o0 R% I0 A1、OLED显示温湿度、空气质量,并可以设置报警阈值
+ [+ I* T3 l1 w8 V2、设置4个继电器开关,分别控制灯、空调、开关、风扇
' v& \1 A# L% `- n7 i& J3、设计一个离线语音识别系统,可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上
; |5 T# ]7 Y, ^- C) z9 Y4、OLED实时显示4个继电器的状态
/ v+ c; i7 Q2 D- P# n. j0 Y5、设计一个低功耗开关电路,可以语音控制使得系统进入低功耗模式,并且进入低功耗模式后可以再次语音唤醒系统,重新开始正常工作# ^* L- F* \7 \! v) w; _% N
语音控制具体描述:
3 ]) ?5 q) B) B8 ]
9 R0 A/ r* m; |! o @D`YQ~7)N4W_HAC7LO[4VYB.png
3 v, u1 g5 U) b( ?7 w  l) g! C1 h1 z% b- u$ o  q7 l
二、项目原理图1 z# h# l! [" ^. ?
(一)最小系统$ T6 n7 J$ b* s( y) h, C

; u9 E2 \4 ~. `  b MOZQ)FIBHCSUJ@I2O73`2.png 2 M, E1 Y5 Q; m* @

( K3 P, [: x; F+ C' L8 u. K( z(二)供电2 ~* J9 u6 S3 W* \

, G3 `$ ^9 l5 c- f! l {])H5BW`E{CK[F7RWG]_FN2.png
0 }; q! j0 Q. V( l- P0 f
( L; H+ K& ^* z% u- X1 l(三)传感器
0 w9 J( n& P" ?# B
8 X. ~. O. Y5 `% _ C%GCG0(S6]VB5SAY}Z`VAP0.png
+ u: W& L6 `2 Z% ~1 }& k1 w
) \5 S+ [* b- l+ k9 X. C(四)语音模块0 C$ L& H2 C% n1 K7 m

2 F, \' ^  G% t1 ~6 L ec83e11bb0d143f5aea0fec76f2bcff4.png
" ~( \* E3 z' V
& {0 _$ A$ h& K. E4 @: O; ?; G( T8 l(五)继电器模组
& n4 R# `* y' _3 h9 i
9 d5 ]! f/ J5 L. w2 q/ P, V3 n 68M)ECP8MVI{SQSU}$SQBTI.png
- [0 t, F5 Z+ Y: W! X2 J9 l: R# c$ X5 [! L, q/ e; K
(六)按键蜂鸣器3 S8 @( e7 f( J  Q

" u' I2 {& s0 H BLA4EXSR_YAMOPZBLXT{H9V.png
8 c7 Z/ Y9 [( [# f" D  a# S
( A) \6 R( `0 F9 L" K(七)低功耗开关, Y2 e) P# U& V5 n4 ^( f5 V

/ V9 n/ `2 g, H! g9 i( v3 V 425cf419e6b64a09a5f6ff28a376d54a.png
$ u5 N, ~( [7 ^: p: p
/ a- v# s- b4 k6 o& q+ o$ h  L三、程序设计1 d% ]4 L* d/ A" `; H

8 f# r+ L* R* L: Z) s& r- Z3 X
  1. int main(void)
    + l6 O# Z0 G% c$ c% |; \3 Z
  2. {        3 J) s5 N0 m1 u- p
  3.         u16 key;
    1 o' V  A( h- I; Q+ m/ V% o
  4.         int adc,cnt=0;
    ( H  y: J4 _6 S- [+ L4 r) F( c3 x0 _
  5.         float volt;
    # y5 ^0 M% \$ `. \3 h
  6.         delay_init();                     
    ; ~; v$ Q! k6 g( f& V
  7.         NVIC_Configuration();          ! m& r3 h, S% a: R
  8.         BEEP_Init();1 f, _, S( m' j8 \' F
  9.         OLED_Init();                        : E) B, P6 {/ C2 I$ t/ ~% c$ j
  10.         OLED_Clear();
      k, L3 K: A% d' E* I
  11.         uart_init(115200);6 C  b3 x8 l7 E% [) i! T
  12.         printf("欢迎使用化作尘智能家居系统\r\n");4 o' b  e- {3 t1 _. a4 H- N* S
  13.         KEY_Init();5 G2 X7 H( e1 k7 q
  14.         LED_Init();
    ' ~" x; t6 a; F5 ~. e
  15.         TIM3_Int_Init(500-1,720-1);
    3 @5 J! x" `' `% k/ Y/ j" x4 m
  16.         DEV_Init();//外设初始化6 [/ q: X% P( r# R* Q
  17.          
    % \& l3 K( n: ~! [* T# ^
  18.          
    / u; m1 m0 H8 H! p" c
  19.         OLED_ShowCHinese(8,0,50);//( l5 r4 L* T' C, H3 g
  20.         delay_ms(200);+ [  {1 X4 C; q& K7 R0 Y3 b$ a$ r6 _
  21.         OLED_ShowCHinese(24,0,51);//% q" r5 s8 y% a
  22.         delay_ms(200);6 d3 k, [& b+ r- L/ `! `! ^
  23.         OLED_ShowCHinese(40,0,52);//
    . f3 P  c1 b% F5 K- `( W
  24.         delay_ms(200);
    ( ]8 B/ x8 B) H6 z
  25.         OLED_ShowCHinese(56,0,39);//
    5 d4 _4 I+ x/ ]* E3 h: w, r
  26.         delay_ms(200);4 z0 x' Q% T. m+ E. f: `( w8 O
  27.         OLED_ShowCHinese(72,0,40);//: p: E9 D4 P+ \6 |. p% N( ~
  28.         delay_ms(200);            
    - K% n- S! ?7 u+ f0 M- @2 H8 L) h- k
  29.         OLED_ShowCHinese(88,0,48);//" f# F1 G+ d, M9 V
  30.         delay_ms(200);            1 ]+ L7 S2 m- F* _3 N
  31.         OLED_ShowCHinese(104,0,49);//
    ! ~" a* b8 I( b) \
  32.         delay_ms(200);            
    $ m) @0 t4 w+ o
  33.                
    8 P( H, V. C$ }4 s# V) ~
  34.         OLED_ShowNum(0,2,201908,6,16);' T1 y2 h/ @+ x2 w  u, ]7 N' H$ A
  35.         OLED_ShowNum(48,2,384176,6,16);
    / I, B; k' }) A; V3 K
  36.         1 Y: U) ~% f: y
  37.         ' v: m" F  D) \$ y  C/ [2 b* r
  38.                 OLED_ShowCHinese(40,4,53);, c  u0 n+ I; Z0 Z. t0 f" x- J8 X
  39.                 OLED_ShowCHinese(56,4,54);: \* v* b( o4 m+ U  K# n
  40.                 OLED_ShowCHinese(72,4,55);  |! x2 w5 G2 x9 C9 \) _2 p
  41.                
    1 n  z( N$ g) {$ z
  42.                 delay_ms(1500);            / Y5 N! A, C9 a2 K( Y+ U$ z
  43.                 0 e) H' s3 y7 S' N% {
  44.                 OLED_Clear();
    ; ~) ?$ @* b9 [0 k/ Z
  45.                 OLED_Dis_Menu();
    2 @# W) T0 w7 _% J+ Q2 w
  46.         while(1)               
    - u8 v) Q- A5 H' I2 y4 |
  47.         {                , g  P' m6 h; D0 \( G& `
  48.                 if(cnt++ ==1000)& ^3 Y# ~) ^& i- j3 d
  49.                 {8 d" a$ Z/ {; i( z9 K
  50.                         cnt = 0;, H: i' b! T0 D3 w+ d; Y- D3 t
  51.                         LED0=!LED0;7 S7 S, u% m( V1 |
  52.                         adc =        Get_Adc_Average(0,5);, s* g" g* y; l( |) A$ C
  53.                         volt = adc*3.3/4096;+ s$ Z% Y2 W. @! ?% o
  54.                         air = pow((3.4880*10*volt)/(5-volt),(1.0/0.3203));1 C' n7 h, q' a1 y
  55.                         printf("air :%d\r\n",air);
    ! b2 w+ Y: v. c; S( b3 ~$ C
  56.                         //获取温湿度
    : W9 A- T$ K+ x  W
  57.                         DHT11_Read_Data( &temp, &humi);% @, t$ H! O$ d2 I% N3 f
  58.                         if(last_temp!=temp || last_humi!=humi)) `; n9 d: g& r( [7 o6 {+ u
  59.                         {( c8 L5 X+ M* H0 ]3 ], L. R0 q
  60.                                 OLED_Dis_DHT(temp,humi,air);
    : A; V; x# l8 C0 {2 W% c- o
  61.                         }
    7 B- v, k; j! X6 h& F2 X- y( D$ p
  62.                 }, e, l- _& ]. W( y
  63.                 key = Key_GetValue();          //按键扫描
    & E4 o3 P. G; l6 q: ?
  64.                 if(key)
    2 K- d- m7 z8 p: `* Q. a
  65.                 DealKeyVal(key);
    5 _+ ^* R5 F& U! G6 ?/ @4 |
  66.                 if(!KEY1_IO())
    & J5 ]8 o* q" }4 M
  67.                 {* k7 y5 t1 z% K$ c) k
  68.                                 printf("%d\r\n",GetTime());
    3 y3 b# ^: U5 L' e& }$ h' a9 Q, _
  69.                 }
    1 U, O& g, F8 |: j2 U1 i
  70.                 if(temp>Max_temp || humi>Max_humi || air>Max_air)
    - h7 c) \. T* C: D2 C4 }* P. w8 \
  71.                 {9 c) M8 U- o; y) `( K# b1 Y; J1 v7 l/ x
  72.                         if(cnt<500)BEEP=1;
    7 d7 k/ Y  B" s! U' `7 I
  73.                         else if(cnt<1000)BEEP=0;
    0 E6 c! W( F  X; z3 D; {
  74.                 }else BEEP=0;
    1 q* C" m9 M9 d  G; Y0 ^
  75.                 ' u0 r# E& Y# L
  76.                
    1 z, P: {0 @' p8 R% F
  77.                 delay_ms(1);
    9 F2 P* Q! G  B. g6 e
  78.         }         
    " i! V8 h" B2 _: {) l9 c! _* C
  79.         4 n  l+ U5 y" Q- E0 r; z0 f/ o7 p7 Z
  80. }
复制代码

  f2 O: |. u3 t* T6 H0 r四、扩展功能
' D- s7 B* L& c! K/ n(一)根据环境温湿度、空气状况,自动控制智能家居设备$ \" D4 V1 [- n0 _% @) ~
(二)优化界面,添加系统更多设置,报警设置、家居控制模式选择、智能开关机模式& ^) L/ m# M) t1 h$ a
(三)添加定时开关智能家居模式! x3 q7 K# _; v+ T" i4 Y3 C0 a
(四)添加蓝牙或WIFI模块
, t- S8 f4 ^2 T$ \( A+ Q(五)设计手机APP控制, [0 ?( ^" J. z% F+ Q( |9 O
(六)添加更多语音控制功能, Y. t3 N1 |2 h6 i
2 ~/ S1 S* X& A0 n" x2 w
五、项目展示:$ j" ?' t+ u. m; O5 T
+ O: \& ^1 m$ b4 X4 ]8 u: T
f0e2a859f1684649a22e407d21b6c827.png
. H3 _6 {# `+ a: P: C( l6 K8 \  _# B% O/ H$ ^$ {! d

( Y( B1 {9 X" K2 [7 [' C8 }/ v
74f164d17a7848789cb50c55d383510d.png
赞 收藏 评论0 发布时间:2022-8-15 19:14

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版