本帖最后由 Paderboy 于 2016-11-18 23:40 编辑 这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目" a# i, m/ |; ?* G - v% c% X- B) L1 J3 e( d & [" }+ \& h6 D! _/ F+ {9 c6 S0 A 整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。 1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据 2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。)( K: p! L+ b! E) X 所以这个项目就用了这个板子作为无线发射端" b9 [2 p* r* M8 M; v9 A9 {* i& |# O( k 3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高), 使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。 F% k5 |, R7 R l, o/ U$ L9 ` ) c' W! x0 P% x3 H: G 4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,% ^) J* F6 d+ S1 z+ X# i7 ^ 通过串口发送给蓝牙设备报警信息。。 " R# H( w& A; V, _8 K 5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域 (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。 6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。1 w- w( C7 b* e. g) |5 S) o9 N) { 好的先介绍下主要的设备:/ J4 r+ {( R$ I4 C" _8 ~ 7 A5 S9 N9 U- x" z! T! O8 B 1.STM32L432KC 开发板4 U- U, `; J+ \0 e. e" ?5 E9 S 2.STM32F031K6 开发板 3.2xNRF24L01 无线模块 4.人体红外传感器HC-SR501 5.有源蜂鸣器 6.少许杜邦线 7.蓝牙模块2.17 q x$ [6 T2 Z6 \3 b 8.发射端电源和触发电路- F) f4 x% B& I; n4 f: [# S 6 b2 C/ L H* B" K 以下就是这个项目的流程图. O/ S4 z2 H3 y! Y9 `7 | 开发平台:6 Q. E. t, _- K3 i6 m CubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。/ _& X5 J! ]. T! r X U6 b0 z* z 测试工具:) R* n5 S* P9 U* T- n# J 串口助手(主要用于测试程序和调试的反馈)9 @9 f: b# c" w: r/ Q 安卓手机一台(用于APP功能测试) 0 b7 l7 }. m0 J+ b0 s0 e. ^ 接下来就上图吧!! . k- \9 J2 \. Q/ M. b) q 这是发射端STM32F031K6 配置SPI和串口输出,方便调试 : ^, ?4 I4 S2 P' h' V: t 使用内部晶振 : s {- [, Q0 H7 K/ ?, { SPI配置 串口配置, \+ i; j4 B# j + I2 D# f" C( M1 | 发射端实物图片+ q( G3 {# z& c, F" Z6 i; b3 ^ : q9 _, }7 N3 j& q; V- s( T$ b6 _ 人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了). G* u3 u& D& i [3 @7 e 使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。- Z( ^- N, X% I3 f2 B% Q) p, e 9 {. R; x; C. }' e0 f/ j 好了接下来是主角STM32L432KC 接收端的配置截图如下:$ _9 W, u, Z" b4 w 6 o+ v1 m0 M# J& E& ~: W 用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器 $ t2 s7 H% d9 M: Y! } 使用内部晶振 SPI3 配置3 j5 j4 ]5 N7 G+ W) e2 z1 B 串口1配置 DMA IDLE 接收和发送数据给蓝牙模块7 H' a; G, P) i! e \ . L1 `, I- A! @3 N4 [* L: S1 P 串口2用于调试直接输出测试数据到电脑上9 g5 e8 Q! B& U$ C, s8 O0 R 好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。 以下是调试过程的截图片段% x" X4 S9 H. ^3 q2 p" H8 x 2 ~0 H( ?9 |4 ?7 R: F ' ^" n+ _2 e; q# M 程序都编译通过后,直接下载到发射端和接收端来验证吧。。 实体图片是必须要有的。。。。 3 Y) y7 _/ s& Q% [2 L! s ) D' r* r% a/ y2 x - p6 w4 F" F- k 1 K- l% {# w$ ? 好了。。。。亮点在这。、。0 G3 F* i: I$ G! ~$ E8 h% W % k5 }& H; n/ M+ x+ Z + a/ _, Z7 O& P2 e/ b1 i ) {* X$ Y4 Y% Z " y, s3 f3 a" L7 o' J/ s, T $ I, ^9 m5 P- z: ?: X" T: F5 q9 V 好了这个项目就差不多完成了。。。 ; J! K/ y% e& ?+ S# m9 X 总结下: 这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等: E7 u0 {- P: U ?" [- I 外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。0 j& v8 n: D$ Q1 ^ 因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。" S$ F- T0 \- Z+ W 5 y9 F5 a( k; }! I; K 希望大伙会喜欢。。。。。。" K+ Z9 E" B7 x5 V c! V7 M% j 8 D! _5 X4 H( a6 m: F& V. [+ _+ ~ |
基于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 写的吧?0 U7 x+ k6 L5 \& I( Y" ~$ ?' Q- m
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
那都有你啊。。。
thx