Maritime Data Server é o servidor de dados centrais (nuvem) para dados marítimos. Ele armazena os dados que vêm, para exmaple MDC (coletor de dados marítimos ou Lora-BootsMonitor ou qualquer outro dispositivo), em um banco de dados e fornece ao usuário uma GUI para mostrar os dados e fazer algumas configurações.
A idéia inicial era, ter a possibilidade de ver alguns dados marítimos (temperatura, tensões da bateria, alarme de porão) enquanto você não estiver no barco.
O MDC é uma pequena placa com um ESP32 e alguns sensores, que coleta os dados do sensor e transfere esses dados para o MDS. Você encontrará a documentação do MDC em https://github.com/bytecrusher/maritimedatacollectorsmall
O Maritime Data Server é um aplicativo da Web para armazenar dados e exibir dados para o usuário. Ele rejeita um banco de dados MySQL para armazenar os dados e um servidor da web com suporte a PHP para exibir as informações com dados. O MDS pode exibir os dados de sensores em gráficos/medidores ou gráficos. Também é possível configurar suas placas e sensores.
O servidor está organizado em um back -end (API para receber dados do Collector e TTN, enviar e -mails) e um front -end para exibir dados no navegador dos usuários.
O back -end armazena os dados no banco de dados. Ele também verifica se os dados são válidos e a placa e os sensores existem no banco de dados, caso contrário, novos registros de banco de dados serão criados.
Para o front -end, o usuário precisa fazer o login. Agora o usuário pode fazer algumas configurações ou exibir alguns dados.
Copie todos os arquivos MDS da pasta "SRC" no seu diretor htdocs. Crie um novo banco de dados (com phpmyadmin) e crie um novo usuário com privilégios de gravação nesse banco de dados. Abra http: //yourdomain/maritimedataserver/install/index.php no navegador e entre nas etapas de instalação. Após o término da instalação, remova o diretor chamado "Install" (por motivos de segurança).
Agora o MDS está disponível em http: // yourDomain/maritimedataserver



Para executar o MDS , você precisa de um servidor da Web (Apache) com suporte a PHP e um db mysql.
Se você executar os MDCs fora de nossa rede local, seu MDS precisará ser público (a TTN deve poder alcançar esse servidor).
Para o desenvolvimento, uso soluções diferentes. O primeiro é o contêiner local do Docker que é executado no meu computador de codificação. Segundo, tenho na minha webting um subdomínio, que puxa minha filial de "Desenvolvimento" do Guthub por lá.
######## Minha primeira onda atual: Configure 4 contêineres (um para cada serviço):
Configurei meu VSC para poder trabalhar direto na pasta Htdocs se apache. Portanto, não há sincronização manual de arquivos necessários.
Segunda onda: No meu subdomínio de host na web, configurei meu repositório, por isso sou capaz de executar uma solicitação de tração no painel Plesk e ter a última filial de desenvolvimento no espaço da web.
Para a depuração do PHP, eu uso o Xdebug. A configuração no MAMP é feita em **/Applications/xampp/xamppfiles/etc/php.ini e looks:
[xdebug]
zend_extension = "/usr/local/adega/php/8.1.1/pecl/20210902/xdebug.so"
xdebug.mode = Debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = "9000"
No Firefox, uso o "Xdebug Helper" (chave IDE: VSCODE).
No Safari, uso "xdebugtoggleExtension 1.2".
Para a depuração, você deve ir para "Ausführen" - "Debugger Stare" e o botão Green Play (F5).
Devido a diferentes tipos de sensores e tente reduzir a quantidade de dados transferidos via WiFi (e posteriormente Lora), é uma boa idéia ter um esquema para os sensores transferirem os dados. Também não há necessidade de entregar o nome do valor.
Se todos os valores entregues na ordem correta, fica claro qual valor é wich.
Esquema #: 1
Nome: DS18B20
Deschription: TemPsensor
Nr de sensor (que estão conectados): 1
Contagem de valores: 1
Nome dos valores: #1 temperatura
Tipo de valor: #1 uint8 (?)
Esquema #: 2
Nome: DS2438
Deschription: Batteriemonitor
Nr de sensor (que estão conectados): 1
Contagem de valores: 4
Nome dos valores: tensão #1 CH1, 2 #CH1 Corrente, #3 CH2 TOLTAGE, #4 CUNTRA DE CH2
Tipo de valor: #1 uint8 (?), #2 uint8 (?), #3 uint8 (?), #4 uint8 (?)
Esquema #: 3
Nome: DHT11
Deschription: tempesensor e umidade
Nr de sensor (que estão conectados): 1
Contagem de valores: 2
Nome dos valores: #1 temperatura, #2 Horda
Tipo de valor: #1 uint8 (?), #2 uint8 (?)
Esquema #: 4
Nome: entrada digital
Deschription: entrada digital
Nr de sensor (que estão conectados): 1
Contagem de valores: 1
Nome dos valores: #1 entrada digital
Tipo de valor: #1 bool (?)
Esquema #: 5
Nome: GPS
Deschription: dados do GPS Receiver
Nr de sensor (que estão conectados): 1
Contagem de valores: 4
Nome dos valores: #1 Latitude, #2 Longitude, #3 Curso, #4 Velocidade
Tipo de valor: #1 uint8 (?), #2 uint8 (?), #3 uint8 (?), #4 uint8 (?)