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

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

[复制链接]
Paderboy 发布时间:2016-11-18 23:35
本帖最后由 Paderboy 于 2016-11-18 23:40 编辑
) @. e  x5 _5 [
* \6 q3 ]" w( l* \1 r; m这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目& q) b. k; Q5 b) i( Z2 Y& L8 P
. `, L- m0 o, o. K1 X. w- O

  Z0 W% i  r% M! e' F4 }$ V+ t8 u Screenshot_2016-11-18-08-31-02.png
, y" [& P  Y) A" t  K0 J1 g
( t+ W" r# F+ n3 l, X' y: Y
; y( N, H' z) j. u! V8 l整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。
! o5 W/ C, Z3 J6 a1 ]
( T; o. K4 `( K3 A$ m1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据0 l, y' K% {( L

+ s/ x8 i$ V  ^5 s2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。)$ A5 t  n: V% [- B) C# w" }8 Z1 a
所以这个项目就用了这个板子作为无线发射端
) F3 Q6 {/ V" e; r1 J2 I) q) x4 W" A. M  O, e. ^" f
3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高),
& D- Q! `$ A0 m$ j" f/ S   使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。% Q6 u+ c" ]9 o/ w. R
6 ~% {8 A& o( c- p
4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,+ k3 C4 w& s, U% s
通过串口发送给蓝牙设备报警信息。。
# q, l  e3 Y: H4 J. ^
2 Y8 o7 B) i% ~5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域
$ T0 d8 l" s% S9 w0 s+ o  (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。! ]4 m+ p4 s: Q# T) a* _1 M
- B7 c; X( [3 D. X+ V2 `6 z
6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。9 C: B) ]; Q+ y( b& P* s5 J2 f! c

& e8 u* p" Q+ A1 `5 h3 D0 E: y8 w! B6 |
好的先介绍下主要的设备:
2 s3 n5 f' h* H# ]$ F& R3 u7 B: U' j0 d2 ^8 N  Q
1.STM32L432KC 开发板+ Y+ R  w4 |. y& b
2.STM32F031K6 开发板
, w" q7 R2 {' b- `, j  ^" S3.2xNRF24L01 无线模块
+ i' G9 z0 I, ?/ M4.人体红外传感器HC-SR5015 |6 a; P* X8 ~; r( S
5.有源蜂鸣器
2 `# N  i* }$ j2 S2 Q  x4 X6.少许杜邦线
' |, q6 W. B* r6 t. g  e) U' B7.蓝牙模块2.1
& ?6 H' t5 a3 X4 G" i* k; f. O8.发射端电源和触发电路2 E9 `7 S4 [  |; K" K" w6 Y/ z4 v% X
  c8 I1 P# P+ S9 E. k; B4 }
以下就是这个项目的流程图0 H+ ]) u! f3 R( i3 Y

# X* H5 N8 N. ^% v5 }2 o) e L432WirelessAlarm.jpg 2 Q+ U( j2 E/ T3 f  p
开发平台:) M- H4 {; o7 |9 _& c% Z! f( O
CubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。
- r' r3 d1 S5 x- C" s% B
/ G6 \6 ?7 L+ w: v1 X# Z1 T测试工具:& J2 \1 a- b% E; [- d: X" e
串口助手(主要用于测试程序和调试的反馈)- F/ G! `* X; N# Z5 E
安卓手机一台(用于APP功能测试)9 i' P! A  x' @

* |' ?0 ?8 {7 U. u5 y2 s5 k接下来就上图吧!!
- {2 B$ t. k6 A# [0 F' z& g
2 p$ A8 J! {0 h+ M7 A/ G. T$ F这是发射端STM32F031K6 配置SPI和串口输出,方便调试1 }: T1 {3 \8 M! ^  P5 A4 l# n
fwireless-01.png 0 j! ]+ Q5 F; D. d" O% v( w

3 r7 _7 M$ B& A  Z/ [4 ]使用内部晶振- {' A' z/ ]: H3 b( q( |
fwireless-02.png 3 x% D, y! E% b  p2 m& t5 d* _8 U
. |& W& v: W  P9 {9 A  Z
SPI配置
  M4 t# h) H5 Z# H2 B fwireless-03.png
) ~( ^: X1 k& ]( ~+ @) O- Y1 I' @9 }! Q$ d
串口配置
. E; a; ]3 q6 X fwireless-04.png 1 o) v* d  k: j$ I$ c6 ~% I

! p& F* Q" M& u+ {& D发射端实物图片0 k( I, V$ R7 C3 K5 u7 b/ k
IMG_20161118_103731.jpg ( H7 z4 c" f/ N  x  F( d, E* ~
9 T/ R1 E" s/ I1 i4 ~
人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了
1 D/ Q5 {# S$ \+ a IMG_20161118_103743.jpg - z0 k8 |1 E) s% u6 ]
* v4 d0 S. D! {$ D) i
IMG_20161118_103801.jpg 7 ?1 f& p2 K; l1 W3 n' }! ?
, Y9 {: O! b( V; g  t
使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。
1 t$ ?6 D0 w8 Z$ Z+ \ wirelessHW.png
3 z+ k" m6 M% t) V' {; _5 M* x/ Y, d
好了接下来是主角STM32L432KC 接收端的配置截图如下:* x/ p+ L6 k- O2 e$ k
6 `# o) S* D; \8 t9 N" g' A
用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器
% y+ r0 A* x; n1 J wireless-01.png
7 t: y( f- |3 D4 \' j3 `8 O! _, k$ b7 Q8 R$ T8 u
使用内部晶振
3 \- S) C0 q, W9 c3 B wireless-02.png 8 F6 v1 s* W# V. @4 G
4 G# u6 c' b# T0 M" Y
SPI3 配置
! K) c2 g/ _" s# T- s3 \  U9 Z4 [+ U wireless-03.png ' q) V/ `" u: |

& l: i8 u2 R8 |( b串口1配置 DMA IDLE 接收和发送数据给蓝牙模块
% F$ k! u$ e, x9 F" ^/ r wireless-04.png 8 V7 G9 X) R) h0 A: r; n

  A$ C/ k6 D0 y wireless-05.png
1 P7 `7 c* H9 w& ~  w& z6 ^8 D" f# S* a& r/ k, A- a0 X. ?6 p5 T, R
串口2用于调试直接输出测试数据到电脑上
' ^, i" Y4 W! y. b wireless-06.png
& a' I' J0 G3 z1 r3 k2 J6 p
- m& W5 z& p( b1 F9 c: B wireless-08.png
" h1 Y7 Y& _8 h6 m2 t" v- g, w7 ?, }, T8 m& `( `. R+ ^% L, J
好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。2 b0 [. \  |. J$ ]' _0 S
以下是调试过程的截图片段9 `: ^0 U9 Q! Z( l6 ?
wirelesssoft-01.png
3 f3 p& `  {2 t# Z( [7 \' d8 ?4 O* O8 ?" R2 c* Y" E1 u/ G4 f5 ~
wirelesssoft-02.png
/ T0 m4 ?7 H0 `7 e' W' `- J- B  G# M- f7 P
wirelesssoft-03.png
0 g5 c" C7 r0 P, S( n
% _& F* I: w. d: [' A4 B wirelesssoft-04.png + s7 O' z' p% n. e- ]
7 O/ J: W! W/ K* R0 b. _( o, O
程序都编译通过后,直接下载到发射端和接收端来验证吧。。
9 e! s+ O4 Y4 J( C" k
; y" W3 l4 y( C# k% g( x( a实体图片是必须要有的。。。。
1 W. p$ Q% t. r( J0 q: R IMG_20161118_103839.jpg
: f' H5 e- S1 v. Z7 F) U$ M7 T2 N5 c0 J% b' {
IMG_20161118_162516.jpg + v" L- q0 l) U
! f/ C8 W( `  D$ h
IMG_20161118_162536.jpg ' H1 P, b+ d$ }  |
3 l  U+ O, I: j1 b
IMG_20161118_162544.jpg
( |% e0 T8 G* H) q
: {% h! N; M0 W2 x: [, \% h9 ^9 l wirelessyz-01.png
7 R: Q. F6 n2 _! ^, |: D  @, ^8 m1 D0 n
wirelessyz-02.png 5 Z; T( M# g  ], E6 H, d
- y( q: x" w( k
wirelessyz-03.png % U. P. \7 L2 [( F

# h2 |: c* |  ]! B8 i  \* b wirelessyz-04.png ; Z; ?! l/ `$ r) A0 J/ ^5 ~
3 ?; X) j0 o% _5 M- k
# d8 @: O- v, [: E
好了。。。。亮点在这。、。
# c/ L0 M. x3 C! `% E7 D
1 V$ s- S: O; e8 T3 O7 u3 J( C. m  Q# _$ M

+ I* h- o6 @2 s1 W; ?9 U8 }2 l3 ?2 D% u' S
Screenshot_2016-11-18-08-30-49.png
: F+ s% }$ v, e/ L2 L0 T7 k( I
) ^/ [% ~, D4 C" z3 u, w  c Screenshot_2016-11-18-08-31-49.png
1 ^6 v& o8 @9 m! Y4 h; d  x2 a1 A0 E1 M$ A
Screenshot_2016-11-18-21-40-29.png
: o" ?$ |) Z; b9 v# J, W) U7 o6 N6 e( e' x# u
好了这个项目就差不多完成了。。。  T) {. Z, L) E- s
0 ]- |' y( O/ m- k4 g* J
总结下:/ A' b6 {+ o" ~" P: J
这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等
1 _, I+ I) U  Y, C; |外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。- I% _. ]& r& s: T% ?
因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。5 a2 H" `3 b0 [: R5 T- h* w
. a* x/ k7 }& }0 z
) r6 t* Y, S3 a: O- j+ A% L
希望大伙会喜欢。。。。。。- Y: l; |9 A' h$ C2 S# H
, w9 T* w9 Q6 q5 |  u+ B0 j

& K5 P7 r5 v/ u0 z. f. B

评分

参与人数 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
5 Q% O5 Z! J  I9 A楼主厉害!
9 d9 G, H8 N% u手机APP不会是用 Java 写的吧?7 A1 d3 R/ k3 x- p/ p& T, x
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...
0 g% R( m+ |% g! P# ^2 l. n
安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
黑皮男 回答时间:2016-11-24 18:44:35
cuyebiren 发表于 2016-11-19 11:506 K, F9 E: g: N
楼主厉害!
& _/ C! f6 u8 I; H& Y手机APP不会是用 Java 写的吧?% q) ?+ E: _+ Q- c9 ^2 P
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

7 U. O) ~# n. t+ L3 E  \而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的/ Q# j* T8 {8 r4 Q" V2 \& r+ I
Paderboy 回答时间:2016-11-19 13:26:20
cuyebiren 发表于 2016-11-19 11:50
9 X  P+ w  f1 ~: h7 ^3 i楼主厉害!
/ T5 g! J3 g) [手机APP不会是用 Java 写的吧?
( F$ H3 U5 d' [1 I& l6 ~' K有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...
1 m$ D- A$ Q% k7 l5 a$ J) A
纯 C 语言 + 控件 编写估计是没有。。。
zero99 回答时间:2016-11-19 00:05:49
赞一个
Paderboy 回答时间:2016-11-19 07:56:05
zero99 发表于 2016-11-19 00:05/ O% [& i( \% A; T3 X: Y+ j  U
赞一个

" W1 l, W. h* ~
yanhaijian 回答时间:2016-11-19 08:19:29
全能通吃,厉害。
Paderboy 回答时间:2016-11-19 08:21:14
yanhaijian 发表于 2016-11-19 08:19
5 Y5 H+ J/ O0 ^全能通吃,厉害。
5 p* r) t  c$ r
多谢多谢
wamcncn 回答时间:2016-11-19 09:19:19
赞一个,手机APP,软硬通吃
Paderboy 回答时间:2016-11-19 09:47:17
wambob 发表于 2016-11-19 09:19
9 |% F3 ^6 K/ Z" F# {赞一个,手机APP,软硬通吃

- H: |  n6 K5 H
cuyebiren 回答时间:2016-11-19 11:50:59
楼主厉害!+ [: [7 w. J" D
手机APP不会是用 Java 写的吧?& O+ m6 H4 Q- t4 ]6 J
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
cuyebiren 回答时间:2016-11-19 14:53:54
Paderboy 发表于 2016-11-19 13:26
2 M; J8 W2 P) e0 E) H* S纯 C 语言 + 控件 编写估计是没有。。。

" S# K( m2 T8 [" U5 Z! G- R, NLabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
Paderboy 回答时间:2016-11-19 15:02:16
嗯期待吧。。。
zbber 回答时间:2016-11-19 21:37:53
楼主厉害,真是难得给力的帖子啊% A5 k+ s; V* E5 `
Paderboy 回答时间:2016-11-19 21:45:37
zbber 发表于 2016-11-19 21:37
4 u) e9 f# R! S' S: \# f楼主厉害,真是难得给力的帖子啊

! x2 r) n8 A6 j+ _& z7 d- T那都有你啊。。。
五哥1 回答时间:2016-11-20 22:25:13
做的很好
Paderboy 回答时间:2016-11-20 22:59:37
五哥1 发表于 2016-11-20 22:25" w7 U* J  Z$ n, V2 |) L+ b. y
做的很好
' {( Y7 m6 ^, I* a- b$ g7 z
thx
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版