请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
Paderboy 发布时间:2016-11-18 23:35
本帖最后由 Paderboy 于 2016-11-18 23:40 编辑 9 ~1 J! v, c" g' B" [2 \& C# O

& M# D) O; a, S# c- H# Y这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目& r& n+ [! D& R, B

7 A3 ^' ~7 {2 v- H3 ~* [4 s3 E& o! v, \  l$ x
Screenshot_2016-11-18-08-31-02.png
: A( X$ z, k8 A" \/ x
& b, k& t% i2 B/ D2 Q# M7 @  G" B
' z' P: o/ F* c整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。6 g2 B. V; ]( I0 R8 I& `6 q
2 U5 U) B5 ]6 ^$ j/ [. D
1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据% X- E, m8 ?! ?: f- T4 y

' A7 O  _/ ]; t" p2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。). u' K% @4 `  _, Q! s/ M, s
所以这个项目就用了这个板子作为无线发射端
, ?+ B- y  G6 W% S; q  f. a+ }- |4 u" e' S& v+ I5 h
3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高),
7 t% x6 t, Z' B( r2 L   使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。) i1 ], F* M) J- e1 \

6 Z) @8 a9 v: l& e# Z9 S) Z4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,0 h/ O+ W" H; V' g/ J
通过串口发送给蓝牙设备报警信息。。* G, a* q; H) o" R/ T
5 O+ O! J" Y4 U1 S4 q
5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域
! T2 a9 ^# R1 o% E. A5 Z, [# v1 |  (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。
4 e7 l, W8 T, ?6 U3 K( w& l( Y1 ^7 \, B- O, b* V; s
6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。9 j2 p1 c" B: X) L' F6 m& Z3 g
) z! |3 C. ?% I  G5 J/ O
6 D$ E( Y/ Y; k) t
好的先介绍下主要的设备:
- v! C1 j0 ~. Y$ V, s- E% s, r
1 E$ I' J- V# {- _" w" k1.STM32L432KC 开发板
& {, \$ G- v* J7 L2.STM32F031K6 开发板
/ f3 b( N6 G3 ?3.2xNRF24L01 无线模块& v0 N  G$ T4 S6 F# s4 z' `
4.人体红外传感器HC-SR501# U2 w/ k0 ?, W: }8 q( n
5.有源蜂鸣器
; S6 _& Y' ]3 U6.少许杜邦线* N6 a# M" Y# Q
7.蓝牙模块2.1
+ b% P2 G( Y  M6 D; d$ E6 D9 r8.发射端电源和触发电路$ [1 B9 `7 [5 D: ~- l8 G
# u! M; |0 z# G3 U' k
以下就是这个项目的流程图
" |+ M  @! \8 @0 J* }, {2 y: K8 [' d; U- X+ Y2 K
L432WirelessAlarm.jpg
- q* N' J# }4 m% L6 P7 t开发平台:
6 N- p% x9 A4 s  ~: m! uCubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。  W; n% _/ s$ I" G0 x; g8 M4 H
8 `9 D5 c; e; H
测试工具:
) X) y- f+ c6 k串口助手(主要用于测试程序和调试的反馈)
! f! M* T, \  u5 s+ W/ f安卓手机一台(用于APP功能测试)
$ A3 R$ M, }/ P4 ^- D+ n2 v3 a% c0 e
* k: t* {' F! \) H* A接下来就上图吧!!  x9 t( z7 D4 g

4 E' p7 V- r1 Y3 X; n9 M这是发射端STM32F031K6 配置SPI和串口输出,方便调试
! v: R5 ?# k3 A fwireless-01.png $ `6 U' E' p" v& {9 ^1 G/ s
0 l+ q/ O# p/ v3 r9 L
使用内部晶振) v4 d0 w) D& t9 O
fwireless-02.png / X3 {4 ?% G( d
$ ^8 R6 _9 D4 P- q/ [! a
SPI配置: k: _' s/ Y) f8 Z
fwireless-03.png
7 _' f) y' r. u. f0 a+ t7 j; D* q" s& S  n5 y
串口配置& e9 I- E$ l' ?6 s. r3 u
fwireless-04.png $ W; `( v. ]) X/ V& n; l2 U# I

* M/ y! h6 [8 ~# x发射端实物图片
4 |. Q( v$ B9 o6 b' o: ~0 b9 y IMG_20161118_103731.jpg # p& F  q/ \6 w& ?( M# k) \5 _) S

) G7 B0 y+ X2 O4 b; |人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了& \' j: M, N: Q! e
IMG_20161118_103743.jpg
" Z6 ^1 W0 Q) N$ ]5 s' L& n" D$ }4 Q" y7 g. L* m3 r
IMG_20161118_103801.jpg * \8 C0 B1 W3 v
0 n2 ?# {3 [+ j) C* j* j+ C
使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。
% V( g$ C# d: n$ p; N wirelessHW.png / n  R, s& y$ {# n/ i9 ]

3 }$ X; [7 M! |1 e1 R" P: R好了接下来是主角STM32L432KC 接收端的配置截图如下:/ j( g/ |* k/ i

' M+ {  n2 `; ~* c用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器+ t- E% o# X* h7 T
wireless-01.png
8 T$ X2 E, R& P* X4 m& m  Z$ i( k" v7 }5 d! y
使用内部晶振
3 k$ E: n4 v) _4 r wireless-02.png * q; {1 C' {7 e. T8 a5 Y

2 Y. T, I' q- g3 lSPI3 配置
) H$ e& J+ P  P7 s: E: e wireless-03.png
8 d; P: m1 @, }4 n; T
4 ?) a. m* Q' E  |2 }& }串口1配置 DMA IDLE 接收和发送数据给蓝牙模块  k! F: p: M  r& y0 ~
wireless-04.png % X: O9 f# q1 q! I  Z

1 r0 p, }  T! B) u/ G& o* ? wireless-05.png 3 W7 S* B5 C8 w) L7 k) a: @

. f' }* H& s% s4 Z串口2用于调试直接输出测试数据到电脑上! C1 }# L2 B: M* N7 w
wireless-06.png
9 J# o- d$ h- f3 @( J  {
! L! S7 n% V: ?! u/ }) M wireless-08.png
, w& j. z; \; ~; g8 u; `
& M+ O0 l) R' p4 _/ t好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。
, A& ~( @3 u6 u8 k以下是调试过程的截图片段( ~- i- P5 b3 k8 _& r
wirelesssoft-01.png : ]) A* ?: E8 P! F
9 @: p8 q4 I& E8 `; L
wirelesssoft-02.png
) a; h6 ]7 F$ c+ \* h$ m; o4 B- s) U& X0 S
wirelesssoft-03.png % L  s0 F6 s; }: N8 U% }
1 ?& \7 Y( r; l+ @* \: F5 k
wirelesssoft-04.png " Y% J- p6 a: h
' Y6 [1 O1 h- [! {3 {
程序都编译通过后,直接下载到发射端和接收端来验证吧。。" \& s2 c' v/ u$ d$ Y& }
" f. I5 T' I2 s1 n; E4 z3 H' W
实体图片是必须要有的。。。。- u0 {' \7 @* d3 g
IMG_20161118_103839.jpg
+ T/ u+ l1 D* G. Z! _/ o$ ]
; ~; D" q0 j1 t% O IMG_20161118_162516.jpg
' k' o5 Q  [7 ]# _! `' {- f- r# v! ]1 W: N# w  Z+ E
IMG_20161118_162536.jpg
; H$ n" H5 v9 t+ ~7 G8 L6 n; _
( F( j' D' q" S: ?  w! G IMG_20161118_162544.jpg
. u& G( B. _, r0 |: m* j  E% O7 X3 U7 x- n4 x9 V
wirelessyz-01.png
+ j  O3 D5 ]& l" F4 x
0 X0 A  }* i5 j: Q wirelessyz-02.png
) x8 I3 m8 E  Y- \+ D5 y+ S+ U5 j) j, n( q$ H  ^! _" F
wirelessyz-03.png 4 Y7 p6 l% C; p; d
0 E( n8 B# w3 A. x, a
wirelessyz-04.png 5 y' F6 {# ]6 o  e. M
, H# G0 g9 _- g8 m* }

3 A4 `7 G, C! a" a+ V& g( I0 q好了。。。。亮点在这。、。# g$ N& k; j4 I$ n
3 A# j& t5 R0 @  r2 ^) Y
: u" M; A0 \2 J0 Z

, p+ O% d2 K2 E- o# u; B9 i0 y  z3 e$ M
Screenshot_2016-11-18-08-30-49.png 1 |: O$ }3 w% |8 F) ~4 C

! K+ y4 p& U) h Screenshot_2016-11-18-08-31-49.png
2 F1 g5 K+ L& l. W; H
- p9 ]0 ]8 L: j0 Z7 M8 _ Screenshot_2016-11-18-21-40-29.png
" l7 w& j; S3 Z* y+ m. ?
- L% N- }3 D+ b2 f+ {# e3 a& ~好了这个项目就差不多完成了。。。
+ O7 a3 |& q% d6 {( u( G2 J' d- M* ?3 i
总结下:2 H# K6 M( g  K/ q
这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等
* A6 z2 u6 F1 o" ~外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。
4 L% e: N. z' {! g2 o+ a因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。' n8 ?4 V* ?' Z) l/ b* x, e

. a0 `0 s8 Z; \2 D
1 n: i' F. \2 d! k希望大伙会喜欢。。。。。。
2 O2 S/ m4 L) }0 p! u- T; e
9 q% ?% \* V1 d: g& n: h2 Z$ R- p" v/ w$ A$ @+ P

评分

参与人数 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 n: u2 ~  p5 J4 {/ E7 h) i楼主厉害!
  T, T" I4 y/ b- i% U手机APP不会是用 Java 写的吧?
' ^7 D# r  F4 D有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...
5 b  r  L: R# K1 f
安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
黑皮男 回答时间:2016-11-24 18:44:35
cuyebiren 发表于 2016-11-19 11:50
- q" x$ |  h' u) K楼主厉害!
9 P4 a1 e3 F, t0 M6 v9 j& x手机APP不会是用 Java 写的吧?
. d- |; w$ x0 y" |' w1 q' T有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

2 |& m; P/ o$ V: P% R而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的: M, ]- `& q# P% t% d# D
Paderboy 回答时间:2016-11-19 13:26:20
cuyebiren 发表于 2016-11-19 11:505 Z  j6 [0 r% A2 m& h
楼主厉害!
6 t4 w6 u; G, |4 p/ B3 E手机APP不会是用 Java 写的吧?! _) c, c! O( C( N& H
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

# [1 Y& V8 u; R0 k0 s2 H纯 C 语言 + 控件 编写估计是没有。。。
zero99 回答时间:2016-11-19 00:05:49
赞一个
Paderboy 回答时间:2016-11-19 07:56:05
zero99 发表于 2016-11-19 00:05
+ ~/ `0 o) ?: z9 r* |8 N2 L/ n赞一个

, p; w0 \3 z/ P& p3 d
yanhaijian 回答时间:2016-11-19 08:19:29
全能通吃,厉害。
Paderboy 回答时间:2016-11-19 08:21:14
yanhaijian 发表于 2016-11-19 08:19. a2 I) Z: n7 @( x- k; R
全能通吃,厉害。
; T8 \- ]2 S; J- v
多谢多谢
wamcncn 回答时间:2016-11-19 09:19:19
赞一个,手机APP,软硬通吃
Paderboy 回答时间:2016-11-19 09:47:17
wambob 发表于 2016-11-19 09:19
. j  R! f: [3 j3 @: w赞一个,手机APP,软硬通吃

/ w9 f/ i2 }6 s
cuyebiren 回答时间:2016-11-19 11:50:59
楼主厉害!
4 T: |- ]9 I  g  q% [手机APP不会是用 Java 写的吧?  N2 x  {4 l: k: O! H8 @
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
cuyebiren 回答时间:2016-11-19 14:53:54
Paderboy 发表于 2016-11-19 13:26
5 q$ r$ P1 n( g5 i, z# s7 G$ @$ T1 V  U纯 C 语言 + 控件 编写估计是没有。。。
5 O- v- p, m# U/ i/ h/ ~  l  Y" [
LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
Paderboy 回答时间:2016-11-19 15:02:16
嗯期待吧。。。
zbber 回答时间:2016-11-19 21:37:53
楼主厉害,真是难得给力的帖子啊
( y3 O0 l4 P7 X  F; d
Paderboy 回答时间:2016-11-19 21:45:37
zbber 发表于 2016-11-19 21:373 w$ ^7 f* F4 [6 y
楼主厉害,真是难得给力的帖子啊

8 k3 }' x8 F# q那都有你啊。。。
五哥1 回答时间:2016-11-20 22:25:13
做的很好
Paderboy 回答时间:2016-11-20 22:59:37
五哥1 发表于 2016-11-20 22:252 z% V! t0 j7 Q7 Y
做的很好
4 G6 R0 p" P( V" B- G$ c
thx
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版