數據遠程采集系統介紹
優(yōu)采云 發(fā)布時(shí)間: 2020-08-03 18:01>>[目錄](méi) 數據遠程采集 Step by Step
系統主要由5部份組成:
設備
被*敏*感*詞*的設備,這個(gè)設備通過(guò)UART來(lái)廣播自身的運行狀態(tài)
采集裝置
樹(shù)莓派ZeroW,接收設備廣播包,存到數據庫(定期打包),并上傳云端
云端存儲
阿里云對象儲存OSS
本地下載
每天手動(dòng)下載云端的數據,并刪除過(guò)期的數據。在局域網(wǎng)共享數據文件夾
上位機
通過(guò)局域網(wǎng)共享的方法獲取所需的數據文件,通過(guò)上位機進(jìn)行數據剖析
1 設備
本項目里使用的廣播包約0.5~2s發(fā)一幀,每幀數據約50~400字節,大概是這個(gè)量級。
2 采集裝置
樹(shù)莓派ZeroW,這款自帶WIFI模塊,聯(lián)網(wǎng)很方便,尺寸也太小,對安裝環(huán)境的要求較低。
為了防止影響被*敏*感*詞*的設備,獨立供電,只用GND+RX兩根線(xiàn)與設備進(jìn)行通信。
默認無(wú)通信合同,只用數據幀的厚度來(lái)過(guò)濾有效廣播包,然后直接儲存原始數據幀,這樣可以提升通用性,后續在本地上位機上進(jìn)行合同解析。
采用SQLite進(jìn)行數據儲存。數據庫中每一條記錄代表一幀廣播數據(長(cháng)度不夠就補0),一般不僅原始通信數據以外就會(huì )把時(shí)間信息等其他的一些附送數據同時(shí)打包進(jìn)記錄中,便于后續剖析。為了提升效率,可以每收到50-100幀數據后再統一插入到數據庫中。數據庫文件是后續上傳等操作的最小單位,每隔一段時(shí)間生成一個(gè)新的數據庫文件,這樣三天的數據就可以被打包成若干的數據庫文件。
已經(jīng)儲存完成的數據庫文件會(huì )被放在的文件夾中,如果采集裝置不聯(lián)網(wǎng)云端內容采集,那么這種數據庫文件就在這個(gè)文件夾下仍然存著(zhù)了,如果聯(lián)網(wǎng)的話(huà),有個(gè)數據上傳的程序會(huì )來(lái)掃描這個(gè)文件夾,如果找到數據庫文件,就會(huì )把這種文件上傳到云端,然后把數據庫文件移到的文件夾下。
采集裝置上的程序都是用Python開(kāi)發(fā)的。
3 云端存儲
選用的是阿里云對象儲存OSS,租了40個(gè)G的空間(費用5年45元)。用上去很方便,只要通過(guò)API函數(Python SDK--oss2)去訪(fǎng)問(wèn)就好了,阿里云的網(wǎng)站和APP上都可以直觀(guān)地看見(jiàn)上傳的數據文件。
4 本地下載
每天早上7點(diǎn)(0點(diǎn)-8點(diǎn)之間下載費用五折,0.25元/G)自動(dòng)下載云端的數據,并刪除過(guò)期的數據。辦公室的臺式機仍然開(kāi)著(zhù),相當于一個(gè)服務(wù)器了,然后把數據文件夾共享給局域網(wǎng)中的用戶(hù),其他人就可以隨時(shí)訪(fǎng)問(wèn)了。
如果著(zhù)急要看最新的數據,可以臺式機上自動(dòng)運行下載數據的腳本。
下載腳本也是用Python寫(xiě)的。
5 上位機
上位機主要是做兩個(gè)事,1、解析數據庫中的原始記錄,2、數據的統計剖析等等。
這個(gè)上位機是之前另外一個(gè)項目中開(kāi)發(fā)的(C#),它本身可以與設備通信云端內容采集,進(jìn)行合同解析,存儲解析后的數據,顯示數據,對數據統計剖析。所以這個(gè)上位機天然具有處理原始數據的能力,只須要把原始數據庫文件導出到上位機中,然后逐字處理記錄就可以了。
局域網(wǎng)中的其他用戶(hù)把原始數據庫下載到本地后,用上位機進(jìn)行處理。
不過(guò)采集到的數據如何用是靈活的,可以自己寫(xiě)軟件進(jìn)行處理;或者用SQLite Expert直接查看原始數據,這個(gè)軟件可以把數據導入到Excel中(Excel2007之前最大行數為65,535,之后的版本是最大1,048,576行,用SQLite Expert導入的時(shí)侯要注意一下)。
后續不會(huì )討論上位機相關(guān)的東西,主要是早已超過(guò)了數據遠程采集的范圍,然后涉及的內容也好多。



