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

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

[复制链接]
Paderboy 发布时间:2016-11-18 23:35
本帖最后由 Paderboy 于 2016-11-18 23:40 编辑
( g0 D! K1 i4 m5 z1 W' y% m1 ^3 Y# L1 Z4 q0 H/ x% x5 F
这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目
6 Y8 o& Y; v5 {, A' w
6 C2 r- ^0 _- i! R  ~( ?4 D# X# }0 S; c1 E
Screenshot_2016-11-18-08-31-02.png
4 d' `0 ^" z1 P: x+ H' T; G+ }* C5 O$ Y1 B: S

6 @- W" ~; R: p% y5 m整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。! A. {' R8 g1 N+ V6 \

3 i) g, w) a  j5 s0 Z6 z& j1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据
. k  ^: a9 |' l* K/ t" a# a
% C* E3 F" Q) U, R) o, t2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。)
" M. i4 V2 j; Z0 `* ^所以这个项目就用了这个板子作为无线发射端
0 Z: z! V1 I/ r8 Z4 R
# R) a2 }0 k3 [; r( i  o3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高),
1 }1 O+ u' z& R8 f% t: Q2 [   使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。* D- i' U- K+ h7 x) {
* r4 v8 \8 H8 `% ^+ n. [
4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,2 I, ?3 _" k: e* S! e) G
通过串口发送给蓝牙设备报警信息。。
6 N6 i8 X6 j) ~
5 ]  X: F* Q; S0 ~" l% I5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域9 u9 M! g* I$ f- B
  (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。' z# y. \& y+ u6 q8 u6 d6 \
: h. ^- @  Q. z& J* [( @3 S+ R4 P
6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。
) `' [3 S9 ~. q6 o. ]# D% k/ U& _3 K, q
5 @; l$ ?) [% a) Q
好的先介绍下主要的设备:' t7 P  D6 V( y! M3 v5 \( q
, _/ T" C2 @7 f+ Z7 ?- C0 W
1.STM32L432KC 开发板
% g/ r& F. @2 t; K! Y# p/ a/ W2.STM32F031K6 开发板
7 @! B3 h* A6 X- {3.2xNRF24L01 无线模块
0 i7 J3 R/ R* t0 O- ~( `4.人体红外传感器HC-SR5016 F. _" M) B' f6 z5 t$ w
5.有源蜂鸣器
& }. W% b8 V* S- Q% K$ {6.少许杜邦线
, r; I  k# l/ B3 W# Q7.蓝牙模块2.1! D' y, \6 L/ g! G  [! m7 r
8.发射端电源和触发电路+ T/ ~7 {" k" ]9 t0 X! X- X, D

! u! F: U& z3 w8 B/ \. t# _% \, O- p/ M以下就是这个项目的流程图1 P- z) ]! }! u( d

) l3 b  c$ G# P" x1 | L432WirelessAlarm.jpg 4 ?3 Z$ g) K+ x4 F) h! n
开发平台:
" c9 m% ^, @7 ~/ ^; Y! eCubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。  V1 U# ^( Z; s* ~5 U

/ G( g4 L5 p, D' ?' {测试工具:
% I) t1 a" X; H5 y串口助手(主要用于测试程序和调试的反馈)4 k, [3 k( U. C* n0 l
安卓手机一台(用于APP功能测试)
& T) O4 t- s- O- D! a2 m
; z# y, v% F, U2 S接下来就上图吧!!# U& n& \( Y( J
" [- O5 W6 T( w
这是发射端STM32F031K6 配置SPI和串口输出,方便调试
; N. A7 {2 a8 l fwireless-01.png ; Q# h$ F) G+ o0 W& j( L

( ]9 A. o2 ~9 e+ Y9 e; D& {# b使用内部晶振0 b. Q3 I/ A; L6 K
fwireless-02.png
+ C' b% C% T3 s  I2 G0 N3 ?
8 T9 ?  S  D. R, gSPI配置
' B& O- Q% m6 ~ fwireless-03.png
* z) T$ N7 C5 ^
2 v9 ~4 m& E6 `% v串口配置
  k% d+ p# ^7 T+ i fwireless-04.png
* _7 i7 {' w# ~1 u& L5 i" H' G: y" _8 T5 c; ]7 x/ T. d
发射端实物图片5 ?. @$ l, X: \$ B7 Z$ N0 @
IMG_20161118_103731.jpg   t5 @$ l( x: `* Y

& [" B. Z7 Y1 e% Z0 ^人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了9 L6 O' R- ^- N6 `" v4 {2 F: @
IMG_20161118_103743.jpg 4 r: v: g1 R( |
6 p7 \0 k& N1 W$ W' v% x$ D' M, q$ Q
IMG_20161118_103801.jpg
  x1 t& P  b, \4 \1 ^0 [: h1 y) M8 Z3 _" ]: s  S  ?4 W0 i( m
使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。
6 w! w9 g& S. |3 ]$ q wirelessHW.png
% I8 o4 [- t. ]8 m; M; D0 u7 }% }( c! @2 l7 j
好了接下来是主角STM32L432KC 接收端的配置截图如下:+ _4 G& H, ^* N* g/ }
: c) N$ e. ~) r9 D0 Y9 Q
用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器
- S: ?: u( A4 j  t+ v) m. c wireless-01.png * J2 E+ G+ |1 N/ R3 n$ w
. H6 F1 f4 _, `: _% A
使用内部晶振/ g% h4 y8 A! P/ P9 N
wireless-02.png
) Q: k: h3 J/ ]8 x! k( ^( C7 X( S  A9 M% Z1 @6 @
SPI3 配置
# ^8 V6 D) v% A wireless-03.png & e) z* E/ X' L; ?. d# g1 A0 ?

( X4 @/ s6 d) ]* ]串口1配置 DMA IDLE 接收和发送数据给蓝牙模块# a9 ?* q. d+ g" V: ^
wireless-04.png 8 y* E1 e( O8 q: L+ c, `" N

