0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于RT-Thread+RA6M4的智能安防系统详解

物联网技术分享 ? 来源:物联网技术分享 ? 作者:物联网技术分享 ? 2022-06-23 14:34 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

应用背景

??无论是在家里还是在公司,安防都尤为的重要,与其亡羊补牢,更重要的是防患于未然。安全是目的,防范是手段。通过防范的手段达到或实现安全的目的,就是安全防范的基本内涵。
??本项目就是基于安防的大背景设计的一款智能安防系统,目前提供的功能有红外检测,有毒气体及烟雾检测,后续还会对项目功能有所完善。

实现功能

红外检测

??红外检测使用的是HC-SR501模块,传感器在检测到红外信号后,会触发高电平,将高电平信号送入蜂鸣器(本项目使用的是有源高电平触发蜂鸣器),进行报警,当红外信号消失后,会返回低电平,将低电平信号送入蜂鸣器,停止报警。

有毒气体及烟雾检测

??有毒气体及烟雾检测使用的是MQ-2模块(大家如果想实现别的功能检测还可以使用MQ系列的其他模块),在检测到有毒气体或烟雾时,输出的模拟量会变大,根据不同的使用环境,我们可以通过调整代码实现在一定范围内触发蜂鸣器报警。

系统框架

pYYBAGK0IZCAasHPAADIYMo_3sY202.png

RT-Thread使用情况

??基于官方文档的试例Demo开发,使用了FSP。

模块介绍

HC-SR501

产品特点

??HC-SR501是基于红外线技术的自动控制模块,采用LHI778探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。

实物图片

pYYBAGK0IaaASOxPAANdZaeE8vs315.png

电气参数

poYBAGK0IeuAFfYlAAIh6FOETXw405.png

MQ-2

产品特点

??MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2气体传感器对丙烷、烟雾的灵敏度高,对天然气和其它可燃蒸气的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。

实物图片

pYYBAGK0IgCAf2-0AALDthBPftY109.png

电气参数

poYBAGK0IeuAFfYlAAIh6FOETXw405.png

所需软硬件

软件

??RT-Thread Studio,FSP。

硬件

??CPK-RA6M4开发板,USB转串口工具,HC-SR501,MQ-2,蜂鸣器,USB数据线,杜邦线若干。

作品完整图片

pYYBAGK0Ii2ALsvhACbQN_xGFdg087.png

视频演示效果

??基于RT-Thread+RA6M4的智能安防系统:https://www.bilibili.com/video/BV16T411G7PF?share_source=copy_web

代码地址

??Intelligent_security_system:https://gitee.com/tom-onemore/intelligent_security_system

项目过程

1. 开发环境搭建

??首先请参考官方教程搭建好环境:https://mp.weixin.qq.com/s/phEV5jGjTOoe7Y0ihI6ftg

2. 新建RT-Thread标准项目

??首先,我们打开RT-Thread Studio,文件—新建—RT-Thread 项目。

pYYBAGK0Bz6AaB66AAC-tyLV5N8958.png

??接着,在弹出的框中我们依次选择基于开发板,起项目名称(自拟),其余保持默认(最好也检查一下),点击完成。

pYYBAGK0I6uAGxCvAAC0c_a1FIc370.png

??等待进度条走完,项目创建成功,在Studio左侧的项目资源管理器中可以找到我们新建的项目。打开项目文件夹,在src文件夹中新建一个.c文件。

poYBAGK0I-2AXB2DAACbnL33M1E718.png

??文件名自拟,点击完成。

pYYBAGK0I72AYQl7AABdkDXxjmo032.png

??输入以下代码,点击保存。

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2022-06-21     Tom_onemore       the first version
 */
#include 
#include 
#include "hal_data.h"

#define ADC_DEV_NAME        "adc0"                      /* ADC 设备名称 */
#define ADC_DEV_CHANNEL_1   0                           /* ADC 通道 HC-SR501 */
#define ADC_DEV_CHANNEL_2   1                           /* ADC 通道 MQ-2 */
#define BUZZER              BSP_IO_PORT_06_PIN_11       /* 蜂鸣器I/O引脚 */

static int adc_vol_sample(int argc, char *argv[])
{
    rt_adc_device_t adc_dev;
    rt_uint32_t value1, vol1, value2, vol2;
    rt_err_t ret1 = RT_EOK;
    rt_err_t ret2 = RT_EOK;

    /* 查找设备 */
    adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
    if (adc_dev == RT_NULL)
    {
        rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME);
        return RT_ERROR;
    }

    /* 初始化蜂鸣器引脚为低电平 */
    rt_pin_write(BUZZER, PIN_LOW);

    while(1)
        {
            /* 使能设备 */
            ret1 = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL_1);
            ret2 = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL_2);
            /* 读取采样值 */
            value1 = rt_adc_read(adc_dev, ADC_DEV_CHANNEL_1);
            value2 = rt_adc_read(adc_dev, ADC_DEV_CHANNEL_2);
            rt_kprintf("the value1 is :%d  the value2 is :%d \n", value1,value2);

            /* 转换为对应电压值,3.3V对应12位最大值4096,数据精度乘以100保留2位小数 */
            vol1 = value1 * 330 / 4096;
            vol2 = value2 * 330 / 4096;
            rt_kprintf("the voltage1 is :%d.%02d  the voltage2 is :%d.%02d\n", vol1 / 100, vol1 % 100, vol2 / 100, vol2 % 100);
            if (vol1 > 3.3 || vol2 > 13 )
                {
                    rt_pin_write(BUZZER, PIN_HIGH); /*打开蜂鸣器*/
                }
            else
                {
                    rt_pin_write(BUZZER, PIN_LOW); /*关闭蜂鸣器*/
                }
        }

    /* 关闭通道 */
    ret1 = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL_1);
    ret2 = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL_2);
    return ret1;
    return ret2;
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(adc_vol_sample, adc voltage convert sample);

