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

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

[复制链接]
Paderboy 发布时间:2016-11-18 23:35
本帖最后由 Paderboy 于 2016-11-18 23:40 编辑
( q. ]- @( E! T* `. [  ?) s' x+ h' _" `5 [$ u5 j
这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目
% ]4 }+ q+ P$ r: _. `1 m' `& h# B: O9 I0 w1 F% |' Y

, h7 k3 }' P! I* L% A$ z; m' {; p Screenshot_2016-11-18-08-31-02.png
$ d, |6 ^% ?- k" b: ~1 Q
" z, u8 c; `+ C$ u
, F! h6 q! z& k4 y  C* S6 j整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。
8 A) w3 `* Y+ K1 R- j7 S5 W$ P( W) }& @1 T5 ]1 ?: n: ~
1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据. q; W9 n( Z& n

7 Y& Q9 ^" l+ F5 D3 i3 ^2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。)
5 z1 I* V0 C# u8 j所以这个项目就用了这个板子作为无线发射端3 \+ }* h% {. \. K0 v+ \, J6 n( C, w2 q- N
  G( }: w) i0 r$ q/ N) X/ l
3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高),
) G! e- X1 l9 f& m   使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。
. _2 c, G, h6 U9 \! g! P5 i4 M! m
5 m$ A, [. M" n) z/ w# B% i+ R# K4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,
6 h9 X# A1 ]- _8 A通过串口发送给蓝牙设备报警信息。。! n" s9 s, Y7 K9 s# H/ E- ^8 t. |

6 Y6 W1 C2 b4 e. M7 Q  `7 T5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域* |  s" {: r9 ?8 f+ k
  (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。
8 W& r3 g' A# g% Q2 Q* n! O: f0 `) k; M
6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。
2 [6 v7 g0 ^9 j7 G/ _  w+ p- C4 ]  @* G$ ^' x
4 A' Y- z/ s4 }
好的先介绍下主要的设备:5 v5 O- p! H, L$ G
+ w; {' X3 S. [( I
1.STM32L432KC 开发板
- L6 T1 }1 ~- i0 K7 _3 b* l, O2.STM32F031K6 开发板2 y' h1 H7 o) j
3.2xNRF24L01 无线模块
/ `5 ?" }9 P4 f/ p8 r( r4.人体红外传感器HC-SR501
, f' ^: e: y4 c% s8 D2 {5.有源蜂鸣器
) y7 h' t- W8 A2 p: _6.少许杜邦线
$ r9 L( d  q. V4 v8 [* J: C# o7.蓝牙模块2.10 @, s. u1 I+ M- f: E; m+ R8 q
8.发射端电源和触发电路8 K0 A( n( U# ^6 W2 y4 J$ o4 A( H

! E( n3 D4 D6 \1 K以下就是这个项目的流程图, f+ u8 ?1 J, o+ B8 G

6 H+ Y* A0 v1 k  r/ i$ y L432WirelessAlarm.jpg ( W% e2 P8 Z/ I3 _/ X
开发平台:3 ]0 W3 O) d$ U5 G3 M- x* g
CubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。  b8 `1 E: d& u- D: R, v8 l

) [$ b+ b# Q! [& [- T% Z测试工具:
/ Q+ ]0 \/ T8 x& k5 b串口助手(主要用于测试程序和调试的反馈)
" K4 ~7 X. K, x9 o安卓手机一台(用于APP功能测试)# \/ e% O6 B* \  @  O: @

