李昌澤+王軍民
摘要:本文以Arduino開(kāi)發(fā)板和Android系統(tǒng)手機(jī)為研究方向,設(shè)計(jì)Arduino開(kāi)發(fā)板硬件設(shè)計(jì)與板載程序,以及編寫基于Android系統(tǒng)手機(jī)的APK,用手機(jī)端程序通過(guò)藍(lán)牙模塊對(duì)Arduino 開(kāi)發(fā)板進(jìn)行控制,對(duì)電火花震源工作中的高壓進(jìn)行監(jiān)測(cè),開(kāi)發(fā)板端采集數(shù)據(jù)回顯到Android手機(jī)終端,以便工作人員對(duì)電火花震源工作電壓情況進(jìn)行了解。
關(guān)鍵詞:Android;Arduino;藍(lán)牙
引言
近年來(lái)物聯(lián)網(wǎng)產(chǎn)品發(fā)展迅速,而手機(jī)的普及與Android系統(tǒng)的廣泛使用更是為智能家居提供了支持。利用藍(lán)牙通訊10米的通訊距離與低功耗、低成本等優(yōu)勢(shì)是兩者相互通訊的一個(gè)極為簡(jiǎn)單的方法。通過(guò)這個(gè)方法,可以使安全便捷的對(duì)電火花震源的充放電各個(gè)模塊的電壓進(jìn)行監(jiān)測(cè),及早的發(fā)現(xiàn)設(shè)備內(nèi)部存在的電壓異常。
系統(tǒng)硬件設(shè)計(jì)
Arduino[1]是一塊基于開(kāi)放源代碼的USB接口SimpleI/O接口板。Arduino UNO是Arduino USB接口系列的最新版本,作為Arduino平臺(tái)的參考標(biāo)準(zhǔn)模板。UNO的處理器核心是ATmega328,同時(shí)具有14路數(shù)字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入,一個(gè)16MHz晶體振蕩器,一個(gè)USB口,一個(gè)電源插座,一個(gè)ICSP header和一個(gè)復(fù)位按鈕。該系統(tǒng)的硬件主要由Arduino UNO主控板、藍(lán)牙串口模塊和Voltage Sensor電壓傳感器模塊組成。
1.Arduino開(kāi)發(fā)板
Arduino是一款便捷靈活、方便上手的開(kāi)源電子原型平臺(tái)。包含硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE)。它構(gòu)建于開(kāi)放原始碼simpleI/O介面版,并且具有使用類似Java、C語(yǔ)言的Processing/Wiring開(kāi)發(fā)環(huán)境。該平臺(tái)的特點(diǎn)是具有跨平臺(tái)性、簡(jiǎn)單清晰、開(kāi)放性和發(fā)展迅速。
Arduino UNO可以通過(guò)3種方式供電,而且能自動(dòng)選擇供電方式。1)外部直流電源通過(guò)電源插座供電。2)電池連接電源連接器的GND和VIN引腳。3)USB接口直接供電。
Arduino具有14路數(shù)字輸入輸出口:工作電壓為5V,每一路能輸出和接入最大電流為40mA。每一路配置了20-50K歐姆內(nèi)部上拉電阻(默認(rèn)不連接)。除此之外,有些引腳有特定的功能串口信號(hào)RX、TX:與內(nèi)部 ATmega8U2 USB-to-TTL芯片相連,提供TTL電壓水平的串口接收信號(hào)。
2.HC-06藍(lán)牙串口模塊
核心模塊使用HC-06從模塊,引出接口包括VCC,GND,TXD,RXD。紅色led燈指示藍(lán)牙連接狀態(tài),閃爍表示藍(lán)牙未連接,常亮表示藍(lán)牙已連接并打開(kāi)了端口。底板為3.3V LDO,接口電平為3.3V,輸入電壓3.6-6V,未配對(duì)時(shí)電流約30mA,配對(duì)后約10mA。空曠地有效距離超過(guò)10米。配對(duì)以后當(dāng)全雙工串口使用,無(wú)需了解任何藍(lán)牙協(xié)議,但僅支持8位數(shù)據(jù)位、1位停止位、無(wú)奇偶校驗(yàn)的通信格式。在未建立藍(lán)牙連接時(shí)支持通過(guò)AT指令設(shè)置波特率、名稱、配對(duì)密碼,設(shè)置的參數(shù)掉電保存。藍(lán)牙連接以后自動(dòng)切換為透?jìng)髂J健?/p>
3.Voltage Sensor 電壓傳感器模塊
Voltage Sensor 電壓傳感器模塊主要參數(shù):電壓檢測(cè)范圍:DC0.02445V-25V,電壓模擬分辨率:0.00489V,DC輸入接口:端子正接VCC,負(fù)接GND,輸出接口:“+”接5V,“-”接GND,“s”接Arduino的AD引腳。該模塊的電壓監(jiān)測(cè)范圍只有0-25V,需要通過(guò)不同的分壓電阻配合才能完成對(duì)不同模塊的電壓的監(jiān)測(cè)。
系統(tǒng)軟件設(shè)計(jì)與通信
1.Android控制采集軟件設(shè)計(jì)
Android[2]是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦。本文通過(guò)工具軟件E4A完成在移動(dòng)端軟件的設(shè)計(jì),個(gè)性化定制了界面與所需功能。完成了GUI設(shè)計(jì)與詢問(wèn)打開(kāi)手機(jī)藍(lán)牙、搜索可配對(duì)藍(lán)牙從機(jī)、配對(duì)藍(lán)牙從機(jī)、發(fā)送測(cè)距指令、接受回傳數(shù)據(jù)、保存數(shù)據(jù)等功能。
2.Arduino采集傳輸軟件設(shè)計(jì)
Arduino端的軟件是通過(guò)Arduino IDE[3]完成,主要的功能為通過(guò)輪詢方式等待接受Android端的采集指令、驅(qū)動(dòng)測(cè)壓模塊完成測(cè)量、對(duì)采集數(shù)據(jù)進(jìn)行處理和驅(qū)動(dòng)藍(lán)牙模塊回顯數(shù)據(jù)至手機(jī)端。再通過(guò)數(shù)字引腳控制一顆黃色led等,做連接測(cè)試與檢測(cè)用。
3.通信過(guò)程與結(jié)果
將硬件部分組裝完畢后,接通電源,藍(lán)牙模塊紅色指示燈開(kāi)始閃爍,檢測(cè)燈黃色led燈持續(xù)亮燈;打開(kāi)Android手機(jī)端測(cè)距APP,打開(kāi)手機(jī)藍(lán)牙,搜索設(shè)備,連接硬件組件中藍(lán)牙模塊,顯示連接成果,藍(lán)牙模塊紅色led燈常亮;點(diǎn)擊測(cè)試1按鈕,黃色led燈熄滅,點(diǎn)擊測(cè)試2按鈕,黃色led燈點(diǎn)亮;證明系統(tǒng)連接正常后,點(diǎn)擊接受數(shù)據(jù)按鈕,測(cè)壓模塊開(kāi)始測(cè)壓,在經(jīng)過(guò)Arduino處理后將被測(cè)電壓通過(guò)藍(lán)牙模塊回顯至手機(jī)APP中的數(shù)據(jù)顯示框中,單擊一次完成一次測(cè)量,得到各個(gè)模塊工作中的電壓,多次結(jié)果可同時(shí)顯示在顯示框中,APP可以完成清空顯示框與保存顯示框中數(shù)據(jù)至手機(jī)SD卡。
結(jié) 語(yǔ)
本文中的數(shù)據(jù)采集與藍(lán)牙通信系統(tǒng)是基于Android系統(tǒng)與Arduino平臺(tái)的一套軟硬件配套操作系統(tǒng)。本系統(tǒng)通過(guò)手機(jī)APP控制硬件部分完成數(shù)據(jù)采集與處理,并通過(guò)藍(lán)牙回顯至手機(jī)APP中。傳輸過(guò)程簡(jiǎn)單穩(wěn)定,采集精度受環(huán)境與采集模塊影響,數(shù)據(jù)精度可由軟件控制。該套方案成本低廉、功耗極低、可移植性強(qiáng),通過(guò)Arduino平臺(tái)豐富強(qiáng)大的功能,結(jié)合電火花震源的工作,可以安全有效的完成對(duì)設(shè)備內(nèi)部各個(gè)器件模塊的電壓監(jiān)測(cè),但是由于電火花內(nèi)部高壓設(shè)備復(fù)雜,對(duì)于藍(lán)牙的傳輸有一定的影響,通信有效范圍不能達(dá)到10米以上,對(duì)野外實(shí)時(shí)操作與監(jiān)控有一定的距離限制。
參考文獻(xiàn):
[1]蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計(jì)工程,2012,20(16):155-157.
[2]詹成國(guó),朱偉,徐敏.基于Android的測(cè)控裝置人機(jī)界面的設(shè)計(jì)與開(kāi)發(fā)[J].電力自動(dòng)化設(shè)備,2012,32(01):119-122.
[3]楊繼志,郭敬.Arduino的互動(dòng)產(chǎn)品平臺(tái)創(chuàng)新設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012,12(04):39-41.endprint