STM32-电动车报警项目

项目需求

点击遥控器A按键,系统进入警戒模式,一旦检测到振动(小偷偷车),则喇叭发出声响报警,吓退小偷。点击遥控器B按键,系统推出警戒模式,再怎么摇晃系统都不会报警,否则系统一直发出尖叫,让车主尴尬。

硬件清单

  1. STM32开发板
  2. 振动传感器
  3. 高功率喇叭(没有喇叭可用蜂鸣器替代)
  4. 433M无线接收发射模块
  5. 杜邦线
  6. ST-Link

硬件图

硬件接线

STM32振动传感器继电器
PA4DO
PB7I/O
PB5
PA12
3V3VCCVCC
5V
GNDGNDGND

项目流程图

模块一:振动传感器 

振动传感器详解

当涉及到物体的振动检测和感应时,震动模块成为一种常见且实用的工具。这种小巧而功能强大的设备可以用于各种应用,从智能家居到安防系统,再到工业自动化等领域。通过感知和转换物体振动为电信号,振动模块在许多方面都发挥着重要的作用。

振动传感器实拍

接好 VCC 和 GND,电源指示灯将被点亮。

当检测到振动时,板载指示灯点亮;振动停止,板载指示灯熄灭。

用螺丝刀转动「灵敏度调节电位器」可以调节灵敏度。大家可以将电位器旋到最左或最右,然后测试往哪边旋可以提高灵敏度。

SW-18015P 在静止时为开路 OFF 状态, 当受到外力碰触而达到相应震动力时,或者移动速度达到适当离(偏)心力时,导电接脚会产生瞬间导通呈瞬间 ON 状态;当外力消失時,开关恢复为开路 OFF 状态。

所以,SW-18015P 在无震动或者震动强度达不到设定阈值时,DO 口输出高电平,当外界震动强度超过设定阈值时,模块 D0 输出低电平。

请注意这个模块在感应到小的震动时触发时间会很短,无法驱动继电器,有些的资料显示可以直接和继电器模块相连,但实际运用效果不佳。

模块目的

使用中断的方法,震动传感器检测到振动时,LED1点亮2s,之后熄灭

模块二:继电器

继电器模块详解

继电器,一种常见的电控制装置,其应用几乎无处不在。在家庭生活,继电器被广泛应用于照明系统、电视机、空调等电器设备的控制;在工业领域,它们用于控制电机、泵站、生产线等高功率设备的运行;继电器还在通信网络、交通系统以及医疗设备中发挥着重要作用。

可以被形象地比作一个开关,就像电灯开关一样,按下,电路闭合,电路通,灯亮;再按下,电路断开,电路不通,灯灭。它能够通过控制小电流来打开或关闭大电流电路,实现电路的控制和信号的传递。不过,与普通的物理开关相比,继电器具有更高的可靠性和灵活性,能够应对复杂的电路控制需求

不仅如此,继电器也是学习其他电子原理和技术的入门工具。通过理解继电器的工作原理和使用方法,你将为更深入地探索电子世界打下坚实基础。

所以,如果你还是一枚小白,不必担心!继电器是一个很好的起点,可以帮助你逐步了解电子领域的基础概念和应用。相信我,一旦你掌握了继电器的奥秘,你将获得打开通向电子世界更大门的钥匙!

当信号电源断开,线圈两端没有施加电压,线圈没有产生磁力,衔铁在弹簧拉力下不接触触点,工作电路不连通,负载电器不工作。

当信号电源闭合,线圈两端施加电压,线圈产生磁力把衔铁往下拉,衔铁接触触点,工作电路连通,负载电器工作。

继电器的控制电路与工作电路是隔离的,这种切换状态的能力使得继电器能够控制高电压、大电流电路的开关操作。

模块目的

继电器500ms闭合再500ms断开,如此循环

模块三:433M无线收发

433M无线收发模块介绍 

无线通信技术在现代社会中扮演着至关重要的角色,它让我们能够实现便捷的远程控制、智能家居、自动化以及各种物联网应用。无线通信技术包括 WiFi、蓝牙、NFC、Zigbee、5G 等等。

无线收发模块 433MHz(或称RF433射频小模块)采用高频射频技术,并结合了全数字技术和 AVR 单片机,成为一种微型收发器。它能够实现高速数据信号传输,并具备打包、检错和纠错处理的功能。

433M 模块采用工业级标准的部件,工作稳定可靠,体积小巧,安装方便。它在各个领域都有广泛的应用,包括安全报警系统、家庭生活、工业自动化、远程遥控以及无线数据传输等。其可靠性和稳定性使得它成为许多无线通信需求下的理想选择。

首先我们知道遥控器上有四个按键,分别对应 433M 模块的四个数据位输出脚 D0、D1、D2、D3。按下按键发射信号,对应的引脚就会输出高电平。

那么,433M 模块一般按照工作模式分类,有三种工作模式:

  1. M 点动:瞬态输出,相当于自复位开关的状态收到信息输出高电平,无信号时为低电平。
  2. T 锁存:上电时为低,收到信号输出高电平并锁定高,再次收到信号输出低并锁定低。
  3. L 自锁:上电时为低,收到信号输出高电平并锁定高,同时将其他输出置低。

比如我的模块是 M4 点动,「4」表示有4个按键,按一下按键 A,D0 将输出一个高电平。

大家购买的时候要看清楚啦,选择合适的工作模式的 433M 模块哦,它们长的都一样,但是工作模式是不能改的。

 模块目的

按下遥控器A键,LED1亮/灭;按下遥控器B键,LED2亮/灭

 项目代码

main.c代码 

#include "sys.h"
#include "delay.h"
#include "led.h"
#include "exti.h"
#include "alarm.h"


int main(void)
{
    HAL_Init();                         /* 初始化HAL库 */
    stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */
    led_init();
    exti_init();
    alarm_init();
    
    uint8_t alert_mode = FALSE;
    
    while(1)
    { 
        //A按键是否按下
        if(buttonA_flag_get() == TRUE)
        {
            alarm_on();
            delay_ms(2000);
            alarm_off();
            alert_mode = TRUE;
        }
        //B按键是否按下
        if(buttonB_flag_get() == TRUE)
        {
            if(alarm_status_get() == ALARM_STATUS_ON)
                alarm_off();
            else
            {
                alarm_on();
                delay_ms(1000);
                alarm_off();
            }
            alert_mode = FALSE;
        }
        //如果处于警戒模式下                                                                                              
        if(alert_mode == TRUE)
        {
            if(vibrate_flag_get() == TRUE)
                alarm_on();
        }
        else
            vibrate_flag_set(FALSE);
    }
}

 其余完整代码放在压缩包里,下载烧录进开发板即可运行

 演示图

由于高功率喇叭声音实在过大,不利用实验时候多次调试,故改为以下的蜂鸣器替代

总结 

 可以将高功率喇叭换成蜂鸣器,避免扰民。做一个项目前(不管大小)尽量写一个流程图,可以用飞书写一个流程图,分模块完成。

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值