摘要:文章以基于微信小程序的物聯(lián)網(wǎng)系統(tǒng)開發(fā)與應(yīng)用為研究對(duì)象,首先對(duì)基于微信小程序的物聯(lián)網(wǎng)系統(tǒng)開發(fā)與應(yīng)用的優(yōu)勢(shì)進(jìn)行了分析,隨后從硬件設(shè)計(jì)出發(fā),對(duì)基于微信小程序的物聯(lián)網(wǎng)系統(tǒng)硬件模塊設(shè)計(jì)進(jìn)行了分析,最后分析了該系統(tǒng)的軟件設(shè)計(jì)內(nèi)容,并對(duì)其實(shí)用性進(jìn)行了檢測(cè)分析,旨在為相關(guān)研究提供參考。
關(guān)鍵詞:微信小程序;物聯(lián)網(wǎng);系統(tǒng)開發(fā);應(yīng)用
中圖法分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A
Development and application of IoT system based on WeChat applet
CHEN Bo
(The First People's Hospital of Changzhou,Changzhou,Jiangsu 213004,China)
Abstract:The article takes the development and application of IoT system based on WeChat small program as the research object. Firstly, the advantages of developing and using IoT system based on WeChat small program are discussed and analyzed, then the hardware module design of IoT system based on WeChat small program is analyzed from hardware design, finally the software design content of the system is analyzed, and the practicality of which is tested and analyzed,hoping to provide some reference for related research.
Key words:WeChat applet,Internet of things,system development,application
在“互聯(lián)網(wǎng)+”信息時(shí)代下,各種先進(jìn)的信息技術(shù)不斷涌現(xiàn),各種通信 APP 也得到了廣泛普及。其中,以微信為代表的通信 APP 已經(jīng)成為“裝機(jī)必備 APP”,為人們的生產(chǎn)生活帶來(lái)了極大便利。因此,在物聯(lián)網(wǎng)系統(tǒng)開發(fā)中,可以引入微信小程序,從而進(jìn)一步簡(jiǎn)化物聯(lián)網(wǎng)系統(tǒng)功能操作的難度,同時(shí)為物聯(lián)網(wǎng)系統(tǒng)開發(fā)與應(yīng)用創(chuàng)造更有利的條件,滿足物聯(lián)網(wǎng)運(yùn)行穩(wěn)定、便捷、安全的需求,促使物聯(lián)網(wǎng)系統(tǒng)發(fā)揮出更大的價(jià)值。
1應(yīng)用優(yōu)勢(shì)
以微信小程序?yàn)榛A(chǔ),加強(qiáng)物聯(lián)網(wǎng)系統(tǒng)應(yīng)用與開發(fā),主要有如下優(yōu)勢(shì):(1)局域網(wǎng)通信比較方便。物聯(lián)網(wǎng)設(shè)備通常會(huì)通過(guò) Wi?Fi 模塊進(jìn)行網(wǎng)絡(luò)連接。在這一過(guò)程中,微信小程序會(huì)通過(guò)局域網(wǎng)、ZigBee 技術(shù)等滿足物聯(lián)網(wǎng)通信需要?;诖?,物聯(lián)網(wǎng)系統(tǒng)感知層通信調(diào)試難度將會(huì)大大降低;(2)后端開發(fā)更加容易。對(duì)微信小程序而言,后端開發(fā)有著非常低的成本,且實(shí)際開發(fā)效率也比較高。因此,可在官方后臺(tái) API 的幫助下直接與前端對(duì)接,減輕了開發(fā)者的開發(fā)工作壓力,使其能專心進(jìn)行核心業(yè)務(wù)開發(fā)[1]。這對(duì)物聯(lián)網(wǎng)系統(tǒng)開發(fā)效率提升有著非常積極的影響;(3)應(yīng)用結(jié)構(gòu)統(tǒng)一。傳統(tǒng)系統(tǒng)開發(fā)平臺(tái)較為復(fù)雜,而以微信小程序?yàn)榛A(chǔ)進(jìn)行物聯(lián)網(wǎng)系統(tǒng)開發(fā),不僅可以滿足功能開發(fā)需求,同時(shí)應(yīng)用結(jié)構(gòu)也更加統(tǒng)一。這為開發(fā)者進(jìn)行權(quán)限、數(shù)據(jù)、存儲(chǔ)等功能集中管理創(chuàng)造了非常有利的條件;(4)擁有非常完善的學(xué)習(xí)生態(tài)。對(duì)微信開發(fā)平臺(tái)來(lái)說(shuō),本身配置了非常詳細(xì)的開發(fā)文檔,因此能夠?yàn)殚_發(fā)者開發(fā)工作開展提供一定的指導(dǎo),尤其是能夠?yàn)殚_發(fā)者提供很多簡(jiǎn)單易懂的 API,有效推動(dòng)開發(fā)工作順利開展。并且,近年來(lái)微信小程序開發(fā)越來(lái)越流行,現(xiàn)存很多開源項(xiàng)目,能夠?yàn)殚_發(fā)者提供幫助,降低了開發(fā)難度。
2硬件模塊設(shè)計(jì)
基于微信小程序的物聯(lián)網(wǎng)系統(tǒng)硬件框架如圖1所示,硬件模塊主要包括電源模塊、控制模塊和通信模塊。
電源模塊。在該模塊中,采用了220V 電源適配器,電壓為12V,通過(guò) DC 電源插孔直接與電源模塊連接。在模塊之上,設(shè)計(jì)有兩路 LED 指示燈,用于顯示系統(tǒng)實(shí)際運(yùn)行狀態(tài)。比如,系統(tǒng)處于開機(jī)、開機(jī)等狀態(tài)[2]。從電源輸出來(lái)看,主要包括三種輸出電壓類型:一是12V 電壓,通過(guò)插入 DC 電源,完成電壓輸入;二是5V 電壓,通過(guò)電源芯片 NCP1117ST50T3G 輸出;三是3.3V 電壓,通過(guò)電源芯片 NCP1117ST33T3G 輸出。同時(shí),芯片的外圍電路也比較簡(jiǎn)單,先完成兩個(gè)電容(電容容量分別是10uf 與1uf)并聯(lián),即可實(shí)現(xiàn)對(duì)直流輸入電壓的濾波處理。在此基礎(chǔ)上,再并聯(lián)一個(gè)10uf 電容,即可確保電壓輸出的穩(wěn)定性。
控制模塊。在該模塊中,采用了 ATMEGA328P 控制芯片。這種芯片最早源自于 AVR 開源硬件平臺(tái),在 Android 開發(fā)架構(gòu)中也能進(jìn)行應(yīng)用。由于平臺(tái)硬件開源,且 IDE 也比較便捷,因此降低了開發(fā)難度,開發(fā)人員無(wú)須關(guān)心底層控制邏輯,集中精力進(jìn)行業(yè)務(wù)邏輯開發(fā),可提高開發(fā)效率。
通信模塊。在該通模塊中,采用了貼片式 Wi?Fi 模組 ESPWROOM?02ESP,這一模組對(duì)其射頻性能進(jìn)行了調(diào)整,因此更能夠滿足物聯(lián)網(wǎng)系統(tǒng)的生產(chǎn)需求。除此之外,該模塊還有以下優(yōu)勢(shì):(1)Wi?Fi 功能完善,且經(jīng)過(guò)了官方認(rèn)證,不僅可以獨(dú)立應(yīng)用,還能夠搭配其他 MCU,自由組合應(yīng)用。當(dāng)模組獨(dú)立應(yīng)用時(shí),可通過(guò)外接 flash 啟動(dòng),同時(shí)在高速緩存器的幫助下,系統(tǒng)存儲(chǔ)也能夠得到有效優(yōu)化;(2)該通信模塊能夠支持基礎(chǔ)型結(jié)構(gòu)網(wǎng)絡(luò)。結(jié)合當(dāng)前的無(wú)線網(wǎng)絡(luò)標(biāo)準(zhǔn),發(fā)射功率可以自由靈活控制,且整體功能較強(qiáng),能夠滿足物聯(lián)網(wǎng)系統(tǒng)運(yùn)行各種網(wǎng)絡(luò)連接需求;(3)該模塊集成了32-Bit 內(nèi)核處理器,因此有著非常強(qiáng)大的 CPU 處理能力,處理最高時(shí)鐘頻率能夠達(dá)到160MHz,能夠滿足系統(tǒng)運(yùn)行需求。不僅如此,該模塊將絕大部分處理能力用于業(yè)務(wù)開發(fā),優(yōu)異的性能賦予其強(qiáng)大的數(shù)據(jù)處理能力,因此能夠滿足物聯(lián)網(wǎng)系統(tǒng)功能運(yùn)行要求。
3云服務(wù)搭建
在本次物聯(lián)網(wǎng)系統(tǒng)開發(fā)過(guò)程中,還自建了云服務(wù)器,在這一過(guò)程中,采用了 CentOS7.264位操作系統(tǒng)。該系統(tǒng)在當(dāng)前屬于比較常用的主流服務(wù)器操作系統(tǒng),且系統(tǒng)版本免費(fèi),可顯著降低開發(fā)成本。同時(shí),這一版本本身也比較穩(wěn)定,更新的頻率較低。因此,與普通的 Linux 系統(tǒng)相比,其更加穩(wěn)定,運(yùn)行也更加安全。此外,系統(tǒng)還有良好的兼容性,后續(xù)維護(hù)也比較方便。在啟動(dòng)云服務(wù)器實(shí)例后,可采用 WebShell 瀏覽方式,完成對(duì)云服務(wù)器的登錄。在此基礎(chǔ)上,還需要利用“阿帕奇(Apache)”完成云服務(wù)器 HTTP 服務(wù)的搭建。在這一過(guò)程中,需要先完成云服務(wù)器登錄,然后采用 yum 命令,完成對(duì)阿帕奇服務(wù)的安裝[3]。隨后啟動(dòng)阿帕奇服務(wù),將其功能納入開機(jī)啟動(dòng)服務(wù)列表之中。最后依法炮制,采用 yum 命令,完成 MySQL,PHP 安裝。通過(guò)采用上述方法,可以基本完成物聯(lián)網(wǎng)系統(tǒng)云服務(wù)器搭建。在后續(xù)開發(fā)工作中,還需要做好 SQL 數(shù)據(jù)庫(kù)、PHP 腳本開發(fā)等工作,針對(duì)阿帕奇,還應(yīng)結(jié)合系統(tǒng)的實(shí)際需求,完成針對(duì)性網(wǎng)絡(luò)服務(wù)設(shè)置工作。
4軟件設(shè)計(jì)
物聯(lián)網(wǎng)系統(tǒng)云端響應(yīng)函數(shù)。在完成上述硬件內(nèi)容設(shè)計(jì)后,需要進(jìn)行微信小程序的引入,通過(guò)微信小程序完成對(duì)物聯(lián)網(wǎng)系統(tǒng)功能的操作。為達(dá)到這一目的,需要立足系統(tǒng),完成云端響應(yīng)函數(shù)設(shè)計(jì)。在正常情況下,微信小程序會(huì)在微信客戶端之上進(jìn)行運(yùn)行,系統(tǒng)軟件運(yùn)行流程如圖2所示。因此,為了促使程序與物聯(lián)網(wǎng)系統(tǒng)進(jìn)行緊密連接,需要用到響應(yīng)函數(shù),完成程序內(nèi)容與功能的調(diào)用。與此同時(shí),還應(yīng)注重做好外網(wǎng)設(shè)備的連接工作,通過(guò)調(diào)用域名與前端 IP 地址,及時(shí)響應(yīng)云端程序服務(wù),完成對(duì)物聯(lián)網(wǎng)系統(tǒng)運(yùn)行的控制。針對(duì)系統(tǒng)軟件設(shè)計(jì)工作,必須提高對(duì)響應(yīng)函數(shù)設(shè)計(jì)的重視,如此才能通過(guò)軟件完成微信小程序功能的調(diào)用,確保程序與物聯(lián)網(wǎng)系統(tǒng)產(chǎn)生功能性通信連接。
在物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)中,僅支持個(gè)人用戶應(yīng)用系統(tǒng)。在實(shí)際進(jìn)行通信連接設(shè)計(jì)時(shí),可以直接通過(guò) Wi? Fi 局域網(wǎng)進(jìn)行小程序通信。在微信小程序客戶端也可以完成硬件配置工作,以調(diào)用域名與域值,從而在HTTPS 與 EWSS 端實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議調(diào)度。在完成協(xié)議處理后,即可通過(guò)上述設(shè)計(jì)的云端自建服務(wù)器完成訪問(wèn)工作,實(shí)現(xiàn)程序到系統(tǒng)之間的通信。除此之外,還可以在云端響應(yīng)函數(shù)中直接進(jìn)行接口信息的整合,從而有效滿足自建云端服務(wù)器與微信小程序之間的通信需求,確保小程序操作功能能夠通過(guò)網(wǎng)絡(luò)通信被物聯(lián)網(wǎng)系統(tǒng)所接收,并及時(shí)進(jìn)行響應(yīng)。基于此,在構(gòu)建微信小程序的過(guò)程中,可以選擇引入 lamp 框架結(jié)構(gòu),實(shí)現(xiàn)對(duì)終端數(shù)據(jù)的同步處理。與此同時(shí),還能夠在 Web 應(yīng)用中采用數(shù)據(jù)長(zhǎng)連接方式完成連接請(qǐng)求的發(fā)送。最后,在微信小程序的云空間中借助函數(shù)調(diào)用功能,實(shí)現(xiàn) API 調(diào)用。上述函數(shù)具體表示如下:
accountList =∑adapter(γ i )× n?? (1)
式(1)中,accountList 代表的是微信小程序云端調(diào)用清單,γ代表的是異步信息,i 代表的是在調(diào)用行為出現(xiàn)后函數(shù)計(jì)算實(shí)際迭代的次數(shù),n 代表的是具體的調(diào)用信息量。在上述函數(shù)的指導(dǎo)下,可以在微信小程序中完成信息調(diào)用的操作,從而直接從物聯(lián)網(wǎng)系統(tǒng)下的傳感器中獲得相關(guān)控制參數(shù)信息。
引入數(shù)據(jù)庫(kù)完成物聯(lián)網(wǎng)系統(tǒng)運(yùn)行流程的規(guī)劃。完成響應(yīng)函數(shù)設(shè)計(jì)工作后,標(biāo)志著微信小程序與物聯(lián)網(wǎng)系統(tǒng)正式進(jìn)行了通信響應(yīng)連接。在此基礎(chǔ)上,還需要將調(diào)用數(shù)據(jù)信息與前端數(shù)據(jù)進(jìn)行融合,才能更好地推動(dòng)物聯(lián)網(wǎng)系統(tǒng)穩(wěn)定、順利運(yùn)行。以物聯(lián)網(wǎng)系統(tǒng)運(yùn)行需求為依據(jù),通過(guò)建立 SQL Server 數(shù)據(jù)庫(kù),統(tǒng)一對(duì)物聯(lián)網(wǎng)系統(tǒng)的終端數(shù)據(jù)信息與微信小程序中的用戶信息進(jìn)行管理。其中,對(duì)于微信小程序的用戶而言,可以結(jié)合不同的用戶角色以及功能,完成對(duì)應(yīng)的數(shù)據(jù)庫(kù)表格建立,并以此為依據(jù),完成數(shù)據(jù)庫(kù)的構(gòu)建。
在數(shù)據(jù)庫(kù)中,除了主鍵以外,其他內(nèi)容均采用 archar( n)方式進(jìn)行定義。基于此,能夠?yàn)楹罄m(xù)數(shù)據(jù)庫(kù)表格內(nèi)容修改提供便利。在成功建立系統(tǒng)數(shù)據(jù)庫(kù)后,還需要基于物聯(lián)網(wǎng)系統(tǒng)軟件運(yùn)行過(guò)程完成數(shù)據(jù)庫(kù)融合,并對(duì)物聯(lián)網(wǎng)系統(tǒng)軟件程序運(yùn)行流程進(jìn)行科學(xué)合理的規(guī)劃。與此同時(shí),在 services 服務(wù)中,還需要對(duì)數(shù)據(jù)信息進(jìn)行封裝處理。相關(guān)處理內(nèi)容復(fù)雜,具體為系統(tǒng)內(nèi)小程序信息增刪改查等功能。在實(shí)際進(jìn)行數(shù)據(jù)庫(kù)運(yùn)行調(diào)用時(shí),應(yīng)遵循以下流程:首先,執(zhí)行 db.insert 程序,完成數(shù)據(jù)插入,即在數(shù)據(jù)庫(kù)表格中,插入一條數(shù)據(jù)信息。然后,在執(zhí)行使用 db.delete 程序,完成數(shù)據(jù)刪除,即在數(shù)據(jù)庫(kù)表格中,刪除一條指令。采用上述方式,可以對(duì)物聯(lián)網(wǎng)系統(tǒng)內(nèi)信息進(jìn)行處理,滿足物聯(lián)網(wǎng)系統(tǒng)的運(yùn)行需求。
5實(shí)用性檢測(cè)
在完成基于微信小程序的物聯(lián)網(wǎng)系統(tǒng)硬件與軟件設(shè)計(jì)后,為了對(duì)系統(tǒng)的功能實(shí)用性進(jìn)行驗(yàn)證分析。本文提出了一種“黑白盒測(cè)試方法”,以對(duì)物聯(lián)網(wǎng)系統(tǒng)運(yùn)行進(jìn)行檢測(cè)。通過(guò)對(duì)比實(shí)驗(yàn),測(cè)試計(jì)算機(jī)終端輸入系統(tǒng)測(cè)試指令的有效性。在這一過(guò)程中,需要將系統(tǒng)中的傳感器與主控板以及通信接口進(jìn)行連接,同時(shí)注意保持連接的標(biāo)準(zhǔn)化。在此基礎(chǔ)上,打開電源,實(shí)現(xiàn)對(duì)計(jì)算機(jī)的恒流供電。此時(shí),整個(gè)物聯(lián)網(wǎng)系統(tǒng)啟動(dòng),且處于正常運(yùn)行狀態(tài)下。隨后,即可對(duì)物聯(lián)網(wǎng)系統(tǒng)運(yùn)行的監(jiān)控區(qū)域?qū)嵤┮欢ǖ母蓴_,用于檢測(cè)系統(tǒng)功能是否運(yùn)行正常。
在具體進(jìn)行干擾時(shí),可采用多種方法,如可以選擇切斷電路、關(guān)閉燈光等。此時(shí),系統(tǒng)傳感器感會(huì)自動(dòng)感應(yīng)功能覆蓋區(qū)內(nèi)的異常變化情況,隨后會(huì)啟動(dòng)環(huán)境異常檢測(cè)功能,通過(guò)傳感器感知周圍環(huán)境信息,并通過(guò)網(wǎng)絡(luò)進(jìn)行信息傳輸。如果物聯(lián)網(wǎng)系統(tǒng)對(duì)環(huán)境檢測(cè)識(shí)別不存在錯(cuò)誤,物聯(lián)網(wǎng)終端用戶會(huì)將相應(yīng)的信息字符串以二進(jìn)位制數(shù)據(jù)的方式進(jìn)行傳輸。此時(shí),在局域網(wǎng)之內(nèi)的計(jì)算機(jī)前端會(huì)接收到信息,微信小程序也會(huì)向用戶發(fā)送異常消息提醒。每順利執(zhí)行1次上述操作,便表明物聯(lián)網(wǎng)系統(tǒng)通過(guò)了上述實(shí)用性功能測(cè)試。
6總結(jié)
以微信小程序?yàn)榛A(chǔ)的物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)與開發(fā)具有系統(tǒng)性和專業(yè)性,在實(shí)際進(jìn)行設(shè)計(jì)時(shí),應(yīng)充分利用微信小程序進(jìn)行物聯(lián)網(wǎng)系統(tǒng)開發(fā)的優(yōu)勢(shì),同時(shí)從系統(tǒng)的硬件設(shè)計(jì)、軟件設(shè)計(jì)出發(fā),完善系統(tǒng)架構(gòu),并從云端服務(wù)設(shè)計(jì)入手,賦予物聯(lián)網(wǎng)系統(tǒng)良好的信息服務(wù)功能,從而滿足物聯(lián)網(wǎng)系統(tǒng)運(yùn)行的需要。
參考文獻(xiàn):
[1]張輝,苑詠哲,王汶君.基于移動(dòng)物聯(lián)網(wǎng)的公交安全與智能系統(tǒng)[ J].電子設(shè)計(jì)工程,2020,28(9):37?40.
[2]顧新萍.基于微信小程序的智能家居控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[ D ].青島:青島大學(xué),2019.
[3]張瑞松,馬志財(cái).基于物聯(lián)網(wǎng)的家庭智能氣候站設(shè)計(jì)[ J].自動(dòng)化儀表,2020,41(5):71?74.
作者簡(jiǎn)介:
陳波(1989—),碩士,研究方向:數(shù)據(jù)庫(kù)。