APP下载

基于语音识别的空巢老人居家报警系统设计

2020-12-16石思颖李阳紫

电声技术 2020年7期
关键词:联系人串口指令

王 智,石思颖,李阳紫,马 敏

(南京信息职业技术学院,江苏 南京 210023)

近年来,老人在室内跌倒而无法及时联系家人导致事故的现象十分常见。因此,设计一款可帮助独居老人在紧急情况下迅速联系家人的装置十分必要。目前,国内外基于老人跌倒报警的相关研究和装置较多,主要是具有监测功能的穿戴类如手环、拐杖以及轮椅等,还有固定装置类,如安装了报警功能的瓷砖,老人一按压即报警并联络家人。其中,穿戴类的装置在户内因不方便佩戴而有局限性,按压类需就近操作才起作用。基于上述问题,文章设计了一种非接触式的通过语音识别即可实现报警的方案,适合室内居家老人使用。该系统无需使用人穿戴任何设备,一旦老人出现跌倒爬不起等情况,呼喊即可联络家人,简单易用。

1 系统总体设计

设计的系统总体框架图主要包括主控板、语音识别模块、GPRS 模块、WiFi 模块、电源模块、麦克风和喇叭,如图1 所示。

语音识别模块获取语音信号时,会通过喇叭反馈信息给用户。每个设置的语音信号对应一个识别码。在装置工作时,当语音识别模块采集到某个设置过的语音并成功识别时,就会转换成对应的编码数字,并通过串口发给主控。

主控模块收到代表报警语音的编码数字时,会向紧急联系人发送短信和拨打电话。当SIM 卡插入本设备后,设备会读取里面的紧急联系人电话,并根据紧急联系人电话设置一个白名单电话列表。只有当来电号码是白名单列表里的紧急联系人时,才会启动自动接听。

GPRS 模块接有麦克风、喇叭和SIM 卡,可通过发短信或打电话方式实现报警和来电接听功能。确保紧急联络人在收到短信或接到电话后可以接通或回电,以确认是否发生意外情况。

WiFi 模块通过无线路由器连接到互联网上的云服务器,当收到主控发来的报警信息时会上报到云服务器,提供给警务和医疗机构。

电源模块用于把市电转为直流,从而给主控、语音识别模块和GPRS 模块提供稳定的直流电压。

2 系统硬件设计

2.1 主控模块的设计

设计选用的主控模块为Arduino UNO R3。Arduino 的处理器核心为ATmega328,包含14 个数字I/O 口(6 个可提供PWM 输出)、6 个模拟输入口、1 个16 MHz 晶振时钟以及USB 连接、电源插孔、ICSP 接头和复位按键。它的库函数与底层硬件无缝对接,编程语言类似C/C++语言,特点是跨平台、简单清晰且具有开放性[1]。主控模块和其他模块的连接方式如图2 所示。

2.2 语音识别模块的设计

设计选用的语音识别模块为ASR-M09C。该模块采用LD3320 芯片作为识别芯片,识别率高[2]。ASR-M09C 通过串口和主控板Arduino 单片机通信,这里用主控的普通IO 口模拟串口通信。ASRM09C 通过喇叭播放声音。

2.3 GPRS 模块的设计

设计选用的GPRS 模块是SIM800A,采用串口和主控通信。EN 引脚接到主控的IO 上,启动时输出高电平,使SIM800A 模块能自动开机。如果在长期使用中遇到模块异常问题,可以通过设置IO 引脚低电平来关闭模块。

2.4 WiFi 模块的设计

设计选用的WiFi 模块是ATK-ESP8266,采用串口与主控通信,能够实现串口与WiFi 之间的转换。这里用主控的普通IO 口模拟串口通信。ATKESP8266 内置TCP/IP 协议栈,兼容3.3 V 和5 V 单片机系统。它的VCC 引脚需要接高电平。REST是复位引脚,低电平有效[3]。

3 系统软件设计

3.1 语音识别模块软件设计

首先,通过电脑上的串口调试助手发送相应的指令来设置M09C,主要涉及如下几个指令。

(1)设置识别模式。设计选择模块工作在语音唤醒模式,一是不容易产生很多误动作,二是比较省电。

(2)设置为单字节输出并添加词条。

(3)设置屏蔽词。为了减少误识别,给发音相近的词设置屏蔽词。

(4)设计M09C 和主控的串口通信程序。设置串口波特率为9 600 Baud,根据M09C 的返回值执行相应动作,如打电话、发短信等。

