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

【我要为STM32站台】基于STM32L432家用无线报警系统  

[复制链接]
Paderboy 发布时间:2016-11-18 23:35
本帖最后由 Paderboy 于 2016-11-18 23:40 编辑
& u5 c9 ~& V6 C, x6 k2 d; n
+ u6 \3 _) n7 k这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目
' e8 h' @2 n6 Z$ v- Y( u
" H- t. ~6 m% O- A; D  P" e; T/ ]# l5 `/ l" b
Screenshot_2016-11-18-08-31-02.png
; K0 D$ `( J% Y$ j2 b% g3 S) o' f
2 K* C0 Z& ~& n9 H6 N
整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。
5 N" T9 w+ z5 A
& G3 u4 e! B# I; n+ u1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据, R8 A; f: h3 k; ]9 M. K
/ ~! J4 `4 b- D3 P
2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。)
( Y# o8 d- b- I所以这个项目就用了这个板子作为无线发射端6 s1 D4 p, z: _, V" e
! l) u" I+ {1 }
3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高),
/ G/ |; {" N/ `" |   使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。! O+ n. M8 I' ?: a1 I5 |
# c2 p& f* ^  ^1 x& p  D
4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,9 H6 a' S5 E) H; @  ^/ [
通过串口发送给蓝牙设备报警信息。。
! G5 \% P" K* K& P! a$ o6 y: [3 [: L9 u( Z, b% Y
5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域( X* ]9 l2 f6 T8 f; D
  (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。
  p5 x0 o" f% I! R5 C) D8 S3 ~% l
5 u4 \" m8 C- |0 I6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。
- `! h5 @' b5 n& j; r0 g: L7 I% P- M, H& Q* l+ ^) ?
/ r  F; I' D2 g
好的先介绍下主要的设备:2 h- l+ f; |+ L1 ^& _

% J1 Q6 L) }, T1.STM32L432KC 开发板: r4 }3 a* @4 C+ T) R
2.STM32F031K6 开发板
' a6 w" h9 P. k! U; H3.2xNRF24L01 无线模块
# C) v, H! J# E# m/ c3 b4.人体红外传感器HC-SR501" d( R' @5 I2 N
5.有源蜂鸣器% \* {% O( s- q* q( h) k
6.少许杜邦线
( n) Q0 _9 C( B; J4 L# C7.蓝牙模块2.17 I% i2 N. C5 v7 B" {
8.发射端电源和触发电路6 N* e6 Z6 J+ j  I9 t
! c6 G8 d3 b4 s1 S0 T
以下就是这个项目的流程图, h7 w( i6 f& L4 Z* |3 w) o

7 Y; d8 e. ]8 Y/ x L432WirelessAlarm.jpg
2 T" D/ \  g* D  j3 U/ H( S开发平台:
" b0 @+ x. W2 w& n/ U* e7 I; vCubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。
5 Y# }8 }* M8 ^- W$ I; D- i
6 \' O2 C/ f1 N/ ?. K测试工具:2 W' p" `" e6 p9 l1 |
串口助手(主要用于测试程序和调试的反馈)
. d. a( `4 \' D. _( Z+ A安卓手机一台(用于APP功能测试); S; y9 x5 i+ p( J, g$ U% J
( }* b+ l7 o+ e9 h. N4 c% B2 W
接下来就上图吧!!
' l1 G, N# \# `' X4 A7 t/ R8 e! c" E" M) k2 o& r: ]/ t! u
这是发射端STM32F031K6 配置SPI和串口输出,方便调试4 L1 j/ ?5 S; m8 t% v% Q) e) u
fwireless-01.png
9 ]+ X& `8 X+ S2 y, [  F- H
% F7 W% ?2 Q2 B- ^! M0 Y使用内部晶振! I  W) k$ C% B* z
fwireless-02.png , c3 U$ B% P% I+ }+ ]: X
0 d2 }+ t, a2 I8 f, @% g
SPI配置
: _, ~: i( t) M! S0 U5 k( ~ fwireless-03.png
) A3 x' N" S4 @1 _$ c  `: O; x. ]: o! U) Y
串口配置
2 h! p/ b' Y+ \& Z! H6 | fwireless-04.png
) I# V; o  _4 M6 P: O0 D
1 D8 L& Q5 t6 \* C2 j1 W发射端实物图片5 P+ [, S5 y' W; d
IMG_20161118_103731.jpg
+ ~+ I7 B$ U& a% h. ]7 O7 _! m9 e# s8 R$ o) N. U' K6 W
人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了
) V6 I' n1 K3 x/ P  E+ V# R0 ^ IMG_20161118_103743.jpg
( `: e! E+ [" E9 q( Y" g: n
/ K" D6 k% ]' _. U4 [" A IMG_20161118_103801.jpg 8 a4 F3 ~' a! R% C& v

& p3 n) K  g: l* Z, q使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。; _! U1 Y. Q7 N
wirelessHW.png
5 f; q% Q7 Z7 s( y2 O3 c: l
$ e" ?3 L. ^5 m1 l好了接下来是主角STM32L432KC 接收端的配置截图如下:
4 A9 R' U5 u- c& P; J' _# c! m# Z( D) a2 d: q/ [, e# {+ p
用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器
% v; f# V7 t5 `0 z+ a# R) c" F wireless-01.png 5 ~. f  X1 {. K3 i: o) ?; O, R
- b& {9 ]2 ]( j* J. S! i
使用内部晶振
9 ^0 u6 C9 G% G: v8 E wireless-02.png
! j1 m% V# N$ N/ ~; c3 T  B6 [2 T$ m# k% Y' \. M+ P! h0 Y
SPI3 配置
+ A. s6 X; j0 x% L+ r wireless-03.png
. j, g4 w+ c! m- Q' k- B: t; v* p. L% z5 c4 I: F% G
串口1配置 DMA IDLE 接收和发送数据给蓝牙模块. D( D! G9 D! C. `: R
wireless-04.png
! T& ~  I4 w1 C' U8 y8 y1 r. f2 k: l$ F$ U, e7 A8 f) h
wireless-05.png 0 ~5 {8 k/ {; }  I

8 X# z/ v- i, N: L: d! D串口2用于调试直接输出测试数据到电脑上9 A! }5 d# Y* X. \( v2 g1 E) {6 O; Z, J* H
wireless-06.png
* M+ i# p. S/ k2 E% |. {: ]
! T2 _' a( N& c4 r wireless-08.png + f  s, J/ d& g: ^& |6 ]" h

+ F, W& D, @0 P8 ~3 S好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。
6 z& r3 p7 y( K$ }; T! F以下是调试过程的截图片段' Y3 d" i; A* A
wirelesssoft-01.png 0 s2 z* R( s2 ~/ q
5 W6 Y5 V+ a5 N+ J, r) H- V
wirelesssoft-02.png 8 k6 K& g6 ^' g# S
$ K. I" F3 G. O) ^* H: u
wirelesssoft-03.png
) d9 k6 x  K2 i% G# E# H5 B/ ^+ H" p
wirelesssoft-04.png . e0 E( E) ~! o5 ?5 K2 W9 C* X% v# S
4 b  a! v' C- B# S, g! p% g
程序都编译通过后,直接下载到发射端和接收端来验证吧。。/ X: K2 }# `* h7 D+ h1 w

0 ?1 K2 P9 Q: _/ l! a) z, Y9 c实体图片是必须要有的。。。。
  ^+ @! [( ~; }. Q% } IMG_20161118_103839.jpg ( J" i, B3 O" b
9 c  C7 i. M  y9 g. m
IMG_20161118_162516.jpg
. `: h$ M1 G/ }4 H, z/ t: A
: h( \; ~  I% R/ S5 h" u+ I' Z1 z IMG_20161118_162536.jpg ; M8 P" K2 B& c  S# l, T+ z
: n9 G% N0 U# I  P  [) A
IMG_20161118_162544.jpg
. ~! S; R7 H8 w" n0 f' H9 g) C3 P  n
wirelessyz-01.png
/ o9 K7 ~  R, ~# ]  V, ^9 ^" G
- C4 g4 |" w: R9 E6 ` wirelessyz-02.png
/ h8 G) B: [& D  r$ X* r+ G. L
& ~( E9 W9 @7 Z wirelessyz-03.png
5 H; w- e, f8 `6 g" H! D' L6 \5 x. U) [
wirelessyz-04.png   G9 j+ _( U, l/ A& T; i& p2 C  y' Y

* i  D3 ?0 B+ w
& o  W2 T) z, s* F2 g: M好了。。。。亮点在这。、。
! O/ v% ^8 P2 g  s
, h" r7 ~# c0 h) @3 V" [( Y6 E- u' v0 s  X- p/ A
* g: [  ]5 X# j9 o7 s# l! K
0 S8 X, x7 P- {4 K
Screenshot_2016-11-18-08-30-49.png
% J) N# ?( ^. |
/ U3 z% w; t% T/ _  o Screenshot_2016-11-18-08-31-49.png
% w6 G+ w9 e$ w( j, E7 b$ m
/ B+ _: L1 z5 \. Z' b, Q Screenshot_2016-11-18-21-40-29.png 0 z, L/ _8 d  ~# e5 E  ]" x
: t3 u  Z9 ^6 g* D: o
好了这个项目就差不多完成了。。。
+ P7 U4 s2 u5 v; W# o, e" x
* A0 y9 w/ @) G  F' m2 k3 {6 w2 ~1 Q总结下:) M/ _' l: D- p: w# U9 s$ S
这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等% A, Y* r; D% a+ v
外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。
# _" i* V( }0 X; z# i4 a因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。  `+ i( h9 O8 v& `# X

' m7 X0 L: N! {0 \8 I8 m1 I& l3 b0 g! r; c0 I1 N
希望大伙会喜欢。。。。。。% X' H9 X5 J. r7 J& C7 B  q: t% A
' o: y- |& R$ E- V* n
" R# |! {$ u: s. w* y1 l$ s+ t

评分

参与人数 1 ST金币 +30 收起 理由
zero99 + 30

查看全部评分

收藏 4 评论38 发布时间:2016-11-18 23:35

举报

38个回答
黑皮男 回答时间:2016-11-24 18:43:40
cuyebiren 发表于 2016-11-19 11:50
6 r! n6 V) m" [& P  J5 l楼主厉害!0 J1 j3 k9 w# U7 s7 ^/ L0 a4 H5 d
手机APP不会是用 Java 写的吧?+ U5 p. V/ n3 P8 }) w
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

7 P! f" p- J+ h* N1 ~( Z' l安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
黑皮男 回答时间:2016-11-24 18:44:35
cuyebiren 发表于 2016-11-19 11:50
$ N2 K0 X. n4 x9 x# g& Z- a楼主厉害!" I" T6 s4 q* `+ y( ^
手机APP不会是用 Java 写的吧?
' ^4 p; [6 c) g2 c有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

" V5 y: D# U. L& T. Y" W5 ^而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的
( Y+ b6 N2 X0 w* V0 y  l, N
Paderboy 回答时间:2016-11-19 13:26:20
cuyebiren 发表于 2016-11-19 11:50
4 [4 ~8 w; I, m4 M楼主厉害!
& r6 M- H+ i5 k0 h( V手机APP不会是用 Java 写的吧?1 c- B9 e4 w0 A, T/ C6 y
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

" z1 E7 @2 a" V纯 C 语言 + 控件 编写估计是没有。。。
zero99 回答时间:2016-11-19 00:05:49
赞一个
Paderboy 回答时间:2016-11-19 07:56:05
zero99 发表于 2016-11-19 00:05
2 \& w& h1 C* _赞一个

0 m; P1 Q9 o( V  i9 A6 _9 {6 k
yanhaijian 回答时间:2016-11-19 08:19:29
全能通吃,厉害。
Paderboy 回答时间:2016-11-19 08:21:14
yanhaijian 发表于 2016-11-19 08:19
# A; k& Z9 G0 A! y9 R7 h2 L全能通吃,厉害。
" e5 P, d0 T: a' j" u5 }
多谢多谢
wamcncn 回答时间:2016-11-19 09:19:19
赞一个,手机APP,软硬通吃
Paderboy 回答时间:2016-11-19 09:47:17
wambob 发表于 2016-11-19 09:19; w$ \! A6 Y# i+ R+ q
赞一个,手机APP,软硬通吃
+ h) `' w! H4 i6 N/ Z
cuyebiren 回答时间:2016-11-19 11:50:59
楼主厉害!# a( V9 G* u6 p- f5 U
手机APP不会是用 Java 写的吧?
9 E) `+ A, H$ u1 S6 D9 F有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
cuyebiren 回答时间:2016-11-19 14:53:54
Paderboy 发表于 2016-11-19 13:267 N' g# l7 Z7 S$ K
纯 C 语言 + 控件 编写估计是没有。。。

1 C, W  J- E6 I  g# c6 U6 CLabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
Paderboy 回答时间:2016-11-19 15:02:16
嗯期待吧。。。
zbber 回答时间:2016-11-19 21:37:53
楼主厉害,真是难得给力的帖子啊
9 p  U' T( V5 t0 f# y7 E
Paderboy 回答时间:2016-11-19 21:45:37
zbber 发表于 2016-11-19 21:37
- ~: Y* d" g4 g' y$ u, p  i楼主厉害,真是难得给力的帖子啊

* @% S, y  i- U& p4 v* ~那都有你啊。。。
五哥1 回答时间:2016-11-20 22:25:13
做的很好
Paderboy 回答时间:2016-11-20 22:59:37
五哥1 发表于 2016-11-20 22:251 j/ s9 c( t9 ^" u: ?
做的很好

5 v+ Z; E2 M6 N. n, G+ T, t8 P7 Gthx
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版