Arduino – Comunicação UDP Parte1

Opa, pessoal tudo belezinha? Depois de um tempo sem postar nada de Arduino com o Ethernet Shield e o foco saiu bastante com comunicação serial (USB CDC) agora vou postar como realizar a comunicação de um computador, servidor local ou remoto com um Arduino via Ethernet, nessa primeira parte vou mostrar a biblioteca que utilizei arduino_uip escrita por Norbert Truchsess baseado na Stack uIP de Adam Dunkels, porém neste caso esta biblioteca foi escrita especialmente para um ENC28J60 que é o que eu precisei e a uIP foi a base para eu construir a minha própria quando fiz minha monografia.

A biblioteca completa com exemplos pode ser adquirida no link abaixo:

https://github.com/ntruchsess/arduino_uip

Esta biblioteca possui suporte completo para aplicação cliente/servidor TCP e UDP além de recursos ARP, ICMP, DHCP e DNS, mas o foco deste post é UDP.

Acho que não tem segredo quanto baixar a biblioteca e copia no diretório libraries do Arduino tanto em Linux quanto em Windows, no caso estou usando Arduino IDE 1.0.5 e arduino_uip 1.0.1.

Nosso pequeno projeto consiste em baseado num IP fornecido iremos enviar a string “copa2014” eu pensei em “copa2014SQN” hehe mas “copa2014” ta em ritmo ainda :), então vamos lá…

Acho que ficou bem comentado e bem direto, temos o IP do Arduino e depois IP do servidor e a porta que você pode trocar ambos, agora vamos ver o código utilizado do lado do servidor.

Salvei este código com o nome ArduinoUDPServer.py, no caso estou utilizando uma VM Linux e você deve setar a permissão +x (execução) para todos.

Agora vamos iniciar a aplicação Python e ver a saída:

Agora ligando o Arduino + EthernetShield já com o firmware gravado, vamos monitorar pelo Monitor Serial da própria IDE:

Após ligar o Arduino + Ethernet Shield vamos ver como esta nossa aplicação ArduinoUDPServer.py que ficara em um loop infinito:

Hum, legal heim? Mas e se nosso programa em Python mostrar na tela Data/Hora de cada recebimento seria legal para acompanhar, vamos tentar?

Vamos ver agora como fica a saída do nosso ArduinoUDPServer.py baseado no envio de 5 segundos que configuramos no Arduino:

Espero que tenham gostado e vamos aguardar o próximo!

Dica: Hum, usei Python em uma VM Linux, pensou em usar esta aplicação no RaspberryPI ou BeagleBone Black para comunicar? :)

Duvida ou problemas post nos comentários.

Até a próxima!

Referências

Norbert Truchsess
https://docs.python.org/2/library/socket.html
https://github.com/ntruchsess/arduino_uip
http://en.wikipedia.org/wiki/UIP_(micro_IP)

Share Button

CC BY-NC-SA 4.0 Arduino – Comunicação UDP Parte1 by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.