Ir ao conteúdo
  • Cadastre-se

ESP8266 - A Pequena Maravilha para Comunicação WIFI


aphawk

Posts recomendados

6 minutos atrás, ViniciusKruz disse:

É 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.

Bem... fiz um outro teste aqui, coloquei a porta 554 no ESP retirei a 80, e mantive a 81.. e agora funcionou, acessei pelo 3G do cel e funcionou como se eu estivesse na rede interna.. .. A propósito sem delay nenhum, é clicar e o led acender hehe..

 

vou continuar os testes pra ver se nao aparece mais nenhum problema..

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

1 hora atrás, ViniciusKruz disse:

É 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.

Isso acontecia comigo direto, Quando eu usava o xampp direto ela derrubava, só não derrubava quando usava o ethernet shield do arduino.

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

12 horas atrás, ViniciusKruz disse:

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!!

Equipamento bem interessante, pena que seja meio caro, e o hardware dele é fechado, pois parece ser muito superior ao ESP8266. Nem dá para imaginar o que seria possível com uma coisa destas.

 

@ViniciusKruz

Eu realmente tenho uma "tara" pela precisão (e perfeição), o que às vezes me atrapalha pois os meus ideais são ambiciosos demais. Mas acho que se eu colocar a minha ideia em prática talvez consiga precisões melhores do que é possível com o meu frequencímetro, pois o que eu vejo quando coloco o DS3231 no meu frequencímetro é uma frequência que varia bastante no tempo, mesmo com tempo de captura de 10 segundos (se eu tivesse a opção de períodos bem mais longos para o cálculo da frequência seria bem mais estável, mas não tenho esta opção). Fazendo a comparação entre duas horas com um período bem longo aplaina todas as micro-oscilações na frequência do DS3231, o que faria com que o resultado final fosse muito melhor, mas bem mais demorado para ser conseguido.

 

Não vejo a hora de implementar as minhas rotinas. Quando estiverem prontas postarei aqui. Vai ser precisão a baixo custo. Eu nem sei quanto tempo o DS3231 vai se manter preciso depois disso, mas vai ser muito fácil corrigir, vai ser só fazer dois sincronismos, sendo que o segundo para fins de calibração, e este com pelo menos 1 semana de diferença, e ai vai estar de novo tinindo.

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

21 minutos atrás, ViniciusKruz disse:

@Intrudera6

Vou voltar a fazer os testes com o JavaScript, tendo resultados vou postando também.

voce ta programando pela IDE do arduino? Qual motivo de implementar javascript?

Aphawk, mais uma vez eu puxo o seu s**o. Puxa cara, tava tentando aprender multiplexação nos displays e por alguma razão misteriosa, não conseguia multiplexar nos displays cathodos de jeito nenhum, só nos anodos. E hoje pesquisando na internet vi que voce deu uma ajuda pra um cara que tava tentando fazer a mesma coisa com PIC, não deu outra segui sua dica e 3 noites sem sono se resolveram em instantes *-*.

Link para o comentário
Compartilhar em outros sites

@lucianolcoa

Facilita a interação com o usuário, pois as alterações (aperto de botão e etc.) acontecem sem que seja necessário recarregar a página html, mas acho que existem formas mais eficientes de fazer isso. Eu trabalhei no passado (uns 15 anos atrás mais ou menos) muito com javascript, mas estou tão enferrujado que não consigo fazer mais nada que funcione com ele.

Link para o comentário
Compartilhar em outros sites

agora, Intrudera6 disse:

@lucianolcoa

Facilita a interação com o usuário, pois as alterações (aperto de botão e etc.) acontecem sem que seja necessário recarregar a página html, mas acho que existem formas mais eficientes de fazer isso. Eu trabalhei no passado (uns 15 anos atrás mais ou menos) muito com javascript, mas estou tão enferrujado que não consigo fazer mais nada que funcione com ele.

Tem o nodejs,que é praticamente a mesma coisa que o javascript, andei tentando aprender o node, desisti pois achei ele muito confuso, é tipo css, uma saladeira só X_X

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

10 minutos atrás, lucianolcoa disse:

Aphawk, mais uma vez eu puxo o seu s**o. Puxa cara, tava tentando aprender multiplexação nos displays e por alguma razão misteriosa, não conseguia multiplexar nos displays cathodos de jeito nenhum, só nos anodos. E hoje pesquisando na internet vi que voce deu uma ajuda pra um cara que tava tentando fazer a mesma coisa com PIC, não deu outra segui sua dica e 3 noites sem sono se resolveram em instantes *-*.

 

