本帖最后由 Paderboy 于 2016-11-18 23:40 编辑 9 ~1 J! v, c" g' B" [2 \& C# O 这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目& r& n+ [! D& R, B 4 s3 E& o! v, \ l$ x 整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。6 g2 B. V; ]( I0 R8 I& `6 q 2 U5 U) B5 ]6 ^$ j/ [. D 1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据% X- E, m8 ?! ?: f- T4 y 2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。). u' K% @4 ` _, Q! s/ M, s 所以这个项目就用了这个板子作为无线发射端 f. a+ }- |4 u" e' S& v+ I5 h 3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高), 使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。) i1 ], F* M) J- e1 \ 4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,0 h/ O+ W" H; V' g/ J 通过串口发送给蓝牙设备报警信息。。* G, a* q; H) o" R/ T 5 O+ O! J" Y4 U1 S4 q 5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域 (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。 7 \, B- O, b* V; s 6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。9 j2 p1 c" B: X) L' F6 m& Z3 g ) z! |3 C. ?% I G5 J/ O 6 D$ E( Y/ Y; k) t 好的先介绍下主要的设备: 1.STM32L432KC 开发板 2.STM32F031K6 开发板 3.2xNRF24L01 无线模块& v0 N G$ T4 S6 F# s4 z' ` 4.人体红外传感器HC-SR501# U2 w/ k0 ?, W: }8 q( n 5.有源蜂鸣器 6.少许杜邦线* N6 a# M" Y# Q 7.蓝牙模块2.1 8.发射端电源和触发电路$ [1 B9 `7 [5 D: ~- l8 G # u! M; |0 z# G3 U' k 以下就是这个项目的流程图 2 y: K8 [' d; U- X+ Y2 K 开发平台: CubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。 W; n% _/ s$ I" G0 x; g8 M4 H 8 `9 D5 c; e; H 测试工具: 串口助手(主要用于测试程序和调试的反馈) 安卓手机一台(用于APP功能测试) 接下来就上图吧!! x9 t( z7 D4 g 这是发射端STM32F031K6 配置SPI和串口输出,方便调试 0 l+ q/ O# p/ v3 r9 L 使用内部晶振) v4 d0 w) D& t9 O $ ^8 R6 _9 D4 P- q/ [! a SPI配置: k: _' s/ Y) f8 Z * q" s& S n5 y 串口配置& e9 I- E$ l' ?6 s. r3 u 发射端实物图片 人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了)& \' j: M, N: Q! e & n" D$ }4 Q" y7 g. L* m3 r 0 n2 ?# {3 [+ j) C* j* j+ C 使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。 好了接下来是主角STM32L432KC 接收端的配置截图如下:/ j( g/ |* k/ i 用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器+ t- E% o# X* h7 T & m Z$ i( k" v7 }5 d! y 使用内部晶振 SPI3 配置 串口1配置 DMA IDLE 接收和发送数据给蓝牙模块 k! F: p: M r& y0 ~ 串口2用于调试直接输出测试数据到电脑上! C1 }# L2 B: M* N7 w 好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。 以下是调试过程的截图片段( ~- i- P5 b3 k8 _& r 9 @: p8 q4 I& E8 `; L ; o4 B- s) U& X0 S 1 ?& \7 Y( r; l+ @* \: F5 k ' Y6 [1 O1 h- [! {3 { 程序都编译通过后,直接下载到发射端和接收端来验证吧。。" \& s2 c' v/ u$ d$ Y& } " f. I5 T' I2 s1 n; E4 z3 H' W 实体图片是必须要有的。。。。- u0 {' \7 @* d3 g ' {- f- r# v! ]1 W: N# w Z+ E : m* j E% O7 X3 U7 x- n4 x9 V + S+ U5 j) j, n( q$ H ^! _" F 0 E( n8 B# w3 A. x, a , H# G0 g9 _- g8 m* } 好了。。。。亮点在这。、。# g$ N& k; j4 I$ n 3 A# j& t5 R0 @ r2 ^) Y : u" M; A0 \2 J0 Z 9 i0 y z3 e$ M 好了这个项目就差不多完成了。。。 ( u( G2 J' d- M* ?3 i 总结下:2 H# K6 M( g K/ q 这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等 外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。 因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。' n8 ?4 V* ?' Z) l/ b* x, e 希望大伙会喜欢。。。。。。 - p" v/ w$ A$ @+ P |
基于STM32L4R9 的QuadSPI Flash 通讯速率不理想经验分享
STM32L4超低功耗功能概述
基于STM32L431RC Standby和RTC中断唤醒经验分享
基于STM32L431的睡眠模式经验分享
STM32L4R9 的 QuadSPI Flash 通讯速率不理想
STM32L4、STM32L4+和STM32G4系列 微控制器上的专利代码读取保护
STM32L433在STOP模式USART不能工作的解决办法
【实测教程】基于STM32L4系列的实测教程分享合集
STM32L4系列MCU的五种振荡器和使用说明
【实测教程】STM32CubeMX-STM32L4之研究串口通信(printf)
安卓手机APP就是用Java语言,这个其实也不难,做一些简单的,我现在就是会点皮毛
而且IDE里面还可以通过图形界面来进行控件布局,也是挺方便的: M, ]- `& q# P% t% d# D
纯 C 语言 + 控件 编写估计是没有。。。
多谢多谢
手机APP不会是用 Java 写的吧? N2 x {4 l: k: O! H8 @
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
那都有你啊。。。
thx