1. 程式人生 > >JAVA實踐專案---樹莓派資訊自動化採集後入庫專案(一)

JAVA實踐專案---樹莓派資訊自動化採集後入庫專案(一)

專案原始碼可訪問我的github:https://github.com/Spacider/Gather-and-store
如果覺得好的話請給個star哦~

樹莓派

樹莓派是一個固定的硬體系統,我們可以通過指令與板上的各式感測器(比如溫度、溼度、二氧化碳感測器)進行互動。這裡我們不去深究樹莓派的實現方式(嵌入式方向,逃~),我們只需要理解如何與樹莓派互動的手段和與我們通過與樹莓派互動能獲得什麼?下面談談我的想法:

  • 如何與樹莓派進行互動?
    測試環境採用的是XML檔案的形式,傳送端的XML如下所示:
<?xml version="1.0" encoding="UTF-8"?> <Message>
<SrcID>100</SrcID> //電腦端ID
<DstID>101</DstID> //樹莓派ID
<DevID>2</DevID> //板子模組ID 
<SensorAddress>16</SensorAddress> //板子上具體的感測器ID
<Counter>1</Counter> //操控的感測器個數
<Cmd>3</Cmd> //傳送指令 3表示要接收資料 16表示要傳送資料
<Status>1</Status> //狀態 預設值1表示成功
 </Message>

這些資料就是我們需要傳送給樹莓派系統的資料,通過這些資料,樹莓派系統就可以找到對應的感測器並給我們反應相關的資料,比如上XML檔案表示找到ID為101的樹莓派,然後好到板子2上的16號感測器!

  • 與樹莓派互動能獲得什麼?
    樹莓派系統在獲得找到感測器以後就會讀取該感測器的資料,同樣,他回拼接一個新的XML檔案給你,只不過這個XML檔案是帶有感測器資料的!先看XML檔案的內容:
 <?xml version="1.0" encoding="UTF-8"?> <Message>
<SrcID>100</SrcID> //電腦端ID
<DstID>101</DstID> //樹莓派ID
<DevID>2</DevID> //板子模組ID
<SensorAddress>0</SensorAddress>
<Counter>0</Counter>
<Cmd>3</Cmd> //傳送的命令3表示接收資料16表示要傳送資料
<Data>63a87aec02</Data> //16進位制資料
<Status>1</Status> //狀態 預設值1表示成功
</Message>

返回的XML檔案大致相同,只不過SensorAddress和Counter屬性為0,因為我們不必關注板上的感測器和ID,Data欄位所帶給我們的就是採集到的資料,這個資料為16進位制,之後我們會完整的介紹如何去拆分這個資料。

談到專案

這個專案中我們採用的是 XML檔案的形式,專案可執行在真實樹莓派系統上,這裡我們採用測試環境,可以獲得與真實環境相同的效果。
專案用到的技術(或者說你需要懂的基礎):
1.Thread 的使用和理解。
2.XML檔案解析(dom4j或其他解析技術)。
3.各種流的使用和理解。
4.log4j的使用。
5.jdbc的使用和理解。

專案的模組設計:

在這裡插入圖片描述

隨著稍微的學習我們會對各個模組進行講解和程式碼編寫。

當你準備好了,就開始我們的專案實踐吧!