999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的智能電池?zé)o線監(jiān)控系統(tǒng)

2021-03-24 11:16:32劉佳
電腦知識與技術(shù) 2021年2期

劉佳

摘要:該文論述了Android手機(jī)監(jiān)控智能電池電芯的電壓、電流、溫度、充/放電狀態(tài)等特性的實(shí)現(xiàn)過程。Android手機(jī)通過藍(lán)牙協(xié)議與智能電池JDY-32藍(lán)牙模塊通信,取代傳統(tǒng)有線串口,實(shí)現(xiàn)對智能電池的無線監(jiān)控。通過實(shí)際的工作環(huán)境測試表明,該系統(tǒng)運(yùn)行流暢、操作簡單,數(shù)據(jù)傳輸準(zhǔn)確及時(shí)。

關(guān)鍵詞:電池監(jiān)控;藍(lán)牙;串口;Android

中圖分類號:TP311? ? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2021)02-0050-02

1 研究背景及內(nèi)容

對智能電池特性的實(shí)時(shí)監(jiān)控,一般采用串口連接線將電池連接到數(shù)據(jù)終端,通過串口協(xié)議傳輸數(shù)據(jù),監(jiān)控電池狀態(tài)[1]。這種監(jiān)控方式實(shí)現(xiàn)簡單、技術(shù)成熟、應(yīng)用廣泛。但有線連接限制了監(jiān)控人員的活動(dòng)范圍,增加了設(shè)備的重量,不適合在移動(dòng)場景下使用。

針對有線模式的各種不足,本文設(shè)計(jì)并實(shí)現(xiàn)了無線監(jiān)控系統(tǒng)。本系統(tǒng)將智能電池終端傳感器收集的電池電壓、電流、溫度、電池充/放電程度等狀態(tài)信息通過藍(lán)牙傳送給手機(jī)客戶端。監(jiān)控人員通過簡單的操作就可以在Android客戶端上查看電池的實(shí)時(shí)狀態(tài)信息。本文主要介紹Android客戶端的設(shè)計(jì)與實(shí)現(xiàn)過程。

2 藍(lán)牙模塊簡介及選用

藍(lán)牙分為低功耗藍(lán)牙和經(jīng)典藍(lán)牙。籠統(tǒng)地講可將藍(lán)牙3.0及以下版本歸為傳統(tǒng)藍(lán)牙,藍(lán)牙4.0及以上歸為低功耗藍(lán)牙,即BLE。與經(jīng)典藍(lán)牙相比,低功耗藍(lán)牙傳輸距離更遠(yuǎn),數(shù)據(jù)發(fā)送時(shí)延更低,發(fā)送速率更快[2]。低功耗藍(lán)牙最大的特點(diǎn)就是能耗極低,一顆紐扣電池就能維持其穩(wěn)定工作數(shù)月甚至更久[3],此外,低功耗藍(lán)牙還具有成本低,兼容性強(qiáng)等優(yōu)點(diǎn)[4]。因此本系統(tǒng)選擇了JDY-32低功耗藍(lán)牙作為智能電池藍(lán)牙模塊。

3 系統(tǒng)設(shè)計(jì)

本系統(tǒng)由硬件和軟件兩部分組成。硬件部分由智能電池組、傳感器、單片機(jī)、JDY-32藍(lán)牙模塊和Android手機(jī)組成。軟件部分由智能電池監(jiān)控客戶端組成。系統(tǒng)整體組成如圖1所示。通過傳感器、電流電壓調(diào)理電路及單片機(jī)將硬件系統(tǒng)的各個(gè)參數(shù)進(jìn)行采集和轉(zhuǎn)換,通過無線藍(lán)牙協(xié)議傳送給Android端,Android端對數(shù)據(jù)進(jìn)行處理和顯示。

3.1 Android客戶端功能設(shè)計(jì)

