本帖最后由 Paderboy 于 2016-11-18 23:40 编辑 ' x+ h' _" `5 [$ u5 j 这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目 1 m' `& h# B: O9 I0 w1 F% |' Y 整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。 5 W$ P( W) }& @1 T5 ]1 ?: n: ~ 1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据. q; W9 n( Z& n 2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。) 所以这个项目就用了这个板子作为无线发射端3 \+ }* h% {. \. K0 v+ \, J6 n( C, w2 q- N G( }: w) i0 r$ q/ N) X/ l 3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高), 使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。 4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时, 通过串口发送给蓝牙设备报警信息。。! n" s9 s, Y7 K9 s# H/ E- ^8 t. | 5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域* | s" {: r9 ?8 f+ k (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。 ! O: f0 `) k; M 6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。 w+ p- C4 ] @* G$ ^' x 4 A' Y- z/ s4 } 好的先介绍下主要的设备:5 v5 O- p! H, L$ G + w; {' X3 S. [( I 1.STM32L432KC 开发板 2.STM32F031K6 开发板2 y' h1 H7 o) j 3.2xNRF24L01 无线模块 4.人体红外传感器HC-SR501 5.有源蜂鸣器 6.少许杜邦线 7.蓝牙模块2.10 @, s. u1 I+ M- f: E; m+ R8 q 8.发射端电源和触发电路8 K0 A( n( U# ^6 W2 y4 J$ o4 A( H 以下就是这个项目的流程图, f+ u8 ?1 J, o+ B8 G 开发平台:3 ]0 W3 O) d$ U5 G3 M- x* g CubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。 b8 `1 E: d& u- D: R, v8 l 测试工具: 串口助手(主要用于测试程序和调试的反馈) 安卓手机一台(用于APP功能测试)# \/ e% O6 B* \ @ O: @ 接下来就上图吧!! 6 S6 x6 \, R8 E1 Z 这是发射端STM32F031K6 配置SPI和串口输出,方便调试( X+ f3 y8 O8 M0 y 2 C& M/ Y3 l- O% ^- p: C" M 使用内部晶振, N: }( I% {& [+ X @ SPI配置+ P& @9 _& n; F0 u: M; w 串口配置 3 C) F9 k; d( S x+ ? 发射端实物图片9 f. r/ F, C8 o4 D# m# P 人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了) 8 {% a% V& T) n) F5 ^: t2 G _5 \+ `+ G : M- G. u! \* i+ ^3 `: I 使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。 好了接下来是主角STM32L432KC 接收端的配置截图如下: `2 R7 T% x5 m* z) g/ z 0 E% C% s- O) ^3 L* j3 S4 B9 Q6 B. h 用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器 使用内部晶振 + ?5 e# p' ?. M$ L. z1 e; E1 w SPI3 配置 串口1配置 DMA IDLE 接收和发送数据给蓝牙模块 ( u- S$ K( f* f* [ 串口2用于调试直接输出测试数据到电脑上6 W* J7 V! Q# w 好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。' U; t! y4 F1 K' g6 D. Q 以下是调试过程的截图片段 / o+ g1 t+ r4 W9 |" q# y9 ] / J" V: Q( }/ Q$ j7 z% @, K 程序都编译通过后,直接下载到发射端和接收端来验证吧。。1 E* T; E' d) f: Q2 t( X 实体图片是必须要有的。。。。 & ?& N7 q# J( w6 s8 L/ q2 K% m 4 }. x2 V, @% {! q% e3 `2 A1 S ' U- H% a1 P3 ~1 y : X: Y) B2 _) \" f. g. N " ]2 C' k/ q7 Z+ z+ i) @; Y2 R 好了。。。。亮点在这。、。 2 S7 r0 v6 }) C( x 9 w) B- q4 e x$ i0 ~2 V ! u# z- R. _" J 好了这个项目就差不多完成了。。。/ w P" e8 I( ^* h7 i: ^ 4 E. N1 B, o( f2 ]4 a; f5 A 总结下:' [+ Z/ j' L* E3 e8 l1 n, \3 ` 这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等 外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。 因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。) j: k$ J- |9 g. r. {$ Y( F1 X . m$ w. h* c9 o7 s. r! g 希望大伙会喜欢。。。。。。% }( t; `9 b+ C& A! i& W ( Z5 V5 R. a. j7 u8 ^" `8 N2 R |
基于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 写的吧?( y! e# o) V. \2 h% f
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
那都有你啊。。。
thx