本帖最后由 Paderboy 于 2016-11-18 23:40 编辑 这个是基于NUCLEO STM32L432KC作为主控的 小范围家用无线报警系统项目 * H% c N& j, F" ` 4 F8 g0 v. D, n/ R9 [ 整体的使用成本,还是很低的。。。用的模块都是市场上常见的产品。。 O& w" m) J; ?: f# j# B 1.NUCLEO STM32L432KC作为主控 也就是接收端(接收无线数据),这里用到了市场广泛使用的NRF24L01模块作为发射和接收无线数据. }7 t0 I8 b) n8 Q4 M2 C 6 E7 D' o, E: `5 b 2.因为手头有NUCLEO STM32F031的开发板,(也可以使用其他STM32F0系列的或者STM8等等。。。)0 f0 x+ \: J4 _) s 所以这个项目就用了这个板子作为无线发射端- r+ E+ G6 L+ O% l; J3 v 4 f6 ^! q2 I/ t7 A; B: l% X 3.使用HC-SR501人体红外传感器模块(有进口和台产的,这个小项目用的是进口的,测试后效果不错,灵敏度很高)," t, i0 u4 D3 W: k$ I! l& `& V: W: } 使用HC-SR501的输出高电平去开启单片机供电回路,这样检测到有人的时间,模块默认发送报警信息。。1 Q, W* { a0 y+ h 4.当STM32L432KC主控接收到无线报警信息后,自己判断是那个发射端的报警信息。。处理后,启动报警设备的同时,% `/ v- Z- e, r* W 通过串口发送给蓝牙设备报警信息。。 ; L( a. G x. J( u4 w) Y 5.如果手机APP端默认开启报警功能,这时就会通过震动和声音提示,有外人闯入设定的报警范围。。 同时可以通过手机APP查询报警区域 (例如.车库..)非常方便,可配置多发射端,只需要修改下不同发送端的识别ID就可以了。。 ; ~: Y4 |: w8 p; g4 [ 6.可以通过APP解除报警(可关闭报警系统)和一个在主控的手动按键来解除报警状态。。# ]" ^+ T7 V, O' j" {/ B o/ r: V% _- T8 Z, k 好的先介绍下主要的设备:; b, J: ?1 u, H/ U4 A% t( [6 h 6 |* T/ r3 A7 X0 A* M% M 1.STM32L432KC 开发板 2.STM32F031K6 开发板 3.2xNRF24L01 无线模块( R# q' o) Z0 D: k 4.人体红外传感器HC-SR501, H2 P+ w' b, m- C 5.有源蜂鸣器7 w5 S2 y1 ] A1 { 6.少许杜邦线, w+ V: X% o Y7 O3 a. }* W 7.蓝牙模块2.14 i" M/ Y; ?# n" a2 ?3 T) F 8.发射端电源和触发电路. e# r9 t" z3 C& y 以下就是这个项目的流程图 2 J& {; y% w% `9 G4 b# b) l* Y 开发平台: CubeMx+Keil5 不得不说,CubeMx用了以后会依赖啊。。变懒了。。。本项目都是使用Cube+HAL库实现的。。& T/ ?% G x9 U. i* p, t1 [$ C 7 y( F; b6 c) t7 r 测试工具: 串口助手(主要用于测试程序和调试的反馈) 安卓手机一台(用于APP功能测试)( X6 \: X @9 U, C 接下来就上图吧!! % ?4 C" x5 m# ` v1 a 这是发射端STM32F031K6 配置SPI和串口输出,方便调试7 A0 T6 ?3 U0 c% C8 Z! E2 q 使用内部晶振 j7 q5 }0 Y4 Q, y SPI配置 串口配置8 E" v: O5 |' D4 T4 P " S: Q8 `! p: G& W& r 发射端实物图片: b4 ?/ [5 j6 } 人体红外+2片串联的铁锂电池作为发射端的供电测试电源+一个LDO稳压电路(丑陋的转接板请忽悠了) 使用HC-SR501的输出端去开关发射端的供电,可以提高电池使用时间。如果人体红外传感器没被触发,发射机是断电状态。。。非常省电。。 好了接下来是主角STM32L432KC 接收端的配置截图如下: 用到了SPI3+串口1+串口2 还有输出GPIO开关蜂鸣器, P$ R8 [ Y+ @7 u7 q 2 o+ Y0 c; [4 L, B' x 使用内部晶振+ y% T2 c$ ^# _8 U2 m' V SPI3 配置 7 Y* \9 _% `, ^ s0 C 串口1配置 DMA IDLE 接收和发送数据给蓝牙模块 * [* S+ z% I3 a 串口2用于调试直接输出测试数据到电脑上 好了,工程建好了,就开始调试程序。。。 NRF24L01 是非常普通的无线模块了。。这里就不再多介绍了。。。 以下是调试过程的截图片段 @- ?% I9 N2 M( n7 S 程序都编译通过后,直接下载到发射端和接收端来验证吧。。' E5 w6 Z; |0 D b% g5 R: g 实体图片是必须要有的。。。。( w3 T7 v; x* n6 ? B7 Q! Q3 _8 V L i4 }4 _; e% f7 J9 z 4 e' ]- C, T0 S- t# H4 B c 9 ~/ x3 x) o% Z3 M Q 2 e. q% H! x1 x$ w( m . I/ v9 I7 P' f. d( y% y, ` 好了。。。。亮点在这。、。 : L, Q$ {1 y+ }7 J" A6 X( b 3 t4 j( S. e# |8 e& o6 m - @( ?9 \4 Z" \4 N' h 4 k1 a8 j! S& u7 b 好了这个项目就差不多完成了。。。% Z7 Y: b' Q& h 总结下:# g+ b; e- w5 G0 d 这个项目功能比较简单,不过还是比较实用的。。。可改进的地方(例如:添加TFT显示提升主机的体验,有条件的可以给主控再添加PM2.5,温湿度等0 H+ D, N3 [& V& X4 \2 t 外设更丰富这个项目的功能整合。)也可以添加Wifi 实现远程IOT控制等等。。。5 ~) Z" e" }- ^) D0 X5 w3 t Y 因为工作比较忙,这个项目弄的比较零散,不过整体框架基本完成。。软件调试也完成的大部分。。APP基本可以用了。等有时间继续优化。。。$ ?# i, J& I; f2 u! K ; n' `$ f5 s! o! g 1 z) ]. Q4 f* | 希望大伙会喜欢。。。。。。: O N9 D5 X6 I. a( ~ X' Q1 Z, B) F + v9 I, Q4 Z! k* G T7 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里面还可以通过图形界面来进行控件布局,也是挺方便的3 O; }5 t1 F4 P/ f; N/ A
纯 C 语言 + 控件 编写估计是没有。。。
多谢多谢
手机APP不会是用 Java 写的吧?+ t9 Z2 H% Y7 ~9 Q3 Y3 O: Q& O# g* k
有没有简单点的编译器,如像 LabWindows CVI 这种的,纯 C 语言 + 控件 编写,不需要在学习新的 语言 的 语法
LabWindows CVI 就是的,不过只能在 Windows 系统上运行,很期待 像他这样的能在 安卓 上运行的
那都有你啊。。。
thx