袁 煒,孫會琴,張乃昌,張 磊
(1.淮南師范學院 機械與電氣工程學院,安徽 淮南 232038;2.河北科技大學 電氣工程學院,河北 石家莊 050018;3.杭州鴻泉物聯網技術股份有限公司,浙江 杭州 310052)
隨著科技的進步,人們對智能家居的需求不斷擴大,作為家家常用的臺燈也在智能家居的范疇之內[1]。目前市面上的臺燈類型多樣,能夠滿足人們的基本需求,但為進一步提高臺燈的服務水平和質量,可以在其功能,操作方法等方面加以探究,使其更加智能化、人性化。
借助完善的手機藍牙技術[2],以單片機為核心控制芯片,在傳統臺燈功能的基礎上,增添亮度調節,溫濕度檢測,語音提示等功能。裝置主要包括STC15W404AS單片機、溫濕度傳感器、EEPROM、OLED顯示屏、QJ008語音模塊、HC-06藍牙模塊、LED燈等。系統硬件框架如圖1所示。

圖1 系統硬件框架圖Fig.1 System hardware framework diagram
STC15W404AS作為主控芯片,具有超高速CPU內核,最高頻率可達到35 MHz。采用內部晶振驅動,內含高速異步串行接口(UART),管腳功能豐富,也可外接74HC595拓展通用I/O口。主控芯片采用SOP20封裝,如圖2所示。

圖2 主控芯片封裝圖Fig.2 Master chip package diagram
DHT11溫濕度傳感器內部包含NTC測溫度和電阻式測濕度兩個部分,性能穩定,讀數精確[3]。采用DATA管腳與單片機進行數據交互,為提高遠距離傳輸數據的穩定性,可在DATA管腳上拉4.7 KΩ。通過DATA管腳傳輸數據大小為40 bit,數據的高位在前面先輸出,編寫代碼時應注意,DHT11傳輸的數據格式依次是濕度數值,溫度數值,最后8 bit的數據就是校驗值。注意,校驗值與前面傳輸的數據之和相等時,讀取的數據才正確。圖3為DHT11的引腳圖。

圖3 DHT11引腳圖Fig.3 DHT11 pin diagram
QJ008語音播報模塊主要是用于智能語音提醒,提示用戶注意休息,切勿用眼過度。QJ008語音芯片可通過串口直接控制,支持U盤內音頻播放,音頻音質好,使用方便,可靠穩定[4]。選擇W25Q64作為Flash存儲芯片,采用SPI接口,其內存為8 MB,電壓范圍是2.7~3.6 V,10萬擦寫次數,Flash內部數據至少能保存20年。采用LM4890作為功放電路主芯片,無須外接耦合電容,接喇叭即可輸出播放[5]。圖4是QJ008語音播報系統框圖。

圖4 QJ008語音播報系統框圖Fig.4 QJ008 voice broadcast system block diagram
圖5為QJ008語音播報模塊原理圖。DATA1為數據位,CMD1為片選,CLK1為時鐘。首先將數據線與USB串口相連后再連接電腦,格式化W25Q64,將待播音頻放到指定的目錄下。其次利用單片機內部定時器Time0設置每次發送數據的間隔,每隔一段時間STC15W404AS會通過串口MT_SR發送指令到QJ008,通過數據判斷后控制相應的SPI接口線,讀取W25Q64芯片存儲的音頻文件,最后通過LM4890功放電路輸出音頻[6]。聲音的大小通過調節LM4890上電阻的值來控制。

圖5 QJ008模塊原理圖Fig.5 QJ008 module schematic
HC-06無線藍牙模塊采用串行異步通信,操作簡單。根據模塊上的LED藍燈判斷手機藍牙是否連接成功,若藍燈常亮則藍牙模塊與手機連接成功;若藍燈閃爍,則連接失敗。手機藍牙串口APP與HC-06無線藍牙模塊相連,定義藍牙協議格式為:起始數據(0x0F),開燈數據(0x10)或關燈數據(0x20),燈的亮度數據(0x00-0x20),校驗位。通過手機藍牙發送協議之和,單片機在串口中進行解析,實現燈的開關控制及燈光亮度色溫的調整[7]。
AT24C128C芯片采用的是IIC總線,IIC總線能在芯片間進行串行數據交互[8]。IIC與任何CPU的信息交互采用同一種方式,具有編程的一致性。AT24C128CEEPROM串行存儲器也支持IIC總線,其功能引腳圖如圖6所示。

