鄭健
(湄洲灣職業技術學院,福建莆田,351119)
根據第七次全國人口普查數據顯示,2010年至2020年,我國(大陸地區,下同)60歲及以上人口的比重上升了5.44個百分點,65歲及以上人口的比重上升了4.63個百分點。與2000-2010年相比,上述指標的增幅分別提高了2.51和2.72個百分點,表明我國的人口老齡化進程明顯處于加速狀態[1]。預計到2025年,我國六十歲以上人口將達到3億,成為超老年型國家[2]。
針對這一些問題作者做了《面向老年人陪護的智能語音助手設計需求調研》,普遍老年人認為越是簡單易上手的設備更好,如使用通過智能語音設備如智能音箱或手環直接呼出或簡易定位的通訊設備。
該項目參考模型如圖1所示,根據物聯網系統的四層參考模型設計,在感知層主要設備有無線傳感控制器、溫濕度傳感模塊、攝像頭及A9G模塊,傳輸層主要根據系統的特點采用有線及無線的傳輸方式,其中無線傳感終端主要采用WIFI的方法接入,無線通訊終端使用GPRS的方式接入,其協議使用MQTT協議進行通訊。在平臺層上主要由微信小程序、物聯網設備管理平臺、EMQ平臺及樹莓派的語音識別系統組成,并由此支撐及服務語音識別、合成等諸多應用。

圖1 系統參考模型圖
硬件設計方面:采用目前主流的開源硬件,主要采用樹莓派、Arduino、ESP系列芯片組開發板,使用DHT11及A9G模塊等做為感知終端采集現場環境及GPS等位置信息。
軟件設計方面:基于樹莓派的語音識別系統采用Python,其支持、融合度高;物聯網接入平臺使用Thinkphp架構底層設計,它是國內一款免費開源的快速簡單的面向對象的輕量級 PHP 開發框架,通過 THINKPHP 使用,極大減輕了開發的工作量,可進行快速的基礎平臺部署及二次開發[3]。
通訊協議方面:采用物聯網平臺及終端主流的MQTT (Message Queuing Telemetry Transport,消息隊列遙測傳輸協議)協議,它是由IBM公司提出的一種輕量級的消息發布和訂閱(publish/subscribe)方式的交換協議,其包含了MQTT消息代理服務器、發布者及訂閱者[4]。MQTT較CoAP在傳輸模式上更為靈活[5],故課題采用MQTT方式。
該系統功能設計如圖2所示,主要基于樹莓派(Raspbian 系統)、Python、HTML5、PHP、微信小程序設計的一款符合老年人使用的智能語音系統,系統主要包括:語音喚醒、語音識別、語音合成、智能互動、插件式功能擴展等交互功能。

圖2 系統功能設計圖
前端顯示系統采用HTML+CSS+DIV頁面布局技術,JavaScript(簡稱:JS)腳本語言技術、JQuery(簡稱JQ)JavaScript庫技術,其它前端與系統Python的通訊主要分為被動顯示和主動請求兩種。其中被動顯示為了達到實時性,采用WebSocket方式實現,主動請求是采用直接調用Python程序方式顯示。
整體設計架構上支持應用程序、網頁、微信小程序及移動端的開發接入。系統采用多進程消息隊列管理模式運行,各模塊和插件均為獨立進程運行互不干擾。進程間采用消息通知方式通信。
系統預留語音喚醒、識別、合成、屏幕控制、微信小程序等通信接口,在后期的插件及功能擴展方面可以根據需要,如老年人的其它語音陪護需要可以定制高耦合的功能插件,實現功能的靈活擴展。
該 平 臺 基 于LAMP【Linux+Apache+Mysql+PHP】環境進行開發,基于ThinkPhp5.0架構,內嵌百度地圖API,主要分為物聯網設備統計看板、設備告警管理、觸發器管理、物聯網設備管理、用戶管理、系統管理等功能,具體設計如圖3所示。