Opa que bom !!!!!!  Fico sempre contente em ver que consegui ajudar as pessoas !

 

Eu tenho um artigo bem grandinho sobre multiplicação, matrizes de Leda e coisas afins, com exemplos no Bascom :

 

http://forum.clubedohardware.com.br/forums/topic/937085-tutorial-de-projetos-com-avr-design-programação-em-basic-e-assembly-e-simulação-no-proteus/?page=15#comment-6408303

 

Dá uma olhada lá porque tem bastante informação.

 

4 horas atrás, rodrigocirilo disse:

Bem... fiz um outro teste aqui, coloquei a porta 554 no ESP retirei a 80, e mantive a 81.. e agora funcionou, acessei pelo 3G do cel e funcionou como se eu estivesse na rede interna.. .. A propósito sem delay nenhum, é clicar e o led acender hehe..

 

É que a porta 81 tem um serviço chamado websockets , me parece que é por onde navegador responde a um servidor http, ou coisa semelhante.

 

Mas até que enfim deu certo, arre !

 

Paulo

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

agora, aphawk disse:

 

Opa que bom !!!!!!  Fico sempre contente em ver que consegui ajudar as pessoas !

 

Eu tenho um artigo bem grandinho sobre multiplicação, matrizes de Leda e coisas afins, com exemplos no Bascom :

 

http://forum.clubedohardware.com.br/forums/topic/937085-tutorial-de-projetos-com-avr-design-programação-em-basic-e-assembly-e-simulação-no-proteus/?page=15#comment-6408303

 

Dá uma olhada lá porque tem bastante informação.

 

 

É que a porta 81 tem um serviço chamado websockets , me parece que é por onde navegador responde a um servidor http, ou coisa semelhante.

 

Mas até que enfim deu certo, arre !

 

Paulo

Olharei sem sombra de duvida, agora que voce apareceu tem como me dar uma força? Tentei aprender timers por conta no BASCOM mas sou bem ruizinho, não consegui entender os exemplos. Procurei alguns tutos no youtube mas o que tem tem em espanhol e ainda assim não achei timers. Tem algum artigo nesse mesmo nipe que voce acabou de postar que ensina como a fazer e configurar timers? inclusive 2 timers rodando diferente no mesmo ci e tal?

Link para o comentário
Compartilhar em outros sites

@lucianolcoa ,

 

Bom, não fiz porque sempre achei que era algo onde não houvessem dúvidas...

 

Mas me diga o que que você está querendo fazer, e qual é o microcontrolador e o clock utilizado, e eu tento de ajudar. No computador de minha casa eu tenho três pequenos programas , um para cada Timer, que ajudam a fazer os cálculos para obter o que eu preciso. De noite eu posto eles no tópico destacado sobre os AVRs e programação em Basic, ok ?

 

 

Paulo

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, aphawk disse:

@lucianolcoa ,

 

Bom, não fiz porque sempre achei que era algo onde não houvessem dúvidas...

 

Mas me diga o que que você está querendo fazer, e qual é o microcontrolador e o clock utilizado, e eu tento de ajudar. No computador de minha casa eu tenho três pequenos programas , um para cada Timer, que ajudam a fazer os cálculos para obter o que eu preciso. De noite eu posto eles no tópico destacado sobre os AVRs e programação em Basic, ok ?

 

 

Paulo

fazer duas rotinas independentes num mesmo programa.

tipo numa rotina eu coloco um timer qualquer de waitms 1000 e incremento uma variavel para contar o tempo em segundos.

E num outro timer, quando eu aciono um botao PIN da vida ele entrase e mostrasse as informações pertinentes, se eu voltasse ao timer original do incremento de segundos a rotina continuasse, sem uma coisa ter "parado" para fazer "a outra".

Ou mesmo fazer incremento de interrupções para tirar velocidade média de um movel, qualquer coisa do tipo.

 

 

Link para o comentário
Compartilhar em outros sites

37 minutos atrás, lucianolcoa disse:

voce ta programando pela IDE do arduino? Qual motivo de implementar javascript?

Sim, IDE do Arduíno, o motivo é o mesmo que o @Intrudera6  já disse, e mais um pouco, o javaScript permite uma interação mais "amigável" com o usuário.

Link para o comentário
Compartilhar em outros sites

Bom, na família comum dos AVR's e Attinys, não existe prioridade de interrupção. Então, quando você atende uma interrupção de um Timer, você tem de liberar a interrupção imediatamente, mesmo antes de terminar a sua rotina, para que um outro hardware possa interromper também.

 