& a6 y% P" W' b! ?* I. w接下来就上图吧!!
/ E- y. w; s: X6 H5 l6 S6 x6 \, R8 E1 Z
这是发射端STM32F031K6 配置SPI和串口输出,方便调试( X+ f3 y8 O8 M0 y
fwireless-01.png
7 t! f; ?" V& T2 C& M/ Y3 l- O% ^- p: C" M
使用内部晶振, N: }( I% {& [+ X  @
fwireless-02.png
, L' K- ]* `1 P& v4 G! z/ |4 h
8 g  |3 t* L) l$ X, Z2 M0 u; xSPI配置+ P& @9 _& n; F0 u: M; w
fwireless-03.png
- M/ T6 F- p- ?; l/ l
8 V2 `6 h$ F: q! @: j! y  k2 W! N串口配置
- m  \$ h9 V4 l/ R- W fwireless-04.png 7 x/ m# L# }, y) H" b3 k  R) n5 W& }
3 C) F9 k; d( S  x+ ?
发射端实物图片9 f. r/ F, C8 o4 D# m# P
IMG_20161118_103731.jpg ! L$ R( H7 d. F8 _

& a0 O/ j; ]# _2 ^& u5 Q人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了
! G, ^8 t0 d! z1 G1 m9 i3 g IMG_20161118_103743.jpg ( _; ~* [3 F& G+ y- [" `. h
8 {% a% V& T) n) F5 ^: t2 G  _5 \+ `+ G
IMG_20161118_103801.jpg : _5 A5 L  r& R0 K
: M- G. u! \* i+ ^3 `: I
使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。
0 T/ T# E: e2 }3 {! }, u wirelessHW.png 8 I$ D' j. _8 Q8 l, }% p

$ F% W) z; p- l( ]  \好了接下来是主角STM32L432KC 接收端的配置截图如下:  `2 R7 T% x5 m* z) g/ z
0 E% C% s- O) ^3 L* j3 S4 B9 Q6 B. h
用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器
% ~  _9 y2 g4 ?+ J wireless-01.png
; k7 E- V3 Y4 G/ l. n" x
4 s4 T& t; f9 A" C使用内部晶振
6 a9 X$ o7 ?. N7 q" b9 F wireless-02.png
9 o: m- V1 f, z" ?. o+ ?5 e# p' ?. M$ L. z1 e; E1 w
SPI3 配置
# L2 D, Q- z- V# P9 H5 [1 b2 X wireless-03.png " Z0 ?" g$ u9 y9 r

* ~4 I- e5 K5 [串口1配置 DMA IDLE 接收和发送数据给蓝牙模块
" y3 _; O' f0 t% x wireless-04.png * c7 d' [% n- _0 p8 O; u

7 _; _3 N7 W# P6 x+ l wireless-05.png
9 v7 g6 q2 @/ |( u- S$ K( f* f* [
串口2用于调试直接输出测试数据到电脑上6 W* J7 V! Q# w
wireless-06.png
( h: U8 l/ M/ S' V  Y1 |) w
) y0 y6 c7 Q! a$ C9 w$ M wireless-08.png
+ Y5 t" j9 t3 o- _
) a2 F* k/ G. X  }# W好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。' U; t! y4 F1 K' g6 D. Q
以下是调试过程的截图片段
0 a: B( U7 h( u  |+ [2 t& J wirelesssoft-01.png , Y, L3 Z: Y& }3 X5 F+ S9 S

3 v: h0 x0 ], `' d$ p' }( o wirelesssoft-02.png " |  y. d: n5 P" F

8 W( d( v1 ~* F% J) P wirelesssoft-03.png
* f; R/ i2 }/ F: m' D/ N) ]: i/ o+ g1 t+ r4 W9 |" q# y9 ]
wirelesssoft-04.png
0 E' Z) j7 b7 C8 j; B/ J" V: Q( }/ Q$ j7 z% @, K
程序都编译通过后,直接下载到发射端和接收端来验证吧。。1 E* T; E' d) f: Q2 t( X

; I' [& J& w7 p! T- x实体图片是必须要有的。。。。
0 @# [% I3 q( W3 W( o IMG_20161118_103839.jpg
( N. I/ m* I- V. e3 r3 b& I& ?& N7 q# J( w6 s8 L/ q2 K% m
IMG_20161118_162516.jpg $ a5 A. A8 a( [/ X& p

, m7 x9 C" z' e  P! V IMG_20161118_162536.jpg
* d4 E& |# K  Y& J; v& A8 U
2 t$ H0 D3 B# V# ?- A" w, \ IMG_20161118_162544.jpg
6 w: n; b# z8 ^& W. M& L+ r
/ P+ \$ D/ }: I' t7 n wirelessyz-01.png 9 r1 q; l9 }* O8 i! F
4 }. x2 V, @% {! q% e3 `2 A1 S
wirelessyz-02.png
6 ^, ]) \( Z; f7 R0 q5 L5 t+ x* q' U- H% a1 P3 ~1 y
wirelessyz-03.png
$ x0 p8 I9 \( o8 Z  \
, |2 p) f+ L* C: m% ?- f' X8 j1 m" E6 S wirelessyz-04.png ! z0 M" f& d2 K, |- l
: X: Y) B2 _) \" f. g. N
" ]2 C' k/ q7 Z+ z+ i) @; Y2 R
好了。。。。亮点在这。、。
3 l* o  @" H2 Y' `: B
( e, T+ N+ a. o; z, r1 @2 S7 r0 v6 }) C( x

3 ^, @: Y3 W4 e9 w) B- q4 e  x$ i0 ~2 V
Screenshot_2016-11-18-08-30-49.png ) N1 j4 @7 }1 l8 r$ T

: {2 \: o+ u0 h) p Screenshot_2016-11-18-08-31-49.png . l6 s. |, L' X+ @' E

