秦瑀
(1.柳州鐵道職業(yè)技術學院 動力技術學院,廣西柳州,545000;2.蘭州交通大學 自動化與電氣工程學院,甘肅蘭州,730000)
微信小程序具有簡便快速的特點,使其成為了當下很受歡迎的開發(fā)語言之一。小程序中能夠申請HTTPS 協(xié)定,比HTTP 協(xié)定更為安全可靠,因為數(shù)據信息都是通過加密協(xié)議傳送的,因此能夠提高應用的安全性。智能工具柜應用程序則以微信為主要開發(fā)和發(fā)布的平臺,為實訓室智能工具柜的開發(fā)提供了一個較好的解決方案[1]。
本研究運用STM32,結合微信中的小程序,設計了工具柜系統(tǒng)。這一系統(tǒng)的特點是:方便、簡潔、智能化,與此同時,還可以進行再次開發(fā)。
實訓室智能工具柜系統(tǒng)的使用者能夠借助微信等小程序來使用開啟工具格口,并自行取用所需工具。同時后臺能夠記錄借用人以及借用的設備、借用時間等,以完成對實訓室工具的管理工作,具體項目內容包括:
(1)使用實訓室智能工具柜的方式
用戶需透過利用微信上的掃一掃功能,通過對柜上二維碼掃描就可以進入微信小程序的主頁,看到每種工具的剩余量,選擇需要的工具和數(shù)量。
(2)用戶登錄權限要求
該智能工具柜用于校園實訓室,管理人員能夠設置權限,選定部分老師或其他指定人員能夠取用,其他人無權限。
使用者可以通過微信小程序注冊,但若是首次應用本操作系統(tǒng),則微信小程序就必須切換到微信認證界面。當使用者單擊權限按鍵后,使用者的個人信息將經由微信小程序傳入后臺java 代碼,然后再經由java 將使用者的個人信息保存在數(shù)據庫系統(tǒng)中,并給微信小程序返回下一個使用者的唯一標識。完成權限后就會切換到主頁查詢儲物箱的個人信息,但如若二次使用本操作系統(tǒng)時,則必須徑直跳轉至主頁,而無須認證或注冊才能查詢首頁的個人信息記錄。
(3)智能工具柜狀態(tài)信息
完成授權并進入到主頁之后,就可以直接展示所選擇智能工具柜中的所有工具信息狀況,用戶可以依照自身情況,檢索相關的關鍵詞、分類,進而找到所需工具。界面能夠展示工具的剩余數(shù)量、狀況好壞等相關信息。
(4)工具的取用和歸還
儲物柜的每個小格子內放一件工具,當用戶從主頁查看智能工具柜狀態(tài)信息后,就可以點擊選定工具。智能工具柜的門鎖自動開啟,并提示用戶及時取出東西。同時,后臺將記錄取用人的信息和聯(lián)系方式,以及剩余柜中的工具數(shù)量,以便于工具的管理以及方便其他用戶的使用。用戶使用完畢后,將工具放回原有的格口并關閉,并通過界面點擊歸還,完成使用。
(5)提醒歸還功能
使用者取用工具后進行使用,使用時間超過一定限額,則會通過小程序定時發(fā)送歸還提醒,以免用戶忘記歸還。提醒時間可以由后臺進行設定。
(6)工具的維護
用戶在借用工具時,后臺記錄下使用取用人的個人信息以及取用的工具和取用時間,從而確定工具的去向,便于實訓教師管理。使用人在使用過程中如果工具損壞,或者發(fā)現(xiàn)工具損壞,可以通過改程序進行報錯,后臺管理人員能夠看到保修信息,及時進行工具維護[2]。
智能工具柜設計上包括硬件和軟件兩部分。硬件方面運用的是STM32F103 單片式微機,結合電氣鎖、供電線路、GPRS模組等相關配置。軟件方面運用微信中的小程序,與此同時,在云端建立相應的服務器,對產品進行研發(fā)、推廣。學生或老師可以運用小程序,進行相關內容的查找。通過云服務器和智能工具柜可以進行即時的數(shù)據交互更新。
對于下位機系統(tǒng)而言,其硬件部分以STM32 內控體系為重點內容,進而使得信息得以傳送、設備處于控制范圍。在硬件部分的設計過程中,內容涵蓋了處理器模塊的單元化設計、硬件模塊的選擇、原理實施、構建硬件開發(fā)板。
對于下位機系統(tǒng)而言,其軟件部分主要涵蓋了指令、驗證、主程序、窗口模塊、藍牙模塊等內容,進而使得小程序之間的數(shù)據,可以進行雙向傳遞,對數(shù)據安全進行驗證,同時保證硬件端,可以執(zhí)行相關指令。就微信小程序設計情況而言,主要有小程序客戶端、服務器端。先是在服務器端,構建、生成云服務器。之后,對相關的邏輯、概念進行設計,進而使得數(shù)據可以得到較快的更新、儲存。因為用戶在進入小程序的界面,所以,還需要對注冊功能、設備的模塊進行設計,進而使得學生或老師可以運用小程序,對工具進行選用。運用相關的實驗體系,對其進行有效性測試,結果得出:在小程序智能基礎上,構建的工具柜控制系統(tǒng),達到了預期的目標,且可以穩(wěn)定運行。此系統(tǒng)對實訓室工具智能化、便捷化管理的研究具有一定價值[3]。
這一機制主要是以小程序作為基礎,運用一種非接觸式的智能模式,對其進行操作。所以,首先要對小程序進行一定的了解、掌控。對于小程序來說,其架構構成基礎是MINA 其中的核心內容,同時與相關的即時響應信息,融合在一起。這一系統(tǒng)涵蓋了邏輯層、視圖層等兩個主要內容。其架構可以同時滿足數(shù)據、視圖的更新、調整。如果視圖需要更新時,那么便會對邏輯層數(shù)據進行相對應的更改,視圖層內容,會依照相關信息,同步更新。其對應的框架是圖1 的內容。
圖1 小程序框架圖
在框架圖中我們可發(fā)現(xiàn),視圖層是由較多個Page 組成的,而對于不同的Page 而言,其涵蓋了WXSS、WXML 兩種文檔,相關的開發(fā)內容,可以運用WXML,來對基本視圖進行設置。運用WXSS,來對網布進行開發(fā)。在JavaScript 語言的輔助作用下,邏輯層會對邏輯處、相關接口,進行處理、調用。JSBridge會將邏輯層、視圖層,進行緊密地相連,進而實現(xiàn)數(shù)據的交互作用。顧客可以在小程序中,看見相關操作,同時會進行觸發(fā)。在這之后,在JSBridge 的作用下,把觸發(fā)事件,傳輸?shù)狡溥壿媽?。邏輯層便會對API 接口進行調作,進而找到相應的邏輯函數(shù),同時執(zhí)行函數(shù)操作。在這之后,邏輯層便會得到所要的信息,同時對相關信息進行處理,再通過JSBridge,傳遞到視圖層中,用戶便會看到相應的信息答復、更新,這便是顧客與小程序之間的交互過程[4]。
硬件部分,應對小程序端發(fā)送的數(shù)據,進行接受,與上同時應依照相關數(shù)據,對控制指令進行實施。構建硬件平臺時,應考慮其可靠性、穩(wěn)定性。系統(tǒng)的硬件設計,涵蓋了預留升級模塊、核心模塊、系統(tǒng)硬件三個部分,其結構設計為圖2 中內容。主要有元器件、主控芯片的選擇類型,通訊過程。MCU 主控芯片,運用ST 公司的STM32F407ZGT6,其性能較高;主控模塊運用八位串行輸入方式;74HC595 為并行輸出芯片;檢測模塊是8 位并行輸入,74HC165 為串行輸出芯片;BLE 低功耗的藍牙模塊,作為無線通訊;CC2541 是主芯片。本體系中還具有GPRS 模塊、232 串口設備,以此來作為預留升級的相應模塊,為未來的系統(tǒng)升級奠定一定的基礎。DB9 接口作為串口,方便以來的調試工作,MAX232 為電平轉換芯片,用來作為以后在進行外接時的串口屏;運用SIM800A 驅動GPRS模塊,對于數(shù)據的傳送類型進行了拓展,為未來的服務,提供了堅實基礎;除此之外,這一系統(tǒng)中,也留出了較多的擴充口,為未來系統(tǒng)的升級、功能的增加,提供便利[5]。
圖2 硬件系統(tǒng)總體結構圖
本設計運用STM32F407ZGT6,作為為重要的處理器模組,其基本原理中涵蓋了:數(shù)據處理器晶片、外圍高速度晶體振蕩器集成電路(供給操作系統(tǒng)時鐘頻段)、外圍低速晶振電路(為RTC 供給時鐘頻段)、開機選擇復位集成電路、指示燈集成電路等。根據原理,可以看出:芯片的外部,接了兩個時鐘,這兩個時鐘在外接晶振方式下,進行連接,依照其頻率情況,將兩者分別規(guī)定為低速、高速時鐘。外部的高速時鐘,其電路由8MHz 高速晶振,來提供其時鐘頻率。外部的低速時鐘,其電路運用32.768KHz 低速晶振,來提供RTC 供應頻率;圖中也體現(xiàn)了啟動端的選擇電路,引腳BOOTO,是以跳線的方式,還對選GND、VCC 進行選擇的,進而得出系統(tǒng)所運用的適宜的啟動方式。由于通常是在片上FLASH 啟動,所以由BOOTO 接GND[6]。
這一系統(tǒng),運用74HC595 模塊,對電磁鎖進行管理,進而達到開柜的相關運算,74HC595 是具有八個串行式的進入、并行式出口的位移存儲器。在其輸出端,提供高電平、低電平、高阻抗輸出模式。這一模塊,具有一定的級聯(lián)能力,模塊中的級聯(lián)輸出引腳,連接了下一個595 芯片數(shù)據輸入的引腳,這一功能,極大程度地對不同的設備進行相應對應的控制。這樣的設計大幅度地降低了開發(fā)周期,與此同時,節(jié)約了成本。現(xiàn)階段,74HC595 芯片的特點是:能耗低、體積小、穩(wěn)定性強、經濟實用、開發(fā)周期短,所以在不同的應用中,以嵌入式開發(fā)廣為應用。
根據74HC595 芯片的引腳,并行輸出相應信息,對8 個開鎖模塊進行驅動。若依照需要,對級聯(lián)進行處理,那么便可以形成Nx8 位并行輸出,進而對較多的電磁鎖,實現(xiàn)相對應的符合邏輯的控制,所以便可以對較多的儲物箱格進行分別對應的控制。鎖的動作、驅動電路,運用光耦合器隔離,這是光媒介的一種電路信號傳遞方式。其特點是:體積小、成本低、穩(wěn)定性強、隔離性好等,所以被廣泛使用在不同的電路。在這樣的方式下,驅動電路端的信號,會耦合到動作電路端,之后在三極管的電流作用下,達到功能放大效果,便會驅動電磁鎖,最終,使得開鎖實現(xiàn)。在控制模塊中,鎖的動作電路電壓,大于驅動電路電壓。但是,電路中的光耦能也會驅動電路電壓,使其與動作電路電壓,完全隔離開,進而使得高電壓,不會竄入到控制芯片中,避免了控制芯片的破損,使得電路處于安全狀態(tài)[7]。
智能工具系統(tǒng)下位機部分,其功能的實現(xiàn),不但要對其中的硬件部分,實施設計,與此同時,還應對其中的軟件部分,進行設計、開發(fā)。系統(tǒng)的軟件設計涵蓋了:主控制器內設計、軟件開發(fā)情況。后者明確運用Keil 公司的MDK5,為相應的開發(fā)環(huán)境,運用庫函數(shù),對程序進行開發(fā)。前者則是在STM32 主控制臺內的編程,當設計控制臺內編程時,運用依照功能分塊的模式,使得不同的程序,均可以實現(xiàn)其功能,這其中涵蓋了:藍牙模塊、主程序、串口模塊等相關程序設計。圖3為程序設計情況。
圖3 系統(tǒng)軟件設計方案
軟件開發(fā)方式主要的寄存器、庫函數(shù)兩種方式,它們的優(yōu)、缺點,這間存在一定關系。開發(fā)庫函數(shù)是,應把宏、函數(shù)等資源,進行分別對應的配置,開發(fā)工作者運用調用固件庫中的函數(shù),來對寄存器進行配置,最后再進行運算。寄存器開發(fā)方式:在功能寄存器中,輸入相應的配置參數(shù),盡管在編程過程中,代碼所使用的空間不大,運行速度快,然而,其開發(fā)的周期較長,與此同時STM32 單片機,有可達到數(shù)百個寄存器。若為了熟練掌握不同的寄存器特點,應多次查看相關的芯片手冊,如此才可以精準地對STM32 進行使用、配置。所以,這一體系運用的是庫函數(shù)的開發(fā)法,在開發(fā)時便不用了解寄存器的配置方式,只要依照庫函數(shù)的調用方式,來對STM32 的軟件,進行相應的開發(fā),這便可以降低其開發(fā)周期,使得代碼的調試更為便捷,與此同時,也為未來的系統(tǒng)升級、功能增加等功能拓展奠定了一定的基礎。圖4 為寄存器、庫函數(shù)的開發(fā)方式[8]。
圖4 庫函數(shù)與寄存器開發(fā)方式
本項目通過微信小程序相關軟件技術與STM32 單片機和GPRS 通訊模塊等硬件端設備相配合,設計了一款智能工具柜,為高職院校的實訓室工具管理提出了一種現(xiàn)代化和信息化的解決方案。智能工具柜面向老師、學生等用戶,操作更加便捷。對于實訓教師或者管理員,該智能工具柜使得實訓室工具管理更加智能、可靠。