Boa tarde pessoal.
Estou fazendo um projeto que deverá acessar o horário da internet com o ESP8266.
O sketch funciona muito bem, desde que use o IP obtido pelo DHCP.
Se eu definir o IP, não acessa o horário e fica imprimindo só o calculo.
Como o meu conhecimento de programação é self study, conheço muito pouco
programação para internet.
Abaixo 2 printouts.
Um com acesso por DHCP e outro qdo defino o IP, e anexo o sketch.
O sketch anexo está com a linha 22 comentada, significando uso de IP pelo DHCP.
Removendo o //, passa a usar o IP definido pelo usuário.
Solicito ajuda.
RV
Usando IP do DHCP
Now listening at IP 192.168.0.28, UDP port 65280
13:55:46
13:55:46
13:55:46
13:55:46
Usando IP fornecido por mim.
Now listening at IP 192.168.0.70, UDP port 65280
03:28:17
03:28:17
03:28:17
03:28:18
Tags:
Olá Rui Viana, tudo bem?
1º - Você já tentou colocar esse IP 192.168.0.28 como estático só para saber se o resultado vai mudar?
2º - Você já tentou imprimir as configurações de Rede em DHCP para saber se não tem alguma diferença em relação ao seu estático?
Bom dia Eduardo Silva,
obrigado pela atenção.
1º - Sim, tentei com i IP estático , e tentei novamente,
2º -Agora com IP estático 192.168.0.28 e DHCP, listando as configurações da rede.
Se tiver outras maneiras de listar mais informações sobre a rede, por favor me ensine.
RV
IP estático
.Now listening at IP 192.168.0.28, UDP port 65280
Connection status: 3
Mode: STA
PHY mode: N
Channel: 11
AP id: 0
Status: 5
Auto connect: 1
BSSID set: 0
03:28:17
03:28:18
03:28:19
03:28:20
IP DHCP
.Now listening at IP 192.168.0.28, UDP port 65280
Connection status: 3
Mode: STA
PHY mode: N
Channel: 11
AP id: 0
Status: 5
Auto connect: 1
BSSID set: 0
07:59:19
07:59:20
07:59:21
07:59:22
Oi Eduardo Silva,
depois de postar fiz outro teste listando o IP ante e depois da linha:
" WiFi.hostByName(ntpServerName, ip); "
e ai apareceu assim:
IP estático
ip : 192.168.0.28 antes
ip : 0.0.0.0 depois
Now listening at IP 192.168.0.28, UDP port 65280
Connection status: 3
Mode: STA
PHY mode: N
Channel: 11
AP id: 0
Status: 5
Auto connect: 1
BSSID set: 0
03:28:40
03:28:41
03:28:42
IP DHCP
ip : 192.168.0.28 antes
ip : 129.6.15.30 depois
Now listening at IP 192.168.0.28, UDP port 65280
Connection status: 3
Mode: STA
PHY mode: N
Channel: 11
AP id: 0
Status: 5
Auto connect: 1
BSSID set: 0
08:46:37
08:46:38
08:46:39
08:46:40
Boa noite Rui,
Veja se esse tutorial pode ser util:
http://blog.eletrogate.com/nodemcu-esp12-usando-arduino-ide-2/
O ESP8266 esta conectando na rede WIFI com IP estático ?
Referências:
https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi
https://github.com/arduino-libraries/NTPClient
https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi
https://github.com/esp8266/ESPWebServer
Abraços,
Gustavo
Boa tarde José Gustavo Abreu Murta ,
não se trata de simplesmente uma conexão na rede wifi com endereço dinâmico ou estático.
O problema acontece ao acessar um servidor NTP, usando o protocolo UDP.
Se uso um IP dinâmico para o o meu Webserver no ESP8266, não tenho problema para acessar
o servidor NTP.
Mas se uso um IP estático, não consigo acessar o servidor NTP.
Mesmo que este IP estático seja igual ao IP dinâmico que foi usado com o ESP8266 configurado para IP dinâmico.
RV
Boa tarde amigo Rui,
Agora entendi o problema. Mas a dúvida continua.
O ESP8266 esta conectando na sua rede WIFI com IP estático ?
Um bom teste para saber se a rede esta OK, é fazendo um ping para o Google.
ping 8.8.8.8
https://github.com/bluemurder/esp8266-ping
https://github.com/dancol90/ESP8266Ping
Sugestão - faça um teste sem ativar o webserver.
ESP8266WebServer server(80); // Instancia server
Abraços
Gustavo
Sim José Gustavo Abreu Murta ,
ele conecta usando ou IP estático ou IP dinâmico, e posso confirmar isto pois
usei um sketch maior do que este que postei, que incluía uma pagina HTML, a qual
eu podia ver usando o meu PC na mesma rede.
Também havia feito um teste sem usar o webserver, e o problema continuou.
RV
Ok, então o próximo passo que eu faria seria o ping para 8.8.8.8.
Será que existe um firewall para o IP estático na rede do seu provedor ?
Pessoal, boa tarde,
obrigado pela ajuda de todos.
Consegui resolver o problema.
Não sei se a maneira foi a mais "técnica", mas está funcionando.
Funciona assim:
Inicio a rede WiFi com o protocolo TCP/IP com um IP DHCP.
Em seguida inicio o protocolo UDP e acesso o servidor NTP e
busco o horário da internet usando o protocolo UDP com o IP fornecido pelo DHCP.
Após, redefino o IP, o GW e a SN, e reinicio o WiFi com os novos valores estáticos, e incio o meu servidor.
E acreditem ou não, funcionou. como eu preciso.
Acesso o servidor com o IP estático.
Anexo sketch de teste, sem a parte HTML, para ficar simples.
RV
............
200.160.6.184
IP DHCP 192.168.0.28, UDP port 65280
.
IP dinamico 192.168.0.70
16:35:15
16:35:16
16:35:17
Estudando a teoria:
O UDP é um protocolo voltado para a não conexão. Simplificando, quando uma máquina A envia pacotes para uma máquina B, o fluxo é unidirecional. Na verdade, a transmissão de dados é feita sem prevenir o destinatário (a máquina B) que, por sua vez, recebe os dados sem avisar ao transmissor (máquina A). Isso se deve ao fato de o encapsulamento dos dados enviados pelo protocolo UDP não permitir transmitir informações sobre o emissor. Portanto, o destinatário não conhece o emissor dos dados, apenas seu IP.
https://br.ccm.net/faq/16837-diferenca-entre-os-protocolos-tcp-e-udp
Bom dia pessoal,
novamente me deparei com esta dificuldade, mas desta vez não podia fazer a gambiarra que funcionou
para o projeto anterior .
Daí voltei novamente a pesquisar na internet alguma solução.
Encontrei este tópico de nov2018, https://github.com/arduino-libraries/NTPClient/issues/58
Testei a solução que o freek sugeriu e deu certo.
Testei assim:
IPAddress endereco (192, 168, 0, 55);
IPAddress roteador (192, 168, 0, 1);
IPAddress subnet (255, 255, 255, 0);
IPAddress DNS1 (8, 8, 8, 8);
IPAddress DNS2 (8, 8, 8, 8);
WiFi.config(endereco, roteador , subnet, DNS1, DNS2);
RV
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por