% {+ m8 ~6 c0 r9 d Screenshot_2016-11-18-21-40-29.png
- T; ?# s; V% Y( Q$ D3 h! u# z- R. _" J
好了这个项目就差不多完成了。。。/ w  P" e8 I( ^* h7 i: ^
4 E. N1 B, o( f2 ]4 a; f5 A
总结下:' [+ Z/ j' L* E3 e8 l1 n, \3 `
这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等
3 I1 l" U' D. n  b, d, c! z外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。
3 U$ p3 T0 H6 e6 b1 d+ Y9 x# d" y9 @9 W因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。) j: k$ J- |9 g. r. {$ Y( F1 X
. m$ w. h* c9 o7 s. r! g

: ^" P6 w' D! o/ E+ Q3 K6 C4 P+ k希望大伙会喜欢。。。。。。% }( t; `9 b+ C& A! i& W
( Z5 V5 R. a. j7 u8 ^" `8 N2 R

' t: \6 c" @3 s# w

评分

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

查看全部评分

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

举报

38个回答
黑皮男 回答时间:2016-11-24 18:43:40
cuyebiren 发表于 2016-11-19 11:506 i0 m: N4 r7 Q: v: h5 K
楼主厉害!
) `* r+ J# A% w手机APP不会是用 Java 写的吧?" ~1 x0 n) n) j
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

8 }, B1 E" f& Z  U' g. Y安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
黑皮男 回答时间:2016-11-24 18:44:35
cuyebiren 发表于 2016-11-19 11:50& e5 C9 s4 @7 F* ^$ [
楼主厉害!
- K' e( C1 z. ]- \% a3 w" ?手机APP不会是用 Java 写的吧?
, p, H, _" R+ _- E! k有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

# H: l2 Y+ S# X; z而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的
$ m) G& I7 W7 |! e, Y  C
Paderboy 回答时间:2016-11-19 13:26:20
cuyebiren 发表于 2016-11-19 11:50
$ E, ?9 Q% {& M: M楼主厉害!
. q% G% S% o& s0 [& B手机APP不会是用 Java 写的吧?) I$ {3 Y0 A; P% G" A
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...
5 A+ v7 d' P' _; W+ G* L
纯 C 语言 + 控件 编写估计是没有。。。
zero99 回答时间:2016-11-19 00:05:49
赞一个
Paderboy 回答时间:2016-11-19 07:56:05
zero99 发表于 2016-11-19 00:05
$ i" {7 N/ Z: q6 d9 \赞一个

; |$ ~/ [; ]; K+ B
yanhaijian 回答时间:2016-11-19 08:19:29
全能通吃,厉害。
Paderboy 回答时间:2016-11-19 08:21:14
yanhaijian 发表于 2016-11-19 08:19
# H0 r9 m6 C( r8 T# g8 f1 B全能通吃,厉害。

  Q& J/ ]8 q) D4 G9 K4 r1 A多谢多谢
wamcncn 回答时间:2016-11-19 09:19:19
赞一个,手机APP,软硬通吃
Paderboy 回答时间:2016-11-19 09:47:17
wambob 发表于 2016-11-19 09:19+ R3 s0 g4 _8 r" l8 F+ x' v
赞一个,手机APP,软硬通吃

+ y+ j1 k2 X/ |( E+ g
cuyebiren 回答时间:2016-11-19 11:50:59
楼主厉害!
$ H4 \  m$ V# y( @; |- u手机APP不会是用 Java 写的吧?( y! e# o) V. \2 h% f
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
cuyebiren 回答时间:2016-11-19 14:53:54
Paderboy 发表于 2016-11-19 13:26
7 B1 Q/ g+ @  ?( W9 D5 C3 J7 g纯 C 语言 + 控件 编写估计是没有。。。

$ @  Z2 n- P+ N/ V$ }LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
Paderboy 回答时间:2016-11-19 15:02:16
嗯期待吧。。。
zbber 回答时间:2016-11-19 21:37:53
楼主厉害,真是难得给力的帖子啊
* T0 y1 |( d" V$ O8 U0 A
Paderboy 回答时间:2016-11-19 21:45:37
zbber 发表于 2016-11-19 21:374 I  _/ M6 {0 {" U2 _6 y5 l
楼主厉害,真是难得给力的帖子啊
( N3 l! Z/ e. F& z6 Q% F
那都有你啊。。。
五哥1 回答时间:2016-11-20 22:25:13
做的很好
Paderboy 回答时间:2016-11-20 22:59:37
五哥1 发表于 2016-11-20 22:25' F; G6 Z( H! H0 S5 L, a' f; o
做的很好
6 b7 `  P& W! [; X% Z  K
thx
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版