《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Android的物聯(lián)網(wǎng)控制系統(tǒng)的設計與實現(xiàn)
基于Android的物聯(lián)網(wǎng)控制系統(tǒng)的設計與實現(xiàn)
來源:微型機與應用2013年第1期
孫國峰,胡景春
(南昌航空大學 研究生學院,江西 南昌 330063)
摘要: 基于Android智能操作系統(tǒng)開發(fā)平臺,以移動通信網(wǎng)為載體,利用短信方式和GPRS方式實現(xiàn)在系統(tǒng)客戶端信息采集與傳輸、進行數(shù)據(jù)分析處理等功能的物聯(lián)網(wǎng)無線測控系統(tǒng)。用戶通過Android設備終端,可以隨時隨地查看環(huán)境數(shù)據(jù)并進行實時檢測與控制,實現(xiàn)物聯(lián)網(wǎng)嵌入式的無線測控功能。
Abstract:
Key words :

摘  要: 基于Android智能操作系統(tǒng)開發(fā)平臺,以移動通信網(wǎng)為載體,利用短信方式和GPRS方式實現(xiàn)在系統(tǒng)客戶端信息采集與傳輸、進行數(shù)據(jù)分析處理等功能的物聯(lián)網(wǎng)無線測控系統(tǒng)。用戶通過Android設備終端,可以隨時隨地查看環(huán)境數(shù)據(jù)并進行實時檢測與控制,實現(xiàn)物聯(lián)網(wǎng)嵌入式的無線測控功能。
關鍵詞: Android OS;GPRS;SMS;物聯(lián)網(wǎng);無線測控

 目前無線通信處于3G/4G時代,中國移動GPRS業(yè)務全面投入運營,無線數(shù)據(jù)通信的發(fā)展和應用向著愈來愈廣泛和深入的領域發(fā)展[1]。遠程測控技術并不是一項新的技術,然而由于移動通信網(wǎng)的介入,使之煥發(fā)出新的光輝。因此,隨著智能手機的迅速發(fā)展,Android操作系統(tǒng)作為最流行的操作平臺,充分利用無線通信的現(xiàn)有資源,開展遠程物聯(lián)控制是遠程控制充滿活力的發(fā)展方向,網(wǎng)絡遠程控制技術也是物聯(lián)網(wǎng)建設的基本方向之一[2]。
 本系統(tǒng)是基于Android操作系統(tǒng)平臺,將傳統(tǒng)的遠程控制技術向基于無線通信網(wǎng)的移動終端設備的方向轉變,實現(xiàn)了一種為移動客戶端提供遠程無線測控的方案。該方案能夠對遠程數(shù)據(jù)進行實時監(jiān)控,提高工作效率,也增加了遠程控制的靈活性。
1 Android操作系統(tǒng)平臺
 Android操作系統(tǒng)是谷歌發(fā)布基于Linux平臺的開源手機操作系統(tǒng)。該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,是首個為移動終端打造的真正開放移動軟件,其開放的平臺允許任何人在終端設備上開發(fā)[3]。Android所包含的功能如下:
 (1)APPLICATIONS(應用程序層):Android裝配了一個核心應用集合,包括短信、日歷、地圖、通信錄等。所有應用程序都是用Java語言編寫的。
 (2)APPLICATION FRAMEWORK(應用程序框架層):Android具有強大的應用層API和豐富的傳感器功能,所有的應用程序其實是一組服務和系統(tǒng),主要包括如下內(nèi)容:視圖(View);內(nèi)容提供者(Content Providers);資源管理器(Resource Manager); 通知管理器(Notification Manager);活動管理器(Activity Manager)。
 (3)LIBRARIES(庫):Android包含一個C/C++庫的集合,用來提供給Android系統(tǒng)多種組件使用,這些功能通過Android的應用程序框架來提供給開發(fā)者。
 (4)ANDROID RUNTIME(Android運行時):Android包含一個核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。每一個Android應用程序是Dalvik虛擬機中的實例,運行在自己的進程中。
 (5)LINUX KERNEL(Linux內(nèi)核):Android基于Linux2.6提供核心系統(tǒng)服務,例如安全、內(nèi)存管理、進程管理、網(wǎng)絡堆棧、驅動模型等。作為硬件和軟件之間的抽象層,它隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務[4]。
