楊吉歡,李娟,周拓,徐思雨,谷銀珂,林沁瀚



摘要:隨著人們生活水平的提高,生活垃圾的種類和數量越來越多,為減少環境污染,提高資源利用率,許多城市實施垃圾分類。“垃圾分類小助手”是一款基于微信云開發的微信小程序,該小程序利用模糊查詢、圖像識別等技術,實現了垃圾信息查詢、拍照識別垃圾分類、視頻宣傳和益智答題等功能,為垃圾分類困難者提供了有效的幫助,保障了垃圾資源的合理運用。
關鍵詞:垃圾分類;云開發;信息查詢;拍照識別;微信小程序
中圖分類號:TP311.1? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)33-0042-03
1 引言
近幾年,我國大力推廣垃圾分類知識普及活動,加快推進全民垃圾分類工作,為建設綠色環保家園提供相應保障。但由于垃圾分類工作在國內許多城市還沒有太多實踐經驗,導致垃圾分類踐行效果與其倡導的做法相比仍有一定的差距,人們的自主意識有待提高[1]。垃圾分類是一種新的習慣、新的素養,在提高群眾垃圾分類意識上,需要政府采取更多的措施,引導和幫助群眾樹立正確的生活方式。廣州城市管理和綜合執法局開發了一套垃圾分類信息化管理系統[2],助力垃圾分類高質量發展。
基于當下研究現狀,本文提出設計一款名為“垃圾分類小助手”的微信小程序,助力于垃圾分類高質量發展。“垃圾分類小助手”是基于微信云開發的小程序,具有多種方式幫助群眾了解垃圾分類常識,培養群眾對垃圾分類的意識,提高垃圾分類達標率,從而有效地進行資源利用回收,共建美麗家園。
2 關鍵技術
2.1 微信小程序及其框架
微信小程序作為一種內存小、無須安裝并自帶流量的應用,用戶可以通過微信搜索隨時使用,又無須考慮安裝卸載的問題。微信小程序的開發首先要具備微信開發者工具編譯器,并在小程序官網獲取自己的App ID,建立一個小程序項目。在小程序項目中,通過 WXML視圖和WXSS 樣式實現了小程序的UI界面設計。WXML展示的是小程序頁面的基本框架結構,WXSS為框架和元素提供了相應樣式。
微信小程序提供了一套名為MINA開發框架,它具有較高的運行速度,對于小程序端有著高度一致的呈現。MINA框架包括視圖層、邏輯層以及系統層。視圖層由多個Page頁面組成,邏輯層采用Javascript語言進行開發,開發者可以方便地調用其豐富的函數庫,對于初學者來說極易學習和上手開發。在程序運行時,邏輯層對數據進行修改,隨后視圖層根據邏輯層反饋的結果做出相應的更新,系統層是視圖層與邏輯層通信的紐帶,允許小程序通過調用API從而提高用戶體驗。
2.2 云開發技術
2018年,微信推出了小程序云開發的功能。小程序云開發基于Serverless云服務的理念,為開發者提供完整的服務支持,開發者只需寫完函數并部署到Serverless即可,且后期無須關心服務器的維護。微信為云數據庫中的集合、云端資源和云函數提供了可視化的管理,并且為云開發提供了許多API。云開發為開發人員提供了云數據庫、云存儲和云函數3種基本功能[3]。云函數的寫法與在本地定義的JavaScript方法沒有很大差別,在調用云函數時,會將定義好的代碼放在Node.js環境中執行,所有開發者都共有這段代碼,大大提高開發效率[4]。云端也可以存放AppID、OpenID 等數據信息,方便開發者保存調用。
云開發與傳統服務器相比,較為容易,開發者能更好地上手。對于一個小程序后臺的快速組建,云開發是一個不錯的選擇。通過云開發,開發者不用把精力和時間都花在服務器的注冊搭建以及設計維護上,相當于弱化了服務器的功能。云開發將后端封裝成BaaS服務,并提供了相應的SDK給開發者,開發者可以像調用函數一樣使用后端服務,極大減輕開發難度。
2.3 模糊查詢技術
模糊查詢是指用戶通過輸入關鍵字查詢相關內容,并顯示在頁面上。目前小程序云開發還未提供模糊查詢機制,因此需要通過構造正則表達式來完成云開發的模糊查詢。利用小程序提供的db.RegExp構造函數創建正則表達式,其中regexp屬性填寫用戶需要查詢的內容,options屬性支持i,m,s三個flag,注意,使用s這個flag時要先構造一個正則對象。
2.4 百度圖像識別技術
百度AI開放平臺提供的通用物體和場景辨認接口支持識別10萬個常見物體及場景,能夠返回相應的名稱結果[5]。該小程序利用百度AI開放平臺中的圖像識別的通用物體和場景識別接口,實現拍照識別功能,幫助用戶更好的識別垃圾,提高分類效率。
1)百度云開發注冊及配置
首先登錄百度AI開放平臺官網,注冊百度賬號,并進入百度云智能管理中心,點擊創建圖像識別應用,創建完成后打開,可以看到相應的API Key,Secret Key,需要在小程序中進行調用。
2)獲取Access Token
Access Token作為小程序全局唯一接口調用憑據,大多數接口的調用都需要Access Token,開發者需妥善保存。該小程序中使用POST方法向百度授權服務地址發送請求,并在URL中填寫好grant_type,client_id,client_secret三個參數,其中第一個參數固定為client_credentials,后兩個分別是應用的API Key和Secret Key,都可以在百度AI平臺管理應用中查看。
3)服務器域名配置
登錄微信小程序官網,點擊開發管理的開發設置,填寫服務器域名為百度接口域名。只有在小程序后臺配置合法域名后,才能調用該接口。注意,服務器域名配置僅支持https和wss協議,且每個月只能修改5次。
3 系統設計
3.1 數據庫設計
根據對系統的需求分析,共設計了四個數據表,分別為:管理員信息表,用于存儲管理員的相關信息;垃圾分類信息表,用于存儲垃圾類別;垃圾信息庫表,用于存儲垃圾信息;益智題庫表,用于存儲答題練習中的題目。
其中垃圾分類信息是利用Python技術抓取的,并將其轉換為JSON格式,一條垃圾分類數據對應一個JSON對象。通過轉換,得到了近萬條垃圾分類數據,并將其上傳至云數據庫。對于垃圾分類數據集合,系統將其權限設置為所有用戶都可讀,僅創建者可讀寫,各集合通過唯一的ID值相互引用數據,保障數據庫的安全。
3.2 功能設計
垃圾分類小助手微信小程序一共設計了六個功能,包括:用戶管理、垃圾分類常識、視頻宣傳、益智答題練習、垃圾信息查詢和拍照識別等,如圖1所示。
用戶管理:設置了管理員用戶和普通用戶兩類。其中,普通用戶首次登錄時,需要授權才能登錄,管理員登錄后具有完善垃圾模塊。
垃圾分類常識:該模塊大體介紹了可回收垃圾、濕垃圾、干垃圾、有害垃圾四類垃圾的相關常識和垃圾投放的要求。
視頻宣傳:該模塊提供了垃圾分類的相關視頻科普,分類宣傳可回收垃圾、濕垃圾、干垃圾、有害垃圾四類垃圾。視頻較為簡短,有助于用戶快速了解。
益智答題練習:該模塊提供了練習模式和答題模式。其中,答題模式將自動組卷10道垃圾分類題目,要求用戶在10分鐘內完成答題。當所有題目完成之后,用戶才能交卷,交卷后即時查看測試成績和答案。
垃圾信息查詢:用戶可以查詢相關垃圾的關鍵字,通過模糊搜索到相應的垃圾分類信息。
拍照識別:用戶通過手機拍照,小程序利用百度AI開放平臺分析圖像,自動識別出照片中的有關垃圾。小程序將彈窗提供匹配物品的選項供用戶選擇,選定后即可查看垃圾所屬的類別。
4 系統實現
4.1 用戶管理模塊的實現
該模塊利用微信自帶的授權登錄功能,調用getOpenid云函數,獲取用戶的微信頭像和微信昵稱,并顯示在“我的”頁面上。管理員的_openid 存在于管理員信息表中,登錄時會把用戶的_openid 與管理員的_openid 做匹配,管理員登錄后能對普通用戶反饋的搜索不到的垃圾有關分類信息進行添加,解決垃圾信息完善問題,普通用戶則沒有。
4.2 垃圾分類常識模塊的實現
該模塊采用小豬佩奇的四種不同形態簡單判斷垃圾類別,形象而生動。用戶可點擊左側分類欄,即可查看四種分類的概念、主要包括哪些垃圾以及垃圾投放的要求,幫助用戶快速了解垃圾分類的常識。如圖2所示。
4.3 視頻宣傳模塊的實現
該模塊提供了干垃圾、可回收垃圾、濕垃圾、有害垃圾四種垃圾各一分鐘的視頻介紹,用戶可點擊查看四種垃圾分類的視頻,可隨時播放或暫停。通過簡短的視頻介紹,用戶可以快速了解垃圾分類的相關常識,增強垃圾分類意識。
4.4 益智答題練習模塊的實現
答題模式下,系統將自動抽取10道垃圾分類的題目,用戶可以點擊上一題或者下一題進行答題。用戶答題正確,選中框會變成綠色,答錯的話選中框會變成紅色。用戶每完成一題,題目下方將自動顯示出正確答案。練習模式的題目和答題模式的題目一樣,但是練習模式可以直接查看答案,方便用戶在測試前進行模擬練習。
4.5 垃圾信息查詢模塊的實現
用戶可以在搜索框內輸入需要查詢的垃圾關鍵字,通過模糊搜索以及數據分頁加載技術,可以搜索到含有關鍵字的相關垃圾。用戶點擊想要查看的垃圾后,頁面會顯示該垃圾所屬分類以及該分類里面主要包括哪些垃圾,這樣可以大大提高搜索效率,幫助用戶更好的查詢。
4.6 拍照識別模塊的實現
用戶點擊拍照識別后,小程序首先將拍照時在微信本地緩存的圖片轉換成base64編碼,通過token請求調用百度的圖像識別API,然后將轉換后的圖片上傳到百度圖像進行識別。將識別之后的結果返回到小程序,再渲染到頁面彈窗。用戶勾選想要查看的垃圾后,小程序進行模糊搜索,再將符合條件的數據渲染到頁面上,這樣也盡可能提高了搜索正確率和拍照效率。圖3展示了拍照識別的全流程。
5 結束語
為了更好地提高居民垃圾分類意識,促進智能化垃圾分類,共建美好家園,本文通過對市場需求的調研和國內發展現狀的分析,設計了一款基于微信云開發的“垃圾分類小助手”小程序。該小程序積極響應國家垃圾分類政策,借助人工智能技術,為群眾提供方便快捷的垃圾查詢服務,借助微信云開發技術,為人們提供益智答題服務,最終使垃圾分類更加全民化、智能化、寓教于樂,對于減少環境污染,推動資源回收利用提供有效幫助。
參考文獻:
[1] 朱莞怡,胡俊祥,王宇,等.國內垃圾分類現狀及對策研究[J].中國資源綜合利用,2022,40(4):136-138.
[2] 常燕青,蔡靜晶,常中龍,等.談國內外典型城市垃圾分類現狀[J].山西建筑,2021,47(13):1-3.
[3] 陸禹文.基于微信小程序的移動學習平臺的設計、開發及應用[D].蘭州:蘭州大學,2020.
[4] 周政.基于小程序云開發的沼氣工程監控系統設計[D].桂林:桂林理工大學,2020.
[5] 鄧斌權,李劍波,瞿先超.基于云開發和微信小程序的垃圾分類系統實現[J].電腦知識與技術,2020,16(7):82-84.
【通聯編輯:謝媛媛】