秦瑀
(1.柳州鐵道職業技術學院 動力技術學院,廣西柳州,545000;2.蘭州交通大學 自動化與電氣工程學院,甘肅蘭州,730000)
微信小程序具有簡便快速的特點,使其成為了當下很受歡迎的開發語言之一。小程序中能夠申請HTTPS 協定,比HTTP 協定更為安全可靠,因為數據信息都是通過加密協議傳送的,因此能夠提高應用的安全性。智能工具柜應用程序則以微信為主要開發和發布的平臺,為實訓室智能工具柜的開發提供了一個較好的解決方案[1]。
本研究運用STM32,結合微信中的小程序,設計了工具柜系統。這一系統的特點是:方便、簡潔、智能化,與此同時,還可以進行再次開發。
實訓室智能工具柜系統的使用者能夠借助微信等小程序來使用開啟工具格口,并自行取用所需工具。同時后臺能夠記錄借用人以及借用的設備、借用時間等,以完成對實訓室工具的管理工作,具體項目內容包括:
(1)使用實訓室智能工具柜的方式
用戶需透過利用微信上的掃一掃功能,通過對柜上二維碼掃描就可以進入微信小程序的主頁,看到每種工具的剩余量,選擇需要的工具和數量。
(2)用戶登錄權限要求
該智能工具柜用于校園實訓室,管理人員能夠設置權限,選定部分老師或其他指定人員能夠取用,其他人無權限。
使用者可以通過微信小程序注冊,但若是首次應用本操作系統,則微信小程序就必須切換到微信認證界面。當使用者單擊權限按鍵后,使用者的個人信息將經由微信小程序傳入后臺java 代碼,然后再經由java 將使用者的個人信息保存在數據庫系統中,并給微信小程序返回下一個使用者的唯一標識。完成權限后就會切換到主頁查詢儲物箱的個人信息,但如若二次使用本操作系統時,則必須徑直跳轉至主頁,而無須認證或注冊才能查詢首頁的個人信息記錄。
(3)智能工具柜狀態信息
完成授權并進入到主頁之后,就可以直接展示所選擇智能工具柜中的所有工具信息狀況,用戶可以依照自身情況,檢索相關的關鍵詞、分類,進而找到所需工具。界面能夠展示工具的剩余數量、狀況好壞等相關信息。
(4)工具的取用和歸還
儲物柜的每個小格子內放一件工具,當用戶從主頁查看智能工具柜狀態信息后,就可以點擊選定工具。智能工具柜的門鎖自動開啟,并提示用戶及時取出東西。同時,后臺將記錄取用人的信息和聯系方式,以及剩余柜中的工具數量,以便于工具的管理以及方便其他用戶的使用。用戶使用完畢后,將工具放回原有的格口并關閉,并通過界面點擊歸還,完成使用。
(5)提醒歸還功能
使用者取用工具后進行使用,使用時間超過一定限額,則會通過小程序定時發送歸還提醒,以免用戶忘記歸還。提醒時間可以由后臺進行設定。
(6)工具的維護
用戶在借用工具時,后臺記錄下使用取用人的個人信息以及取用的工具和取用時間,從而確定工具的去向,便于實訓教師管理。使用人在使用過程中如果工具損壞,或者發現工具損壞,可以通過改程序進行報錯,后臺管理人員能夠看到保修信息,及時進行工具維護[2]。
智能工具柜設計上包括硬件和軟件兩部分。硬件方面運用的是STM32F103 單片式微機,結合電氣鎖、供電線路、GPRS模組等相關配置。軟件方面運用微信中的小程序,與此同時,在云端建立相應的服務器,對產品進行研發、推廣。學生或老師可以運用小程序,進行相關內容的查找。通過云服務器和智能工具柜可以進行即時的數據交互更新。
對于下位機系統而言,其硬件部分以STM32 內控體系為重點內容,進而使得信息得以傳送、設備處于控制范圍。在硬件部分的設計過程中,內容涵蓋了處理器模塊的單元化設計、硬件模塊的選擇、原理實施、構建硬件開發板。
對于下位機系統而言,其軟件部分主要涵蓋了指令、驗證、主程序、窗口模塊、藍牙模塊等內容,進而使得小程序之間的數據,可以進行雙向傳遞,對數據安全進行驗證,同時保證硬件端,可以執行相關指令。就微信小程序設計情況而言,主要有小程序客戶端、服務器端。先是在服務器端,構建、生成云服務器。之后,對相關的邏輯、概念進行設計,進而使得數據可以得到較快的更新、儲存。因為用戶在進入小程序的界面,所以,還需要對注冊功能、設備的模塊進行設計,進而使得學生或老師可以運用小程序,對工具進行選用。運用相關的實驗體系,對其進行有效性測試,結果得出:在小程序智能基礎上,構建的工具柜控制系統,達到了預期的目標,且可以穩定運行。此系統對實訓室工具智能化、便捷化管理的研究具有一定價值[3]。
這一機制主要是以小程序作為基礎,運用一種非接觸式的智能模式,對其進行操作。所以,首先要對小程序進行一定的了解、掌控。對于小程序來說,其架構構成基礎是MINA 其中的核心內容,同時與相關的即時響應信息,融合在一起。這一系統涵蓋了邏輯層、視圖層等兩個主要內容。其架構可以同時滿足數據、視圖的更新、調整。如果視圖需要更新時,那么便會對邏輯層數據進行相對應的更改,視圖層內容,會依照相關信息,同步更新。其對應的框架是圖1 的內容。