2 硬件平臺
 該物聯(lián)網(wǎng)無線測控系統(tǒng)的硬件平臺主要由STC12C5A60S2單片機、WISMO228無線通信模塊、I/O測控接口、本地串行通信接口等資源組成。硬件總體框架設計如圖1所示。

 微控制器選用8 bit STC12C5A60S2系列單片機,其指令格式完全兼容8051,但速度要快8~12倍。GPRS模塊選用基于GSM/GPRS的工業(yè)級無線通信模塊WISMO228,可直接由單片機串行口連接并通過AT命令控制等特性,能很好地適應物聯(lián)網(wǎng)對遠程測控的要求。以太網(wǎng)控制器選擇高度集成的全雙工以太網(wǎng)接口芯片RTL8019AS。
 固件程序的主要功能包括初始化228模塊、生成短消息、解析短消息、有線和無線網(wǎng)絡的通信、控制I/O設備等。
3 終端應用程序開發(fā)
3.1 系統(tǒng)方案

 (1)系統(tǒng)開發(fā)環(huán)境:本系統(tǒng)使用Android 應用開發(fā)工具和API 接口,基于JDK + Eclipse + ADT插件 + SDK的開發(fā)環(huán)境。
 (2)系統(tǒng)設計流程:系統(tǒng)通過Activity管理相應功能。首先進入LOGO界面,然后跳轉到登錄界面,驗證成功即可進入TabView界面,創(chuàng)建異步任務,進行異步操作,這樣能夠提高處理速度,使軟件更加健全可靠。軟件系統(tǒng)架構如圖2所示。

 (3)模塊化設計:系統(tǒng)客戶端軟件主要包括界面模塊、數(shù)據(jù)庫模塊和功能控制模塊3個部分。
3.2 設計與實現(xiàn)
3.2.1 UI布局實現(xiàn)

 Activity是Android的核心類,是一個用來提供屏幕與用戶交互的應用組件[5]。Activity類通過onCreat()方法來初始化,由setContentView()方法指定一個布局(layout)文件,顯示布局文件的內(nèi)容。UI布局實現(xiàn)如下:
 

 (3)賬戶管理界面
 在Android中,ListView是一個比較難于使用的控件,一個ListView通常有兩種功能,一是將數(shù)據(jù)填充到布局;二是處理用戶的選擇點擊等操作[8]。ListView以列表的形式展示具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長度自適應顯示。一個ListView的創(chuàng)建需要3個元素:ListView中的每一列的View;填入View的數(shù)據(jù)或者圖片等;連接數(shù)據(jù)域ListView的適配器[9]。
 在本系統(tǒng)中設計了account_item.xml和account_manager.xml兩個布局文件,分別用來實現(xiàn)ListView中每個item對應的View和管理賬戶界面AccountManagerActivity對應的布局。本視圖通過自定義AccountManagerActivity繼承BaseAdapter實現(xiàn)數(shù)據(jù)綁定、accountList與ListView列表項一一對應。其代碼如下:
accountList=(ListView)findViewById(R.id.lvAccountList);
adapter=new AccountManagerAdapter(this,users);

    tabHost=getTabHost();    
    tabHost.addTab(tabHost.newTabSpec("GPRS")
.setIndicator("GPRS",getResources().getDrawable
   (R.drawable.gprs))
.setContent(new Intent(this, GPRSActivity.class)));
控制器1完成對電視機的控制功能。當設定的定時時間點擊確定按鈕,即開始對電視機進行開機或關機操作;獲取控制器的響應信息,顯示定時完成狀態(tài);在獲取控制器響應信息之前,顯示正在定時狀態(tài)(如控制器2對冰箱的啟動或關閉狀態(tài)控制)。
3.2.2 數(shù)據(jù)庫設計
 本系統(tǒng)在使用過程中會頻繁對數(shù)據(jù)進行操作,而對存儲卡文件進行增、刪、改、查操作。為了提高效率,這里采取占用資源小的SQLite數(shù)據(jù)庫機制[10]。但數(shù)據(jù)庫并不能自身進行操作,只有通過一個繼承了SQLiteOpenHelper的類對象調(diào)用相應的函數(shù)進行操作。這里定義了一個DBHelper繼承SQLiteOpenHelper。為了代碼重用,對賬戶管理操作和終端數(shù)據(jù)操作分別寫了兩個基類UserInfoServices和RmcsInfoServices來處理最底層的訪問;數(shù)據(jù)庫里的每一行記錄與UI列表的每一項一一對應。
 根據(jù)需求分析,本系統(tǒng)涉及兩個表:UserInfo、RmcsInfo,分別用于保存賬戶信息和終端數(shù)據(jù)信息,其數(shù)據(jù)結構分別如表1和表2所示。這兩個表分別由UserInfoServices和RmcsInfoServices類管理。在DBHelper類的onCreate方法中通過執(zhí)行數(shù)據(jù)庫execSQL方法動態(tài)創(chuàng)建這兩個表。其代碼如下:
 db.execSQL(DBInfo.Table.SQL_CREATE_USER_INFO_TABLE);
 db.execSQL(DBInfo.Table.SQL_CREATE_RMCS_INFO_TABLE);

 

 

 另外,在UserInfoServices中主要封裝對賬戶的增、刪、改、查操作;在RmcsInfoServices中主要封裝對終端數(shù)據(jù)的相應操作。主要采用的數(shù)據(jù)庫操作方法如下:
 (1)db.insert(table,nullColumnHack,values)向數(shù)據(jù)庫中插入一條記錄。
 (2)db.delete(table,whereClause,whereArgs)從數(shù)據(jù)庫中刪除一條記錄。
 (3)db.update(table,values,whereClause,whereArgs)更新數(shù)據(jù)庫中的一條記錄。
 (4)db.query(table,columns,selection,selectionArgs, groupBy,having,orderBy) 在數(shù)據(jù)庫中 查詢一條記錄,該方法返回的是一個Cursor對象。