本文使用Android Studio作為開發(fā)工具,主要完成Android手機(jī)監(jiān)控客戶端的設(shè)計(jì)與實(shí)現(xiàn)。要實(shí)現(xiàn)Android手機(jī)與BLE藍(lán)牙通信,依賴于AndroidSDK中的BluetoothAdapter,BluetoothDevice,BluetoothSocket等API。因BLE藍(lán)牙技術(shù)只能在API18及以上版本才能使用,故本App要在Android4.3及以上版本的手機(jī)上才能正常運(yùn)行[5]。App主要由四大功能模塊組成:藍(lán)牙掃碼連接模塊,電池監(jiān)控模塊,報(bào)警模塊和預(yù)留擴(kuò)展模塊(BMS)。

藍(lán)牙掃描連接模塊負(fù)責(zé)掃描藍(lán)牙設(shè)備,并與藍(lán)牙設(shè)備建立連接。電池監(jiān)控模塊負(fù)責(zé)顯示當(dāng)前電池參數(shù),實(shí)時(shí)的監(jiān)控電池狀態(tài)。報(bào)警模塊能及時(shí)對電池組的電壓,電流,溫度,充/放電狀態(tài)的異常情況做出報(bào)警,用紅色醒目加粗字體顯示,同時(shí)響起報(bào)警鈴聲,提醒使用者排查故障,及時(shí)做出相應(yīng)的處理。

3.2 Android客戶端UI設(shè)計(jì)

為了提高UI設(shè)計(jì)的靈活性,使App可以適應(yīng)于不同的屏幕尺寸,本系統(tǒng)采用在Activity中嵌入 Fragment的方式進(jìn)行布局。在Fragment中通過自定義ViewPager實(shí)現(xiàn)4個(gè)界面。通過RadioGroup設(shè)計(jì)底部四個(gè)菜單,監(jiān)聽RadioGroup的選中事件,對頁面進(jìn)行切換。自定義ContentAdapter繼承于PagerAdapter用來向ViewPager中填充數(shù)據(jù)。通過上述設(shè)計(jì)可以統(tǒng)一界面的風(fēng)格,提升交互的便捷性。

4 系統(tǒng)實(shí)現(xiàn)

對于Android手機(jī)與BLE的連接及數(shù)據(jù)傳輸過程,許多研究者做了大量的工作[6],目前技術(shù)已經(jīng)非常成熟,不再贅述。本文主要對數(shù)據(jù)的封裝與解析,藍(lán)牙配對與連接,實(shí)時(shí)監(jiān)控,報(bào)警功能的實(shí)現(xiàn)進(jìn)行說明。

4.1 數(shù)據(jù)封裝與解析

為了能讓智能電池單片機(jī)識別Android端發(fā)送的指令,要將16進(jìn)制指令字符串轉(zhuǎn)換為byte數(shù)組后再發(fā)送。新建hexStr2Bytes(String src)函數(shù)返回值類型為byte[],首先使用trim()和toUpperCase()函數(shù)對字符串進(jìn)行規(guī)范化處理,然后通過相關(guān)函數(shù)將字符串轉(zhuǎn)換為byte[]返回。同理,單片機(jī)通過藍(lán)牙模塊返回的數(shù)據(jù)為byte數(shù)組,在解析時(shí)首先將byte數(shù)組轉(zhuǎn)換為16進(jìn)制字符串,再根據(jù)解析規(guī)則從16進(jìn)制字符串中解析出相應(yīng)的電壓、電流、溫度等數(shù)據(jù)。

4.2 藍(lán)牙設(shè)備配對與連接

新建BasePager頁面加載base_pager.xml作為所有頁面的父類,在BasePager中實(shí)現(xiàn)標(biāo)題,并創(chuàng)建FrameLayout作為子頁面的容器。新建Buletooth-Pager類繼承自BasePager加載pager_buletooth.xml作為藍(lán)牙掃描與連接頁面。Android端與智能電池藍(lán)牙連接實(shí)現(xiàn)過程如下。

1)申請藍(lán)牙權(quán)限

在AndroidManifest.xml中申請BLUETOOTH_ADMIN和BLUETOOTH權(quán)限,否則無法打開和使用藍(lán)牙功能。

2)掃描當(dāng)前存在的藍(lán)牙

