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

应用背景   无论是在家里还是在公司,安防都尤为的重要,与其亡羊补牢,更重要的是防患于未然。安全是目的,防范是手段。通过防范的手段达到或实现安全的目的,就是安全防范的基本内涵。
  本项目就是基于安防的大背景设计的一款智能安防系统,目前提供的功能有红外检测,有毒气体及烟雾检测,后续还会对项目功能有所完善。
实现功能 红外检测   红外检测使用的是hc-sr501模块,传感器在检测到红外信号后,会触发高电平,将高电平信号送入蜂鸣器(本项目使用的是有源高电平触发蜂鸣器),进行报警,当红外信号消失后,会返回低电平,将低电平信号送入蜂鸣器,停止报警。
有毒气体及烟雾检测   有毒气体及烟雾检测使用的是mq-2模块(大家如果想实现别的功能检测还可以使用mq系列的其他模块),在检测到有毒气体或烟雾时,输出的模拟量会变大,根据不同的使用环境,我们可以通过调整代码实现在一定范围内触发蜂鸣器报警。
系统框架 rt-thread使用情况   基于官方文档的试例demo开发,使用了fsp。
模块介绍 hc-sr501 产品特点   hc-sr501是基于红外线技术的自动控制模块,采用lhi778探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。
实物图片 电气参数 mq-2 产品特点   mq-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(sno2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。mq-2气体传感器对丙烷、烟雾的灵敏度高,对天然气和其它可燃蒸气的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。
实物图片 电气参数 所需软硬件 软件   rt-thread studio,fsp。
硬件   cpk-ra6m4开发板,usb转串口工具,hc-sr501,mq-2,蜂鸣器,usb数据线,杜邦线若干。
作品完整图片 视频演示效果   基于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 项目。
  接着,在弹出的框中我们依次选择基于开发板,起项目名称(自拟),其余保持默认(最好也检查一下),点击完成。
  等待进度条走完,项目创建成功,在studio左侧的项目资源管理器中可以找到我们新建的项目。打开项目文件夹,在src文件夹中新建一个.c文件。
  文件名自拟,点击完成。
  输入以下代码,点击保存。
/* * 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即可。
  下图为fsp界面。
  选择pins,在pin selection中依次点击peripherals—analog:adc—adc0,然后再pin configuration中将p002~p005上锁。
  接着选择stacks,在右上角点击new stack—analog—adc(a_adc)。
  在左下角settings中,点击common—parameter checking,将value改为enabled。
  然后点击module g_adc0 adc(r_adc)—input—channel scan mask(channel availability varies by mcu),将channel 0和channel 1打√,然后保存,点击右上角generate project content,关闭fsp。
  接着我们回到studio中,在新建的项目下,进入rt-thread settings,找到组件和服务层,鼠标放到pins上,会弹出候选框,选择配置项。然后选择硬件,点击芯片设备驱动,打开enable adc,接着打开enable adc0,保存。
  回到我们刚刚新建的.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
致谢   感谢主办方及一切帮助过我的人。


西通开拓工业设备市场 计划年产500台3D打印机
红米K30系列宣布首发索尼6400万超清相机IMX686
PWR Alarm-100 5G智能断电监测器产品简介
IFWS2018:功率器件封装与应用分会深圳召开
5G时代媒体与新闻业的未来
基于RT-Thread+RA6M4的智能安防系统详解
2022年聚焦5G、汽车、卫星测试等领域
全国2002年4月高等教育自学考试计算机组成原理试题
加密货币交易所比特币中国BTCC,将扩张至韩国
三月相约福州工博会,把握商机,台湾高技邀您共襄盛会!
区块链ICO与IFO和IMO的通证销售模式究竟有什么区别
欧洲晶体管BDxxx 系列晶体管参数大全
人脸是识别门禁管理系统如何让小区管理更智能
典型行星齿轮的结构
美敦力并购中国康辉控股 抢占新兴医疗一席之地
华为7款经典机型升级成EMUI 8.0系统
荣耀小K2儿童手表正式发布支持一键SOS预警和七重定位功能
物联网技术在无人值守称重系统的应用
笔记本电脑常见接口有哪些?
动态测试实验