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

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

[复制链接]
Paderboy 发布时间:2016-11-18 23:35
本帖最后由 Paderboy 于 2016-11-18 23:40 编辑
2 f: T$ Z( z( i( k4 _1 y0 ~
) B3 k  T- d/ v2 s$ w  O3 ~0 s这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目
/ j3 u3 w8 J: ~; R, D* H% c  N& j, F" `

6 B. @* |( A* o Screenshot_2016-11-18-08-31-02.png 4 e+ p4 L6 v$ M- K! `# D

! D2 p- X/ c9 M% s( v( c4 F8 g0 v. D, n/ R9 [
整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。  O& w" m) J; ?: f# j# B

$ n% y/ o- }4 g$ @% c7 }1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据. }7 t0 I8 b) n8 Q4 M2 C
6 E7 D' o, E: `5 b
2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。)0 f0 x+ \: J4 _) s
所以这个项目就用了这个板子作为无线发射端- r+ E+ G6 L+ O% l; J3 v
4 f6 ^! q2 I/ t7 A; B: l% X
3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高)," t, i0 u4 D3 W: k$ I! l& `& V: W: }
   使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。1 Q, W* {  a0 y+ h

! B1 z' ]! s! S- W( X  W4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,% `/ v- Z- e, r* W
通过串口发送给蓝牙设备报警信息。。
9 U8 P% Z% R! `; h9 b: T- E8 w. F: k; L( a. G  x. J( u4 w) Y
5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域
" f! l$ j, [: ?! u5 O2 I5 p  (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。
% R- j" f- l9 C' B8 E; ~: Y4 |: w8 p; g4 [
6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。# ]" ^+ T7 V, O' j" {/ B

8 W: K8 W$ `# K) J9 I6 \/ o& V  o/ r: V% _- T8 Z, k
好的先介绍下主要的设备:; b, J: ?1 u, H/ U4 A% t( [6 h
6 |* T/ r3 A7 X0 A* M% M
1.STM32L432KC 开发板
8 W, s4 Y  o6 y7 p2.STM32F031K6 开发板
8 P% D2 t9 y% Z+ d1 p3.2xNRF24L01 无线模块( R# q' o) Z0 D: k
4.人体红外传感器HC-SR501, H2 P+ w' b, m- C
5.有源蜂鸣器7 w5 S2 y1 ]  A1 {
6.少许杜邦线, w+ V: X% o  Y7 O3 a. }* W
7.蓝牙模块2.14 i" M/ Y; ?# n" a2 ?3 T) F
8.发射端电源和触发电路. e# r9 t" z3 C& y

' x# c1 P2 O2 D8 i/ H以下就是这个项目的流程图
4 l# ]2 T  A* O) j% N3 I2 J& {; y% w% `9 G4 b# b) l* Y
L432WirelessAlarm.jpg ) \+ G! I9 C( X" Z! O( {# T
开发平台:
3 O4 e* h% }# v4 Q$ yCubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。& T/ ?% G  x9 U. i* p, t1 [$ C
7 y( F; b6 c) t7 r
测试工具:
, O* U. J! M& {# Y串口助手(主要用于测试程序和调试的反馈)
% ]8 }4 ~9 z0 X& w安卓手机一台(用于APP功能测试)( X6 \: X  @9 U, C

& ]* D: h3 F3 @4 b5 w2 `接下来就上图吧!!
1 L5 k3 u: a! O2 E' }" I# C% ?4 C" x5 m# `  v1 a
这是发射端STM32F031K6 配置SPI和串口输出,方便调试7 A0 T6 ?3 U0 c% C8 Z! E2 q
fwireless-01.png 7 i: e1 ?6 {6 |8 \, y2 K

5 H: @1 p3 a8 M6 r使用内部晶振  j7 q5 }0 Y4 Q, y
fwireless-02.png
! S  k5 S6 W+ ?8 l& H/ ?
. _' i3 H) b/ y" `& _% v: USPI配置
4 j: o5 m: q; p3 Q) x7 U fwireless-03.png
* T' i  @- d4 P
2 c5 E6 W) F: l/ J- C串口配置8 E" v: O5 |' D4 T4 P
fwireless-04.png ' x& w/ _" [3 B8 z2 T* f5 T
" S: Q8 `! p: G& W& r
发射端实物图片: b4 ?/ [5 j6 }
IMG_20161118_103731.jpg ( x! q: I, F; B

1 x7 q9 E; b% V- U: N人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了
$ _# [, Q4 t6 S6 {  S$ G; R IMG_20161118_103743.jpg 0 q" Z% g# u9 ]$ I$ k0 B

! s( B$ T) U/ V4 I1 \5 Z7 f2 u IMG_20161118_103801.jpg 7 k6 x, ~5 {  q# W( T

8 @' I8 a5 s9 m. s  W使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。
$ r: [/ I2 y: d& A/ o5 R5 u wirelessHW.png
9 F* p. p! ?$ g/ s4 v& O# ]
) m; ^* _9 b3 y9 N5 l好了接下来是主角STM32L432KC 接收端的配置截图如下:
/ }; K4 A, J$ ]" ?5 k# i
8 E- j& p/ i7 p8 E用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器, P$ R8 [  Y+ @7 u7 q
wireless-01.png " T) i+ }$ o, u
2 o+ Y0 c; [4 L, B' x
使用内部晶振+ y% T2 c$ ^# _8 U2 m' V
wireless-02.png & S  a2 _( ]7 j  P

* F* [/ U2 {) ?4 J7 USPI3 配置
; C( N3 g3 a+ C+ @$ y& l) z9 e. t wireless-03.png
1 j2 P: V# T! @9 J% X* v/ c* i7 Y* \9 _% `, ^  s0 C
串口1配置 DMA IDLE 接收和发送数据给蓝牙模块
7 f+ A" b0 x' N, p. N wireless-04.png " T9 o2 J- Q' @* r: m

- w0 Z* T* |; l5 u6 R9 y% i wireless-05.png
/ O, C4 E. v3 S' z; }* [* S+ z% I3 a
串口2用于调试直接输出测试数据到电脑上
( K/ @$ s" y/ T. E wireless-06.png
( }9 _; z4 O" i: V  S* ?
$ f# p2 h! w& s* W wireless-08.png
: {% ]; N0 Y! R, ]1 T8 d
/ ]+ m# z! g, T好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。
1 Z6 G$ _' j  ~! R8 W以下是调试过程的截图片段  @- ?% I9 N2 M( n7 S
wirelesssoft-01.png 9 n4 u0 R8 ?3 j! n

) M8 Q0 K( ^- e3 X+ x$ K  |, u$ d wirelesssoft-02.png
5 v! J( Z' n+ S! ]8 H
9 n7 r" r* |$ u) S wirelesssoft-03.png 3 L/ D6 n, H: z3 U; L0 l# }: }

/ R; S0 f) j% ?9 { wirelesssoft-04.png
  s  g& k7 h5 D) p' M; i# r+ n
" q% {, j. Q. H程序都编译通过后,直接下载到发射端和接收端来验证吧。。' E5 w6 Z; |0 D  b% g5 R: g

' K3 F. w7 B  r5 Y% O, E4 r% |: M实体图片是必须要有的。。。。( w3 T7 v; x* n6 ?  B7 Q! Q3 _8 V  L
IMG_20161118_103839.jpg
  o6 O# z* W3 h# G
- `! T& ^+ S6 K' z5 J, ? IMG_20161118_162516.jpg 8 L! {: o" g. S$ d- H

: V, w* U+ @2 J& C8 \4 | IMG_20161118_162536.jpg
2 q# \# |: ]) {, n  S- Y' N1 E1 ^( k  i4 }4 _; e% f7 J9 z
IMG_20161118_162544.jpg ( z; z' J* I3 G& }+ Y

0 X9 ?6 k! [+ w" ~% o$ t wirelessyz-01.png + C) r. \* f! a
4 e' ]- C, T0 S- t# H4 B  c
wirelessyz-02.png
! \/ ~; f! q* T+ h& p
7 c7 A/ L  _2 y  r wirelessyz-03.png 2 p7 m1 `  N/ z# k0 Q3 J
9 ~/ x3 x) o% Z3 M  Q
wirelessyz-04.png 3 R# v& z9 i6 W' P' x0 Z
2 e. q% H! x1 x$ w( m
. I/ v9 I7 P' f. d( y% y, `
好了。。。。亮点在这。、。
. J7 z+ W* ]& E5 x( _9 |& G' d
% A7 g: O. W8 A! S; H: L, Q$ {1 y+ }7 J" A6 X( b
3 t4 j( S. e# |8 e& o6 m
- @( ?9 \4 Z" \4 N' h
Screenshot_2016-11-18-08-30-49.png
0 h! C2 t7 t7 l/ x& y4 k1 a8 j! S& u7 b
Screenshot_2016-11-18-08-31-49.png 8 d# }0 ~# b, i( k* @

8 e* u/ n. d8 O, B Screenshot_2016-11-18-21-40-29.png
' l$ @, W; N* {1 v
9 A3 @" K5 A5 X6 W好了这个项目就差不多完成了。。。% Z7 Y: b' Q& h

+ l' h* i' D) [  S总结下:# g+ b; e- w5 G0 d
这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等0 H+ D, N3 [& V& X4 \2 t
外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。5 ~) Z" e" }- ^) D0 X5 w3 t  Y
因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。$ ?# i, J& I; f2 u! K
; n' `$ f5 s! o! g
1 z) ]. Q4 f* |
希望大伙会喜欢。。。。。。: O  N9 D5 X6 I. a( ~  X' Q1 Z, B) F

3 `" \$ f6 v- q1 R3 x4 g: h1 v+ v9 I, Q4 Z! k* G  T7 o

评分

参与人数 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; c+ _& F1 z$ L) n
楼主厉害!
/ l8 J2 Z# \1 x, [7 N2 A9 U" P- H手机APP不会是用 Java 写的吧?
  G8 d; Q, ~( i3 u有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...
% {! P. V& f( X  h* U
安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
黑皮男 回答时间:2016-11-24 18:44:35
cuyebiren 发表于 2016-11-19 11:501 Y1 x7 g$ _. H' p5 ~: M
楼主厉害!& q8 G+ ~1 d& [+ {
手机APP不会是用 Java 写的吧?4 H# R8 J: g$ {# P! W" S- @9 ]
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

- m6 I  \& Y- _* r而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的3 O; }5 t1 F4 P/ f; N/ A
Paderboy 回答时间:2016-11-19 13:26:20
cuyebiren 发表于 2016-11-19 11:50& @& Z) u/ k- E
楼主厉害!2 Y  t* ~9 `) p0 W# }
手机APP不会是用 Java 写的吧?
1 T+ K% }! E: ?6 U: W; @. _有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...
4 n( n) h# g* M: n( [7 p7 ?4 {6 K
纯 C 语言 + 控件 编写估计是没有。。。
zero99 回答时间:2016-11-19 00:05:49
赞一个
Paderboy 回答时间:2016-11-19 07:56:05
zero99 发表于 2016-11-19 00:057 S: Q7 |, b+ T- T( D
赞一个

6 V6 M' u; w. o, J
yanhaijian 回答时间:2016-11-19 08:19:29
全能通吃,厉害。
Paderboy 回答时间:2016-11-19 08:21:14
yanhaijian 发表于 2016-11-19 08:19) @8 Z3 j( [5 e1 Y* v2 C. O
全能通吃,厉害。
) g" h5 O9 h9 R. J# r& L
多谢多谢
wamcncn 回答时间:2016-11-19 09:19:19
赞一个,手机APP,软硬通吃
Paderboy 回答时间:2016-11-19 09:47:17
wambob 发表于 2016-11-19 09:19
: p1 D3 |( t5 Q# j8 X赞一个,手机APP,软硬通吃

" G- G% T: q* j0 Z) P
cuyebiren 回答时间:2016-11-19 11:50:59
楼主厉害!
, a  l+ Q6 D3 }6 T3 {# C7 B手机APP不会是用 Java 写的吧?+ t9 Z2 H% Y7 ~9 Q3 Y3 O: Q& O# g* k
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
cuyebiren 回答时间:2016-11-19 14:53:54
Paderboy 发表于 2016-11-19 13:26
  V2 ]; |$ U! t3 e纯 C 语言 + 控件 编写估计是没有。。。
, T+ ]/ J( v( ^* i
LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
Paderboy 回答时间:2016-11-19 15:02:16
嗯期待吧。。。
zbber 回答时间:2016-11-19 21:37:53
楼主厉害,真是难得给力的帖子啊
$ m9 i1 ?& x6 t2 |  R, m
Paderboy 回答时间:2016-11-19 21:45:37
zbber 发表于 2016-11-19 21:37! w4 y9 F& C9 \) c' V- Z& J+ E) U7 ^
楼主厉害,真是难得给力的帖子啊
/ ~+ j4 I# M7 t3 }, k7 C" w
那都有你啊。。。
五哥1 回答时间:2016-11-20 22:25:13
做的很好
Paderboy 回答时间:2016-11-20 22:59:37
五哥1 发表于 2016-11-20 22:25- a" e+ N3 ]# O  I! c
做的很好

5 W( V7 D+ }- g* i2 ?! ethx
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版