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

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

[复制链接]
STMCU小助手 发布时间:2022-8-15 19:14
一、项目功能概述
* J2 A( V  `. y* F% c4 w( p+ h1、OLED显示温湿度、空气质量,并可以设置报警阈值, B/ h# J: S6 q! k, t
2、设置4个继电器开关,分别控制灯、空调、开关、风扇
4 S% [+ V) k- w) x4 Z3 N' `  D4 A' K# }3、设计一个离线语音识别系统,可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上0 `6 |( z1 u* G/ A
4、OLED实时显示4个继电器的状态& B$ G% F( H, P) |2 u  r: ^
5、设计一个低功耗开关电路,可以语音控制使得系统进入低功耗模式,并且进入低功耗模式后可以再次语音唤醒系统,重新开始正常工作2 l5 R+ f$ m2 p; o/ e/ G+ }
语音控制具体描述:; L5 Z2 E2 L7 K* T

5 V8 W6 w% N( Q9 H' p @D`YQ~7)N4W_HAC7LO[4VYB.png ' s2 ~2 |5 J5 r. ~+ A2 |) F3 P! i
, h) y3 e( |$ V& b+ F/ D
二、项目原理图" M+ `5 h, `; \" ^, \
(一)最小系统. a0 t2 l& t$ R& t& g* W4 @

( u7 i2 D$ n8 y7 y" x MOZQ)FIBHCSUJ@I2O73`2.png
4 X+ B* Z3 P/ N9 }- m  t; K1 \: w7 X8 Y* ^
(二)供电5 L8 Y  D9 s2 ^0 d6 ?- }3 G0 R

