姚曉英,熊星源,秦夢文,張雅璐,周 捷,朱孟春,龍 慧
(長沙師范學院 信息科學與工程學院,湖南 長沙 400100)
本文設計了一款基于STM32 平臺的校園智能電子學生筆記本,該筆記本通過終端設備對學生進行統一信息管理,教師和家長可通過使用對應的網頁端、客戶端等查看學生的日常信息,如考勤情況、學習進度等。該智能電子筆記本的使用促進了校園管理智能化、校園生活一體化、校園設施數字化、課堂教學生動化、家校溝通無縫化的實現[1-2]。
本文設計的智能電子學生筆記本具有便捷測溫、GPS 定位、親情通話、校園考勤等功能。按照智能電子學生筆記本所需功能,把系統分為主控芯片、顯示模塊、溫度傳感器模塊、北斗GPS 模塊、4G 通信模塊和IC 卡感應模塊,分別實現主控功能、顯示數據功能、便捷測溫功能、GPS 定位功能、親情通話功能和校園考勤功能。系統總體框架如圖1所示。

圖1 智能電子學生筆記本系統總體結構
本設計選用的主控芯片如圖2 所示。采用STM32F103C8型芯片[3]作為本次設計的內核。STM32F103C8 用于處理外設采集的信息,并對外部連接設備進行控制,完成各芯片間的通信。本系統將STM32 的I/O 口與顯示模塊連接,使用單總線技術實現STM32 和外設溫度傳感器的通信,將讀取的溫度信息傳至顯示模塊;STM32 從串口獲取GPS 定位信息,再通過串口傳送信息至上位機;STM32 的映射端口與4G 通信模塊連接,實現通話功能。

圖2 單片機最小系統
智能學生電子筆記本需要顯示通過STM32 采集的溫度信息和IC 卡信息,故選用OLED 模塊。OLED 顯示模塊采用ATK-0.96’OLED,該OLED 模塊提供了4 種接口方式,其中,I2C 接口模式只需使模塊的BS1 接高電平,使BS2 接地即可,僅需2 根線便可控制OLED,故選擇I2C 接口模式。OLED 電路和接線圖如圖3、圖4 所示。

圖3 ATK-0.96’OLED 電路

圖4 ATK-0.96’OLED 接線圖
測溫模塊選用DS18B20 溫度傳感器[4],模塊電路如圖5所示。芯片主要分為讀寫時序兩個部分,1 時段和9 時段負責寫入讀入。控制器通過I/O 口向DS18B20 芯片寫入1/0 時段,在每個時段添加延時并進行初始化,初始化的完成需由主控制器拉低總線,在控制器初始化寫時段后,DS18B20 將在15 μs 至 60 μs 的時間窗口內對總線采樣。如果總線在采樣窗口期間為高電平,則邏輯1 被寫入DS18B20;若總線為低電平,則邏輯0 被寫入DS18B20。

圖5 DS18B20 模塊電路
根據學生的安全需求,在此產品中加入北斗GPS 模塊實現定位功能。北斗GPS 模塊選用ATK-S1216F8-BD 型號的GPS 北斗模塊[5-6],該模塊是一款高性能芯片,其靈敏度高,測量輸出的范圍廣,且支持串口操作,可通過連接串口進行參數設置,內部自帶FLASH。本文主要通過STM32 單片機控制北斗GPS 模塊芯片,電源采用3.3 V 或5 V,滿足單片機的要求。模塊原理如圖6 所示。

圖6 ATK-S1216F8-BD 模塊電路
考慮到學生在不帶手機的情況下存在與家長聯系的需求,故本產品添加了4G 通信模塊,方便使用者通過按鍵撥打、接聽和掛斷電話。選用的ATK-GM510 模塊采用高新興物GM510C2E_L,4 模13 頻LTE 制式的移動網絡通信模組,其支持移動2G/3G/4G,聯通3G/4G,電信4G,板載3.5 mm 耳機和麥克風座,連接有線耳機即可通話。模塊電路如圖7 所示。

圖7 4G 通信模塊電路
ATK-GM510 模塊的IXD 與STM32 的引腳PB11 相連,接線圖如圖8 所示。RXD 與STM32 的引腳PB10 相連,電源輸入接口連接電源,GND 接地,SIM 卡座插入電話卡,主天線接口連接外部天線。

