Comunicação e controle de vários ESP8266 (Arduino IDE).

Olá a todos, 

Aqui o código: main.ino.

A pouco tempo postei esse tópico com algumas dúvidas, e a principal era: Como comunicar vários ESP8266 em rede e, com a ajuda do pessoal aqui do Lab de garagem, mais especificamente do José Gustavo Abreu Murta e  Uigor, foi possível desenvolver o código que estou anexando aqui. 

Desafio era desenvolver tudo com base na IDE do Arduino e isso foi feito.

Módulo utilizado: ESP8266 - modelo 12E. 

1 - Comunicação entre vários ESP. Vou anexar o código como "main.ino", que basta apenas jogar em alguma interface que compile o código .ino e então brincar.

O código possui muitos comentários, eu poderia criar uma biblioteca em C++ para vocês instanciarem algumas funções para facilitar as coisas ainda mais, porem, ai vocês não iriam entender como a coisa funciona de verdade, igual eu não entendi em outros arquivos de outras pessoas.

- Sobre o código:

Este exemplo que criei, ficou muito mais em C do que em C++, o mesmo permite que você consiga comunicar o ESP8266 em uma rede através do protocolo UDP, ou seja, você consegue mandar String ou "Pacotes" de um ESP para outro ou também de um ESP para um PC, é possível fazer a comunicação entre ESP_1, ESP_2 e PC tudo isso com a IDE do Arduino. 

Falta: O que não fiz ainda  - foi utilizar o ESP com o MIT APP inventor, mas logo posto algo sobre isso.

Obs: Como eu já havia comprado o modulo ESP8266-12 Separado, sem nenhuma placa, acabei montando uma placa para ele, fiz em casa mesmo, a placa é face simples, então eu inverti o esquemático do ESP para ele ficar na parte das trilhas, assim não precisaria fazer dupla face com um componente SMD, estou anexando como ficou a placa e o circuito para quem quiser entender o funcionamento, mas vamos partir do principio que todas as placas são iguais, precisamos apenas do controle do ESP.

Em anexo:

1 - Placa apos a corrosão (processo simples com ferro de passar roupa da minha vózinha).

2 - Placa testada e funcionando perfeitamente, lembrando que para gravar este circuito é necessário um conversor usb ttl, por exemplo um FTDI.

3 - O Circuito que utilizei para montar a placa.

4 - Aqui o código: "main.ino" Código "Sketch" para compilar na IDE Arduino. 

Abaixo, comunicação entre ESPs.

        Figura 1.0                                                                                                  Figura 2.0

 

                Figura 3.0                                                                                                 Figura 4.0

Figura 1.0 (tremi todo na hora da foto rsrs) - Todos os LEDs apagados.

Figura 2.0 - Apertando o Botão do ESP_1, Liga o LED do ESP_2

Figura 3.0 - Apertando o Botão do ESP_2, Liga o LED do ESP_1

Figura 2.0 - Apertando o Botão novamente  do ESP_1, Desliga o LED do ESP_2.

Figura abaixo comunicação entre o PC e os dois ESP..

Através do Software: "Packet Sender".

Para utilizar o software, é necessário colocar a sua String a ser enviada (Pacote), ali em baixo ta como:

ASCII: "hello".

Address: "192.168.25.191" - Este é o IP da minha placa que desejo comunicar.

Port: "4210" é a porta que estou utilizando para o tráfego das informações.

Obs: Perceba que eu mandei um pacote para cada um dos IP das minhas placas,

Mandei "hello" - (este hello esta protocolado, so responde a esta msg) e os ESP me responderam:

"OK, Msg recebida".

Espero que tenha ficado facil de entender.

Obrigado José, Uigor e Lab de garagem.

Exibições: 5874

Anexos

Responder esta

Respostas a este tópico

Parabéns pela sua placa ! Ficou bem legal. 

1- comunicação full-duplex entre 2 módulos.

https://alselectro.wordpress.com/2016/11/29/esp8266-wifi-library-on...

https://alselectro.wordpress.com/2015/05/13/wifi-module-esp8266-2-t...

2- comunicação entre VÁRIOS módulos "ESP8266"

http://www.dobitaobyte.com.br/como-fazer-rede-mesh-com-esp8266-part...

http://www.espressif.com/sites/default/files/30a-esp8266_mesh_user_...

3- "ESP8266" através do "MIT app inventor"

ESP8266 Controlled with Android App:

http://randomnerdtutorials.com/esp8266-controlled-with-android-app-...

4- velocidade máxima possível entre dois módulos ESP8266

A velocidade dependerá do alcance do sinal

ESP8266 - alcance do sinal de RF:
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

Meu Tutorial sobre ESP8266 :

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266

ESP8266 - Comunicação de dados TCP/IP:
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 - Comunicação WEB Server:
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 - Teste de comunicação serial do Arduino com o ESP8266 :
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 - Usando IDE Arduino (exemplos ADAFRUIT/SPARKFUN )
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

Em anexo o Código pessoal.

Anexos

Legal ! Parabéns !

Obrigado pelo agradecimento. 

Mas esta atendendo à sua necessidade ?

José, 

Ainda não realizei alguns testes que achei importante, você informou sobre a velocidade e que a mesma é proporcional a distancia distancia do módulo, mas ainda não realizei testes com paredes, não vi se o circuito trava após algum tempo, apenas comuniquei os módulos, assim que tiver mais tempo pra deixar um software rodando direto pra ver como ele se comporta, eu posto os resultados.

e obrigado você pela ajuda, ficou show sua documentação sobre o ESP.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço