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

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

[复制链接]
Paderboy 发布时间:2016-11-18 23:35
本帖最后由 Paderboy 于 2016-11-18 23:40 编辑
$ I7 Q9 \: J. b8 {. P* K5 i( s8 |5 ~- s
( f+ N  _( E( z' I8 }% t这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目7 E$ {* V# Z$ [4 r& \
6 U  o# @0 R! \- G
$ j5 ~0 b$ R; _. x
Screenshot_2016-11-18-08-31-02.png
' M7 s& D" [& _+ r
0 x+ n' R) ]7 B+ J. m! v1 |" |# t3 s. {0 N
整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。1 k! H" y% n+ \/ _( Y2 y: E% v

' j' y; O4 W! G  E/ v1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据# s: W  ]5 ]( Y8 o
* D) @# e- x0 T$ A, n$ a! m
2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。)
+ f+ Q3 Y4 A- T/ d所以这个项目就用了这个板子作为无线发射端3 j$ D7 r; m% g. \7 [2 q

7 ^9 c6 Q- z" H# N" B, J3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高),
& L4 o1 b6 a+ A; }. O   使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。! ~  V. p6 J/ q* l7 e3 o

' s4 z- @+ W" }5 R, c* t& C4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,
! o1 e; F2 {- J# D& ]  ?5 m2 |0 D通过串口发送给蓝牙设备报警信息。。8 s6 B7 E. a% W* N
( x" E" E% U# l% T- q
5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域6 H+ v# ~1 i& ?& K0 e- A  R
  (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。
, `' k! f: \3 R' H  @4 ?, ^6 d* g* j
6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。: T3 t% n1 v0 u+ \; L

4 D8 E& @6 d. k. q" D8 a9 w8 [% b/ L1 d. w! L" c0 S* ]
好的先介绍下主要的设备:; r) R' T  d+ ?+ k8 |( I0 Q

6 o: |6 v) G6 l* k" M1.STM32L432KC 开发板/ ~+ w3 d  ]4 f# p$ Q# q6 Q% [
2.STM32F031K6 开发板
. b8 _0 m# B; B; ~+ p. p3.2xNRF24L01 无线模块* T: O0 g$ z  @: m
4.人体红外传感器HC-SR5017 a5 c* k4 E1 |9 d* \# [
5.有源蜂鸣器
; ?+ s3 A7 N# c2 ]( K* G+ ]3 J6.少许杜邦线
, Z3 s: _/ K) ^1 o6 m& Y, n7.蓝牙模块2.12 C' Y4 |$ b/ V7 t
8.发射端电源和触发电路
. K2 n. w1 h' `& `- N: \
! A7 g% l1 S3 @  ^! p5 F以下就是这个项目的流程图
5 g7 G6 u: [, n  R" D! q  L: L3 D4 ~; J, p' w' C  |# R
L432WirelessAlarm.jpg : r7 m- E( R0 {- k5 {+ d& O5 h
开发平台:
% Y' `4 }3 x$ yCubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。+ p2 f- {& B+ Q

( {4 ^$ z) C) |' V% i% J测试工具:/ H! ?! S: ~7 K, U% D
串口助手(主要用于测试程序和调试的反馈)% N/ v* E0 I8 Y0 E) G6 j
安卓手机一台(用于APP功能测试)
. K1 S& C0 Y9 Z$ L; X. U+ O1 |6 F) R6 D3 ~( g/ g
接下来就上图吧!!9 O' Y0 l* Q1 ^. ?7 |0 s& m
7 K0 E3 Q3 g# N) a' O5 E6 o
这是发射端STM32F031K6 配置SPI和串口输出,方便调试# d& F9 W# n# h; T  D7 X% W
fwireless-01.png , q4 w- n$ k4 r5 W
& P& C' c2 Y  ?  @7 O5 k, v
使用内部晶振
& v9 E% e1 o- h) b1 _ fwireless-02.png
# Z) F5 A; E8 {3 j; V
4 }+ H: U7 n& V) B: E  `SPI配置
2 a' ?3 C  e9 s& c- K fwireless-03.png , |! W, G: H' z1 g0 b! u. H
: [8 ?) X% ]/ n+ M* _
串口配置
  g& a0 K/ G4 y* q# m. d fwireless-04.png
% W  b! F6 c! U6 k% x0 r3 ?/ s1 b' ~& G- ~
发射端实物图片' W* p, J8 I, x
IMG_20161118_103731.jpg
8 a; D! f/ ^. i) i- J# S( L5 N! S+ {& v
人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了)( |: _  O* v" X" [7 Z2 F; ?
IMG_20161118_103743.jpg
* N1 e5 I$ ?. i" i3 N& G8 X! p/ s1 X, ^# V
IMG_20161118_103801.jpg % |) l7 b6 k, r! s

$ o. `8 P( a5 @  }使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。3 q) ?1 U1 v% B5 j  Z2 c9 w$ [
wirelessHW.png 4 g% F# s( K4 C
6 e& u5 N' j: D" z# Y, N$ d
好了接下来是主角STM32L432KC 接收端的配置截图如下:: q$ }# Z. E4 Z- i9 p! W! i- n! m
: ]- b! s: C6 W6 s" g! y; \
用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器+ Z1 I+ l' M7 `8 s
wireless-01.png 3 {# b5 r9 b; h* g

" D4 _4 S4 b; j; |- \* I使用内部晶振
: s2 n, [( t. E" P8 d$ c wireless-02.png " e% c% j6 X! t2 Q( I+ ~% X7 Y- \

8 w8 o+ [# A# C7 KSPI3 配置
; w' J! H$ `+ u% m+ i/ F6 x8 R) H wireless-03.png ( u. R5 T( p5 `/ i* e$ @  A4 O

6 {) \) p6 I+ z/ d8 r- ]: ?  |& m串口1配置 DMA IDLE 接收和发送数据给蓝牙模块
& E6 I7 h+ ]. L, D& L7 y wireless-04.png
( O# g* e7 {1 n% r0 {6 k1 _
5 _& ]2 b- w! c+ M7 U0 N wireless-05.png
/ g( ^8 F# \! F" F" x8 Z8 c
1 c0 `9 N, N( w  x+ j串口2用于调试直接输出测试数据到电脑上
% [0 C$ E& w5 E/ U( v. M' b2 s% s wireless-06.png
' O. @' V, T: ~* ]* |0 y, f' V9 M' Z7 z+ z; s/ W- y
wireless-08.png
& \8 e9 Y% y) W9 P8 C  J; t# ~
* N; P- ]% O4 h3 I好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。2 M2 L7 [3 z. F$ n$ F7 t' S& E
以下是调试过程的截图片段, o: z0 _" x( z- Q. Z/ x
wirelesssoft-01.png
% b+ q, V  u" a# p- e! I/ |; D7 j+ R. y( @: @
wirelesssoft-02.png
6 X. [" ?# z" A1 l1 ]! b7 L8 x
9 L5 E  G+ M) |$ E1 ^) x wirelesssoft-03.png
: G( V! y6 A! T
; k& O# H6 E& _8 F wirelesssoft-04.png
0 H! _* A$ s' g7 S# e* ~0 o7 `
程序都编译通过后,直接下载到发射端和接收端来验证吧。。- Q) J6 M; Y9 }, w
; T) X% L/ b* X% h6 ?
实体图片是必须要有的。。。。" H% \5 V. |3 ?
IMG_20161118_103839.jpg 7 O# o  i/ {% b9 l
( @4 T6 [3 Q* Q5 I
IMG_20161118_162516.jpg
+ e1 e4 |2 |- }9 O
4 l9 b; \: P* Y. b IMG_20161118_162536.jpg ( _5 M4 ?' m, z3 z5 D/ y. b
% a- A# }5 A7 K2 {4 L
IMG_20161118_162544.jpg ; r" c9 H8 u9 l: |

. ~, b% b9 i+ X1 r' h6 T2 G wirelessyz-01.png
7 P6 @" u& m0 i- ?* M$ H; {5 m! R; K5 s, Y( L# e2 f/ S* r! h, [
wirelessyz-02.png   j8 ?1 t( m% A1 P( j7 }- E# R

5 ]. n5 t' ]& a  U/ i0 S6 y wirelessyz-03.png 7 P+ D; F9 t5 }2 k
& N1 w6 s. }/ k5 j
wirelessyz-04.png 5 B) o; \; ~! R0 G4 h( m: r

! M2 f/ o) Q* G. L  d% z9 u, K0 e  [/ }& k4 j/ c
好了。。。。亮点在这。、。
: {/ ?5 {' j( c; s  V9 {; C2 B/ y8 [: x, H
5 [! _- N/ V/ Y5 _0 c) Y3 |

9 g2 v2 j0 V( _9 B; S
+ ^# \! F6 \% ^ Screenshot_2016-11-18-08-30-49.png : L( r; ~- k" k* A! `( Q
+ Q$ A' z8 Y7 `& v% X% K8 x+ F# k
Screenshot_2016-11-18-08-31-49.png 8 j' @2 R/ p5 L0 `) o& `9 V* [
7 H4 p0 ^$ N) X: X( T' @8 @
Screenshot_2016-11-18-21-40-29.png 0 O6 G! u/ P, D1 }: C, g

# w/ w9 w) x9 J( r好了这个项目就差不多完成了。。。, o# `. Z4 [, C/ s2 z
' f- p# W1 ?  V
总结下:
, M3 X* A5 b+ \! N. |9 \这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等
& x/ f8 _% n: e外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。' @* B1 i2 Y  ]
因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。" M: L8 ]' Y. R
+ a1 ^) }1 X6 E; _5 W
9 R+ {. t$ a; L
希望大伙会喜欢。。。。。。
: f3 @; i* f/ n$ @# B6 V2 i
" n, s. D1 G* A* n; O5 j, u6 w- i' L- B2 X6 u: B* R

评分

参与人数 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& l( K2 t/ X" _' F+ C) a' X
楼主厉害!
) t# B2 E8 e$ A手机APP不会是用 Java 写的吧?
$ I8 C: }+ z! |有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

