Ir ao conteúdo
  • Cadastre-se

TalkBack com ESP-01, ou coisa parecida


Posts recomendados

  • Membro VIP

Ouvi falar que com MQTT se faz. Também estou a pensar que posso gravar minha própria pilha de comandos em servidor particular e consultá-la periodicamente. Mas com certeza seria melhor usar uma solução madura de PubSub em nuvem.

 

Alguém conhece biblioteca disso para o modesto ESP-01?

 

Meu propósito é fazer o ESP-01, comandado sem interferência de firewalls, disparar "pacote mágico" de Wake On LAN. Já sei pelo menos duas maneiras de enviar o pacote. Falta agora apenas descobrir a melhor forma de manter o embarcado "ouvinte" da Internet — via NAT, claro!

 

Pra que?

 

Para não quebrar a cabeça com operadoras de planos residenciais que fecham todas portas ou mascaram IP, quando na verdade eu só preciso de Teamviewer (que já funciona). É que além do Teamviewer, eu preciso do WOL.

 

Update

 

O Teamviewer pode facilitar o Wake On LAN de duas formas e nenhuma delas me serve:

  1. Ele pode comunicar aos servidores da empresa o IP externo; no caso, o IP do roteador. Porém, todas configurações de sempre teriam de existir, não poderia haver bloqueios de porta etc.
  2. Caso instalado em outra máquina da rede, que esteja LIGADA, o software Teamviewer dela, residente, pode agir como robô, disparando na rede interna os pacotes mágicos.                        

Essa última solução, de robotização, é basicamente o que eu busco com um simples ESP-01.

 

Update 2

 

Peço desculpas ou licença, porque parece que ando "inventando" UML... mas vamos lá!

EspWOL.png

O mais importante é comunicar bem a ideia, não é mesmo?! Acho que o diagrama acima está cumprindo sua missão.

 

Já batizei o projeto: EspWOL

 

Quem se habilita?

 

Comprometo-me a dar forma a ele no GitHub, atribuindo toda através das assinaturas dos commits. Se ninguém codificar isso, eu mesmo talvez termine fazendo. Pois parece que já é uma necessidade.

 

Sugestão importante: código aberto, pode ser licença MIT. O que acham?

 

Eu quero apenas usá-lo. Não faço questão de ser o programador principal. Mas terminarei sendo se o tempo passar e nenhum tarado por ESP8266 chegar junto! :tw_grimace:

Link para o comentário
Compartilhar em outros sites

@alexandre.mbm Eu não sei se entendi direito, mas acho que pelo seu diagrama me deu uma noção do que pode ser feito, mas por favor, me corrija se estiver falando besteira:

 

Um cliente envia um comando para um servidor na internet, a partir de um app andoid/iOS. O ESP verifica o servidor, consulta o comando (atual?) e envia para o "Pacote Mágico", que envia para a máquina final! Seria isso?

 

Eu só não consegui identificar o que seria esse pacote mágico!

Link para o comentário
Compartilhar em outros sites

vou ajudar com o que eu ja consegui até agora. Testei pacotes prontos diponiveis no github com o protocolo arest. Não consegui fazer funcionar, mas isso não quer dizer que alguem não consigua. Se alguem conseguir, por favor mande o pulo do gato para 3º conseguirem também

https://translate.google.com.br/translate?hl=pt-BR&sl=en&u=https://arest.io/esp8266-arest-pro/&prev=search

O que eu tava vendo que pode funcionar, é um plano servido pela própia ibm, mas precisa de cadastros..

de qualquer forma disponibilizo o link com o tutorial, ao qual ainda não tive tempo de fazer:

https://translate.googleusercontent.com/translate_c?depth=1&hl=pt-BR&prev=search&rurl=translate.google.com.br&sl=en&u=https://tuts.codingo.me/connect-esp8266-to-ibm-bluemix&usg=ALkJrhiza335ATu1fWK1W1t29xaYDsbAhA

 

 

https://console.ng.bluemix.net/

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

  • Membro VIP

@Papibakigrafo, o comando existir no servidor significa: "ESP-01, distribua um pacote mágico na rede". Esse pacote é dito mágico porque tem um formato específico e serve de sinal mágico para despertar a máquina da interface de rede destinatária.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@lucianolcoa , segundo entendi, o aREST não me servirá, pois parece que ele requer endereçar o ESP, assim:

192.168.1.101/digital/6/1

Eu preciso que seja o ESP a consultar a Internet, e não a Internet a consultar o ESP.

adicionado 6 minutos depois
9 minutos atrás, Papibakigrafo disse:

@alexandre.mbm e esse pacote mágico estaria na compilação do ESP-01 né?

 

https://github.com/koen-github/WakeOnLan-ESP8266

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

  • Membro VIP

@Papibakigrafo , lembrando que nenhum usuário vai interagir com o ESP-01. Será totalmente autônomo.

 

A primeira coisa para a qual olhei foi o TalkBack do Thingspeak, que eu entendo como uma versão já pronta e um tanto sofisticada disso aí que você quer fazer em PHP. Aliás, invés de gravar em banco eu deixaria em cache ou arquivo.

 

