基于RT-Thread和AB32VG1开发板实现家庭安全检测功能

项目简介      基于rt-thread和中蓝讯科的ab32vg1开发板实现的家庭安全检测功能,主要包含如下功能: 
1、基于rt-thread操作系统的按键组件,音频播放组件等; 
2、基于ab32vg1开发板的语音播放功能; 
3、基于node-red的串口功能与ab32vg1通讯;
4、连接腾讯云的explorer平台; 
5、腾讯连连公众号接收云平报警信息; 
6、门窗检测开关。
硬件说明       因为官方提供了中蓝讯科开发板,所以基于该开发板的语音播放功能和sd卡功能实现的声音,实现家庭安全监测。由于板载的音频接口只有耳机,发出的音量较小,不足以提供大声音的语音,所以额外添加了一个音频驱动模块pam8403来驱动一个大喇叭。另外额外焊接了块扩展板,引出了i2c接口连接oled显示屏和门窗检测io引脚。
没想到8年前买的功放模块居然现在还能用上,如果不用它,声音会很小。
                                                                       音频功放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


巡检机器人提高了城市地下综合管廊的运维和运营水平
思科大型发布会上宣布了一系列新的硬件,软件和芯片产品
三星Chromebook Pro怎么样?三星Chromebook Pro上手图赏
如何通过Arduino制作数字示波器
超声波测距液位传感器的工作原理是怎样的
基于RT-Thread和AB32VG1开发板实现家庭安全检测功能
Oculus联合创始人将从Facebook离职,疑因Rift 2计划被砍
双脉冲平台搭建的难题如何破解
广和通携手矩视科技联合发布AI智能零售柜解决方案
pcb拼板选择vcut还是邮票孔?
供水厂企业中的水务数字化转型的应用发展
工业CAN2.0及CAN-FD隔离器及共模干扰抑制模组
谷歌采用GANs与神经网络打造图像压缩新算法
中国芯上市公司应收账款周转天数排行榜
娃哈哈商业股份有限公司新成立了浙江娃哈哈智能机器人有限公司
物联网概念逐步升温意味着什么
电池管理系统的组成 锂离子电池充电管理IC设计方案
特斯拉大规模召回所带来的影响不大
苹果iPhone 12最大问题暴露!第三方无法正常维修
小米笔记本数据如何进行恢复?