Eu tenho uma placa incorporada em que a distribuição é uma distribuição Linux personalizada baseada no Yocto.
Eu adicionei ntp
e via ntpd
sincronizarei o tempo com os pools ntp comuns via dongle UMTS 3G ou Ethernet.
Esta placa, juntamente com algumas placas PoE ESP32 da Olimex, são conectadas através de um switch não gerenciado.
Objetivo
As placas ESP32 possuem sensores que coletam informações, adicionam um carimbo de data e hora e enviam para o InfluxDB em execução na placa principal incorporada via Ethernet, tornando-a uma rede de sensores com fio. Essas placas ESP32 também possuem um RTC DS3231, portanto, desejo que eles primeiro tirem um tempo de um servidor NTP em execução nesta placa incorporada para sincronizar o RTC e depois enviar informações ao InfluxDB.
Questões
Como alguém cria um servidor NTP na Placa Incorporada? Posso adicionar uma linha no
ntp.conf
arquivo que possa ser usada para acelerar um servidor, por exemplo, no servidor NTP em192.168.4.11
? Usando esse endereço IP no meu código do arduino, posso solicitar os carimbos de data e horaNo caso de teste, se de alguma forma eu configuro um servidor NTP na Placa Incorporada, como posso testar inicialmente o tempo decorrido? Existe um utilitário de linha de comando para pesquisar o servidor NTP e verificar se a hora está correta ou não em um computador comum?
time_stamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
. A menos que eu precise de precisão de microssegundos, o código do banco de dados já está escrito e bem depurado; por que codificar meus próprios erros?Respostas:
Descrição precisa para a consulta
Sincronização de hora NTP inicial
No sistema de compilação Yocto,
conf/local.conf
adicionentp
receita da seguinte maneira:No quadro de destino, interrompa o
systemd
serviço inicialmente :Supondo que a placa esteja conectada à Internet:
Info : Verifique o tempo usando
date
Para o lado seguro, sincronize também o relógio do hardware com o horário NTP:
Reinicie o
systemd
serviçoConfigurar um servidor NTP local na placa incorporada
Interrompa o
systemd
serviço:Edite
/etc/ntp.conf
para fazer a placa incorporada transmitir os carimbos de data / hora NTP na porta 123. Adicione a seguinte linha:Reinicie o
systemd
serviço:Alcançando o sincronismo de tempo com os nós dos sensores
Supondo que se tenha placas que possam ser programadas com o Arduino; faça o download da
NTPClient
biblioteca do Arduino.No seu Sketch, use o
NTPClient
construtor para conectar-se ao servidor NTP local por meio do endereço IPe obtenha os registros de data e hora do servidor NTP local
Referências
fonte
Para responder à sua primeira pergunta, apontarei para esta resposta do Ubuntu:
/ubuntu/14558/how-do-i-setup-a-local-ntp-server
É específico do Ubuntu, mas deve apontar na direção certa para quais pacotes procurar no Yocto.
para o segundo,
ntpdate <ip address of ntp server>
pode ser usado para consultar um servidor ntp para a data.fonte