! H& f& }8 O! e6 w& p: G wireless-05.png
" G9 L2 W( u+ n- m: N1 y/ q1 D* t/ m0 T$ Y! l  ?5 r& s8 m
串口2用于调试直接输出测试数据到电脑上
" h+ Y$ h% n: x wireless-06.png ' k8 E$ b; P. {( E  r
% v; s, V# K7 ]. j8 b. O5 q4 F
wireless-08.png
" J2 e1 g* m+ n2 ^3 ?: f6 d! ?* G6 E5 E  @; W2 d
好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。
. y" y" g" x' H) g, ~以下是调试过程的截图片段/ p+ o& d* D8 @0 Z
wirelesssoft-01.png
3 L& Q) L. k2 v% v3 o) U2 M2 ?' }
4 Y6 c' n( d+ }$ i wirelesssoft-02.png ; G: x. l/ O% ?1 h

8 a% @4 A; j; X' _9 p wirelesssoft-03.png
6 D8 ]" d1 T6 M4 N* ?5 }) h0 q
* N! J$ C$ E. ?) n: I" V; o wirelesssoft-04.png
, O  D' f' c! p% [; I) \$ `0 |* ?1 E( y9 r* ~
程序都编译通过后,直接下载到发射端和接收端来验证吧。。
2 L; g% W! B- m4 s  {* C2 _8 y8 @
实体图片是必须要有的。。。。
. A) z  |8 @# D" \  i# Z IMG_20161118_103839.jpg " A0 a  N7 \) {
4 [0 j8 c2 T, f; {% E% C0 O: G5 |! Z
IMG_20161118_162516.jpg
5 @0 P. I2 o+ z* t! Q/ Z6 p  }
& c6 H- ~& \: ]; I( H+ R IMG_20161118_162536.jpg
+ k0 I% @% ~0 Y
6 Q7 G4 K. k; x, n3 @ IMG_20161118_162544.jpg
" R9 v/ K0 W! r- ]
- [) _4 P) w  v* j# C. _% c! } wirelessyz-01.png 2 @9 N' W( m* B
" b$ [0 a" \6 }
wirelessyz-02.png : ~/ f7 T) A  u( y3 f/ D( A+ s
% O* A% i6 X2 {
wirelessyz-03.png
' K5 c3 }" ?$ L% e! T+ g& Y0 u% M# l
wirelessyz-04.png
; W6 a8 }! W& m: G2 Q3 Y3 ]2 P0 p: q3 T
* ?, K; H1 a: b* g& K
好了。。。。亮点在这。、。
- r- U0 j7 l7 X3 K& M
! _: `4 {" x" a% Q& p
8 h% C. w; G+ x, D4 C# x& w9 \7 Y' M4 H- R+ o" d2 p

/ b5 b! i) o/ K; } Screenshot_2016-11-18-08-30-49.png 9 s! K6 {' F4 x2 C3 X% X

! I- E3 w8 r" c0 u" e7 Z% s Screenshot_2016-11-18-08-31-49.png
, C0 Y1 U' j: ~1 n3 p
6 u* z* g9 d  ~! n, M5 A Screenshot_2016-11-18-21-40-29.png 2 h9 r: q; h) u0 T  z  o# l0 T

