
本帖最后由 Paderboy 于 2016-11-18 23:40 编辑 # i4 `& U/ A$ {: }9 D& T 这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目 ![]() ' `4 T2 ~) R6 p$ {- i 整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。 1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据 2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。) 所以这个项目就用了这个板子作为无线发射端 " X2 n4 ^$ x5 ~9 W* ?% z 3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高), 使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。' U& [# G+ j. s' O! w% z3 y" E 2 Q- n& k2 J, ~1 w$ Z1 m 4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时, 通过串口发送给蓝牙设备报警信息。。 # n0 x3 D; F6 {5 S/ j* f 5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域 (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。4 |5 [0 C# X& f 6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。3 _7 d0 G$ i! O 好的先介绍下主要的设备: 2 Z. F0 d$ d/ h" m 1.STM32L432KC 开发板6 O6 b1 z; l, N% Y/ n9 F3 F5 ^ 2.STM32F031K6 开发板% O: ?- C' j0 f- W7 A( @. V. t+ h 3.2xNRF24L01 无线模块 4.人体红外传感器HC-SR501! F6 |. D" A" {7 _& ] 5.有源蜂鸣器 6.少许杜邦线( _9 ?7 _% q2 ?( [! ~5 H l5 t 7.蓝牙模块2.16 Z& a8 F8 Q: ?! X& y 8.发射端电源和触发电路! F$ _' T- u' M, Z4 s: _ $ G# k* s) O, r! n4 W 以下就是这个项目的流程图 ![]() 开发平台:- w* h o& g3 P, u CubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。 ![]() 测试工具:3 @4 L1 ]6 {0 b, C# n) { 串口助手(主要用于测试程序和调试的反馈)/ p8 r& \' ~* b0 Q 安卓手机一台(用于APP功能测试) 接下来就上图吧!!1 P' D$ [; i& b l9 I. X 4 @: v' \& A" ? 这是发射端STM32F031K6 配置SPI和串口输出,方便调试% b, O% o1 G- H. j# l+ I- c( d6 } ![]() 5 R2 `" f2 n% v( Y* d7 L 使用内部晶振 ![]() SPI配置( v9 w! |5 W! G ![]() ! M9 ~6 g, c7 Y, N* t5 C) H 串口配置 ![]() 4 E' h; {" g# \5 u5 r 发射端实物图片 ![]() 人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了 ![]() ![]() , `$ a- M+ |4 k. _+ f ![]() 使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。 ![]() 好了接下来是主角STM32L432KC 接收端的配置截图如下: 用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器 ![]() 使用内部晶振" @1 g% i3 M! U6 {& f ![]() ! f) A& R. h2 F; f9 ~& K SPI3 配置9 o$ }7 P2 O1 ^6 g. g `6 l ![]() 1 B4 Q, d% F! I; `# U; i! b( K8 y 串口1配置 DMA IDLE 接收和发送数据给蓝牙模块3 V" z: C% {- Q8 b1 E! L1 n7 T ![]() $ c: j. z& }: ? ![]() 6 p+ u& \4 s- R, F2 ^) e v/ h 串口2用于调试直接输出测试数据到电脑上 ![]() ![]() 8 [7 }7 l- T6 F1 }+ n* w 好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。 以下是调试过程的截图片段* v" r1 s2 J- j/ J ![]() ![]() ![]() ; _: r3 X7 R& v+ U& h& @, \8 w2 U ![]() 程序都编译通过后,直接下载到发射端和接收端来验证吧。。 ! A: ]7 r! A/ K3 ?6 L 实体图片是必须要有的。。。。' Q* Z3 J' P" q/ `* ] ![]() $ k. `' ]. C/ b/ S0 z, E# U ![]() ![]() * [" Y: E, X( l6 Q3 a( H6 i ![]() ![]() ![]() ![]() # U ^+ |" m7 n9 R% P4 X ![]() : L/ c. F' B: }" y 6 O1 ]% v* P$ v$ R9 M, p+ s, {$ q 好了。。。。亮点在这。、。# `8 W$ Q. e+ s$ I ! A, w0 X! \; x# X0 ]$ P * A1 {: s4 o# X% y. I+ O7 w ; d- k% L) \, v9 L0 \! S% L3 S4 e4 C ![]() " A3 q9 l. W4 h; n" D- _' k ![]() ) a6 _7 @3 A n4 d2 k( N ![]() 6 c0 k/ o: c8 N1 d 好了这个项目就差不多完成了。。。 总结下:6 b& D" L8 L0 z# a$ A7 K 这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等1 F3 _( C/ ^ P 外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。 因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。 : |* U! ]* F2 R/ L0 ~ 8 x- `; r& a9 \: ^ 希望大伙会喜欢。。。。。。3 n+ Y1 f" @5 H; y * ?+ L9 Z# T$ t. F : }) A, C0 w: O% Y- C |
STM32如何分配原理图IO
【实测教程】STM32CubeMX-STM32L4之研究(ADC)
【STWINKT1B评测】2.初步测试IIS3DWB振动传感器
【圣诞专享活动】使用TouchGFX做GUI显示:圣诞快乐&Merry Christmas!
串口通信波特率异常的解决办法
【STWINKT1B 评测】6. NanoEdge AI 音频分类器 (2)
【STWINKT1B 评测】5. NanoEdge AI 音频分类器 (1)
STWINKT1B评测】4.测试板载ISM330DHCX(6轴)
【STWINKT1B评测】-03-CoreMark跑分测试
【STWINKT1B评测】-02-串口-定时器LED灯测试
安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的
纯 C 语言 + 控件 编写估计是没有。。。
手机APP不会是用 Java 写的吧?
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的