Arduino Yún - configurando portas remotamente pela web
Vimos aqui alguns detalhes sobre o Arduino Yún e como deixá-lo configurado para estar em uma mesma rede de um PC. Hoje veremos como controlar suas portas pelo browser de um PC, tudo via rede wireless.
Conforme descrito na postagem anterior, o Arduino Yún possui um processador AR9331 que gerencia um Client/Server. Desta forma podemos servir uma webpage, acessá-la e atualizá-la pelo skecth do Arduino.
Ele já possui através da biblioteca Bridge, acesso via browser para habilitar/desabilitar e ligar/desligar portas através de links conforme abaixo:
• http://myArduinoYun.local/arduino/digital/13 : calls digitalRead(13);
• http://myArduinoYun.local/arduino/digital/13/1 : calls digitalWrite(13,1);
• http://myArduinoYun.local/arduino/analog/9/123 : analogWrite(9,123);
• http://myArduinoYun.local/arduino/analog/2 : analogRead(2);
• http://myArduinoYun.local/arduino/mode/13/input : pinMode(13, INPUT);
• http://myArduinoYun.local/arduino/mode/13/output : pinMode(13, OUTPUT);
Lembrando que os comandos somente irão funcionar se a senha do REST API ACCESS estiver desabilitada, em OPEN:
Em cima do exemplo Bridge fiz uma pagina bem simples trabalhando junto com os links de comandos mostrados acima.
A diferença pelo exemplo Bridge, é que primeiro precisamos inicializar o client HTML com os comandos abaixo dentro do sketch:
Depois com o comando client.print() conseguimos gerar textos e hyperlinks em HTML, porém sempre dentro dos () e " ". Exemplo:
Para escrevermos Arduino basta colocar no sketch:
Se observarmos o exemplo Bridge, temos três funções:
Uma limitação neste caso é que estouramos fácil a memória do ATMega, não conseguindo acrescentar muita coisa na pagina.
Aqui um video de como ficou:
Aqui o código Bridge já modificado:
Para quem deseja criar sua própria pagina, mais completa e acessá-la de outro endereço, você pode colocá-la no cartão SD e acessá-la por um link do tipo http://myArduinoYun.local/sd/MinhaPaginaDeTeste. Explicarei como fazer em outra postagem, baseado no exemplo Temperature Web Panel .
Conforme descrito na postagem anterior, o Arduino Yún possui um processador AR9331 que gerencia um Client/Server. Desta forma podemos servir uma webpage, acessá-la e atualizá-la pelo skecth do Arduino.
Ele já possui através da biblioteca Bridge, acesso via browser para habilitar/desabilitar e ligar/desligar portas através de links conforme abaixo:
• http://myArduinoYun.local/arduino/digital/13 : calls digitalRead(13);
• http://myArduinoYun.local/arduino/digital/13/1 : calls digitalWrite(13,1);
• http://myArduinoYun.local/arduino/analog/9/123 : analogWrite(9,123);
• http://myArduinoYun.local/arduino/analog/2 : analogRead(2);
• http://myArduinoYun.local/arduino/mode/13/input : pinMode(13, INPUT);
• http://myArduinoYun.local/arduino/mode/13/output : pinMode(13, OUTPUT);
Lembrando que os comandos somente irão funcionar se a senha do REST API ACCESS estiver desabilitada, em OPEN:
Em cima do exemplo Bridge fiz uma pagina bem simples trabalhando junto com os links de comandos mostrados acima.
A diferença pelo exemplo Bridge, é que primeiro precisamos inicializar o client HTML com os comandos abaixo dentro do sketch:
client.println("Status: 200");
client.println("Content-type: text/html");
client.println();
Depois com o comando client.print() conseguimos gerar textos e hyperlinks em HTML, porém sempre dentro dos () e " ". Exemplo:
Para escrevermos Arduino basta colocar no sketch:
client.print("Arduino");Já para colocar um hyperlink para o Google usamos:
client.print("<a href='www.google.com.br'>Google<a>");Assim montamos a webpage em cima do que já temos no sketch, onde toda vez que acessamos um link, como por exemplo:
http://myArduinoYun.local/arduino/digital/13/1No meu caso como não alterei o nome arduino, ficou:
http://arduino.local/arduino/digital/13/1Ele irá chamar a função digitalCommand(), para ligar a saída da porta 13 e já irá criar a pagina designada no sketch.
Se observarmos o exemplo Bridge, temos três funções:
digitalCommand()Cada uma trabalha toda vez que acessamos o link de acordo com parte dele, exemplo:
analogCommand()
modeCommand()
http://myArduinoYun.local/arduino/digital/No meu sketch coloquei a pagina apenas para as funções digitalCommand() e analogCommand().
http://myArduinoYun.local/arduino/analog/
http://myArduinoYun.local/arduino/mode/
Uma limitação neste caso é que estouramos fácil a memória do ATMega, não conseguindo acrescentar muita coisa na pagina.
Aqui um video de como ficou:
Aqui o código Bridge já modificado:
Para quem deseja criar sua própria pagina, mais completa e acessá-la de outro endereço, você pode colocá-la no cartão SD e acessá-la por um link do tipo http://myArduinoYun.local/sd/MinhaPaginaDeTeste. Explicarei como fazer em outra postagem, baseado no exemplo Temperature Web Panel .
Comentários
Postar um comentário