- X. ?: l( X5 ~7 o- w# \安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
黑皮男 回答时间:2016-11-24 18:44:35
cuyebiren 发表于 2016-11-19 11:50
" L* @' [# u5 Q5 M' p楼主厉害!* \2 R: g9 r7 T8 k
手机APP不会是用 Java 写的吧?! Y9 g: N: o% l$ S
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...
; L- ?9 r" w- E
而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的
8 Z# L1 N! {5 Z0 F/ V+ C
Paderboy 回答时间:2016-11-19 13:26:20
cuyebiren 发表于 2016-11-19 11:50
" X& f( U5 K: l& h楼主厉害!) Y; m7 d+ e0 o( x
手机APP不会是用 Java 写的吧?
6 ^. A0 q! [1 o2 [1 U) O4 ~& M+ P有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 ...

. A1 S+ `0 e+ Y. y5 N& I纯 C 语言 + 控件 编写估计是没有。。。
zero99 回答时间:2016-11-19 00:05:49
赞一个
Paderboy 回答时间:2016-11-19 07:56:05
zero99 发表于 2016-11-19 00:05
6 h" j8 J0 M: i' |$ [0 O( h2 ^6 K" W6 [赞一个

, z% J4 q+ I- ^5 S! }* s2 K! ]! u
yanhaijian 回答时间:2016-11-19 08:19:29
全能通吃,厉害。
Paderboy 回答时间:2016-11-19 08:21:14
yanhaijian 发表于 2016-11-19 08:19
! g6 W/ ]& f2 r1 H$ @" a9 d& Z全能通吃,厉害。

) S& ^* ?& O9 |. `, ~: v多谢多谢
wamcncn 回答时间:2016-11-19 09:19:19
赞一个,手机APP,软硬通吃
Paderboy 回答时间:2016-11-19 09:47:17
wambob 发表于 2016-11-19 09:19
+ K* z1 I+ m6 q; z3 G* c5 K赞一个,手机APP,软硬通吃
4 x$ C' X/ C6 }. N; S' _! f& v- {
cuyebiren 回答时间:2016-11-19 11:50:59
楼主厉害!
; c: [% j7 W4 B3 R4 t* w5 C/ _手机APP不会是用 Java 写的吧?" w2 V* w* I2 b  P
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
cuyebiren 回答时间:2016-11-19 14:53:54
Paderboy 发表于 2016-11-19 13:26
- c6 o: {7 ]( s) d! ?9 _) N1 i  ~纯 C 语言 + 控件 编写估计是没有。。。
3 N- x1 N* c" {2 K
LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
Paderboy 回答时间:2016-11-19 15:02:16
嗯期待吧。。。
zbber 回答时间:2016-11-19 21:37:53
楼主厉害,真是难得给力的帖子啊
/ a  G" x7 e% [# R
Paderboy 回答时间:2016-11-19 21:45:37
zbber 发表于 2016-11-19 21:37; a- Q" {  V0 ^$ j
楼主厉害,真是难得给力的帖子啊
" ~. |, {0 [8 \! r  s% L8 e! v. O
那都有你啊。。。
五哥1 回答时间:2016-11-20 22:25:13
做的很好
Paderboy 回答时间:2016-11-20 22:59:37
五哥1 发表于 2016-11-20 22:25
* ?& P0 p( A+ {8 `做的很好
7 `8 i3 A( Z; w6 i! ?! l
thx
123下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版