7 Y2 R: G1 j6 S/ J: y好了这个项目就差不多完成了。。。; l% m. o+ n& K. q
! N$ M+ N. X" _( h4 `1 R+ {
总结下:
; @- s/ l. u. v  s1 O' j这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等3 z  L( W& @1 i
外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。) T% M1 k# U& S  m' a
因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。4 G# l8 s- t" c4 b' J& h' |

! p1 q' w2 F7 p7 w2 z3 z% |9 R$ g. }" X! R) S% n) k- h  D
希望大伙会喜欢。。。。。。
4 }& ]7 L! V2 W: A2 i/ F; z2 K6 r2 b$ o* ?

. P; r) l1 p, B" S

评分

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

查看全部评分

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

举报

38个回答
黑皮男 回答时间:2016-11-24 18:43:40
cuyebiren 发表于 2016-11-19 11:508 m! r& @( A6 K
楼主厉害!
1 E5 E( S5 a& S1 H( s手机APP不会是用 Java 写的吧?% v, V) O0 T; g/ b7 E
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

2 h( w- |$ D# v4 P4 R+ `( h安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
黑皮男 回答时间:2016-11-24 18:44:35
cuyebiren 发表于 2016-11-19 11:50
! O) l9 h5 [* N0 R0 Y楼主厉害!
; h6 p+ |5 }; O& H+ M3 I手机APP不会是用 Java 写的吧?
( ^: R3 _: `9 M+ |2 z7 F有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

% [3 O, @8 r) f- k) @& H2 p而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的
; z: [$ L" D- }( x9 A8 p/ J2 x' e: @
Paderboy 回答时间:2016-11-19 13:26:20
cuyebiren 发表于 2016-11-19 11:50
; B3 _; s( V' ^3 [$ ?* |, M楼主厉害!
$ t. r/ k7 j* Y! v! F% d手机APP不会是用 Java 写的吧?' \9 e) e6 z% |! l5 Q( S7 b
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...
: Q7 C1 K. ~+ F
纯 C 语言 + 控件 编写估计是没有。。。
zero99 回答时间:2016-11-19 00:05:49
赞一个
Paderboy 回答时间:2016-11-19 07:56:05
zero99 发表于 2016-11-19 00:05
; T2 U# r( m0 m1 _* T赞一个
! E( ^* q! ]: |9 m! W5 X
yanhaijian 回答时间:2016-11-19 08:19:29
全能通吃,厉害。
Paderboy 回答时间:2016-11-19 08:21:14
yanhaijian 发表于 2016-11-19 08:19
6 |6 o9 e& k0 y  S全能通吃,厉害。

) L5 l/ b$ F! `  m9 |* D多谢多谢
wamcncn 回答时间:2016-11-19 09:19:19
赞一个,手机APP,软硬通吃
Paderboy 回答时间:2016-11-19 09:47:17
wambob 发表于 2016-11-19 09:19
4 L5 ]% W& Y: |) b赞一个,手机APP,软硬通吃

: P" \' q2 J$ K/ Y
cuyebiren 回答时间:2016-11-19 11:50:59
楼主厉害!
+ K; i& O% K2 V" W% Q手机APP不会是用 Java 写的吧?
7 W; _8 X$ x! M% y# @( F3 |6 t: }有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
cuyebiren 回答时间:2016-11-19 14:53:54
Paderboy 发表于 2016-11-19 13:26
: O$ U" ^$ f! G/ c纯 C 语言 + 控件 编写估计是没有。。。

+ f2 c# _! G. M7 N1 H! oLabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
Paderboy 回答时间:2016-11-19 15:02:16
嗯期待吧。。。
zbber 回答时间:2016-11-19 21:37:53
楼主厉害,真是难得给力的帖子啊
% O; G! D  ~4 F0 F1 l/ o' @1 a
Paderboy 回答时间:2016-11-19 21:45:37
zbber 发表于 2016-11-19 21:37
" m9 }: W( ~9 Y8 @- P" \楼主厉害,真是难得给力的帖子啊
, K2 z/ L& t9 S% G- l
那都有你啊。。。
五哥1 回答时间:2016-11-20 22:25:13
做的很好
Paderboy 回答时间:2016-11-20 22:59:37
五哥1 发表于 2016-11-20 22:25
* d6 n3 D( y3 _* o* b做的很好
+ K  _5 B3 C9 h* I) w3 m
thx
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版