3.2.3 GPRS通信模塊設計
 物聯(lián)網(wǎng)無線測控系統(tǒng)的嵌入式微控制器與本地電器終端設備進行數(shù)據(jù)通信,以獲得電器設備的運行狀態(tài)參數(shù),通過GPRS模塊發(fā)送到GPRS網(wǎng)絡中。手機終端的GPRS接收模塊可以接收經(jīng)無線網(wǎng)絡傳遞進來的數(shù)據(jù)進行處理,同時還可以由GPRS發(fā)送模塊將封裝后的測控數(shù)據(jù)傳送到終端設備,從而在物聯(lián)網(wǎng)平臺上對電器終端設備的開關,實現(xiàn)定時、排除異常、報警等監(jiān)控功能。
具體設計如下:
 (1)首先判斷是否接入網(wǎng)絡。在Android手機中可以通過ConnectivityManager類的isAvailable()方法判斷是否已聯(lián)網(wǎng),查看返回結果判斷網(wǎng)絡連接是否有效,如果為true,則表示當前Android手機已經(jīng)聯(lián)網(wǎng);為false則表示沒有聯(lián)網(wǎng)。其代碼如下:
ConnectivityManager cManager=(ConnectivityManager)get System Service(Context.CONNECTIVITY_SERVICE); NetworkInfo info=cwjManager.getActiveNetworkInfo();
 (2)使用過程中必須建立GPRS連接,其代碼如下:
 DataConnection conn=DataConnection.getInstance();