圖8 引腳接線圖
本系統軟件設計主要分為四大部分:
(1)第一部分為IC 卡感應模塊,其用于獲取IC 卡信息,并將其反饋到單片機,再傳送信息至顯示屏。
(2)第二部分為便捷測溫模塊,其用于采集溫度信息,再傳送信息至顯示屏。
(3)第三部分為GPS 定位模塊,其用于獲取位置數據,進行數據分析,上傳數據到地圖并顯示。
(4)第四部分為4G 通話模塊,其用于完成等待電話信號,執行撥打、接通和掛斷等操作。
系統總體設計如圖9 所示。

圖9 系統軟件總體設計圖
顯示模塊用于顯示獲取的溫度數據和IC 卡數據。寫顯示模塊的代碼,在main 函數中,無論是刷卡模塊還是溫度模塊均可調用顯示模塊的代碼,把數據顯示在顯示屏。首先,設置STM32 與顯示模塊連接的I/O,對I/O 口進行初始化,本文使用宏定義OLED_MODE 設置I/O 口為開漏模式,SCL、SDA 引腳均設置為開漏模式,將I2C 設置為快捷模式。然后,初始化OLED,初始化代碼使用模塊自帶的默認初始化參數。最后,完成的函數包括:OLED_SetPos(設置光標)、OLED_Fill(填充整個屏幕)、OLED_CLS(清屏)、OLED_ON(將OLED 從休眠狀態喚醒)、OLED_OFF(OLED 休眠)、OLED_ShowStr(顯示字符串)、OLED_ShowCN(在OLED上顯示中文)、OLED_ShowInt(顯示6×8 或8×16 的5 位整數)[7-8]。
顯示模塊主要代碼如下所示:


便捷測溫模塊的功能是獲取人體表面的溫度數據,根據DS18B20 數據手冊,使用單總線技術實現STM32 與外部溫度傳感器的通信。復位DS18B20,開機時先檢測DS18B20是否存在,如果不存在,提示錯誤。如果發現了DS18B20,硬件按照單總線操作時序讀取DS18B20 的溫度值,然后通過DS18B20_Get_Temp 函數讀取DS18B20 中的溫度,程序每隔約100 ms 讀取一次數據,并把溫度顯示在顯示屏上。溫度檢測流程如圖10 所示。

圖10 溫度檢測流程
DS18B20 主要代碼如下所示:

北斗GPS模塊流程如圖11所示。系統運行時首先初始化,判斷是否為數據接收標志位,若檢測到數據接收標志位則解碼北斗時間后編碼,顯示當前狀態[9-10]。

圖11 GPS 工作流程
北斗GPS 模塊用于獲取定位數據。NMEA-0183 數據解析部分利用數逗號的方法進行解析。模塊自帶默認設置的SkyTraq 協議控制部分。在main 函數中,先初始化硬件,再通過SkyTra_Cfg_Rate 函數判斷GPS 模塊是否在位,若不在位,便修改模塊的波特率,直到函數檢測到模塊在位。隨后,函數進入死循環,等待串口2 接收GPS 數據,接收到GPS模塊傳輸的數據并執行數據解析操作,解析完后顯示GPS 定位數據。北斗GPS 模塊主要代碼如下所示:

4G 通話模塊的功能通過電話卡實現,程序流程如圖12所示。本模塊首先在led.c 和led.h 中宏定義兩個按鍵,分別用于撥通電話和掛斷電話。在main 函數中初始化兩個按鍵,兩個按鍵均處于空閑狀態。當按鍵1 被按下,判斷是否檢測到電話,若未檢測到電話,則撥通設置好的電話號碼,并將號碼顯示在顯示屏上;如果檢測到電話,則執行接聽電話的操作。按鍵2 被按下,掛斷電話。

圖12 4G 通話流程
該文基于STM32F103C8 單片機研制了一種智能電子學生筆記本。該應用是一款符合教育發展、學校管理、安全便捷理念的一卡通智能電子學生筆記本,是貼合校園中小學學生、家長、教師、學校需求的智慧校園綜合體。