Conectando Arduino na Nuvem com Yaler

Para muitas aplicações hoje em dia com o Arduino, surge a necessidade de acessá-lo à distancia, daí temos várias saídas como por exemplo: Bluetooth, Rádio frequência, Infravermelho, etc. Porém e quando queremos acessá-lo de qualquer lugar do mundo?

Certamente nós teremos que utilizar a internet, mas para que isso seja possível o Arduino tem que estar em algum local na rede, mas onde? Sim, utilizaremos a Cloud Computing. Para quem desconhece o assunto eu postei uma breve explicação sobre o assunto aqui.



Continuando do post anterior, hoje irei mostrar como pode ser feita uma conexão entre Arduino e Nuvem utilizando os serviços do Yaler. Para quem não conhece o Yaler oferece um serviço de Nuvem para armazenar seus dispositivos e acessá-los com segurança.

O Yaler provê bibliotecas para as seguintes plataformas: Arduino, BeagleBone, Raspberry Pi, Arduino Yún, Intel Edison, etc. Também oferece várias formas de cliente de acesso como: Browser (Google Chrome, Firefox, IE), Android, Curl, IOS, etc.

Para nosso projetinho iremos utilizar (Arduino + EthernetShield), então o código utilizado abaixo será para o uso com o Shield Ethernet.


  • Primeiro de tudo você terá que baixar a biblioteca do Yaler para o Arduino aqui;
  • Instalar a biblioteca no Arduino;
OBS: Para instalar a biblioteca basta você copiar a pasta que descompactou contendo a biblioteca para a pasta "libraries" do seu Arduino.

  • Próximo passo é abrir a IDE do Arduino e abrir o exemplo "YalerEthernetServer".

O código aberto será o seguinte:

// Copyright (c) 2014, Yaler GmbH, Switzerland // All rights reserved #include <SPI.h> #include <Ethernet.h> #include <YalerEthernetServer.h> // Coloque o MAC do seu shield Ethernet. byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Local EthernetServer at http://LOCAL_IP/ (e.g. http://192.168.0.7/) //EthernetServer server(80); // Adquira um domínio em http://yaler.net/ troque "RELAY_DOMAIN" por seu domínio // O acesso público do seu Arduino pelo navegador http://RELAY_DOMAIN.yaler.net/ YalerEthernetServer server("try.yaler.net", 80, "RELAY_DOMAIN"); void setup() { Serial.begin(9600); Serial.println("Aquiring IP address..."); if (Ethernet.begin(mac) == 0) { Serial.println("DHCP failed."); } else { Serial.println(Ethernet.localIP()); server.begin(); } } void sendResponse(EthernetClient client) { client.print("HTTP/1.1 200 OK\r\n"); client.print("Connection: close\r\n"); client.print("Content-Length: 5\r\n"); client.print("\r\n"); client.print("Hello World"); } void loop() { EthernetClient client = server.available(); if (client && client.connected()) { client.find("\r\n\r\n"); sendResponse(client); delay(1); // dá um tempo pra o navegador receber informação client.stop(); } }


Substituia o nome "RELAY_DOMAIN" pelo seu domínio no meu caso ficará assim:



YalerEthernetServer server("try.yaler.net", 80, "gsiot-9kj9-d24v");

O acesso pelo navegador fica assim:   http://gsiot-9kj9-d24v.yaler.net/

Após isso se tudo der certo o seu Arduino estará na Nuvem disponível apartir de qualquer lugar do mundo. E acessando-o ele exibirá a clássica mensagem "Hello World".

A partir disso é só utilizar a criatividade e criar várias aplicações com o Arduino conectado à Nuvem.

-Caso queira utilizar o Arduino + WifiShield: https://yaler.net/arduino-wifi
-Caso queira utilizar o Arduino Yún:              https://yaler.net/arduino-yun


Dúvidas, críticas, podem ser deixadas nos comentários
Forte abraço!! :)

Comentários

  1. Respostas
    1. oi tuca,

      na época em que eu criei o post eles estavam no "beta test" então estava gratuito. Porém o site do yaler mudou bastante e hoje estão trabalhando com planos de 1 ano. Porém você ainda pode testar por 30 dias.
      Abraços.

      Excluir
  2. Vc Teria mais detalhes de como conseguir uma conta de um ano por exemplo no yaler e outros exemplos de códigos?

    ResponderExcluir
    Respostas
    1. Oi Kleysson,

      O site do Yaler mudou bastante desde minha postagem, Antes eles liberavam contas gratuitamente estava no "beta test". Agora eles trabalham com pacotes de dados por ano.
      segue o link:

      https://yaler.net/start

      Excluir
  3. Vc Teria mais detalhes de como conseguir uma conta de um ano por exemplo no yaler e outros exemplos de códigos?

    ResponderExcluir
  4. esta aparecendo só Hello. Tentei colocar "testando" e só aparece "testa". Mas já me deu uma luz no projeto que estou criando.
    Obrigado!!

    ResponderExcluir
    Respostas
    1. Olá Cisi,
      fiquei um tempo sem postar voltei recentemente, fico feliz por ter ajudado de alguma forma :)

      Excluir
    2. A e o problema do "testando" e "testa".
      Um palpite: poderia ser apenas a limitações de caracteres no próprio código ja que: "Hello" = 5 "testa" = 5.
      abraços.

      Excluir
  5. Este comentário foi removido pelo autor.

    ResponderExcluir
  6. Estou elaborando um projeto e gostaria de transmitir os dados coletados pelo Arduino para a nuvem através de um chip de celular, pois os locais de instalação nem sempre possuem internet. Sabem de algo que pode ajudar ?

    ResponderExcluir
    Respostas
    1. Oi
      Primeiro deixe-me ver se entendi. Você está usando um Arduino com um chip GSM para acessar a internet e enviar dados para a nuvem correto?
      Se sim, então você pode trabalhar com um acesso ao drive do google. Já que os dados não são pesados, lá vc pode gerenciar através de outra aplicação.

      abraços.

      Excluir
  7. Fiz um teste com Yaler e funcionou muito bem, mas apenas dois dias. Você saberia me informar se continua funcionando ainda. Se não, conhece outra opção de nuvem para o Arduino.

    ResponderExcluir
    Respostas
    1. Oi, a versão trial do yaler são de 30 dias. Se não estou enganado existe um certo limite de transferência de dados, talvez o que aconteceu foi você ter passado desse limite. Bom eu conheço outro site http://cloudino.io porém nunca usei. E conheço outro que é bem confiável o Temboo.com indico fortemente para aplicações de IoT.

      Excluir

Postar um comentário

Postagens mais visitadas deste blog

Arduino

Arduino LED Server