圖3 物聯網接入系統功能設計圖
系統平臺具有多點數據采集、多點實時監控、數據分析與數據維護等功能。數據采集完成整個數據鏈上各個環節的數據建立和數據采集;實時監控進行全程動態數據、現場環境參數進行監控;數據分析與數據維護負責對歷史數據進行分析和系統相關信息維護。
數據庫在建構時體現通用性、靈活性、擴展性的特點,在整個數據鏈上保證數據的完整性、最終產品的唯一性及可靠性是關鍵,也是整個系統平臺的基礎。
無線傳感終端硬件設計電路圖如圖4所示,其功能主要是進行現場溫濕度數據采集及開關量設置的控制,其主控芯片采用NodeMcu,其WIFI支持STA、AP、STA+AP工作模式,該芯片集成度高,內部集成有32位的微型處理器、標準數字外設接口、電源管理模塊等[6-7]。它使用Lua腳本語言編程。該平臺基于eLua 開源項目,底層使用ESP8266 sdk 0.9.5版本,其IO接口比較豐富,能較好適用于多節點傳輸的需要。溫濕度傳感器采用DHT11,DHT11是一款有已校準數字信號輸出的溫濕度傳感器。其精度濕度±5%RH,溫度±2℃,量程濕度5~95%RH, 溫度-20℃~+60℃,能較好滿足測量的要求。開關量的控制使用LED來進行模擬,使用一個電阻進行限流。

圖4 無線傳感終端設計原理圖
該通訊終端設計原理圖如圖5所示,其在硬件上主要采用安信可公司的A9G模塊。其中A9G模塊是一個完整的四頻(GSM/GPRS+GPRS/GPS)模塊,其支持數字音頻和模擬音頻,支持HR,FR,EFR,AMR語音編碼;同時該模塊功耗低,平均電流在2mA以下(開機后默認狀態的基底均值為8.8mA),其具備基礎的電話/短信,GPRS聯網通信,GPS/BDS雙模定位功能[8]。

圖5 無線通訊終端設計原理圖
A9G芯片模塊需要5V和4.2V兩種電源電壓供電,主電源是采用5V的USB供電,5V的USB電源在為A9G芯片供電的同時也為A9G的鋰電池提供充電能源,充電電路采用具有恒壓恒流的鋰電池充電模塊TP4057芯片,其具有電流監控、電池極性保護、欠壓保護、自動再充電等功能,是一款專用的鋁電池充電模塊,當電池兩端電壓達到4.2V時,其充電電流將自動降至設定值的1/10,芯片將停止充電。當5V的USB充電電源切斷,TP4057芯片也會自動調整為低電流狀態,其漏電流小于2μA。A9G芯片的SIM模塊采用內部電源供電,供電電壓為1.8V。
A9G芯片的語音輸出電路如圖6所示,電路由揚聲器和三個瓷片電容構成,揚聲器用來將電信號轉化為聲音信號,三個瓷片電容用于濾除高頻干擾小信號,保證輸出的聲音信號清晰。

圖6 A9G 開發板語音輸出電路圖
MQTT協議并未明確規定主題中數據的格式。JSON是一種易于讀寫的輕量級數據表示格式,使用文本來表示JavaScript對象的信息,被廣泛用在數據采集中[9]。由于JSON輕量易讀,結構清晰,可以在多種語言之間進行交換,數據傳輸效 率明顯優于其他數據傳輸格式[10],所以主題中數據內容一般使用JSON 格式。在本項目中使用MQTT協議進行發布終端DHT11采集的溫濕度數據并在微信小程序端訂閱該信息及GPS的相關定位數據。其主要使用Connect(連接)、Subscrible(訂閱)、Publish(推送)方法進行,其消息封裝在Payload中。
AT+MQTTCONN="8.*.33.202",1883,"Nano-A9g",120,0,"bl*d","1*" //客戶端等待和連接服務器,同時發送CONNECT
AT+MQTTPUB="ledStatus","v1",0,0,0
//客戶端向服務端傳輸一個應用消息中間的1為LED狀態值
+MQTTPUBLISH: 1, test, 6, 124563
AT+MQTTSUB="ledStatus",1,0
//客戶端向服務端發送SUB報文用于創建訂閱
智能語音做作為智能家居的一個重要載體在智能音箱上廣泛應用,通過MQTT協議的支持,可以更好實現語音助手的相關功能。經過相關測試,系統的研發對于MQTT協議及物聯網設備接入平臺在物聯網技術中的應用也具有良好的示范作用。對于輕量化、數據量小、實時傳輸的數據,可以做為傳統的NB-IOT及LoRa技術的一種有效補充,解決信號覆蓋,基站建設等大投入問題。該系統的建設對智能化家居的管控、系統的建設等具備參考價值。