龍 華
(廣東理工職業學院,中山 528400)
在2013年左右,Android開發在高校興起,在教育系統的各種省培、國培中都開設了Android開發的培訓項目,在軟件專業的移動平臺軟件開發及物聯網專業都講授Android程序設計。因為Android開發是基于Java語言,所以最初的開發工具是使用Java語言的開發工具安裝插件進行開發。到了2016年,高校開始引入Google公司的專門開發工具AndroidStudio軟件。從就業層面來講,幾年前,學生找工作只要懂得Android四大組件,再懂一些常用的布局,那么找一份Android開發的工作是不成問題的,而現在公司招聘一個Android工程師不僅希望他能做好Android,還希望他能懂得一些前端和后臺,或是直接要求公司現有的Java工程師同時進行Android的開發。
微信小程序自正式上線以來發展勢頭迅速,微信提供了完整的微信開發者工具開發環境,并可進行云開發,使用云函數直接把數據存入云數據庫,為前端開發人員節省了環境搭建的工作量。小程序開發具有開發簡單、無需復雜的專業知識、開發周期短等特點。相對于Android APP,微信小程序不必考慮機型配置,無論是在安卓,IOS平臺,還是在不同屏幕條件下,微信小程序都可以通過MINA框架呈現一致的效果,除此之外,微信小程序是一款以主流社交軟件微信為載體,并在其基礎上拓展微信功能的軟件,微信小程序相比于普通手機APP軟件將更容易被用戶所接受,也更符合互聯網及社會發展的方向.
微信小程序適合開發一些業務邏輯簡單、低頻次使用、對性能要求不高的應用,對于復雜的功能,還是需要原生的APP來實現,所以對于高校畢業生如果同時掌握Android開發技術和微信小程序開發技術,將有效提高學生的就業競爭力,本文設計了一個實訓裝置,用于同時給學生講授Android開發和微信小程序開發。
本系統的框圖如圖1所示,手機運行Android APP通過藍牙控制智能終端上的風扇和燈的狀態,手機也可以運行微信小程序達到相同的功能,設計的界面可以做到一樣。Android APP是基于Java基礎編程來這實現的,微信小程序是基于網頁和js編程來實現,但它們都屬于移動端編程。本實驗裝置選取了經典的單片機型號89C52作為主控芯片,很多單片機教材都以它為對象進行講解,便于學生查找資料,另一個原因它體型比較大,方便學生訓練焊接技術。

圖1 ?系統方案構成
AT89C52是ATMEL公司生產的一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線。
本實驗裝置的CPU采用AT89C52,串口接BLE低功耗藍牙設備,風扇由I/O口引出信號后經放大電路驅動,風扇的檔位控制是通過使用定時器中斷后軟件編程實現,指示燈的控制是由I/O腳直接控制,電路板上引出燒寫程序的插針,方便下載程序到CPU中運行,這個口也可以接串口助手,用于觀看手機通過藍牙下發的命令或模擬實驗裝置上傳信息到手機上顯示。
89C52芯片的I/O輸出電流不能直接驅動風扇轉動,必須加驅動電路,如圖2所示。本裝置選取了可以承載大電流的8550三極管,這部分知識可以供給學生學習三極管放大電路,風扇檔位的控制使用了定時器中斷0定時產生中斷,依照PWN調制思想,定義時間變量接收手機下發的值產生四種不同的電壓供給風扇。

圖2 實驗裝置電路圖
本裝置選用BT04藍牙模塊,它是BLE低功耗的藍牙模塊,使用Android APP和微信小程序都可以搜索到它,相對于標準藍牙,BLE的功耗要低得多,這是因為BLE采用了許多降低功耗的方法,包括少量的廣播信道數,更加寬松的射頻參數和發送短數據包,以及可變的連接時間間隔,與標準藍牙完成一次連接周期需要數百毫秒的時間相比,BLE完成一次相同的連接時間只需要3 ms,且數據同步成功率高,經測試在10 m范圍內通過BLE藍牙收發數據無丟包情況。在本裝置中,BT04低功耗藍牙的功能是接收來自手機Android APP或是手機微信小程序的數據,送到單片機89C52的串口,實現透傳的效果,如圖3所示,引發89C52的串口中斷,89C52在串口中斷處理程序中,對接收的數據進行處理,根據數據不同,控制風扇處于相應的檔位或是控制指示燈的亮滅。

圖3 BLE藍牙和單片機的連接方法
微信小程序和Android系統內置了BLE藍牙API,通過調用BLE藍牙API接口成功連接藍牙設備后,可以通過Bluetoothsocket實現與BLE藍牙模塊的數據接收和發送,在控制系統硬件方面有很大的應用空間,Android APP編程和微信小程序編程通過藍牙控制終端都經過以下步驟:①打開手機的藍牙設備。②搜索藍牙。③連接藍牙。④發送數據或接收數據。流程如圖4所示。

圖4 手機控制智能裝置
本實驗裝置使用的通訊協議如表1所示。

表1 手機和智能終端之間的通訊協議
在硬件和軟件調試完成后,開始手機控制智能終端,如圖5所示。

圖5 實驗現象
在圖5中,上面是智能裝置,左下角是Android APP,右下角是微信小程序,可以在一定的距離內控制風扇轉動和指示燈的亮滅,低功耗BLE藍牙模塊接收數據正常,實驗現象具有較強的趣味性。
目前來說,Android開發是基于Java語言的一種編程技術,是對JavaSE的高級應用,公司大量以前生產的APP也需要維護。微信在國內擁有大量的客戶,基于微信的開發在高校的教學中有很大必要性。Android編程和微信小程序編程都屬于移動端的編程,本文設計了一款簡易的智能終端裝置,可以使用Android APP控制和微信小程序控制,為高校移動平臺軟件開發課程同時講授這兩個技術作出了有益的嘗試。本項目的特色如下:
(1)可以采購電子散件,讓學生組裝這個實驗裝置,利用上面的電子元器件和放大電路,訓練學生的焊接技術和電路基礎知識。
(2)本文的物聯網終端是可編程的,使用的BLE藍牙通訊技術在當前的智能穿戴、智能家居中應用非常廣泛。另外,在終端上還設計了WIFI模塊,可以使用開關進行切換,讓學生自由在藍牙和WIFI之間進行選擇,終端有DHT11溫濕度傳感器,也可以讓它采集到的溫度、濕度顯示在APP或微信小程序上。
(3)鑒于當前遠程控制的火熱,后續也可以對智能終端進行改進,使得Android APP和微信小程序可以遠程控制相同的物聯網終端設備,常用的技術如使用MQTT協議的阿里云物聯網終端平臺(或中移動oneNet平臺),在智能終端使用ESP8266通過WIFI聯網,在這方面的技術可以孵化出很多的創新創業的項目。
(4)Android程序設計的前導課是面向對象程序Java基礎,而微信小程序是基于網頁設計的,微信小程序開發和網頁前端開發在技術上有許多相同構造,當一個對前端語言有相對了解的技術人員學習微信小程序開發會得心應手。所以本門課程建議設置在大二下學期或大三上學期,在學生學習完面向對象程序設計(java)和網頁設計相關課程之后再進入移動平臺軟件開發課程的學習。因為一門課同時講授兩個開發技術,所以講授的是它們的基礎入門知識,對有興趣深入學習的學生,教師要布置相應的拓展內容。