圖6 AT24C128C功能引腳圖Fig.6 AT24c128c function pin diagram
選用四線制的IIC接口OLED屏,OLED屏類似于點陣屏,不同于LCD,無須外接背光源,穩定性、顯示效果較LCD好[9]。OLED屏用于顯示DHT11模塊檢測出的溫濕度,實時獲取當前環境的溫濕度,其具有GND、VCC、SCL、SDA4個接口。
系統軟件在Keil5編譯環境下使用C語言實現的。C語言是一種廣泛使用的計算機語言,其具有易編譯、快運算、函數庫豐富,良好的可讀、可移植性等優點,有利于實現對硬件的調節控制。系統軟件設計首先在STC15W404AS單片機上電后,判斷藍牙信號是否正確匹配,正確匹配后進入手機APP界面[10]。其次通過藍牙通信,LED照明系統接收由手機APP發送的相關指令,然后解析成相應開、關燈指令,亮度調節指令、溫濕度顯示、設置定時語音播報等。圖7為手機APP藍牙通信流程圖,圖8為系統軟件設計整體流程圖。

圖7 手機APP藍牙通信流程圖Fig.7 Mobile APPbluetooth communication flow chart

圖8 系統軟件設計整體流程圖Fig.8 Flow chart of system software design
硬件調試包括3個步驟:(1)目測焊好的電路板連接情況,將其與原理圖、PCB對比,檢查外部元器件、電路是否有漏焊、斷路等情況。(2)利用萬用表進行逐一測量,判斷是否存在短路、短路的情況。(3)確保電路無誤后,通過串口給PCB板供電,燒寫簡單的點亮燈代碼測試一下,LED燈正常點亮后即可進行代碼燒寫、軟件調試。
用keil5編譯主程序,編譯無誤后通過STC自動燒錄器燒寫程序,選擇STC15W404AS單片機以及COM4串口,打開OBJ目錄下的LED.hex文件,點擊下載/編程,ISP軟件開始識別單片機型號STC15W404AS,出現燒寫成功即可。STC15W404AS內部有晶振,燒寫時可修改頻率。
測試過程遇到的問題及解決方法:(1)燒寫程序時總出現下載失敗,發現最低波特率過高造成下載失敗,將最低波特率值由默認的2 400修改為1 200,即可下載成功。(2)程序燒寫成功后,OLED顯示屏溫濕度數值為空白。檢查了程序之后發現dth11.c有個變量未進行初始化,初始化修改代碼重新燒寫,功能正常。
基于STC15W404AS單片機的手機藍牙臺燈實物如圖9所示,通過USB給裝置供電后,可利用手機藍牙串口APP發送十六進制數據0F100322實現開燈,發送0F20002F實現關燈,也可通過撥碼開關控制臺燈的開關;OLED顯示屏實時顯示當前環境的溫濕度,如圖10所示;利用手機藍牙界面操控燈亮度的調節,如圖11所示;QJ008會進行用時記錄及語音播報,提醒用眼時長。

圖9 智能藍牙臺燈實物圖Fig.9 The physical picture of the pntelligent bluetooth besk lamp

圖10 溫濕度顯示圖Fig.10 Temperature and humidity display

圖11 亮度調節對比圖Fig.11 Brightness adjustment contrast diagram
基于STC15W404AS單片機的手機藍牙臺燈裝置設計,完成了手機藍牙對LED臺燈智能控制,實現了遠程和就地控制臺燈的開關、亮度狀態,一定程度上避免了用戶過度用眼造成視覺疲勞的情況,提供了依據溫濕度顯示選擇穿著衣服的便利,這些優勢使得臺燈的智能化、人性化程度都得以提升,具有不錯的實際應用價值。