海事数据服务器是海上数据的中央数据(云)服务器。它将来自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(?)