圖1 小程序框架圖
在框架圖中我們可發現,視圖層是由較多個Page 組成的,而對于不同的Page 而言,其涵蓋了WXSS、WXML 兩種文檔,相關的開發內容,可以運用WXML,來對基本視圖進行設置。運用WXSS,來對網布進行開發。在JavaScript 語言的輔助作用下,邏輯層會對邏輯處、相關接口,進行處理、調用。JSBridge會將邏輯層、視圖層,進行緊密地相連,進而實現數據的交互作用。顧客可以在小程序中,看見相關操作,同時會進行觸發。在這之后,在JSBridge 的作用下,把觸發事件,傳輸到其邏輯層。邏輯層便會對API 接口進行調作,進而找到相應的邏輯函數,同時執行函數操作。在這之后,邏輯層便會得到所要的信息,同時對相關信息進行處理,再通過JSBridge,傳遞到視圖層中,用戶便會看到相應的信息答復、更新,這便是顧客與小程序之間的交互過程[4]。
硬件部分,應對小程序端發送的數據,進行接受,與上同時應依照相關數據,對控制指令進行實施。構建硬件平臺時,應考慮其可靠性、穩定性。系統的硬件設計,涵蓋了預留升級模塊、核心模塊、系統硬件三個部分,其結構設計為圖2 中內容。主要有元器件、主控芯片的選擇類型,通訊過程。MCU 主控芯片,運用ST 公司的STM32F407ZGT6,其性能較高;主控模塊運用八位串行輸入方式;74HC595 為并行輸出芯片;檢測模塊是8 位并行輸入,74HC165 為串行輸出芯片;BLE 低功耗的藍牙模塊,作為無線通訊;CC2541 是主芯片。本體系中還具有GPRS 模塊、232 串口設備,以此來作為預留升級的相應模塊,為未來的系統升級奠定一定的基礎。DB9 接口作為串口,方便以來的調試工作,MAX232 為電平轉換芯片,用來作為以后在進行外接時的串口屏;運用SIM800A 驅動GPRS模塊,對于數據的傳送類型進行了拓展,為未來的服務,提供了堅實基礎;除此之外,這一系統中,也留出了較多的擴充口,為未來系統的升級、功能的增加,提供便利[5]。