if(connectMode==0){
ret=conn.openConnection(mContext,"cmwap",
           "cmwap","cmwap");
}else {ret=conn.openConnection(mContext,"cmnet","
","");}
 (3)Android平臺的網(wǎng)絡應用絕大部分都是基于Java的編程接口,這里同樣采用了基于標準的Java接口。步驟如下:創(chuàng)建URL以及URLConnection/HttpURLConnection對象,設置連接參數(shù),連接到服務器,向服務器讀、寫數(shù)據(jù)等通信控制。其代碼如下:
URL url=new URL(Values.REQUEST_URL);
HttpURLConnection http
=(HttpURLConnection)url.openConnection();
        connection.connect();
   InputStream in=connection.getInputStream();
   OutputStream outStream=connection.getOutputStream();
 (4)最后要在AndroidManifest.xml文件中加入權限:
<uses-permission
android:name="android.permission.ACCESS_NETWORK_ STATE"/>?
<uses-permission android:name="android.permission.INTERNET"/>
3.2.4 SMS通信模塊設計
 (1)Android SDK提供了用于直接發(fā)送短信的SmsManager類[11]。通過sendTextMessage方法可以指定目標電話號碼和短信內(nèi)容。其代碼如下:
SmsManager sms=SmsManager.getDefault();
sms.sendTextMessage(number, null, str, null, null);
 (2)Android系統(tǒng)只要接收到短信,就會發(fā)一個廣播。因此,這里定義SMSReceiver繼承廣播接收器BroadcastReceiver,重寫onReceive()方法,用來監(jiān)聽手機接收到的短信。此時要在AndroidManifest.xml文件中定義這個廣播接收器。其代碼如下:
<receiver android:name=".SMSReceiver" android:enabled="true">
 <intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
 (3)最后在配置文件中設置如下權限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
4 測試與結論
 應用程序設計完成后,就可以在Android SDK提供的AVD虛擬機上成功運行,并且在基于Android平臺的移動終端上測試運行。本測試環(huán)境下使用的移動終端采用華為C8650,該機型采用Android2.3.3系統(tǒng)版本。
將完成的應用程序中的RMCSoftware.apk文件安裝在手機中,即可運行程序。經(jīng)多次測試,手機客戶端能夠通過GPRS模塊和SMS模塊分別檢測和控制終端設備的運行狀態(tài),并能夠正確地發(fā)送和接收數(shù)據(jù),對數(shù)據(jù)進行封裝和處理,可在較短的時間內(nèi)實現(xiàn)對設備的定時、排除異常等功能,應用程序運行良好,滿足了無線測控系統(tǒng)的功能需求。
參考文獻
[1] 王瑩.物聯(lián)網(wǎng)為嵌入式帶來的機遇[J].電子產(chǎn)品世界,2010(5).
[2] 劉強,崔莉,陳海明,等.物聯(lián)網(wǎng)關鍵技術與應用[J].計算機科學.2010(6).
[3] 裴佳迪,馬超,孫仁貴,等.Google Android應用開發(fā)全程實錄[M].北京:人民郵電出版社,2012.
[4] 姚昱旻,劉衛(wèi)國.Android的框架與應用開發(fā)研究[J].計算機系統(tǒng)應用,2008(11).
[5] 孟小華,陳傳凱.Android平臺手機來電及短信防火墻關鍵技術研究[C].2010 3rd International Conference on Power Electronics and Intelligent Transportation System. 2010.
[6] 張仕成.基于Google Android平臺的應用程序開發(fā)與研究[J].電腦知識與技術,2009(28).
[7] 趙亮,張維.基于Android技術的界面設計與研究[J].電腦知識與技術,2009(29).
[8] 韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.
[9] 耿東久,文軍.基于Android手機的遠程訪問和控制系統(tǒng)[J].計算機應用,2011,31(2).
[10] Android如何使用SQLiteOpenHelper[EB/OL]. http://www.cnblogs.com/skynet/archive/2010/06/14/1758284.html<br>.
[11 魏化勇.基于3GAndroid的SMS應用研究[J].計算機光盤軟件與應用,2011(11):191-183.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区在线直播| 亚洲毛片在线观看.| 曰韩精品一区二区| 国产欧美日本一区二区三区| 欧美日韩综合网| 欧美紧缚bdsm在线视频| 免费在线欧美黄色| 美女露胸一区二区三区| 久久婷婷久久| 久久久亚洲影院你懂的| 久久久在线视频| 久热精品视频| 久久综合影音| 免费黄网站欧美| 免费永久网站黄欧美| 裸体素人女欧美日韩| 久久婷婷久久| 欧美电影在线| 欧美精品播放| 欧美日韩一区二区三区在线看| 欧美啪啪一区| 欧美日韩午夜在线视频| 欧美四级伦理在线| 国产精品扒开腿爽爽爽视频| 欧美视频在线不卡| 国产精品美女999| 国产精品夜夜夜一区二区三区尤| 国产精品久久久久久久久| 国产精品每日更新在线播放网址| 国产精品一区二区a| 国产日韩欧美在线看| 好看不卡的中文字幕| 亚洲国产高清高潮精品美女| 亚洲激情在线观看| 在线视频你懂得一区二区三区| 亚洲图片自拍偷拍| 欧美在线视频日韩| 亚洲欧洲精品一区二区三区 | 亚洲在线网站| 午夜日韩在线观看| 久久米奇亚洲| 欧美激情视频一区二区三区不卡| 欧美日韩一区二区三区在线 | 国产老女人精品毛片久久| 国产三级精品三级| 亚洲国产精品一区二区尤物区 | 欧美日本中文字幕| 国产精品久久久久久久久久尿| 国产精品视频成人| 国内精品视频666| 亚洲日本一区二区| 亚洲欧美韩国| 亚洲精品久久久久久一区二区| 亚洲午夜电影网| 久久久女女女女999久久| 欧美激情一区二区三区| 久久人人爽人人| 性8sex亚洲区入口| 噜噜噜久久亚洲精品国产品小说| 欧美日本不卡| 国产一区二区三区丝袜| 亚洲三级国产| 欧美在线二区| 亚洲影院色在线观看免费| 久久久国产午夜精品| 欧美精品在线观看91| 国产日本欧美视频| 最新69国产成人精品视频免费| 亚洲午夜精品福利| 亚洲日本中文字幕| 欧美一区二区精美| 欧美日韩国产三区| 精品动漫3d一区二区三区免费| 野花国产精品入口| 亚洲电影自拍| 亚洲女与黑人做爰| 欧美承认网站| 国产亚洲亚洲| 亚洲视频精品| 亚洲伦理精品| 久久久久九九九| 国产精品高潮呻吟久久| 在线观看视频一区二区| 亚洲欧美视频| 亚洲性xxxx| 精品999在线播放| 国产视频自拍一区| 一区二区三区四区五区精品视频 | 亚洲欧美美女| 日韩一级在线| 久久亚洲欧洲| 国产精品爽爽ⅴa在线观看| 亚洲激情小视频| 亚洲高清视频在线观看| 欧美怡红院视频| 国产精品video| 亚洲日韩成人| 久久精品一本| 久久精精品视频| 国产精品久久午夜夜伦鲁鲁| 亚洲日本免费| 亚洲精品国产精品国自产在线 | 亚洲电影av| 欧美专区亚洲专区| 国产精品激情av在线播放| 亚洲日本va午夜在线电影| 亚洲国产欧美精品| 久久麻豆一区二区| 国产一区二区三区在线观看免费| 亚洲午夜在线| 亚洲专区一区二区三区| 欧美日韩国产精品一区| 最新国产の精品合集bt伙计| 亚洲片在线观看| 男人的天堂亚洲在线| 影院欧美亚洲| 亚洲国产经典视频| 久久一区二区三区四区| 国产自产在线视频一区| 欧美一区二区三区久久精品| 午夜视频在线观看一区二区三区 | 99热免费精品| 一本一本久久| 欧美日韩视频| 日韩亚洲国产精品| 一区二区三区欧美在线| 欧美精品18+| 亚洲精品一线二线三线无人区| 夜夜嗨av一区二区三区| 欧美日韩精品免费观看视频完整| 亚洲欧洲久久| 在线视频日韩精品| 国产精品成人va在线观看| 亚洲午夜女主播在线直播| 午夜免费在线观看精品视频| 国产精品久久久久国产a级| 亚洲午夜精品一区二区| 欧美中文字幕第一页| 国产综合精品| 亚洲欧洲在线播放| 欧美日韩国产一级| 在线一区二区日韩| 欧美一级理论片| 国产综合在线看| 91久久久在线| 欧美日韩国产三区| 亚洲一区二区三区三| 久久精品国产第一区二区三区最新章节| 国产亚洲一二三区| 亚洲人成毛片在线播放女女| 欧美日韩国产片| 亚洲欧美国产日韩天堂区| 久久亚洲影院| 最新日韩在线视频| 亚洲欧美韩国| 狠狠色狠狠色综合系列| 99re6这里只有精品| 国产精品狠色婷| 欧美在线免费观看亚洲| 欧美承认网站| 亚洲一区二区网站| 另类综合日韩欧美亚洲| 一本久久精品一区二区| 久久riav二区三区| 亚洲国产精品一区二区www| 亚洲欧美国产日韩中文字幕| 国内精品久久久久影院优| 99精品国产在热久久婷婷| 国产精品视频免费观看| 久久精品一二三| 欧美视频中文字幕在线| 欧美在线日韩| 欧美日韩另类字幕中文| 午夜精彩视频在线观看不卡| 女女同性精品视频| 亚洲一区精品电影| 蜜臀av性久久久久蜜臀aⅴ四虎| 中文有码久久| 欧美成人乱码一区二区三区| 中国成人黄色视屏| 免费成人高清| 亚洲小视频在线观看| 免费成人av在线看| 亚洲欧美国内爽妇网| 欧美精品在线一区二区| 欧美一级理论片| 欧美日韩中国免费专区在线看| 久久xxxx| 国产精品乱码人人做人人爱| 亚洲精品一区二区三区在线观看 | 国产欧美日韩在线播放| 99视频在线观看一区三区| 国产精品一级二级三级| 亚洲精选大片| 国产综合欧美| 亚洲欧美精品在线| 亚洲人成在线观看| 美女精品自拍一二三四| 欧美亚洲免费高清在线观看| 欧美日韩国产一区二区三区|