Mas pelo que voce falou, você está fazendo um pouco de confusão.

 

Por exemplo, use o Timer1para fazer sua base de tempo. Dependendo do seu clock, pode conseguir uma interrupção em exatos 1000 milissegundos. Essa rotina de interrupção simplesmente incrementaria a variável de segundos, e sai.

 

Implemente uma outra interrupção : interrupção por mudança de estado de pino, ou use então os pinos com INT0 e INT1 para facilitar. Nessa rotina, você simplesmente lê a variável que contém os segundos, e imediatamente libera a interrupção, mesmo que você tenha de tratar essa variável e mostrar ela em um display ou coisa parecida.

 

Veja, nada te impede de usar os três Timer em um mesmo programa, todos eles rodando, cada um independente do outro, e cada um deles podendo ou não gerar a sua própria interrupção. 

 

Paulo

 

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

11 minutos atrás, ViniciusKruz disse:

Sim, IDE do Arduíno, o motivo é o mesmo que o @Intrudera6  já disse, e mais um pouco, o javaScript permite uma interação mais "amigável" com o usuário.

Tem um código que eu postei aqui no blog, que eu chupinhei de outro lugar e melhorei ele para explorar "quase" o máximo do esp8266, em questão de comandos, não há nada melhor, so faltariam implementar I2c para ler a ***** toda em sensores. Tem até como compactuar ele com java no celular, para acionar por comandos de voz:

Segue o link do artigo no blog

http://eletronicaeutilidades.blogspot.com.br/2016/10/uma-grande-novidade-na-tecnologia-o.html

E se quiser saber como faz pra linká-lo ao java do celular também ficarei feliz em te ajudar.

^^

adicionado 4 minutos depois
9 minutos atrás, aphawk disse:

Bom, na família comum dos AVR's e Attinys, não existe prioridade de interrupção. Então, quando você atende uma interrupção de um Timer, você tem de liberar a interrupção imediatamente, mesmo antes de terminar a sua rotina, para que um outro hardware possa interromper também.

 

Mas pelo que voce falou, você está fazendo um pouco de confusão.

 

Por exemplo, use o Timer1para fazer sua base de tempo. Dependendo do seu clock, pode conseguir uma interrupção em exatos 1000 milissegundos. Essa rotina de interrupção simplesmente incrementaria a variável de segundos, e sai.

 

Implemente uma outra interrupção : interrupção por mudança de estado de pino, ou use então os pinos com INT0 e INT1 para facilitar. Nessa rotina, você simplesmente lê a variável que contém os segundos, e imediatamente libera a interrupção, mesmo que você tenha de tratar essa variável e mostrar ela em um display ou coisa parecida.

 

Veja, nada te impede de usar os três Timer em um mesmo programa, todos eles rodando, cada um independente do outro, e cada um deles podendo ou não gerar a sua própria interrupção. 

 

Paulo

 

Hum, mas o que eu ainda não consigo entender é o cabeçalho das funções, por exemplo:

ler sensores eu ja conseguo fazer

Config ADC= single, prescale =Auto

e no TIMER :

 

congig timer0= timer, prescale=(aqui pode ser 256, 1024,qualquer valor)

timer0=201, 306( o que seria esse valor?)

e como eu fecho um timer para abrir o outro?

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

14 horas atrás, ViniciusKruz disse:

 

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

Que coisinha maravilhosa!!!

 

 

 

Eu acho ele muito caro e grande kkkkkk  a única vantagem que vejo é ele permitir acesso à rede wi-fi usando interface serial e comandos "AT" .

 

Para comunicação ponto a ponto, desde ano passado, eu uso este aqui :

 

http://www.ebay.com/itm/HC-12-433Mhz-SI4463-Wireless-Serial-Port-Module-1000m-Replace-Bluetooth-ST-/172252605402?hash=item281b0e2bda:g:Pq0AAOSwM4xXbX~p

 

Funcionamento bem parecido, ( claro, sem acessar a rede wifi ) e o troço funciona bem mesmo viu .... instalei um na minha casa e outro na casa do meu sobrinho, no mesmo quarteirão mas na rua oposta, tem uns 100 metros em linha reta entre eu e ele, tudo cheio de casas no meio, e mesmo assim fecho link a 300 bauds sem nenhuma dificuldade, usando essas anteninhas  !

 

Com os dois módulos na minha casa, 38400 na boa em qualquer lugar que eu testei....

 