圖2 硬件系統總體結構圖
本設計運用STM32F407ZGT6,作為為重要的處理器模組,其基本原理中涵蓋了:數據處理器晶片、外圍高速度晶體振蕩器集成電路(供給操作系統時鐘頻段)、外圍低速晶振電路(為RTC 供給時鐘頻段)、開機選擇復位集成電路、指示燈集成電路等。根據原理,可以看出:芯片的外部,接了兩個時鐘,這兩個時鐘在外接晶振方式下,進行連接,依照其頻率情況,將兩者分別規定為低速、高速時鐘。外部的高速時鐘,其電路由8MHz 高速晶振,來提供其時鐘頻率。外部的低速時鐘,其電路運用32.768KHz 低速晶振,來提供RTC 供應頻率;圖中也體現了啟動端的選擇電路,引腳BOOTO,是以跳線的方式,還對選GND、VCC 進行選擇的,進而得出系統所運用的適宜的啟動方式。由于通常是在片上FLASH 啟動,所以由BOOTO 接GND[6]。
這一系統,運用74HC595 模塊,對電磁鎖進行管理,進而達到開柜的相關運算,74HC595 是具有八個串行式的進入、并行式出口的位移存儲器。在其輸出端,提供高電平、低電平、高阻抗輸出模式。這一模塊,具有一定的級聯能力,模塊中的級聯輸出引腳,連接了下一個595 芯片數據輸入的引腳,這一功能,極大程度地對不同的設備進行相應對應的控制。這樣的設計大幅度地降低了開發周期,與此同時,節約了成本。現階段,74HC595 芯片的特點是:能耗低、體積小、穩定性強、經濟實用、開發周期短,所以在不同的應用中,以嵌入式開發廣為應用。
根據74HC595 芯片的引腳,并行輸出相應信息,對8 個開鎖模塊進行驅動。若依照需要,對級聯進行處理,那么便可以形成Nx8 位并行輸出,進而對較多的電磁鎖,實現相對應的符合邏輯的控制,所以便可以對較多的儲物箱格進行分別對應的控制。鎖的動作、驅動電路,運用光耦合器隔離,這是光媒介的一種電路信號傳遞方式。其特點是:體積小、成本低、穩定性強、隔離性好等,所以被廣泛使用在不同的電路。在這樣的方式下,驅動電路端的信號,會耦合到動作電路端,之后在三極管的電流作用下,達到功能放大效果,便會驅動電磁鎖,最終,使得開鎖實現。在控制模塊中,鎖的動作電路電壓,大于驅動電路電壓。但是,電路中的光耦能也會驅動電路電壓,使其與動作電路電壓,完全隔離開,進而使得高電壓,不會竄入到控制芯片中,避免了控制芯片的破損,使得電路處于安全狀態[7]。
智能工具系統下位機部分,其功能的實現,不但要對其中的硬件部分,實施設計,與此同時,還應對其中的軟件部分,進行設計、開發。系統的軟件設計涵蓋了:主控制器內設計、軟件開發情況。后者明確運用Keil 公司的MDK5,為相應的開發環境,運用庫函數,對程序進行開發。前者則是在STM32 主控制臺內的編程,當設計控制臺內編程時,運用依照功能分塊的模式,使得不同的程序,均可以實現其功能,這其中涵蓋了:藍牙模塊、主程序、串口模塊等相關程序設計。圖3為程序設計情況。

圖3 系統軟件設計方案
軟件開發方式主要的寄存器、庫函數兩種方式,它們的優、缺點,這間存在一定關系。開發庫函數是,應把宏、函數等資源,進行分別對應的配置,開發工作者運用調用固件庫中的函數,來對寄存器進行配置,最后再進行運算。寄存器開發方式:在功能寄存器中,輸入相應的配置參數,盡管在編程過程中,代碼所使用的空間不大,運行速度快,然而,其開發的周期較長,與此同時STM32 單片機,有可達到數百個寄存器。若為了熟練掌握不同的寄存器特點,應多次查看相關的芯片手冊,如此才可以精準地對STM32 進行使用、配置。所以,這一體系運用的是庫函數的開發法,在開發時便不用了解寄存器的配置方式,只要依照庫函數的調用方式,來對STM32 的軟件,進行相應的開發,這便可以降低其開發周期,使得代碼的調試更為便捷,與此同時,也為未來的系統升級、功能增加等功能拓展奠定了一定的基礎。圖4 為寄存器、庫函數的開發方式[8]。

圖4 庫函數與寄存器開發方式
本項目通過微信小程序相關軟件技術與STM32 單片機和GPRS 通訊模塊等硬件端設備相配合,設計了一款智能工具柜,為高職院校的實訓室工具管理提出了一種現代化和信息化的解決方案。智能工具柜面向老師、學生等用戶,操作更加便捷。對于實訓教師或者管理員,該智能工具柜使得實訓室工具管理更加智能、可靠。