使用BluetoothAdapter中的startDiscovery()進(jìn)行掃描,發(fā)現(xiàn)新設(shè)備時(shí)發(fā)出BluetoothDevice.ACTION_FOUND廣播。創(chuàng)建ListView用來顯示掃描到的藍(lán)牙列表。在廣播接收器中接收到ACTION_FOUND廣播后,將掃描到的藍(lán)牙名稱、Mac地址等設(shè)備信息加入ListView中,持續(xù)檢測設(shè)備直到發(fā)現(xiàn)附件的所有藍(lán)牙設(shè)備。

3)連接藍(lán)牙

為ListView的每一個(gè)Item添加點(diǎn)擊事件,用以監(jiān)聽用戶的動(dòng)作。用戶通過點(diǎn)擊Item選擇要連接的藍(lán)牙設(shè)備,本應(yīng)用選擇智能電池藍(lán)牙模塊名稱為JDY-32,通過device.createRfcommSocketToServiceRecord(UUID)獲取BluetoothSocket對象,其中UUID代表通用唯一識別碼,對于藍(lán)牙設(shè)備而言,每個(gè)服務(wù)都有通用、獨(dú)立、唯一的UUID與之對應(yīng)。本應(yīng)用使用藍(lán)牙串口服務(wù),對應(yīng)UUID = ‘{00001101-0000-1000-8000-00805F9B34FB},最后通過BluetoothSocket中的connect()方法連接設(shè)備,首次連接時(shí)需要輸入默認(rèn)的配對密碼,JDY-32藍(lán)牙模塊對應(yīng)的配對密碼為“1234”,配對成功后藍(lán)牙設(shè)備將被保存在手機(jī)藍(lán)牙配對列表中,后續(xù)可直接連接無須輸入密碼。

4.3 實(shí)時(shí)監(jiān)測的實(shí)現(xiàn)

新建MonitorPager類繼承自BasePager加載pager- monitor.xml作為實(shí)時(shí)監(jiān)測頁面。為了在接收數(shù)據(jù)時(shí)不阻塞主線程,本系統(tǒng)通過Runnable機(jī)制新建子線程處理藍(lán)牙數(shù)據(jù)的接收事件,并將子線程設(shè)置為高優(yōu)先級,保證偵聽的連續(xù)性、實(shí)時(shí)性。子線程接收到新消息后,通過Handler機(jī)制通知主線程更新監(jiān)控界面。Android端每隔1秒發(fā)送一次請求指令,監(jiān)控界面每隔1秒刷新一次。

4.4 報(bào)警功能的實(shí)現(xiàn)

新建AlarmPager類繼承自BasePager加載pager- alarm.xml作為報(bào)警列表頁面。實(shí)現(xiàn)調(diào)用手機(jī)震動(dòng)過程如下。在AndroidManifest.xml文件中申請"android.permission.VIBRATE"權(quán)限。通過activity.getSystemService(Context.VIBRATOR_SERVICE)獲取Vibrator對象,再通過long[] patter = {1000, 1000, 2000, 50};vibrator.vibrate(patter, 0);設(shè)置震動(dòng)時(shí)間。vibrate函數(shù)的第二參數(shù)表示從哪里開始循環(huán),0表示這個(gè)數(shù)組在第一次循環(huán)完之后會(huì)從下標(biāo)0開始循環(huán)到最后。

5 測試與總結(jié)

本測試使用魅族pro6s手機(jī)作為Android端,智能電池端已焊接好JDY-32藍(lán)牙模塊。測試了包括,藍(lán)牙掃描,藍(lán)牙連接,實(shí)時(shí)監(jiān)控,報(bào)警等所有功能。整個(gè)測試過程App運(yùn)行流暢,藍(lán)牙連接正常,數(shù)據(jù)獲取、轉(zhuǎn)換、顯示正常,報(bào)警功能正常。實(shí)現(xiàn)效果如圖2所示。

本文很好地實(shí)現(xiàn)了智能電池?zé)o線監(jiān)測系統(tǒng),解決了傳統(tǒng)有線監(jiān)控方式的諸多不便,為智能電池的監(jiān)控提供了一種更加可靠、便捷的方案,具有一定的實(shí)用意義。BLE低功耗藍(lán)牙是大勢所趨,對于小型智能產(chǎn)品來說,是一種很好的通信方式。隨著Android系統(tǒng)的不斷迭代發(fā)展,對BLE藍(lán)牙的支持也會(huì)更加完善,基于BLE藍(lán)牙開發(fā)的App前景也將會(huì)更加廣闊。

