聚豐項目 > 基于RT-Thread家庭安全環(huán)境檢測

基于RT-Thread家庭安全環(huán)境檢測

基于RT-Thread和中藍訊科的AB32VG1開發(fā)板實現(xiàn)的家庭安全檢測功能,主要包含如下功能: 1、基于RT-Thread操作系統(tǒng)的按鍵組件,音頻播放組件等; 2、基于AB32VG1開發(fā)板的語音播放功能; 3、基于Node-Red的串口功能與AB32VG1通訊; 4、連接騰訊云的Explorer平臺; 5、騰訊連連公眾號接收云平報警信息; 6、門窗檢測開關(guān)。

flytianya2010 flytianya2010

分享
0 喜歡這個項目
團隊介紹

flytianya2010 flytianya2010

團隊成員

林宏華 自動化

分享
項目簡介
基于RT-Thread和中藍訊科的AB32VG1開發(fā)板實現(xiàn)的家庭安全檢測功能,主要包含如下功能: 1、基于RT-Thread操作系統(tǒng)的按鍵組件,音頻播放組件等; 2、基于AB32VG1開發(fā)板的語音播放功能; 3、基于Node-Red的串口功能與AB32VG1通訊; 4、連接騰訊云的Explorer平臺; 5、騰訊連連公眾號接收云平報警信息; 6、門窗檢測開關(guān)。
硬件說明

     因為官方提供了中藍訊科開發(fā)板,所以基于該開發(fā)板的語音播放功能和SD卡功能實現(xiàn)的聲音,實現(xiàn)家庭安全監(jiān)測。因為板載的音頻接口只有耳機,發(fā)出的音量較小,不足以提供大聲音的語音,所以額外添加了一個音頻驅(qū)動模塊PAM8403來驅(qū)動一個大喇叭。另外額外焊接了塊擴展板,引出了I2C接口連接OLED顯示屏和門窗檢測IO引腳。





9516bfe1a923ec0294f6ed2c4c2b53a.jpg

pYYBAGG01cKAaToQAAbkxwLgyH0753.png                               image.png

                          增加功放和喇叭提高播放聲音                                                                                                 音頻功放PAM8403

image.png


軟件說明

軟件使用到RT-Thread Studio來開發(fā)我的作品,使用AB32VG1提供的案例基礎(chǔ)上實現(xiàn)的語音播放和監(jiān)控。因為要數(shù)據(jù)上云,RT-Thread的上云組件功能連不上網(wǎng)絡(luò),結(jié)果通過Node-Red來實現(xiàn)AB32VG1與PC Node-Red串口通信,然后通過Node-Red連接騰訊云,講串口接收的json格式數(shù)據(jù)發(fā)送到騰訊云平臺,然后通過云平臺的數(shù)據(jù)流設(shè)置后可以實現(xiàn)手機收到公眾號及時發(fā)布的信息,同時音頻播放音樂。以下代碼是發(fā)送串口數(shù)據(jù)到Node-Red串口組件,并播放音效。

//檢測門開關(guān)并發(fā)送信息到云端和播放音樂
static void DoorOpen_detect_callback(void* btn)
{
    uint32_t DoorOpen_status;
    int state1;
    char volum[]={0};
    DoorOpen_status = get_button_event((struct button*)btn);
    switch (DoorOpen_status)
    {
    case SINGLE_CLICK:
        rt_kprintf("{ \"method\": \"report\",\"clientToken\": \"clientToken-a8b80020-084a-4082-818f-5bd1b238ce5f\",");
        rt_kprintf("\"params\": {\"DoorOpen\": 1,\"WindowOpen\": 0\}}\n\r");
      // rt_kprintf("Set volume=%d\n", saia_volume_get());
       saia_volume_set(Default_volume);
      // Read_WAV_List();
       wavplayer_play("/WAVmusic/DoorOpen/DoorOpenAlarm.wav");
        break;
    }
}

//檢測窗開關(guān)并發(fā)送信息到云端和播放音樂
static void WindowOpen_detect_callback(void* btn)
{
    uint32_t WindowOpen_status;
    int state1;
    char volum[]={0};
    WindowOpen_status = get_button_event((struct button*)btn);
    switch (WindowOpen_status)
    {
    case SINGLE_CLICK:
        rt_kprintf("{ \"method\": \"report\",\"clientToken\": \"clientToken-a8b80020-084a-4082-818f-5bd1b238ce5f\",");
        rt_kprintf("\"params\": {\"DoorOpen\": 0,\"WindowOpen\": 1\}}\n\r");
      // rt_kprintf("Set volume=%d\n", saia_volume_get());
       saia_volume_set(Default_volume);
      // Read_WAV_List();
       wavplayer_play("/WAVmusic/WindowOpen/WindowOpenAlarm.wav");

        break;
    }
}

image.png如上圖所示,騰訊云平臺接收node-red發(fā)來的開發(fā)板檢測信號。


image.png

  • 如上圖是Node-Red的配置,將數(shù)據(jù)上傳到云平臺,即可通過數(shù)據(jù)開發(fā)信息下發(fā)到APP。

image.png

如上圖數(shù)據(jù)開發(fā)為設(shè)備數(shù)據(jù)選擇需要連接的云設(shè)備,然后通過數(shù)據(jù)過濾選擇需要讀取的屬性,最后通過APP推送和公眾號推送功能實現(xiàn)想推送的內(nèi)容。

image.png

如上圖紅框處為推送內(nèi)容的設(shè)置

26c91fb0f6ec61f999901ffcf341548.jpgd229008eed17124d49bbac9c18c2783.jpg

如上圖就是小程序和公眾號的操作頁面和接收到數(shù)據(jù)信息,這樣就可以及時收到信息了。


總結(jié),本項目可以優(yōu)化的地方還有很多,例如通過RT-Thread提供的騰訊云SDK和device組件中的ESP8266模組驅(qū)動實現(xiàn)開發(fā)板直接上云,而不需要通過串口發(fā)送數(shù)據(jù)到node-red再轉(zhuǎn)接數(shù)據(jù)發(fā)送到云平臺,可作為本地控制頁面。


 代碼鏈接如下:

https://gitee.com/flytianya2010/AB32VG1-RT-Thread-NodeRed-Tencent-IoT-Explorer                                                                                                                                      

演示效果

視頻演示如下:

評論區(qū)(0 )