3.2 GPRS 模块软件设计

首先需要设置串口的波特率为115 200 Baud,然后使用SIM800A 的AT 指令集对其进行操作。本设计主要涉及如下指令。

(1)检测GPRS 模块与主控串口是否连通和能否接收AT 命令。指令为AT,若从串口返回“OK”,表示串口通信正常。

(2)拨打电话。指令格式为“ATD***********;

(3)发送一条中文短信,需要配置如下指令:

①AT+CMGF=1,设置为文本模式;

②AT+CSMP=17,167,0,25(24:短消息显示在终端;25:存储在SIM 中),表示设置短消息文本模式参数,在使用UCS2 方式发送中文短信的时候需要发送。

③AT+CSCS=”UCS2”,表示发送中英文短信,设置为16 位通用8 字节倍数编码字符集。然后,将电话号码和短信内容进行汉字与unicode码转换,即可发送中文短信。

3.3 WiFi 模块软件设计

3.3.1 云平台的设置

设计选用OneNET 作为云平台。上传信息到OneNET 云平台是免费的。设备通过TCP 连接接入OneNET,认证成功后即可与OneNET进行数据交互。OneNET 通过用户上传的自定义脚本来解析设备上传的数据。上传脚本通过下载脚本模板,修改脚本中function device_data_analyze(dev)函数中的add_val(t,"alarm_info",0,dev:bytes(1,s)),修改第2 个参数里的数据流名称和修改脚本名称并上传[5]。

3.3.2 WiFi 模块的设置

ATK-ESP8266 模块支持STA、AP 和STA+AP这3 种工作模式。本设计选用STA 模式,即ESP8266 模块通过路由器连接互联网,实现向云平台上传数据。ESP8266 模块默认是AT 指令状态[6],波特率是115 200 Baud。本设计通过把AT 指令写进程序,使得程序实现自动连网,且连接到云平台实现设备和脚本的关联。每次触发报警,WiFi 模块可以上传老人的报警信息到云平台。

3.4 主控软件设计

装置上电后,先初始化各项参数。串口1 启动GPRS 连接和接入GPRS 网络,串口2 启动WiFi 模块连接和接入云平台。其次,开始循环收集语音识别模块的数据。若发现是报警数据,则发短信给所有紧急联系人,并且拨打号码薄里的紧急联系人电话。只要有一个打通,就不再拨打。最后,将报警信息上送到云平台。当检测到有电话呼入时,先判断是否是白名单里的电话,若是则自动接听,否则不接听。主程序流程图如图3 所示。

4 系统测试

4.1 模块调试

在OneNET 云平台上创建一台名为“语音识别报警器-南信院”的设备,通过串口对WiFi 模块设置AT 指令,使WiFi 模块成功接入到OneNET 云平台,如图4 所示。设备状态显示“在线”,表示本系统通过WiFi 模块成功接入OneNET 云平台。当WiFi 模块发送不同的报警信息时,OneNET 云平台都能收到,并记录了相应的时间和数据。

4.2 系统联调

将各模块连接好上电,如图5 所示。说“小李”,系统回复“我在呢”,紧接着说“快来”,系统回复“好的,正在联系”,此时系统立刻向紧急联系人发送报警短信并拨打电话,同时上报报警信息到OneNET云平台。

系统也可以在收到紧急联系人回拨的电话时实现自动接听。根据不同的语音检查报警动作是否正常,只有当说“快来”时才会产生相应的动作,其他相近或常见语音不会触发报警动作。实验显示,系统通信质量稳定,完成了各项设计指标。

5 结语

本文采用语音识别技术设计和实现了一套空巢老人居家报警系统,使独居老人在紧要关头可以及时联系到家人,方便实用,可有效降低老人缺失照看而导致的人身伤害的概率。其中,使用云平台实现了报警信息的实时采集,扩展了此类报警系统的安全救助功能。目前,TCP 透传方式上传数据只支持面板和列表的显示方式,后续会研究使用图形化界面、网页以及APP 等方式来显示数据。

猜你喜欢

联系人串口指令
《单一形状固定循环指令G90车外圆仿真》教案设计
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
让重要联系人更醒目
为每个联系人设定不同的铃声
关于ARM+FPGA组建PLC高速指令控制器的研究
基于Qt和OpenDDS的船舶电力模拟训练系统指令处理方法
教你将手机联系人导出到Excel
MCS—51单片机中的多串口通讯技术的应用
太空第一人