潘力戈 張彤


摘 要:巡更是商務樓宇、專業市場、小區物業安全管理必不可少的一項內容,在電力、電信、石油、燃氣、水務等行業也需要對線路、機房、設備進行定期巡檢。隨著移動互聯網的快速發展,采用具備NFC功能的移動終端實現智能巡更巡檢使管理人員更準確、及時、有效地進行巡更巡檢的管理,同時使用移動終端的GPS、照片上傳、內容錄入等功能對巡更巡檢過程中發現的問題及時上報、預警,避免各種事故的發生。采用具備NFC功能的手機NFC智能巡更使管理人員更準確、科學、規范地監督及掌握巡查人員的巡查情況。
關鍵詞:NFC;巡更;巡檢;智能終端
0 引言
隨著移動互聯網及智能手機的發展,手機終端越來越多地應用于行業應用中。其中利用手機的GPS定位功能、照片上傳功能等實現管線、桿路、機房設備、銷售終端、物業巡更等方面的巡檢巡更功能,但使用手機GPS定位的主要問題是GPS定位的精度要在10-20米左右,在室內無法使用GPS定位功能,也無法定位到同一房間某個設備的巡檢點上,之前曾考慮過使用二維碼方式或藍牙模塊方式,但二維碼圖片容易被復制,藍牙模塊成功較高。
近年來,越來過多的手機具備了NFC功能,NFC又稱近距離無線通信(Near Field Communication),是一種短距離的高頻無線通信技術,允許電子設備之間進行非接觸式點對點數據傳輸(在十厘米內)交換數據,這個技術由非接觸式射頻識別(RFID)演變而來。NFC目前主要應用于手機支付功能,如通過手機可以在座公交時刷公交卡,在超市買物品時進行閃付等功能。以上這些功能主要是通過手機NFC功能與SIM-SWP卡實現數據加密、安全認證功能實現,手機作為NFC信息的提供者。
NFC手機不僅能進行手機支付,還可以把手機作為一個讀取NFC標簽卡的設備,對寫有不同信息及ID的標簽卡內容讀取ID并實現識別上傳的功能。本系統就是利用NFC手機的讀取NFC標簽的功能,實現了精確定點的巡更巡檢的功能,同時利用手機的GPS功能、照片上傳功能、信息提交功能實現定點NFC標簽內容識別、GPS位置信息上傳、安全隱患照片上傳、消息推送等其他相關功能。由于NFC標簽價格便宜、防水,可適合于不同的使用環境,可廣泛布放于桿路、機房設備及任意需要定時巡檢的物品上,使用時只需打開手機APP在標簽卡上一放即可立即讀取卡中的信息。由于標簽卡每一張的ID均不同,并且可以寫取幾百個字節的其他信息,因此可以作為定點巡檢的唯一標識,同時通過GPS位置、照片上傳等信息防止標簽卡被移到其他地方作假使用,保證了巡檢過程的真實性。通過手機將信息讀取后,實時上傳巡檢信息,管理人員也可以實時看到巡更巡檢的信息,起到對巡檢人員的監督職能。
1 系統總體設計
1.1 手機終端要求
根據巡更、巡檢人員的業務性質及消費能力,系統采用具備三防功能的Android手機終端,以適應室外、潮濕、高溫等不同的工作環境要求,要求手機具備Android 2.3.3以上操作系統版本、4.7寸以上觸摸屏幕,具備WCDMA 3G或TD-LTE、FDD-LTE4G通信模塊及NFC、藍牙功能模塊,手機電池25000mAh以上,1G以上RAM、2G以上ROM,支持MicroSD卡擴展。
1.2 服務器端要求
服務器端要求Windows Server 2003以上操作系統,安裝Apache+PHP+Mysql運行環境,4G以上內存,500G以上存儲空間,Apache Web服務器開通80端口及8088(或其他端口),一個端口用于后臺管理及上傳數據報表查詢,一個端口用于手機終端上傳內容保存。
1.3 手機端系統開發
手機端開發采用Appcan基于混和模式的移動開發系統實現功能快速高效開發,由于該開發系統沒有NFC功能插件,因此需要安裝eclipse開發環境用于Android的NFC功能開發。采用Appcan提供的Eclipse下的開發標準開發NFC調用插件,實現NFC標簽卡的讀寫功能。
采用Eclipse系統開發的NFC功能并測試通過后導出JAR文件,上傳到Appcan移動開發平臺供開發時調用。
AppCan SDK 是一套跨平臺移動應用開發系統,基于業內領先的Hybrid App 開發引擎,采用HTML5 標準作為開發語言,支持一次開發多平臺適配。該系統內置了GPS定位、照片上傳等幾十項插件功能,使用時只需通過HTML5的Javascript調用相應的函數即可。
通過HTML5設計的手機界面及功能調用,數據交互采用Ajax技術與后臺服務器進行數據交互,數據交互格式為JSON格式。
1.4 服務器端功能開發
服務器端采用基于HTML5、Jquery技術的EasyUI開發框架設計,通過Jquery的Ajax技術將界面與數據交互功能進行分離,結構清晰易于模塊化開發。功能交互端采用PHP開發語言及Mysql數據庫進行數據存儲,Apache+PHP+Mysql是目前Web開發中比較流行的組合,訪問效率高、系統穩定。
1.5 NFC標簽卡
NFC標簽卡采用NXP原裝進口NTAG216芯片,容量888字節,適合制作多任務NFC標簽。該類標簽在淘寶等網站上均有銷售,價格便宜(小于10元/張)、兼容性好,可適應大多數NFC手機。
2 系統模塊設計
2.1 手機端NFC功能設計
2.1.1 NFC API使用
自Android 2.3.3版本開始NFC近場通信功能已經被支持并提供了相應的調用API,Android中提供的與NFC相關的較高層的類都包含在android.nfc中,這個包中包含了用于與本地NFC適配器交互的類,用于代表已經識別的標簽的類以及用來使用NDEF(Nfc Data Exchange Format )格式的類。
Android.nfc.tech包主要是包括了一些用于查詢特定標簽的特性和I/O操作的類。所有的這些類都需要實現TagTechnology接口,它們包括NfcA、NfcB、NfcF、NfcV、IsoDep、Ndef、NdefFormtable、MifareClassic、MifareUltralight這幾個類。在使用時在相應原JAVA文件中import Android.NFC.*即可。
根據Android系統所遵循的權限機制,我們需要在AndroidManifest.xml中對需要使用的權限進行聲明,這樣在程序進行安裝時將會提示用戶該程序將會使用到哪些設備,讓用戶來決定是否賦予應用程序相應的權限,Android通過這樣的機制來提高系統的安全性。因此當我們在應用程序中需要使用到NFC硬件的時候,我們應當在AndroidManifest.xml中加上:
另外,還需要聲明的是能夠支持應用程序的最低SDK版本,由于對NFC的支持是在API 10以后才比較完善,因此我們需要使用:
2.1.2 NFC標簽卡數據讀取
根據巡更巡檢的功能要求,只需讀出NFC標簽卡中的ID號即可以區分每一張卡。每張卡ID是在出廠的時候已經寫好的,不能更改,類似網卡中的MAC地址。讀取每張卡的ID后,上傳到后臺數據庫中,系統根據系統數據庫中預先導入標簽卡的ID與安裝位置的名稱等信息進行區配。讀取的過程相對比較簡單,用戶啟動APP后即開始調用NFC識別功能,該識別功能后臺運行無須界面顯示,相關代碼如下所示:
@Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
//resolveIntent(intent);
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(intent.getAction())) {
Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
MifareClassic mfc = MifareClassic.get(tagFromIntent);
String result = "UID:"+Coverter.getUid(intent)+"|"+processIntent(intent);
//resultText.setText(result);
Intent in = new Intent(getIntent().getAction());
in.putExtra("result", result);
setResult(Activity.RESULT_OK, in);
finish();
}
}
2.1.3 NFC標簽卡讀取后的數據返回
采用AppCan移動開發工具提供的Android原生插件開發引擎,該引擎可以定義插件名稱、調用方式等,定義內容在Plugin.xml文件中,內容如下:
<?xml version="1.0" encoding="utf-8"?>
className="com.nfc.UexNfcReadObject" uexName="uexNfc" > //插件名稱
定義了接口方法后,在開發工程中進行方式定義及讀取模塊調用,主要代碼如下:
public void startNfcResult(String[] parm){
Intent intent = new Intent();
intent.setClass(mContext, NfcRead.class);//初始化讀取模塊
try{
startActivityForResult(intent, mMyActivityRequestCode);
//返回數據后生成JSON格式或字任串格式數據返回JAVASCRIPT調用端
}catch (Exception e) {
Toast.makeText(mContext, "找不到此Activity!!", Toast.LENGTH_LONG);
}
}
2.1.4 手機調用端數據獲取
采用AppCan移動開發平臺,調用相應功能時只需使用Javascript調用相應函數即可,如在調用HTML5的index.html頁面中,頁面初始后自動調用Nfc讀取插件:
window.uexOnload = function(type){
if(type == 0){
uexNfc.cbStartActivityForResult = funcD1; }
}
function funcD1(opCode, dataType, data){
alert("返回的NFC標簽卡的ID是:"+data);
}
2.1.5 NFC標簽數據獲取后上傳至服務器
由于Appcan采用混合的HTML5開發技術,因此與后臺的交互采用Jquery的Ajax技術與后臺服務器進行數據交互,交互格式采用Form變量提交方式,服務器端PHP程序獲取的POST變量后保存到數據庫并返回JSON格式的結果,手機端Jquery調用程序獲取返回數據后進行異步結果判斷及內容顯示。Ajax上傳主要代碼如下:
function slinfo_tj(data)
{
var tjinfo=encodeURIComponent(JSON.stringify(data));
var m_url=ip+'func_sdb2.php?oper_db=slinfo_tj';
appcan.request.ajax({
type: 'POST',
url: m_url,
//添加參數
data: {tjinfo: tjinfo},
//期望的返回類型
dataType: 'json',
timeout: 3000,//超時時間
success: function(data){
//alert(JSON.stringify(data));
//獲取內容
if (data.result=="success")
{
appcan.window.alert({
title:'提示',
content:'巡更信息提交成功!',
buttons:'確定'
});
processid="";
$("#imgs").html('');
$("#prodbm").val('');
$("#note").val('');
lat='';
lng='';
}
else
{
appcan.window.alert({
title:'提示',
content:'巡更信息提交失敗,請重試!',
buttons:'確定'
});
}
},
error: function(xhr, type){
appcan.window.alert({
title:'提示',
content:'巡更信息提交失敗,請重試!',
buttons:'確定'
});
}
})
}
2.1.6 手機界面設計
采用HTML5移動框架設計技術,界面友好、開發效率高。巡更巡檢系統取NFC標簽數據讀取外,將GPS位置定位、照片上傳、數據提交功能進行了有機結合,實現了巡更巡檢內容的實時提交上傳功能,同時還可以根據用戶需求將通訊錄、工作計劃等內容進行功能集成。(圖1)
2.2 后臺管理端設計
后臺管理端主要實現上傳內容查詢、統計報表生成、人員管理等功能。通過手機上傳的數據提交后即可通過后臺查詢界面查看上傳的內容信息,對于需要關注的安全隱患等內容可以通過短信、手機APP消息推送方式發送給相關人員。管理人員通過手機APP客戶端或PC端Web訪問系統可以看到上傳的問題內容、GPS位置、照片等相關信息。(圖2)
3 結論
在過去的十多年里,互聯網帶來了衣食住行和文化娛樂等消費領域的深刻改變,進行了廣泛而深入的融合,并促進了這些領域消費形態的變化,運營商在消費互聯網時代“起了個大早,趕了個晚集”,現在越來越被管道化、邊緣化。因此運營商的經營服務模式需要轉型升級,由賣產品向賣服務轉變,由一次性服務向持續性服務模式轉變。行業信息化應用產品是提高運營商移動寬帶市場占有率、向行業用戶核心業務滲透、提高用戶粘性、促進流量經營的有力抓手。NFC手機巡更巡檢系統的開發有效地促進了移動終端在物業管理、相關行業移動巡檢方面的使用,為移動互聯網行業應用發展起到了一定的示范作用。
參考文獻:
[1]明日科技編著.Android從入門到精通[M].清華大學出版社.
[2]趙波.Android NFC開發實戰詳解[M].人民郵電出版社.
[3]AppCan移動混合模式開發手冊[M].正益無線(北京)科技有限公司.
[4]陶國榮.jQuery權威指南[M].機械工業出版社.