Ir ao conteúdo
  • Cadastre-se

ESP8266 - A Pequena Maravilha para Comunicação WIFI


aphawk

Posts recomendados

@lucianolcoa  Então Luciano, eu ja havia feito isso (de criar senha1 e login1) só não havia colocado 1234 entre aspas.. vou testar daqui a pouco..

 

O que me encanou de verdade, foi o fato do segundo codigo que postei ele acende o led do ESP (port 2) se eu conectar ele na rede local e acessa-lo localmente, envio o comando e aciona. Se acesso via ip externo + porta abre a interface mas não aciona... :( 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, rodrigocirilo disse:

@lucianolcoa  Então Luciano, eu ja havia feito isso (de criar senha1 e login1) só não havia colocado 1234 entre aspas.. vou testar daqui a pouco..

 

O que me encanou de verdade, foi o fato do segundo codigo que postei ele acende o led do ESP (port 2) se eu conectar ele na rede local e acessa-lo localmente, envio o comando e aciona. Se acesso via ip externo + porta abre a interface mas não aciona... :( 

Isso e problema de permissão, pode ser até que seu modem teje bloqueando a saída. Na net tem aquelas frescaiadas de configurar acesso externo pra jogo, em outros modems nem sei como eah...

Geralmente pra linguagem entender o que é uma String, tem que colocar entre aspas, o programa bugou por que tratou numero como string^^

Link para o comentário
Compartilhar em outros sites

1 hora atrás, lucianolcoa disse:

Isso e problema de permissão, pode ser até que seu modem teje bloqueando a saída. Na net tem aquelas frescaiadas de configurar acesso externo pra jogo, em outros modems nem sei como eah...

Geralmente pra linguagem entender o que é uma String, tem que colocar entre aspas, o programa bugou por que tratou numero como string^^

Então, aqui é vivo, aquele modem branco com wifi embutido... abri a porta normal.. nao sei se tem que abrir diferentes portas interna e externa...

 

Sobre os IF´s.. mas se eu tratei numero como string.. no caso no seu exemplo você sugere criar uma variavel senha1 = "1234" mas ai não estaria como string? e nao como numero.. eu que to bugando com isso kkkkkk

Link para o comentário
Compartilhar em outros sites

1 hora atrás, rodrigocirilo disse:

Então, aqui é vivo, aquele modem branco com wifi embutido... abri a porta normal.. nao sei se tem que abrir diferentes portas interna e externa...

 

Sobre os IF´s.. mas se eu tratei numero como string.. no caso no seu exemplo você sugere criar uma variavel senha1 = "1234" mas ai não estaria como string? e nao como numero.. eu que to bugando com isso kkkkkk

Desculpe eu digitei errado, quis dizer que o programa não tratou como uma string. Das linguagens que vi, não que eu tenha vido muitas claro, tem que colocar entre aspas pro programa "saber" que é uma string. Algumas, como a linguagem espartana do arduino. tem que dizer que é uma string X_X, pois ele recebe váriaveis "normais" e variaveis "strings". Mas se toda variavel entra no serial monitor como string, vai saber por que o arduino faz isto X_X

 

To tentando aprender bascom e python na raça, o legal é que voce entende o porque das coisas, mas se é novato, como eu, quando ve um código grande começa a rezar o pai nosso e a ave maria kkkkkkkkkkkk.

 

Mas então o seu caso acontece o mesmo que o meu, quando eu lutava com o meu pc pra rodar o xampp,hoje em dia com esse esp o xampp chega a ser desnecessário, mas enfim, clicava no botão e nava, e no fim era permissão..

Sei resolver esse problema no LINUX, agora no ruim-dows não faço nem ideia de onde resolver, até postei um tópico aqui pedindo ajuda, mas ninguém se pronunciou...

Tenta abrir outra porta com o modem...Se voce tiver um arduino com o ethernet shield ou o raspberry tenta verificar a porta com eles, se rodar a porta ta de boa^^

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Intrudera6

O DS3231 realmente é muito bom, apenas instalei (adaptado para a bateria CR2032) e configurei ele, não fiz nenhum ajuste especial para a precisão nem nada e já tem uns 3 dias e ele não atrasou nem adiantou nenhum segundo, vou deixar em teste pelo menos um mês pra ver a precisão, mas pelo que já estou vendo, não vai ser necessário mexer na precisão para minha finalidade. Só uma coisa que no PCF8583 tem que estou sentindo falta que é o fato de não precisar setar o dia da semana, basta mandar a data e ele seta sozinho este parâmetro. Mas tá de boa, a precisão do PCF é horrível, mesmo usando os mesmos capacitores sugeridos no datasheet, em 15 dias ele já havia adiantado em torno de 10 segundos, claro que se ajustar os capacitores ele melhora bastante, mas esse ajuste sem um frequencímetro é o Ó...

 

 

 

Link para o comentário
Compartilhar em outros sites

@ViniciusKruz

O DS3231 novo é muito preciso, mas depois do primeiro ano ele perde um pouco de precisão, e vai derivando aos poucos, mas mexendo no registrador que corrige a deriva térmica você consegue até mais precisão do que novo. Só que se a bateria descarregar com ele fora da alimentação este registrador para o default que é 0 como padrão de fábrica. É uma boa ideia colocar o valor deste registrador (depois de tirar do padrão) na EEPROM dele.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@lucianolcoa

Este protocolo não é muito difícil de ser implementado, se tiver uma biblioteca já pronta para a comunicação com seu periférico então, é "moleza", agora, se não encontrar essa biblioteca, complica um pouquinho, você terá que pegar uma que foi feita para outro periférico e adaptá-la seguindo instruções do datasheet dele, nesse caso é um pouco chatinho e dá um pouco de trabalho, mas não é bicho de sete cabeças. O melhor é aprender fazendo, dê sim uma lida básica em algum material pra ir se familiarizando mas consiga algum periférico que já tenha a biblioteca pronta pra facilitar no início, depois vai estudando o datasheet dele e entendendo o que a biblioteca faz, geralmente com uma biblioteca, você se comunica com qualquer periférico, é só adaptá-la porque os registradores e o endereço de um periférico são diferentes de outros.

 

http://www.arduinobr.com/arduino/i2c-protocolo-de-comunicacao/

Link para o comentário
Compartilhar em outros sites

5 minutos atrás, ViniciusKruz disse:

@lucianolcoa

Este protocolo não é muito difícil de ser implementado, se tiver uma biblioteca já pronta para a comunicação com seu periférico então, é "moleza", agora, se não encontrar essa biblioteca, complica um pouquinho, você terá que pegar uma que foi feita para outro periférico e adaptá-la seguindo instruções do datasheet dele, nesse caso é um pouco chatinho e dá um pouco de trabalho, mas não é bicho de sete cabeças. O melhor é aprender fazendo, dê sim uma lida básica em algum material pra ir se familiarizando mas consiga algum periférico que já tenha a biblioteca pronta pra facilitar no início, depois vai estudando o datasheet dele e entendendo o que a biblioteca faz, geralmente com uma biblioteca, você se comunica com qualquer periférico, é só adaptá-la porque os registradores e o endereço de um periférico são diferentes de outros.

 

http://www.arduinobr.com/arduino/i2c-protocolo-de-comunicacao/

O bascom antigo aceita bibliotecas?, lembro do aphahwk falar que e o O colocar uma biblioteca no bascom

Link para o comentário
Compartilhar em outros sites

9 minutos atrás, lucianolcoa disse:

O bascom antigo aceita bibliotecas?, lembro do aphahwk falar que e o O colocar uma biblioteca no bascom

 

Não sei se o bascom tem bibliotecas, mas mesmo que não tenha, deve ter funções prontas que faça o mesmo trabalho, a biblioteca nada mais é que um conjunto de funções todas as funcionalidades em um único arquivo de forma organizada. Com o Basic, o Paulo é "o cara". hehehe.

adicionado 4 minutos depois
10 horas atrás, ViniciusKruz disse:

PCF é horrível, mesmo usando os mesmos capacitores sugeridos no datasheet, em 15 dias ele já havia adiantado em torno de 10 segundos,

 

@Intrudera6 Eu havia dito que o PCF havia se adiantado 10 segundos, me enganei, ele havia adiantado foram 10 MINUTOS!!!! kkkkkk

Link para o comentário
Compartilhar em outros sites

18 horas atrás, lucianolcoa disse:

Desculpe eu digitei errado, quis dizer que o programa não tratou como uma string. Das linguagens que vi, não que eu tenha vido muitas claro, tem que colocar entre aspas pro programa "saber" que é uma string. Algumas, como a linguagem espartana do arduino. tem que dizer que é uma string X_X, pois ele recebe váriaveis "normais" e variaveis "strings". Mas se toda variavel entra no serial monitor como string, vai saber por que o arduino faz isto X_X

 

To tentando aprender bascom e python na raça, o legal é que voce entende o porque das coisas, mas se é novato, como eu, quando ve um código grande começa a rezar o pai nosso e a ave maria kkkkkkkkkkkk.

 

Mas então o seu caso acontece o mesmo que o meu, quando eu lutava com o meu pc pra rodar o xampp,hoje em dia com esse esp o xampp chega a ser desnecessário, mas enfim, clicava no botão e nava, e no fim era permissão..

Sei resolver esse problema no LINUX, agora no ruim-dows não faço nem ideia de onde resolver, até postei um tópico aqui pedindo ajuda, mas ninguém se pronunciou...

Tenta abrir outra porta com o modem...Se voce tiver um arduino com o ethernet shield ou o raspberry tenta verificar a porta com eles, se rodar a porta ta de boa^^

Não sei.. ja abri outras portas, estou em uma internet que é ip fixo e mesmo assim nao aceita o comando.. ja acessando internamente o esp responde normal..

 

Hj vou testar a comparação If que você sugeriu.

Link para o comentário
Compartilhar em outros sites

@lucianolcoa ,

 

Olha não tem segredo nenhum, ainda mais no Bascom !

Dá uma lida nos primeiros programas que tem no meu tutorial, tem bastante usos práticos dele, e tem até dentro do tópico destacado um rádio Fm com controle de tonalidade e volume, tudo usando I2C.

 

O Bascom aceita bibliotecas, e existem muitas feitas pelos usuários  dentro do Fórum da MCS, mas eu também tenho guardado um artigo sobre como criar bibliotecas para ele, é meio antigo, mas já é um bom começo.

 

Já no ESP826Basic, tem apenas as funções básicas de escrita e leitura I2C, que já é que precisamos.

 

Sobre as portas do router... eu fiz de sua maneiras, e ambas deram certo :

 

1 - Setar o IP do ESP como DMZ.

 

2 - Port forward, jogando para o IP do ESP, mapeado em outra porta .

 

Mas fiz isso diretamente dentro do modem da Net... um Harris.

 

Paulo

 

 

 

 

Link para o comentário
Compartilhar em outros sites

23 minutos atrás, aphawk disse:

Sobre as portas do router... eu fiz de sua maneiras, e ambas deram certo :

 

1 - Setar o IP do ESP como DMZ.

 

2 - Port forward, jogando para o IP do ESP, mapeado em outra porta .

 

Mas fiz isso diretamente dentro do modem da Net... um Harris.

 

Paulo

 

 

 

 

@aphawk

 

Como assim setar o ip do esp como DMZ? isso seria feito dentro do roteador? esse seria a forma 1.

 

No caso a forma 2 "2 - Port forward, jogando para o IP do ESP, mapeado em outra porta."  Foi o que eu fiz, veja na imagem, eu dediquei um IP para o ESP e no roteador eu abri essa porta 8282 (interna e externa) para o IP do ESP. E acessando de "fora" não acionou, como eu falei ele abre as elas do ESP, todas, edit,run,settings.. mas esse programinha de acender o led nao "envia o comando"..

wiq0as.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@rodrigocirilo ,

 

Olha, as portas que eu faço o forward são a 80 e a 81 .  Lí em algum lugar que o ESPBasic usa também a porta 81 para estabelecer comunicação host-to-host .

 

Mas antes .... que tal verificar se essas duas portas estão mesmo abertas na sua Internet ?

 

Porque eu tive de brigar um dia inteiro com a NET para ela me desbloquear as portas. Teve de vir um técnico aqui, que insistia que as portas estavam abertas e que eu é que deveria estar fazendo alguma coisa errada por desconhecer o modem da NET ...., aí eu pequei o modem da Net e configurei ele em Router apenas ( desliguei o NAT ), coloquei um TPLINK como AP e router configurável, expús o endereço de meu micro como DMZ e aí provei para ele que o problema era a Net mesmo. Aí ele veio com uma histórinha de que ele não pode auxiliar em nenhum aparelho que não seja o da NET, que a NET só dá suporte no modem da própria NET ...  nessa hora eu partí para a ignorância e exigi que ele ligasse para o responsável técnico dele que eu queria falar com ele ou eu ligaria agora mesmo para a Ouvidoria da NET... e nesse momento as coisas mudaram ....

 

Ele ligou para um outro lugar da NET, passou os numeros de meu modem para eles, e em 1 minuto todas as portas foram desbloqueadas ...... e me disse que esse procedimento a NET não faz, ele fez como um favor para mim ...  piada né ? Isso já faz alguns anos.

 

Paulo

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

4 minutos atrás, aphawk disse:

Use um programa para testar :

 

http://www.yougetsignal.com/tools/open-ports/

 

 

Aqui, a porta 443 deu como fechada, mas ela está aberta e em uso.

adicionado 4 minutos depois

Ah tá, entendi, ela está dando como fechada é porque não fiz o forward dela, ela está em uso mas é saindo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Vou criar umas rotinas em C (rotina, porque ainda não sou capaz de criar uma biblioteca em C) para fazer a calibração semiautomática do DS3231 (a versão com EEPROM, mas não é muito difícil uma rotina mais genérica). Fiz as contas e , com uma semana de intervalo, é o suficiente para, com a precisão obtida com servidores NTP, numa rede de Internet doméstica por cabo ou rede telefônica cabeada (pelo 3G/4G já complica um pouco mais), obter uma precisão necessária para poder calibrar com +/-0,1ppm usando apenas a referência de tempo dos servidores NTP (do Brasil de preferência), que é o máximo possível com o registrador de deriva térmica do DS3231. Com essa minha rotina não vai ser mais necessário um frequencímetro de muito alta precisão, apenas uma Internet por cabo ou via rede telefônica cabeada, para fazer a calibração dos DS3231 e fazer que a hora deles fique ainda mais precisa.

 

Nos meus testes o erro (incerteza da hora obtida pela Internet) na minha rede com servidores NTP brasileiros foi de +/-3 milissegundos com o ESP8266 (fiz a minha própria rotina para ler a hora dos servidores NTP com 32bits para os segundos e 32bits para a fração, que eu arredondei para 1000000 de microssegundos). Fazendo 100 leituras por segundo do DS3231 dá para obter menos de 0,01 segundo de desvio máximo entre a hora no DS3231 e a hora lida pelo ESP8266, procurando a transição do segundo no DS3231 (seria muito bom se ele tivesse a hora com centésimo de segundo ou melhor, facilitaria bastante o meu trabalho).

 

Com uma semana de intervalo já é possível calibrar com erro melhor que 0,1 ppm, 3600*24*7*0,1E-6 = 0,06 segundos de erro, o que já permitiria acertar a hora e corrigir automaticamente o registrador de deriva térmica (-0,2ppm para incremento de 1 e +0,2ppm para o decremento de 1). Para isso, armazenaria a hora (valor em segundos em relação a 01/01/1970 ou ustamp) do último acerto de hora pelo NTP, e se este intervalo (no comando para acertar a hora/calibrar o registrador) for maior que 1 semana, a rotina calcularia a diferença e o novo valor para o registrador, atualizaria automaticamente o registrador de deriva, lançaria o valor do registrador e a hora no DS3231 e também na EEPROM em ustamp e valor do registrador de deriva.

 

As minhas baterias LIR2032 chegaram, mas descobri que deixei os meus DS3231 (com EEPROM) no trabalho, foi meio frustrante quando descobri. Mas neste próximo feriado vou já começar a trabalhar na rotina de calibração automática, que vai ficar ao alcance de todos (quem tem uma Internet aceitável, mas quem não tem é só aumentar o intervalo). Não sei quanto tempo vou demorar para concluir essas rotinas, se eu tivesse tempo totalmente livre acho que em menos de 1 dia, mas no meu caso isso deve demorar bem mais.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@aphawk

Então é justamente o que o @ViniciusKruz falou eu acesso a tela do programa rodando, acesso também as telas edit, settings e as outras, mas o comando não vai, tenho a impressão que o ESP consegue enviar para o browser as informações, mas quando envio do browser uma informação, ela não vai, ou não chega até no ESP.

 

Não entendi essa parte de abrir duas portas a 80 e 81? olha como abri a porta no meu modem:

15oi1ah.png

 

Preenchi a public port e private port com o mesmo numero e dei o IP 192.168.1.50 para o ESP, está errado?

mas amanha vou testar as portas 80 e 81. Só não sei como usar as duas ao mesmo tempo hehe.

 

Nos meu testes aqui em casa, que tem aquele modem branco da vivo que ja é wifi. (thecnicolor) nao deu certo. E lá no trabalho que tem um modem d-link também nao deu certo.

 

Att.

Link para o comentário
Compartilhar em outros sites

@rodrigocirilo

 

Tenta colocar seu ESP na porta 80 e muda suas configurações no seu modem também para 80 só pra testar.

adicionado 8 minutos depois

@Intrudera6  Com certeza será uma graaande função, eu também nunca criei nenhuma biblioteca no Arduíno, mas creio que dá pra fazer avaliando as que já existem, embora eu pense que não seja necessário criar uma biblioteca, e sim as funções, isso já seria mais que suficiente.

 

Ps: seu "comichão"  por precisão continua hein hehehe com tudo isso aí vai dar pra começar a pensar em concorrer nas conquistas espaciais hehehe.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Alguém aqui já conhecia este módulo HLK-RM04 ?

Que coisinha maravilhosa!!!

 

Aqui um exemplo dele usando o Arduíno:

http://rayshobby.net/first-impression-on-hlk-rm04-serial-to-wifi-module/

 

Não encontrei informação se nosso programa pode rodar diretamente na memória dele como é feito com o ESP, me parece que não, o que seria uma pena!!

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@aphawk  @ViniciusKruz  Coloquei a porta 80 no ESP e abri a 81 para o mesmo IP do ESP..

 

ficou assim:

192.168.1.44 porta serviço 80 porta interna 80

192.168.1.44 porta serviço 81 porta interna 81

 

apesar que acessando esse site  http://www.yougetsignal.com/tools/open-ports/ a 80 sempre dá fechada.

 

consegui acessar uma só vez e controlar o led, depois que sai nao entra mais.. da falha ao tentar carregar a pagina.

 

Estava lendo na internet que a tal porta 80 é bloqueada pelos provedores?? porque nao é possível usar outras portas?? 

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, rodrigocirilo disse:

porque nao é possível usar outras portas?? 

É bem possível que sua operadora esteja bloqueando seu tráfego, tem várias operadoras que não bloqueiam a porta 80 entre outras portas para que os clientes não possam montar servidores na rede. De repente sua operadora não bloqueou suas portas, elas podem até estar liberadas, mas quando ela (operadora) percebe que você está usando, ela te derruba. 

 

Duas opções de testes:

1ª Pegar seu ESP e levar para uma rede de outra operadora, libere as portas e faça o teste.

2º Instalar um outro sistema  para descobrir se não é um "buguezinho" do ESPBasic. Se com outro sistema, o acesso normalizar é porque não é problema com a operadora.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!