Paulo

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

1 minuto atrás, aphawk disse:

 

Eu acho ele muito caro e grande kkkkkk  a única vantagem que vejo é ele permitir acesso à rede wi-fi usando interface serial e comandos "AT" .

 

Para comunicação ponto a ponto, desde ano passado, eu uso este aqui :

 

http://www.ebay.com/itm/HC-12-433Mhz-SI4463-Wireless-Serial-Port-Module-1000m-Replace-Bluetooth-ST-/172252605402?hash=item281b0e2bda:g:Pq0AAOSwM4xXbX~p

 

Funcionamento bem parecido, ( claro, sem acessar a rede wifi ) e o troço funciona bem mesmo viu .... instalei um na minha casa e outro na casa do meu sobrinho, no mesmo quarteirão mas na rua oposta, tem uns 100 metros em linha reta entre eu e ele, tudo cheio de casas no meio, e mesmo assim fecho link a 300 bauds sem nenhuma dificuldade, usando essas anteninhas  !

 

Com os dois módulos na minha casa, 38400 na boa em qualquer lugar que eu testei....

 

Paulo

Aphawk da pra mandar voz nesse troço?fazer um walkie talkie?

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

12 minutos atrás, rodrigocirilo disse:

Alguem tem um exemplo ai do esp8266basic para ficar lendo um pino (se muda de estado).

 

Tipo ficar lendo um botão ligado no ESP, ao mudar de estado chama alguma coisa??

tem um bem simples que sei fazer... Kkkk penei pra caramba pra aprender, estudei este exemplo aqui várias vezes

https://www.esp8266basic.com/ds18b20-wifi-thermostat.html

pin1=d1

let status=ON

wprint "<center>"

wprint "<h1> vamos comecar?</h1>"

wprint"<br>"

wprint "<h3> E pra ja</h3>"

button "me clica"[ROTINAEXEMPLO]

button "me desclica"[ROTINAEXEMPLO1]

textbox status

wprint"<br>

button "off"[FIM]

[ROTINAEXEMPLO]

io(po,pin1,1)

let status="ligado"

[ROTINAEXEMPLO1]

io(po,pin1,0)

let status="desligado"

[FIM]

end

-------------------

Agora a explicação, voce configura uma tela fixa no textbox e chama uma variavel do tipo "let" que eu nem faço ideia de que m*** seja esta. A variável let cur ela pode ser mutável, seria acho que o "float" do arduino, se fosse comparar, agora a variável pin1 é imutável, seria o int, que so muda com as condições if e then, bem é isso ahe^^

---------

Juro que nunca mais compro um display catodo comum, o trenzim bom de dar ruido... funciona, mas mesmo assim os numeros tem horas que "quebram", diferente do anodo comum que é as mil maravilhas, não sei o por que disso mas ganhou meu deslike esse troço.

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

23 minutos atrás, lucianolcoa disse:

tem um bem simples que sei fazer... Kkkk penei pra caramba pra aprender, estudei este exemplo aqui várias vezes

https://www.esp8266basic.com/ds18b20-wifi-thermostat.html

pin1=d1

let status=ON

wprint "<center>"

wprint "<h1> vamos comecar?</h1>"

wprint"<br>"

wprint "<h3> E pra ja</h3>"

button "me clica"[ROTINAEXEMPLO]

button "me desclica"[ROTINAEXEMPLO1]

textbox status

wprint"<br>

button "off"[FIM]

[ROTINAEXEMPLO]

io(po,pin1,1)

let status="ligado"

[ROTINAEXEMPLO1]

io(po,pin1,0)

let status="desligado"

[FIM]

end

-------------------

Agora a explicação, voce configura uma tela fixa no textbox e chama uma variavel do tipo "let" que eu nem faço ideia de que m*** seja esta. A variável let cur ela pode ser mutável, seria acho que o "float" do arduino, se fosse comparar, agora a variável pin1 é imutável, seria o int, que so muda com as condições if e then, bem é isso ahe^^

---------

Juro que nunca mais compro um display catodo comum, o trenzim bom de dar ruido... funciona, mas mesmo assim os numeros tem horas que "quebram", diferente do anodo comum que é as mil maravilhas, não sei o por que disso mas ganhou meu deslike esse troço.

@lucianolcoa agradeço o exemplo.. mas acho que não é isso que estou procurando.. quero ficar lendo um botão ligado fisicamente no nodemcu.. com um pull-up ou pull-down... ai se "apertar" o botão "faz alguma coisa"..

 

