海事數據服務器是海上數據的中央數據(雲)服務器。它將來自Exmaple MDC (海上數據收集器或Lora-BootsMonitor或任何其他設備)的數據存儲在數據庫中,並為用戶提供GUI以顯示數據並進行一些配置。
最初的想法是,在您不在船上時,有可能能夠看到一些海上數據(溫度,電池電壓,艙底警報)。
MDC它是帶有ESP32和一些傳感器的小型板,可收集傳感器數據並將這些數據傳輸到MDS。您將在https://github.com/bytecrusher/maritimedatatacollectorsmall下找到MDC文檔
海事數據服務器是一個Web應用程序,用於存儲用戶的數據並顯示數據。它重新設置了一個MySQL數據庫,用於存儲數據和具有PHP支持的Web服務器,以顯示數據的信息。 MD可以在圖形/計量圖或圖表中顯示傳感器的數據。還可以配置板和傳感器。
該服務器是在後端組織的(用於接收collector和ttn的數據,發送電子郵件的API)和用於在用戶瀏覽器中顯示數據的前端。
後端將數據存儲到DB中。它還檢查數據是否有效,並且板和傳感器存在於DB中,否則將創建新的DB記錄。
對於前端,用戶需要登錄。現在,用戶能夠進行一些配置或顯示一些數據。
將所有MDS文件從“ SRC”文件夾複製到您的HTDOCS DIR中。創建一個新的數據庫(使用PHPMYADMIN),並創建一個新用戶,並在此數據庫中寫入特權。在瀏覽器中打開http:// yourdomain/maritimedataserver/install/index.php ,然後逐步瀏覽安裝步驟。安裝完成後,刪除名為“安裝”的DIR(出於安全原因)。
現在, MDS可在http:// yourdomain/maritimedataserver下獲得



對於運行MDS ,您需要一個具有PHP支持和MySQL DB的(Apache)Web服務器。
如果您在本地網絡之外運行MDC ,則需要公開MDS (TTN應該能夠到達此服務器)。
為了開發,我使用不同的解決方案。首先是在我的編碼計算機上運行的本地Docker容器。其次,我在網絡主機上有一個子域中,它從那裡的Guthub拉了我的“開發”分支。
########我目前的第一波路:我設置了4個容器(每個服務一個):
如果Apache,我將VSC配置為可以在HTDOCS文件夾中直接工作。因此,無需手動同步文件。
第二波:在我的Webhosting子域中,我設置了呼吸器,因此我能夠從Plesk面板上運行拉動請求,並在WebSpace上設有最新的開發分支。
對於PHP調試,我使用Xdebug。 MAMP中的配置在**/applications/xampp/xamppfiles/etc/php.ini中完成:
[xdebug]
zend_extension =“/usr/local/cellar/php/8.1.1/pecl/20210902/xdebug.so”
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port =“ 9000”
在Firefox中,我使用“ Xdebug Helper”(IDE密鑰:VSCODE)。
在Safari中,我使用“ Xdebugtogglextension 1.2”。
要進行調試,您必須轉到“Ausführen” - “ Debugger Starte”和綠色遊戲按鈕(F5)。
由於不同類型的傳感器,並嘗試減少通過WiFi傳輸的數據量(後來又是LORA),最好有一個傳感器傳輸數據的模式。另外,無需提供值的名稱。
如果所有值以正確的順序傳遞,則很明顯哪個值為wich。
架構#:1
名稱:DS18B20
刪除:tempsensor
傳感器的NR(連接):1
價值計數:1
值的名稱:#1溫度
值類型:#1 UINT8(?)
架構#:2
名稱:DS2438
拆卸:電池裝備
傳感器的NR(連接):1
價值計數:4
值的名稱:#1 CH1電壓,2#CH1電流,#3 CH2電壓,#4 CH2電流
值類型:#1 UINT8(?),#2 UINT8(?),#3 UINT8(?),#4 UINT8(?)
模式#:3
名稱:DHT11
刪除:Tempsensor&Humity
傳感器的NR(連接):1
價值計數:2
值的名稱:#1溫度,#2濕度
值類型:#1 UINT8(?),#2 UINT8(?)
模式#:4
名稱:數字輸入
刪除:數字輸入
傳感器的NR(連接):1
價值計數:1
值的名稱:#1數字輸入
值類型:#1 bool(?)
模式#:5
名稱:GPS
刪除:GPS接收器的數據
傳感器的NR(連接):1
價值計數:4
值的名稱:#1緯度,#2經度,#3課程,#4速度
值類型:#1 UINT8(?),#2 UINT8(?),#3 UINT8(?),#4 UINT8(?)