本帖最后由 Paderboy 于 2016-11-18 23:40 编辑 4 q0 H/ x% x5 F 这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目 4 D# X# }0 S; c1 E + H' T; G+ }* C5 O$ Y1 B: S 整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。! A. {' R8 g1 N+ V6 \ 1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据 2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。) 所以这个项目就用了这个板子作为无线发射端 3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高), 使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。* D- i' U- K+ h7 x) { * r4 v8 \8 H8 `% ^+ n. [ 4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,2 I, ?3 _" k: e* S! e) G 通过串口发送给蓝牙设备报警信息。。 5.如果手机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解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。 . ]# 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 开发板 2.STM32F031K6 开发板 3.2xNRF24L01 无线模块 4.人体红外传感器HC-SR5016 F. _" M) B' f6 z5 t$ w 5.有源蜂鸣器 6.少许杜邦线 7.蓝牙模块2.1! D' y, \6 L/ g! G [! m7 r 8.发射端电源和触发电路+ T/ ~7 {" k" ]9 t0 X! X- X, D 以下就是这个项目的流程图1 P- z) ]! }! u( d 开发平台: CubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。 V1 U# ^( Z; s* ~5 U 测试工具: 串口助手(主要用于测试程序和调试的反馈)4 k, [3 k( U. C* n0 l 安卓手机一台(用于APP功能测试) 接下来就上图吧!!# U& n& \( Y( J " [- O5 W6 T( w 这是发射端STM32F031K6 配置SPI和串口输出,方便调试 使用内部晶振0 b. Q3 I/ A; L6 K SPI配置 串口配置 ' G: y" _8 T5 c; ]7 x/ T. d 发射端实物图片5 ?. @$ l, X: \$ B7 Z$ N0 @ 人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了)9 L6 O' R- ^- N6 `" v4 {2 F: @ 6 p7 \0 k& N1 W$ W' v% x$ D' M, q$ Q : h1 y) M8 Z3 _" ]: s S ?4 W0 i( m 使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。 0 u7 }% }( c! @2 l7 j 好了接下来是主角STM32L432KC 接收端的配置截图如下:+ _4 G& H, ^* N* g/ } : c) N$ e. ~) r9 D0 Y9 Q 用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器 . H6 F1 f4 _, `: _% A 使用内部晶振/ g% h4 y8 A! P/ P9 N ( C7 X( S A9 M% Z1 @6 @ SPI3 配置 串口1配置 DMA IDLE 接收和发送数据给蓝牙模块# a9 ?* q. d+ g" V: ^ 1 D* t/ m0 T$ Y! l ?5 r& s8 m 串口2用于调试直接输出测试数据到电脑上 % v; s, V# K7 ]. j8 b. O5 q4 F * G6 E5 E @; W2 d 好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。 以下是调试过程的截图片段/ p+ o& d* D8 @0 Z $ `0 |* ?1 E( y9 r* ~ 程序都编译通过后,直接下载到发射端和接收端来验证吧。。 {* C2 _8 y8 @ 实体图片是必须要有的。。。。 4 [0 j8 c2 T, f; {% E% C0 O: G5 |! Z " b$ [0 a" \6 } % O* A% i6 X2 { % e! T+ g& Y0 u% M# l 2 Q3 Y3 ]2 P0 p: q3 T * ?, K; H1 a: b* g& K 好了。。。。亮点在这。、。 & w9 \7 Y' M4 H- R+ o" d2 p 好了这个项目就差不多完成了。。。; l% m. o+ n& K. q ! N$ M+ N. X" _( h4 `1 R+ { 总结下: 这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加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' | . }" X! R) S% n) k- h D 希望大伙会喜欢。。。。。。 2 i/ F; z2 K6 r2 b$ o* ? |
基于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