Depois eu vi que MQTT com biblioteca PubSub pode facilitar as coisas. E achei o Bluemix bem elaborado.

 

Nas atuais circunstâncias, qualquer coisa que funcione bem pra mim tá valendo!

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

  • Membro VIP

Nesses minutos eu estava vendo "MQTT Tutorial for Raspberry Pi, Arduino, and ESP8266". E a biblioteca em Python. Fui atraído pelos exemplos de Raspberry Pi. Usar PubSub assim, direto no MQTT, fica elegante. Que tal procurar equivalente em PHP? Seria melhor do reinventar.

Link para o comentário
Compartilhar em outros sites

@alexandre.mbm Também ja tinha dado uma olhada de voce instalar o protocolo mosquitto no rasp. Não sei se é uma boa ideia pois voce perderia a grande funcionabilidade dele. Que seria a "automação sem fronteiras" podendo controlar o seu aparelho independente de cadastrar ip externo, gateway... essas fuleragens que as provedoras de internet insistem em dificultar conosco. Mas você ganha em vantagens pois dessa forma pois voce pode ter varios esps conectados num mesmo ip e assim o broker, que seria seu rasp, endereçar as mensagens para cada esp, dependendo de como voce configurar o broker. O que daria uma vantagem de, em vez de você configurar os esps 1 por 1, você só configura o rasp e os esps se conectam com ele.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@lucianolcoa , na verdade eu não estava pensando no Raspberry Pi. Apenas em ter um broker MQTT em servidor da Internet. Talvez* no Heroku ou no OpenShift. Ou mesmo numa hospedagem compartilhada que suportasse a instalação. Sempre opções gratuitas.

 

  * A principal desvantagem desses opções de PaaS é que eles "dormem".

 

Ainda não cheguei aos detalhes do Mosquitto. O CloudMQTT tem add-on no Heroku, por exemplo. Usando PHP como cliente, temos já algumas opções:

Veja também: Developing PHP client for MQTT using Mosquitto-PHP Library

Link para o comentário
Compartilhar em outros sites

Essa semana eu andei fazendo testes de envio de dados para um servidor meu na internet, eu já havia testado isso com o ThingSpeak e não havia gostado pelo fato do ESP ficar travado esperando vários segundos pela resposta do Thing, daí resolvi enviar os dados para meu próprio servidor e como eu não atribuí nenhuma resposta por parte do servidor, o ESP fica parado cerca de 6 segundos aguardando, deve ter uma forma de colocar um timeout menor. Confesso que não gostei dos resultados preliminares. Acredito também que quando o servidor estiver retornando a resposta, esse tempo parado vá diminuir.

 

 

 

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

  • Membro VIP

Cheguei a cogitar instalar meu próprio broker MQTT em Openshift. Seria o Mosquitto.  Eis duas referências mais diretas:

Inclusive encontrei a organização de GitHub mqtt-openshift, que cairia como uma luva. Ela já tem até a sugestão de usar o Paho Python Client... mas também poderia ser um daqueles clientes em PHP que vimos.

 

Xiii... mas agora deu uma preguiça! Parece uma solução "bazuca pra matar formiga", no meu caso particular. E ainda ficaria "dormindo" de vez em quando.

 

Eu vou mesmo é usar um plano gratuito de outro broker, quem sabe o Bluemix. Isso se um de vocês não fizer outra coisa antes, qualquer coisa que esteja funcional.

 

Update

 

Quanto à app de Android, eu estava querendo simplificar com App Inventor. Ou para fazer  requisições HTTP, ou para fazer um simples webview de PHP ou Python. A segurança pode ficar por conta de uma sessão iniciada mediante chave MD5.

 

Caso eu decida codificar para Android, gostaria de experimentar Ionic.

 

Update 2

EspWOL-Bluemix.png

 

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

  • Membro VIP

Para além do Bluemix, estou propenso a experimentar HiveMQ, CloudMQTT ou DIoTY.

 

opções de software para além do Mosquitto. Muita gente acha o máximo configurar os próprios servidores. Já eu, não quero sanar pra me coçar. Às vezes a pessoa precisa, né?! Como por exemplo quando se parte do pressuposto de um openHAB ou de um Home Assistant (exemplo).

 

Update

 

Se teremos ou não memória suficiente para tanta biblioteca, é outra questão. Mas eu estava vendo: se quisermos uma conversação mais elaborada entre broker e ESP-01, precisaremos de referência de tempo.

 

 

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

  • Membro VIP

EspWOL-estados.png

 

Update

 

Ainda não analisei a pinagem em pormenor. Talvez mesmo usando-se um buzzer fique sobrando pino GPIO, pois esse LED referido é o interno. No caso ou em outro no qual se possa ter um botão de comando, uma nova feature desejável seria um "modo de diagnóstico", com vários códigos de erro. Mas vou deixar para pensar isso e mais coisa numa segunda versão. Quero fazer a versão a primeira o mais simples possível.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!