參考文獻(xiàn):

[1] 周賀松.一種基于物聯(lián)網(wǎng)技術(shù)的多功能采集系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2020,10(5):46-48,54.

[2] Shaikh Shahriar Hassan,Soumik Das Bibon,MdShohrab Hossain,et al. Security threats in Bluetooth technology[J]. Computers & Security,2018,74:308-322.

[3] 陳冬云.淺談藍(lán)牙4.0“助力”物聯(lián)網(wǎng)的發(fā)展[J].教師,2014(17):126.

[4] Robin Heydon.低功耗藍(lán)牙開發(fā)權(quán)威指南[M]. 陳燦峰,劉嘉,譯.北京:機(jī)械工業(yè)出版社,2014.

[5] 萬燕,李麗麗.基于Android與BLE的藍(lán)牙通信系統(tǒng)的實(shí)現(xiàn)[J].科技創(chuàng)新與應(yīng)用,2018(16):15-17.

[6] 熊小軍,萬輝勇,陳泓屹.基于Android的低功耗藍(lán)牙通訊研究與實(shí)現(xiàn)[J].科技廣場,2015(7):122-127.

【通聯(lián)編輯:代影】

主站蜘蛛池模板: 久一在线视频| 欧美成人午夜影院| 一级爱做片免费观看久久| 亚洲精品无码AV电影在线播放| 国产一区二区人大臿蕉香蕉| 国产精品七七在线播放| 天天综合网亚洲网站| 国产综合精品一区二区| 精品福利国产| 日韩无码视频专区| 亚洲视屏在线观看| 久久国产精品电影| 中文毛片无遮挡播放免费| 欧美精品成人| 就去色综合| 亚洲精品片911| 永久免费无码日韩视频| 欧美国产视频| a毛片免费在线观看| 91精品国产91久久久久久三级| 久草视频福利在线观看| 91精品国产91久久久久久三级| 亚洲水蜜桃久久综合网站| 亚洲AV无码不卡无码| 欧美 国产 人人视频| 久久精品国产91久久综合麻豆自制| 国产欧美精品一区二区| 91亚瑟视频| 欧洲在线免费视频| 热这里只有精品国产热门精品| 国产99在线观看| 视频二区中文无码| 久久精品中文字幕少妇| av午夜福利一片免费看| 国产中文一区a级毛片视频| 中文字幕第4页| 久久狠狠色噜噜狠狠狠狠97视色 | 久久精品无码一区二区日韩免费| 国产视频 第一页| 国产亚洲精品资源在线26u| 美女高潮全身流白浆福利区| 国内a级毛片| www.99在线观看| 国产成人一区| 国语少妇高潮| 成年人国产网站| 久久综合丝袜日本网| 亚洲天堂福利视频| 成人免费网站久久久| 亚洲精品无码抽插日韩| 亚洲欧美日韩动漫| 久青草网站| 国产人人射| 一级一级一片免费| 久久综合亚洲鲁鲁九月天| AV在线天堂进入| 国产毛片片精品天天看视频| 激情無極限的亚洲一区免费| 国产噜噜噜视频在线观看| 91精品啪在线观看国产60岁| 国产另类视频| 国产亚洲现在一区二区中文| 九九九精品成人免费视频7| 国产好痛疼轻点好爽的视频| 午夜国产大片免费观看| 国产18在线| 国产高清在线精品一区二区三区| 在线毛片网站| 91精品最新国内在线播放| 无码又爽又刺激的高潮视频| 中文字幕一区二区人妻电影| 亚洲乱码在线播放| 人妻无码中文字幕一区二区三区| 国产香蕉在线视频| 免费观看三级毛片| 亚洲香蕉伊综合在人在线| 久久这里只有精品66| 亚洲精品大秀视频| 亚洲成在线观看| 青草午夜精品视频在线观看| 视频在线观看一区二区| 亚洲91精品视频|