應(yīng)用背景
無論是在家里還是在公司,安防都尤為的重要,與其亡羊補牢,更重要的是防患于未然。安全是目的,防范是手段。通過防范的手段達到或?qū)崿F(xiàn)安全的目的,就是安全防范的基本內(nèi)涵。
本項目就是基于安防的大背景設(shè)計的一款智能安防系統(tǒng),目前提供的功能有紅外檢測,有毒氣體及煙霧檢測,后續(xù)還會對項目功能有所完善。
實現(xiàn)功能
紅外檢測
紅外檢測使用的是HC-SR501模塊,傳感器在檢測到紅外信號后,會觸發(fā)高電平,將高電平信號送入蜂鳴器(本項目使用的是有源高電平觸發(fā)蜂鳴器),進行報警,當紅外信號消失后,會返回低電平,將低電平信號送入蜂鳴器,停止報警。有毒氣體及煙霧檢測
有毒氣體及煙霧檢測使用的是MQ-2模塊(大家如果想實現(xiàn)別的功能檢測還可以使用MQ系列的其他模塊),在檢測到有毒氣體或煙霧時,輸出的模擬量會變大,根據(jù)不同的使用環(huán)境,我們可以通過調(diào)整代碼實現(xiàn)在一定范圍內(nèi)觸發(fā)蜂鳴器報警。系統(tǒng)框架
RT-Thread使用情況
基于官方文檔的試例Demo開發(fā),使用了FSP。
模塊介紹
HC-SR501
產(chǎn)品特點
HC-SR501是基于紅外線技術(shù)的自動控制模塊,采用LHI778探頭設(shè)計,靈敏度高,可靠性強,超低電壓工作模式,廣泛應(yīng)用于各類自動感應(yīng)電器設(shè)備,尤其是干電池供電的自動控制產(chǎn)品。實物圖片
MQ-2
產(chǎn)品特點
MQ-2氣體傳感器所使用的氣敏材料是在清潔空氣中電導(dǎo)率較低的二氧化錫(SnO2)。當傳感器所處環(huán)境中存在可燃氣體時,傳感器的電導(dǎo)率隨空氣中可燃氣體濃度的增加而增大。使用簡單的電路即可將電導(dǎo)率的變化轉(zhuǎn)換為與該氣體濃度相對應(yīng)的輸出信號。MQ-2氣體傳感器對丙烷、煙霧的靈敏度高,對天然氣和其它可燃蒸氣的檢測也很理想。這種傳感器可檢測多種可燃性氣體,是一款適合多種應(yīng)用的低成本傳感器。
實物圖片
電氣參數(shù)
所需軟硬件
軟件
RT-Thread Studio,F(xiàn)SP
硬件
CPK-RA6M4開發(fā)板,USB轉(zhuǎn)串口工具,HC-SR501,MQ-2,蜂鳴器,USB數(shù)據(jù)線,杜邦線若干。作品完整圖片
視頻演示效果
https://www.bilibili.com/video/BV16T411G7PF?share_source=copy_web
代碼地址
https://gitee.com/tom-onemore/intelligent_security_system
項目過程
1. 開發(fā)環(huán)境搭建
首先請參考官方教程搭建好環(huán)境:環(huán)境搭建
2. 新建RT-Thread標準項目
首先,我們打開RT-Thread Studio,文件—新建—RT-Thread 項目。
接著,在彈出的框中我們依次選擇基于開發(fā)板,起項目名稱(自擬),其余保持默認(最好也檢查一下),點擊完成。
等待進度條走完,項目創(chuàng)建成功,在Studio左側(cè)的項目資源管理器中可以找到我們新建的項目。打開項目文件夾,在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_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引腳 */
-
-
staticint 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;
-
-
/* 查找設(shè)備 */
-
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! ", ADC_DEV_NAME);
-
return RT_ERROR;
-
}
-
-
/* 初始化蜂鳴器引腳為低電平 */
-
rt_pin_write(BUZZER, PIN_LOW);
-
-
while(1)
-
{
-
/* 使能設(shè)備 */
-
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 ", value1,value2);
-
-
/* 轉(zhuǎn)換為對應(yīng)電壓值,3.3V對應(yīng)12位最大值4096,數(shù)據(jù)精度乘以100保留2位小數(shù) */
-
vol1 = value1 *330/4096;
-
vol2 = value2 *330/4096;
-
rt_kprintf("the voltage1 is :%d.%02d the voltage2 is :%d.%02d ", 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);/*關(guān)閉蜂鳴器*/
-
}
-
}
-
-
/* 關(guān)閉通道 */
-
ret1 = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL_1);
-
ret2 = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL_2);
-
return ret1;
-
return ret2;
-
}
-
/* 導(dǎo)出到 msh 命令列表中 */
-
MSH_CMD_EXPORT(adc_vol_sample, adc voltage convert sample);
接著我們打開FSP,會跳出一個彈窗提示,點擊“是”,然后選擇FSP的安裝文件夾,點擊“選擇文件夾”,等待進入FSP即可。
下圖為FSP界面。
然后點擊Module g_adc0 ADC(r_adc)—Input—Channel Scan Mask(channel availability varies by MCU),將Channel 0和Channel 1打√,然后保存,點擊右上角Generate Project Content,關(guān)閉FSP。
接著我們回到Studio中,在新建的項目下,進入RT-Thread Settings,找到組件和服務(wù)層,鼠標放到Pins上,會彈出候選框,選擇配置項。然后選擇硬件,點擊芯片設(shè)備驅(qū)動,打開Enable ADC,接著打開Enable ADC0,保存。
回到我們剛剛新建的.c文件,點擊編譯,控制臺顯示0 errors, 0 warnings,到這里我們的代碼部分完成,將程序下載到開發(fā)板,可以正常工作,具體代碼和演示請參考上文的代碼和視頻地址。
3. 接線方式
-
蜂鳴器
+關(guān)注
關(guān)注
12文章
893瀏覽量
46067 -
安防系統(tǒng)
+關(guān)注
關(guān)注
2文章
250瀏覽量
33347
原文標題:基于RT-Thread+RA6M4的智能安防系統(tǒng)
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論