聚豐項目 > 基于RT-Thread家庭安全環境檢測
基于RT-Thread和中藍訊科的AB32VG1開發板實現的家庭安全檢測功能,主要包含如下功能: 1、基于RT-Thread操作系統的按鍵組件,音頻播放組件等; 2、基于AB32VG1開發板的語音播放功能; 3、基于Node-Red的串口功能與AB32VG1通訊; 4、連接騰訊云的Explorer平臺; 5、騰訊連連公眾號接收云平報警信息; 6、門窗檢測開關。
flytianya2010
分享flytianya2010
團隊成員
林宏華 自動化
因為官方提供了中藍訊科開發板,所以基于該開發板的語音播放功能和SD卡功能實現的聲音,實現家庭安全監測。因為板載的音頻接口只有耳機,發出的音量較小,不足以提供大聲音的語音,所以額外添加了一個音頻驅動模塊PAM8403來驅動一個大喇叭。另外額外焊接了塊擴展板,引出了I2C接口連接OLED顯示屏和門窗檢測IO引腳。
增加功放和喇叭提高播放聲音 音頻功放PAM8403
軟件使用到RT-Thread Studio來開發我的作品,使用AB32VG1提供的案例基礎上實現的語音播放和監控。因為要數據上云,RT-Thread的上云組件功能連不上網絡,結果通過Node-Red來實現AB32VG1與PC Node-Red串口通信,然后通過Node-Red連接騰訊云,講串口接收的json格式數據發送到騰訊云平臺,然后通過云平臺的數據流設置后可以實現手機收到公眾號及時發布的信息,同時音頻播放音樂。以下代碼是發送串口數據到Node-Red串口組件,并播放音效。
//檢測門開關并發送信息到云端和播放音樂 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; } } //檢測窗開關并發送信息到云端和播放音樂 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; } }
如上圖所示,騰訊云平臺接收node-red發來的開發板檢測信號。
如上圖是Node-Red的配置,將數據上傳到云平臺,即可通過數據開發信息下發到APP。
如上圖數據開發為設備數據選擇需要連接的云設備,然后通過數據過濾選擇需要讀取的屬性,最后通過APP推送和公眾號推送功能實現想推送的內容。
如上圖紅框處為推送內容的設置
如上圖就是小程序和公眾號的操作頁面和接收到數據信息,這樣就可以及時收到信息了。
總結,本項目可以優化的地方還有很多,例如通過RT-Thread提供的騰訊云SDK和device組件中的ESP8266模組驅動實現開發板直接上云,而不需要通過串口發送數據到node-red再轉接數據發送到云平臺,可作為本地控制頁面。
代碼鏈接如下:
https://gitee.com/flytianya2010/AB32VG1-RT-Thread-NodeRed-Tencent-IoT-Explorer
視頻演示如下: