目錄
-
項目目的
利用樹莓派採集某一特定環境的溫溼度,並上報服務器。可實現計時上報、定時採樣等功能。具體應用實例:只能溫控系統、車內溫度採樣、還可以利用3G或4G技術實現人煙稀少區域的溫度檢測等。
-
實現要求
-
基於樹莓派的溫度獲取,並且能夠上包服務器;
-
如果上報失敗或客戶端與服務器斷線,要求要把本次採樣的數據存儲的數據庫;
-
能夠實現定時或計時採樣數據和發送數據;
-
支持斷線重連,如果連接將數據庫中保存的數據上報道服務器;
-
採樣的數據需轉換爲tlv格式,並且支持CRC校驗;
-
支持確認重傳機制;
-
支持日誌系統;
-
使用Git實現項目託管;
-
支持域名解析。
-
項目實現基本流程圖
-
實現過程中遇到問題及其解決方案
- 函數傳參太多,導致程序可讀性下降。解決方法: 使用結構體封裝。
- 數據庫使用外鍵來維護數據庫,外鍵的值難以確定。解決方法:使用內鍵來維護。
- main含數文件過於繁瑣。 解決方法: 將文件拆分開,爭取一個功能一個函數,一個模塊一個C文件,還有與之一一對應的頭文件。
- 實現日誌系統時,傳參數目不定。解決方法:使用可變參數宏來實現參數的傳遞。
-
代碼地址
https://gitee.com/tjcshx/tlv_client