本帖最后由 Paderboy 于 2016-11-18 23:40 编辑 这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目 " e; T/ ]# l5 `/ l" b $ j2 b% g3 S) o' f 2 K* C0 Z& ~& n9 H6 N 整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。 1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据, R8 A; f: h3 k; ]9 M. K / ~! J4 `4 b- D3 P 2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。) 所以这个项目就用了这个板子作为无线发射端6 s1 D4 p, z: _, V" e ! l) u" I+ {1 } 3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高), 使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。! O+ n. M8 I' ?: a1 I5 | # c2 p& f* ^ ^1 x& p D 4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,9 H6 a' S5 E) H; @ ^/ [ 通过串口发送给蓝牙设备报警信息。。 6 y: [3 [: L9 u( Z, b% Y 5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域( X* ]9 l2 f6 T8 f; D (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。 6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。 % P- M, H& Q* l+ ^) ? / r F; I' D2 g 好的先介绍下主要的设备:2 h- l+ f; |+ L1 ^& _ 1.STM32L432KC 开发板: r4 }3 a* @4 C+ T) R 2.STM32F031K6 开发板 3.2xNRF24L01 无线模块 4.人体红外传感器HC-SR501" d( R' @5 I2 N 5.有源蜂鸣器% \* {% O( s- q* q( h) k 6.少许杜邦线 7.蓝牙模块2.17 I% i2 N. C5 v7 B" { 8.发射端电源和触发电路6 N* e6 Z6 J+ j I9 t ! c6 G8 d3 b4 s1 S0 T 以下就是这个项目的流程图, h7 w( i6 f& L4 Z* |3 w) o 开发平台: CubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。 测试工具:2 W' p" `" e6 p9 l1 | 串口助手(主要用于测试程序和调试的反馈) 安卓手机一台(用于APP功能测试); S; y9 x5 i+ p( J, g$ U% J ( }* b+ l7 o+ e9 h. N4 c% B2 W 接下来就上图吧!! " E" M) k2 o& r: ]/ t! u 这是发射端STM32F031K6 配置SPI和串口输出,方便调试4 L1 j/ ?5 S; m8 t% v% Q) e) u 使用内部晶振! I W) k$ C% B* z 0 d2 }+ t, a2 I8 f, @% g SPI配置 1 _$ c `: O; x. ]: o! U) Y 串口配置 发射端实物图片5 P+ [, S5 y' W; d 9 e# s8 R$ o) N. U' K6 W 人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了) 使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。; _! U1 Y. Q7 N 好了接下来是主角STM32L432KC 接收端的配置截图如下: ) a2 d: q/ [, e# {+ p 用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器 - b& {9 ]2 ]( j* J. S! i 使用内部晶振 2 T$ m# k% Y' \. M+ P! h0 Y SPI3 配置 . L% z5 c4 I: F% G 串口1配置 DMA IDLE 接收和发送数据给蓝牙模块. D( D! G9 D! C. `: R 8 y1 r. f2 k: l$ F$ U, e7 A8 f) h 串口2用于调试直接输出测试数据到电脑上9 A! }5 d# Y* X. \( v2 g1 E) {6 O; Z, J* H 好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。 以下是调试过程的截图片段' Y3 d" i; A* A 5 W6 Y5 V+ a5 N+ J, r) H- V $ K. I" F3 G. O) ^* H: u # H5 B/ ^+ H" p 4 b a! v' C- B# S, g! p% g 程序都编译通过后,直接下载到发射端和接收端来验证吧。。/ X: K2 }# `* h7 D+ h1 w 实体图片是必须要有的。。。。 9 c C7 i. M y9 g. m : n9 G% N0 U# I P [) A 0 f' H9 g) C3 P n ' L6 \5 x. U) [ 好了。。。。亮点在这。、。 " [( Y6 E- u' v0 s X- p/ A * g: [ ]5 X# j9 o7 s# l! K 0 S8 X, x7 P- {4 K : t3 u Z9 ^6 g* D: o 好了这个项目就差不多完成了。。。 总结下:) M/ _' l: D- p: w# U9 s$ S 这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等% A, Y* r; D% a+ v 外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。 因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。 `+ i( h9 O8 v& `# X 1 I& l3 b0 g! r; c0 I1 N 希望大伙会喜欢。。。。。。% X' H9 X5 J. r7 J& C7 B q: t% A ' o: y- |& R$ E- V* n " R# |! {$ u: s. w* y1 l$ s+ t |
基于STM32L476+64M QSPI接口PSRAM(IPS6404L)开源分享(含源码)
基于STM32L4R9 的QuadSPI Flash 通讯速率不理想经验分享
STM32L4超低功耗功能概述
基于STM32L431RC Standby和RTC中断唤醒经验分享
基于STM32L431的睡眠模式经验分享
STM32L4R9 的 QuadSPI Flash 通讯速率不理想
STM32L4、STM32L4+和STM32G4系列 微控制器上的专利代码读取保护
STM32L433在STOP模式USART不能工作的解决办法
【实测教程】基于STM32L4系列的实测教程分享合集
STM32L4系列MCU的五种振荡器和使用说明
安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的
纯 C 语言 + 控件 编写估计是没有。。。
多谢多谢
手机APP不会是用 Java 写的吧?
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
那都有你啊。。。
thx