Vi que o tratamento é através de io(pi,pin)  então usei assim 

cls
let p           // cria essa variavel (tambem não sei ainda o porque do "let"
p = io(pi,5) // aqui lê o pino 5 ou D1 e associa o valor a p
io(po,2,p)   // seta o pino 2 com o valor lido no pino 5(D1) mas não está funcionando

 

edit:

Se eu por pra rodar com o botão apertado ele ja aciona com o estado do pino diferente, mas não muda com o apertar e soltar do botão!!

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

4 minutos atrás, rodrigocirilo disse:

@lucianolcoa agradeço o exemplo.. mas acho que não é isso que estou procurando.. quero ficar lendo um botão ligado fisicamente no nodemcu.. com um pull-up ou pull-down... ai se "apertar" o botão "faz alguma coisa"..

 

Vi que o tratamento é através de io(pi,pin)  então usei assim 

cls
let p           // cria essa variavel (tambem não sei ainda o porque do "let"
p = io(pi,5) // aqui lê o pino 5 ou D1 e associa o valor a p
io(po,2,p)   // seta o pino 2 com o valor lido no pino 5(D1) mas não está funcionando

Do jeito que voce quer teria que setar o pino em questão como input, aterrando o botao ou ele recebendo tensão do propio node...Tem que dar uma garimpada no forum pra ver se alguem ja conseguiu fazer :s

Tive uma ideia de fazer com o sensor analogico do esp. haha

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

10 minutos atrás, rodrigocirilo disse:

@lucianolcoa agradeço o exemplo.. mas acho que não é isso que estou procurando.. quero ficar lendo um botão ligado fisicamente no nodemcu.. com um pull-up ou pull-down... ai se "apertar" o botão "faz alguma coisa"..

 

Vi que o tratamento é através de io(pi,pin)  então usei assim 

cls
let p           // cria essa variavel (tambem não sei ainda o porque do "let"
p = io(pi,5) // aqui lê o pino 5 ou D1 e associa o valor a p
io(po,2,p)   // seta o pino 2 com o valor lido no pino 5(D1) mas não está funcionando

 

Eu ví que voce está postando diretamente lá no site do ESPBasic.

Lá em algum lugar eu ví um exemplo de se usar pin interrupt.

Assim você só tem de criar mais um label e escrever a rotina para o caso de o botão ser apertado...

 

Paulo

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

pin1=di

let leitura=0

let marcador= apagado

wprint "<center>"

wprint "<h1>teste</h1>"

wprint "<br>"

wprint "<h3> vamos comecar</h3>"

leitura=io(ai)

textbox marcador

wprint "<br>"

button "fim"[fim]

TIMER 30,[vamos]

 

[vamos]

leitura=io(ai)

if leitura <10 then

let marcador ="apagado"

io(po,pin1,0)

else

let marcador ="ligado"

io(po,pin1,1)

[fim]

end

----------------

Ahe voce alimenta o sensor analogico com a propia alimentação do esp, ou usa um potenciometro pra dar uma filtrada. Não é o ideal, mas como gambiarra funciona haha.

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

3 minutos atrás, aphawk disse:

 

Eu ví que voce está postando diretamente lá no site do ESPBasic.

Lá em algum lugar eu ví um exemplo de se usar pin interrupt.

Assim você só tem de criar mais um label e escrever a rotina para o caso de o botão ser apertado...

 

Paulo

Sim Paulo, estou garimpando tudo que posso, gostei demais dessa plataforma.

 

Vou pesquisar isso lá, mas no ESP8266basic help 3.0 não achei nada sobre essa interrupção.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, lucianolcoa disse:

Aphawk da pra mandar voz nesse troço?fazer um walkie talkie?

 

Esse módulo só transmite via serial normal. Existe um outro módulo que transmite dados em velocidades mais altas ainda, mas tem de conversar via SPI se não me engano. Voz, nem pensar ....

 

Existe um módulo que eu montei um rádio amador VHF/UHF com ele, comprei o kit completo e um módulo adicional, é muito legal ! Ele permite transmitir voz tanto em VHF como em UHF ... O módulo estou guardando para alguma ideia que apareça .....

 

Veja aqui :

 

http://www.svet-el.si/english/index.php/shop/product/69-kit-weekend-project-radio-station-uhf-modul-pcb

 

Vasculhe o site porque tem como comprar só o módulo, ou tem o kit completo, ok ?

 

Paulo

  • Curtir 1
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...