??接着我们打开FSP,会跳出一个弹窗提示,点击“是”,然后选择FSP的安装文件夹,点击“选择文件夹”,等待进入FSP即可。

poYBAGK0JG2AOqaRAAAvx2y5KTY396.pngpYYBAGK0JH2ABCU1AABQ9pXrFdU661.png

??下图为FSP界面。

poYBAGK0JJiAYAG7AAIiy1IK2_c643.png

??选择Pins,在Pin Selection中依次点击Peripherals—Analog:ADC—ADC0,然后再Pin Configuration中将P002~P005上锁。

poYBAGK0JKaAUzQAAADkyfdIuVM635.png

??接着选择Stacks,在右上角点击New Stack—Analog—ADC(a_adc)。

poYBAGK0JLmASeg1AAGQZNajSiI644.png

??在左下角Settings中,点击Common—Parameter Checking,将Value改为Enabled。

pYYBAGK0JMeAcx9SAADs1KQAHJo375.png

??然后点击Module g_adc0 ADC(r_adc)—Input—Channel Scan Mask(channel availability varies by MCU),将Channel 0和Channel 1打√,然后保存,点击右上角Generate Project Content,关闭FSP。

pYYBAGK0JNiAJcyIAADx_9Bq6YY393.png

??接着我们回到Studio中,在新建的项目下,进入RT-Thread Settings,找到组件和服务层,鼠标放到Pins上,会弹出候选框,选择配置项。然后选择硬件,点击芯片设备驱动,打开Enable ADC,接着打开Enable ADC0,保存。

poYBAGK0JOeANL4yAACUTua9lDc096.png

??回到我们刚刚新建的.c文件,点击编译,控制台显示0 errors, 0 warnings,到这里我们的代码部分完成,将程序下载到开发板,可以正常工作,具体代码和演示请参考上文的代码和视频地址。

3. 接线方式

RA6M4

USB转串口

P613

TXD

P614

RXD

RA6M4

HC-SR501

P000

OUT

VCC

VCC

GND

GND

RA6M4

MQ-2

P001

AO

VCC

VCC

GND

GND

DO悬空

RA6M4

蜂鸣器

P611

I/O

VCC

VCC

GND

GND

参考资料

1. ADC设备:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/adc/adc
2. CPK-RA6M4介绍:https://www2.renesas.cn/jp/zh/products/microcontrollers-microprocessors/ra-cortex-m-mcus/cpk-ra6m4-evaluation-board
3. CPK-RA6M4用户手册:https://www2.renesas.cn/cn/zh/document/mah/1527156?language=zh&r=1527191
4. CPK-RA6M4原理图:https://oss-club.rt-thread.org/uploads/20220314/460d66bee9aa09a6036f302890ebc737.pdf
5. RT-Thread BSP:https://gitee.com/rtthread/rt-thread/tree/gitee_master/bsp/renesas
6. RT-Thread 官网:https://club.rt-thread.org/index.html
7. 瑞萨电子官网:https://www2.renesas.cn/cn/zh

致谢

