Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ADC设备
RT-Thread Studio
瑞萨_RA6M4
基于RT-Thread+RA6M4的智能安防系统
发布于 2022-06-23 11:29:45 浏览:762
订阅该版
[tocm] # 应用背景 无论是在家里还是在公司,安防都尤为的重要,与其亡羊补牢,更重要的是防患于未然。安全是目的,防范是手段。通过防范的手段达到或实现安全的目的,就是安全防范的基本内涵。 本项目就是基于安防的大背景设计的一款智能安防系统,目前提供的功能有红外检测,有毒气体及烟雾检测,后续还会对项目功能有所完善。 # 实现功能 ## 红外检测 红外检测使用的是HC-SR501模块,传感器在检测到红外信号后,会触发高电平,将高电平信号送入蜂鸣器(本项目使用的是有源高电平触发蜂鸣器),进行报警,当红外信号消失后,会返回低电平,将低电平信号送入蜂鸣器,停止报警。 ## 有毒气体及烟雾检测 有毒气体及烟雾检测使用的是MQ-2模块(大家如果想实现别的功能检测还可以使用MQ系列的其他模块),在检测到有毒气体或烟雾时,输出的模拟量会变大,根据不同的使用环境,我们可以通过调整代码实现在一定范围内触发蜂鸣器报警。 # 系统框架 ![系统框架.png](https://oss-club.rt-thread.org/uploads/20220621/323e095cd29c9fc6200cbc57d7a6abd1.png.webp "系统框架.png") # RT-Thread使用情况 基于官方文档的试例Demo开发,使用了FSP。 # 模块介绍 ## HC-SR501 ### 产品特点 HC-SR501是基于红外线技术的自动控制模块,采用LHI778探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。 ### 实物图片 ![HC-SR501.png](https://oss-club.rt-thread.org/uploads/20220621/0b12b5f3fbf941bfd90a0bca87df5a9f.png.webp "HC-SR501.png") ### 电气参数 ![电气参数.png](https://oss-club.rt-thread.org/uploads/20220621/c6bacbc25a4c54046984e546ff118932.png.webp "电气参数.png") ## MQ-2 ### 产品特点 MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2气体传感器对丙烷、烟雾的灵敏度高,对天然气和其它可燃蒸气的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。 ### 实物图片 ![MQ-2.png](https://oss-club.rt-thread.org/uploads/20220621/b88771a45ecd3fe7f488b67cdba98f28.png.webp "MQ-2.png") ### 电气参数 ![电气参数.png](https://oss-club.rt-thread.org/uploads/20220621/7177c560bba393bbeab7fef5809f7ed4.png.webp "电气参数.png") # 所需软硬件 ## 软件 RT-Thread Studio,FSP。 ## 硬件 CPK-RA6M4开发板,USB转串口工具,HC-SR501,MQ-2,蜂鸣器,USB数据线,杜邦线若干。 # 作品完整图片 ![作品完整图片.jpg](https://oss-club.rt-thread.org/uploads/20220621/55f1d863aefaa243b13b041915954ace.jpg.webp "作品完整图片.jpg") # 视频演示效果 [基于RT-Thread+RA6M4的智能安防系统](https://www.bilibili.com/video/BV16T411G7PF?share_source=copy_web "基于RT-Thread+RA6M4的智能安防系统") # 代码地址 [Intelligent_security_system](https://gitee.com/tom-onemore/intelligent_security_system "Intelligent_security_system") # 项目过程 ## 1. 开发环境搭建 首先请参考官方教程搭建好环境:[环境搭建](https://mp.weixin.qq.com/s/phEV5jGjTOoe7Y0ihI6ftg "环境搭建") ## 2. 新建RT-Thread标准项目 首先,我们打开RT-Thread Studio,文件—新建—RT-Thread 项目。 ![1.png](https://oss-club.rt-thread.org/uploads/20220621/03c81321b166dc546c0f0de044fa8b06.png "1.png") 接着,在弹出的框中我们依次选择基于开发板,起项目名称(自拟),其余保持默认(最好也检查一下),点击完成。 ![2.png](https://oss-club.rt-thread.org/uploads/20220621/ddbf9ac5eb45aae882bc97466d15132f.png "2.png") 等待进度条走完,项目创建成功,在Studio左侧的项目资源管理器中可以找到我们新建的项目。打开项目文件夹,在src文件夹中新建一个.c文件。 ![3.png](https://oss-club.rt-thread.org/uploads/20220621/6a61fa9e3d13c0ea24d655d04772037e.png "3.png") 文件名自拟,点击完成。 ![4.png](https://oss-club.rt-thread.org/uploads/20220621/f70cc35ad98a0125f039e9a37068b1dd.png "4.png") 输入以下代码,点击保存。 ```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即可。 ![5.png](https://oss-club.rt-thread.org/uploads/20220621/b3605418161c35824ca0b526e07bbb81.png "5.png") ![6.png](https://oss-club.rt-thread.org/uploads/20220621/56e45e5c14b842683c4510ed76ec594f.png "6.png") 下图为FSP界面。 ![7.png](https://oss-club.rt-thread.org/uploads/20220621/f24ad46f2cddd2f6b65b5df43db3dde7.png.webp "7.png") 选择Pins,在Pin Selection中依次点击Peripherals—Analog:ADC—ADC0,然后再Pin Configuration中将P002~P005上锁。 ![8.png](https://oss-club.rt-thread.org/uploads/20220621/d69abf5f1457f4a3a61202e5af42a8df.png "8.png") 接着选择Stacks,在右上角点击New Stack—Analog—ADC(a_adc)。 ![9.png](https://oss-club.rt-thread.org/uploads/20220621/e966ea0d2695090742246ce47542390d.png.webp "9.png") 在左下角Settings中,点击Common—Parameter Checking,将Value改为Enabled。 ![10.png](https://oss-club.rt-thread.org/uploads/20220621/cb9a9d4d0aa176b9e553857c1aab9210.png "10.png") 然后点击Module g_adc0 ADC(r_adc)—Input—Channel Scan Mask(channel availability varies by MCU),将Channel 0和Channel 1打√,然后保存,点击右上角Generate Project Content,关闭FSP。 ![11.png](https://oss-club.rt-thread.org/uploads/20220621/3fcb6c6e5799eee979fe1b3caccaeb24.png "11.png") 接着我们回到Studio中,在新建的项目下,进入RT-Thread Settings,找到组件和服务层,鼠标放到Pins上,会弹出候选框,选择配置项。然后选择硬件,点击芯片设备驱动,打开Enable ADC,接着打开Enable ADC0,保存。 ![12.png](https://oss-club.rt-thread.org/uploads/20220621/ac0262605d2f493dffe3ed1ef7135b2a.png "12.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 "ADC设备") 2. [CPK-RA6M4介绍](https://www2.renesas.cn/jp/zh/products/microcontrollers-microprocessors/ra-cortex-m-mcus/cpk-ra6m4-evaluation-board "CPK-RA6M4介绍") 3. [CPK-RA6M4用户手册](https://www2.renesas.cn/cn/zh/document/mah/1527156?language=zh&r=1527191 "CPK-RA6M4用户手册") 4. [CPK-RA6M4原理图](https://oss-club.rt-thread.org/uploads/20220314/460d66bee9aa09a6036f302890ebc737.pdf "CPK-RA6M4原理图") 5. [RT-Thread BSP](https://gitee.com/rtthread/rt-thread/tree/gitee_master/bsp/renesas "RT-Thread BSP") 6. [RT-Thread 官网](https://club.rt-thread.org/index.html "RT-Thread官网") 7. [瑞萨电子官网](https://www2.renesas.cn/cn/zh "瑞萨电子官网") # 致谢 感谢主办方及一切帮助过我的人。
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Tom_onemore
学习至死不渝.
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
rt_thread studio 啥时候能用呢
2
RT_Thread使用反馈帖子
3
RTT studio 下的 AT指令问题。
4
什么时候RTT Sdudio支持Ubuntu,Deepin和UOS操作系统
5
rt thread Studio 关于J-LINK下载问题
6
RT-Thread studio 调试设置问题
7
RTT-Studio 如何设置调试配置参数?
8
rt_thread studio 软件包配置
9
RT-Studio目前只能开发STM32的项目吗?
10
rtt studio 生成hex名字修改
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
MicroPython
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
15
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部