" {! h. V3 S6 f: C- L) }: h {])H5BW`E{CK[F7RWG]_FN2.png
0 Y+ L: N, \0 e* q# L6 ]6 ?3 D" |6 k6 ^! o5 d& l* w
(三)传感器
- |( {2 P& h" f+ A( y# Z! D+ \; r
" B: N- ]* P. e& H3 E. Q) x4 W C%GCG0(S6]VB5SAY}Z`VAP0.png
; m% P8 Q/ d0 m4 ~- a. v: N: l! {+ s( G. A
(四)语音模块
6 _; {5 o: M2 x  {
: i( z' n5 c( z: f7 V5 | ec83e11bb0d143f5aea0fec76f2bcff4.png
% ^# [! V  |( D0 o- D  b9 k* g
' g* a3 T- H; ~5 n% H' B: B(五)继电器模组
/ Z9 y, j$ N) y: P
# y/ ^( I- v9 c# j4 }* P 68M)ECP8MVI{SQSU}$SQBTI.png $ C* n1 Z" Q' ^! ]* }7 W1 P' c% r. K0 s6 O

- J- V) l' j2 K& m6 A9 w7 F(六)按键蜂鸣器) Z" s  C. E+ W& }$ V- S/ o1 m
% r6 t$ U/ m, w8 k7 B
BLA4EXSR_YAMOPZBLXT{H9V.png
! ^) @2 Y; {) [  V7 x& [' `) A
2 p# B+ s" A+ l! [9 `- M/ h5 n(七)低功耗开关' }; z; p9 G/ w& K8 S

4 s9 R7 d) o, G 425cf419e6b64a09a5f6ff28a376d54a.png ) B) l7 }* H" r/ q

6 L( z. N' Q$ s三、程序设计( d6 k3 q! w* y" {: @4 l4 ^

6 V% z; T  M; ?
  1. int main(void)
    : P- o& H; r( T9 _2 M
  2. {        9 w2 Q- e% x( U
  3.         u16 key;
    * ~6 J  h6 P: z' p; W
  4.         int adc,cnt=0;7 q, A4 O+ \; k7 }2 |
  5.         float volt;
    # w: P  m9 P0 l6 L+ K
  6.         delay_init();                     
    + [9 ^9 X- g/ F* L: p0 ~+ F9 s2 b
  7.         NVIC_Configuration();         
    " L* o: b# o, t: p
  8.         BEEP_Init();
    : \7 I; N) [! W8 p
  9.         OLED_Init();                        + ^, r1 p, C$ f3 P
  10.         OLED_Clear();8 w2 p' M! y2 G& Z" O9 B  x  ?
  11.         uart_init(115200);
    " G; J6 y/ E$ m
  12.         printf("欢迎使用化作尘智能家居系统\r\n");. R! P" l! @9 D# ^7 k
  13.         KEY_Init();9 F- f; S; I) M0 e1 h; d" S
  14.         LED_Init();
    & t8 q% R" o% k( s6 o
  15.         TIM3_Int_Init(500-1,720-1);
    $ y& o( C, ?- R0 u7 z9 r! X
  16.         DEV_Init();//外设初始化
    ! n6 V5 {  Y  ]
  17.          
    3 P& l* e7 j* o3 B/ A( v$ Q
  18.          
    ) e# D6 B) ?* j
  19.         OLED_ShowCHinese(8,0,50);//
    5 m! M7 w7 z% L
  20.         delay_ms(200);
    * `0 P" X2 q) T2 z: F7 w$ X) P2 V/ i
  21.         OLED_ShowCHinese(24,0,51);//
    , N- x* D7 P1 J7 v. y0 L. i& \
  22.         delay_ms(200);- ?1 Q6 J) x, q# B6 N+ k
  23.         OLED_ShowCHinese(40,0,52);//  I: C* u7 R9 d+ t9 e6 W0 Z
  24.         delay_ms(200);( Y7 e( g7 z5 T* e# O  L' c) ^
  25.         OLED_ShowCHinese(56,0,39);//( @0 K: O* h3 e9 T2 \1 a
  26.         delay_ms(200);
    * N' x: d# m. [1 ?
  27.         OLED_ShowCHinese(72,0,40);//9 E, r+ |( z- L" e( T5 H9 b
  28.         delay_ms(200);              W# Q* L% O& M8 d, q8 s: X5 Y
  29.         OLED_ShowCHinese(88,0,48);//
    6 Q' l3 D( F3 i* y+ {+ q: f7 v
  30.         delay_ms(200);            
    % G* Z* W2 b8 W2 m
  31.         OLED_ShowCHinese(104,0,49);//+ x6 j( J! B/ Q  f( U3 ^9 Y
  32.         delay_ms(200);            
    ! y2 k; f  }+ X& ?  y: C! [: M7 _7 v
  33.                
    , f! q4 H+ n5 U- S8 Q, J
  34.         OLED_ShowNum(0,2,201908,6,16);# d+ Q$ U' S3 {8 ^' I( M
  35.         OLED_ShowNum(48,2,384176,6,16);
      r/ X* K# Z5 e
  36.         
    " W! p: ~! ~; k6 E+ Z
  37.         , x* w  Q) i9 d8 m, y' j
  38.                 OLED_ShowCHinese(40,4,53);2 P  O, X1 {- v
  39.                 OLED_ShowCHinese(56,4,54);
    3 Q9 t, }* s( i3 f! J; ^5 x( D
  40.                 OLED_ShowCHinese(72,4,55);2 k  j! p. G6 K2 r1 q
  41.                   ]% v5 n0 r* Z# }
  42.                 delay_ms(1500);            3 A1 d# N, w# b
  43.                
    ; V# r) `& r% i, _6 U
  44.                 OLED_Clear();
    0 Q  b- g& O- S9 r, x
  45.                 OLED_Dis_Menu();- G. Y) U* D% N/ D% @/ }0 X
  46.         while(1)                9 v' L' F( J* g5 j& m3 Z. t
  47.         {                , j% U+ @- T3 ?' Z5 _$ e! r
  48.                 if(cnt++ ==1000)
    ' E7 w6 E# E& o/ K) V
  49.                 {, ^- U; n- P* h0 j) R
  50.                         cnt = 0;
    $ W# |5 m6 M2 y: f5 i: r. t9 L, {2 S& I
  51.                         LED0=!LED0;
    4 @$ A" Z% l1 C6 s- h1 h5 h
  52.                         adc =        Get_Adc_Average(0,5);! u9 f' \3 M8 D# U4 g" A
  53.                         volt = adc*3.3/4096;
    7 F2 L# L* ]- U: M. t
  54.                         air = pow((3.4880*10*volt)/(5-volt),(1.0/0.3203));
    * u/ ~0 h6 v2 t
  55.                         printf("air :%d\r\n",air);& R( I& p3 }  y1 _3 X5 F' O+ G
  56.                         //获取温湿度
    2 ]5 @1 i' _9 J2 ]4 K- G4 H
  57.                         DHT11_Read_Data( &temp, &humi);
    4 ?- X) j# ~& _* e0 A0 r6 z& Y
  58.                         if(last_temp!=temp || last_humi!=humi)
    3 c- r7 H5 [0 t! C( H3 j8 o
  59.                         {
    $ }9 U# ~; v! h
  60.                                 OLED_Dis_DHT(temp,humi,air);
    0 A, h  j: ?5 [9 A
  61.                         }  @6 w. r, P0 b
  62.                 }- E- I% n8 c# @( q
  63.                 key = Key_GetValue();          //按键扫描
    , O' s! Y  `* H
  64.                 if(key)0 w+ I) l- ^# @* g! J* E
  65.                 DealKeyVal(key);3 O. w4 ?% o1 ~
  66.                 if(!KEY1_IO())5 I# V. ?: F3 q( I% Q4 T1 V2 S
  67.                 {0 s9 R. F  i$ r! V( Y1 M0 ^3 g2 U. U
  68.                                 printf("%d\r\n",GetTime());
    " \9 P4 o# F* v. @2 _
  69.                 }! G3 c3 k6 R& F" |
  70.                 if(temp>Max_temp || humi>Max_humi || air>Max_air)
    ! ?- ]- J; E3 }/ c: t: r* f
  71.                 {
    $ ?+ t/ L+ K7 v: C) B6 ^& B3 D
  72.                         if(cnt<500)BEEP=1;1 K! Z4 p/ B2 Q( C+ c9 L; V
  73.                         else if(cnt<1000)BEEP=0;; u4 Z4 h6 G6 V2 H. o
  74.                 }else BEEP=0;% D+ t+ x6 \" L0 K* @% k( ?
  75.                   Q! s: V' |& H
  76.                 4 O7 J5 u* y* b, x* h4 N
  77.                 delay_ms(1);6 X' I: s5 i6 o& w; |
  78.         }          . T% I) q) z- m9 X: s7 e- r' T
  79.         
    + I- ^7 u( b: L8 z! _% u
  80. }
复制代码
! v) j. N9 j) ?/ j- i8 N+ \/ a! t
四、扩展功能/ r7 {- [' \6 |9 m
(一)根据环境温湿度、空气状况,自动控制智能家居设备( ]# W" |! {( z' Y, B9 B4 m. Y
(二)优化界面,添加系统更多设置,报警设置、家居控制模式选择、智能开关机模式5 G9 M; S% y2 J6 K8 G- H0 N, N
(三)添加定时开关智能家居模式
: h" y. f- c: f! Z: w(四)添加蓝牙或WIFI模块  x# `0 d4 c  j1 G" ?3 O1 A
(五)设计手机APP控制4 C/ T0 [7 W) f4 a  g! A! S
(六)添加更多语音控制功能
. z. C4 W, [& }. a: s' [0 V9 \/ J$ O: U- p4 M* b1 K$ U
五、项目展示:
& H. |( ?& _7 t7 f5 L
% ^( {/ `  }% O6 k# f% D. z  M f0e2a859f1684649a22e407d21b6c827.png
$ Q+ L8 W' R; Y: ~1 p, o0 y
. d; j- o+ Y+ l5 d. a3 M: H1 L8 f
74f164d17a7848789cb50c55d383510d.png
赞 收藏 评论0 发布时间:2022-8-15 19:14

举报

0个回答

所属标签

相似技术帖

官网相关资源

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