??感谢主办方及一切帮助过我的人。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6069

    文章

    45095

    浏览量

    654006
  • 物联网
    +关注

    关注

    2933

    文章

    46463

    浏览量

    395585
  • 瑞萨电子
    +关注

    关注

    37

    文章

    2931

    浏览量

    73415
  • RT-Thread
    +关注

    关注

    32

    文章

    1435

    浏览量

    42323
  • RA6M4
    +关注

    关注

    0

    文章

    52

    浏览量

    746
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA-Eco-RA6M4开发板评测】5、基于FSP6.0.0适配RT-Thread

    RT-Thread为瑞萨的开发板提供BSP移植模板工程,配合FSP RASC代码配置工具,可以快速适配RT-Thread。下面介绍在FSP6.0中为RA6M4-Eco适配RT-Thread
    发表于 08-13 21:35

    RA-Eco-RA6M4开发板评测】介绍、环境搭建、工程测试

    MAC,可确保高数据吞吐率。 RA6M4 采用高效的 40nm 工艺,由基于 FreeRTOS 的灵活配置软件包 (FSP) 这一开放且灵活的生态系统概念提供支持,并能够扩展以使用其他实时操作系统
    发表于 07-25 11:48

    RA4M2_Sensor-V1.0 原理图

    RA4M2_Sensor-V1.0原理图
    发表于 07-21 14:40 ?1次下载

    RT-Thread荣获2025优秀开源项目 | 新闻速递

    6月底,RT-Thread睿赛德受邀参与由上海开源信息技术协会主办的2025上海开源创新精英荟。上海市商委副主任张杰出席会议并致辞。RT-Thread嵌入式操作系统项目凭借其卓越的技术
    的头像 发表于 07-04 09:04 ?1931次阅读
    <b class='flag-5'>RT-Thread</b>荣获2025优秀开源项目 | 新闻速递

    爱普生RA8804CE实时时钟模块在监控中的应用

    监控领域,时间精度如同基石,支撑着整个系统的高效运行与可靠管理。精准的时间记录对于视频监控、事件追溯、设备协同等环节至关重要。爱普生RA8804CE实时时钟模块,以其卓越的性能优
    的头像 发表于 07-02 17:46 ?293次阅读
    爱普生<b class='flag-5'>RA</b>8804CE实时时钟模块在<b class='flag-5'>安</b><b class='flag-5'>防</b>监控中的应用

    揭秘RT-Thread上的AUTOSAR CP系统

    标准,同时保留RT-Thread的POSIX支持与可裁剪性,实现了通信隔离、诊断模块集成等关键技术突破,为车载系统提供高安全、可扩展的解决方案。车载电子系统与传统
    的头像 发表于 06-23 20:22 ?2432次阅读
    揭秘<b class='flag-5'>RT-Thread</b>上的AUTOSAR CP<b class='flag-5'>系统</b>

    RA-Eco-RA4M2开发板评测】利用第二个I2C接口驱动OLED

    SC\\\\\\\\rt-thread\\\\\\\\bsp\\\\\\\\renesas\\\\\\\\ra4m2-eco\\\\\\\\Objects\\\\\\\\rtthread.axf
    发表于 05-25 10:09

    RA-Eco-RA4M2开发板评测】RT-Thread上驱动I2C温湿度传感器

    一、基础准备 RA-Eco-RA4M2开发板上有个I2C接口,直接拿来用。 接口为P408/P409,是从SCI3设置过来的,瑞萨的SCI挺有意思,英文名叫Serial Communications
    发表于 05-08 22:42

    RA-Eco-RA4M2开发板评测】RA-Eco-RA4M2 移植FreeRTOS

    基本参数配置 然后就是选择安全策略,尽管RA4M2支持 TrustZone,但这里暂时不选。 Figure 2?4 选择是否支持 TrustZone 接下来选择RTOS的支持,FSP 5.1.0支持
    发表于 05-03 23:24

    RA-Eco-RA4M2开发板评测】开箱和RT-Thread上手操作

    首先感谢瑞萨电子 & 电子发烧友给与的机会。 一、简介 RA-Eco-RA4M2-100PIN-V1.0开发板基于R7FA4M2AD3CFP MCU,采用了Cortex-M33内核
    发表于 04-25 23:33

    Deepseek上单片机?RT-Thread上跑通大语言模型

    前言单片机也能聊天?RT-Thread上跑通大语言模型在RT-Thread论坛上忽然看到了单片机和大模型对话的文章,想着春节期间看到大语言模型的热度持续攀升,恰巧手头有块RA8D1VisionBoard开发板,于是尝试着在Vis
    的头像 发表于 02-07 18:59 ?1583次阅读
    Deepseek上单片机?<b class='flag-5'>RT-Thread</b>上跑通大语言模型

    基于PSOC6智能环境监控系统

    本项目是基于PSOC6进行开发,它具有以下特性Psoc6-evaluationkit-062S2是RT-Thread联合英飞凌推出的一款集成32位双核CPU子系统(ARMCortex-
    的头像 发表于 01-07 19:54 ?968次阅读
    基于PSOC<b class='flag-5'>6</b>的<b class='flag-5'>智能</b>环境监控<b class='flag-5'>系统</b>

    RT-Thread操作系统应用开发寒假师资培训

    随着物联网和智能系统的快速发展,嵌入式成为当前最热门最有发展前途的IT应用领域之一。为进一步提升全国大学生在嵌入式芯片及系统设计领域的创新能力,特别是针对物联网应用开发中RT-Thread
    的头像 发表于 12-06 01:06 ?649次阅读
    <b class='flag-5'>RT-Thread</b>操作<b class='flag-5'>系统</b>应用开发寒假师资培训

    楼宇智能监控系统

    随着科技的飞速发展,楼宇智能监控系统已经成为现代建筑不可或缺的一部分。提升楼宇的安全系数,为人们的生活和工作带来了便利。 楼宇
    的头像 发表于 12-02 16:50 ?670次阅读

    智能化包含哪些系统

    智能化是指利用现代信息技术,包括物联网、云计算、大数据、人工智能等,对传统的安全防范系统进行升级改造,实现对安全防范工作的自动化、
    的头像 发表于 10-10 10:20 ?1612次阅读