Juntamente com Andre Oliveira, do EuAndroid.com.br, criei um projeto de uma luminária RGB controlada por celular.

O Andre desenvolveu uma aplicação para Android em que o usuário seleciona uma cor na paleta de cores e então faz um request HTTP com os valores RGB da cor.

O request HTTP é recebido por um Arduino com EtherShield (controlador Ethernet), que interpreta a cor recebida e utiliza PWM para controlar a intensidade luminosa de três LEDs (vermelho, verde e azul). A aplicação em Android envia os dados via Wi-Fi para o roteador da minha rede doméstica, que então encaminha os pacotes para o Arduino, via Ethernet.

O sistema pode ser modificado para que o controle seja feito via Internet (utilizando a conexão 3G do celular).

Os códigos bem como o esquema elétrico (que é bem simples) estão disponíveis no repositório Luminária RGB em minha conta no GitHub: https://github.com/turicas/luminaria-rgb

Utilizamos uma biblioteca Ethernet modificada que estou desenvolvendo - essa biblioteca dá suporte ao controlador ENC28J60 (a oficial do Arduino só dá suporte ao controlador W5100). O código dela está disponível em: https://github.com/turicas/Ethernet_ENC28J60

Infelizmente não tiramos fotos no decorrer do projeto, porém foi bastante simples: apenas ligamos o circuito a uma protoboard, encaixamos o shield Ethernet no Arduino e colocamos tudo isso dentro de uma luminária já existente.

Para ver mais detalhes do projeto, como fotos e um podcast, veja o post no blog EuAndroid: http://www.euandroid.com.br/geral/2011/04/android-arduino-com-alvaro-justen/

Quer aprender a fazer projetos como esse? Então faça o Curso de Arduino! http://www.CursoDeArduino.com.br/

Exibições: 616

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Ueslei Barroso em 4 maio 2012 às 2:00

A esqueci de comentar que tenho em minha disposição o arduino ethernet shield ENC28j60 semelhante ao q vc usa em seu projeto. Até mais!

Comentário de Ueslei Barroso em 4 maio 2012 às 1:56

Olá Álvaro! A parte mobile do meu projeto já está praticamente pronta, mas fiz tudo utilizando sockets, não http request, pois jah tinha uma familiaridade com sockets pra java em desktop. A dúvida é a seguinte, tenho um cliente socket TCP no meu android que se comunica com um servidor também socket em um desktop. Então, gostaria se saber se o meu cliente socket consegue se comunicar com um servidor http tipo o da biblioteca que vc está elaborando? Até mais Álvaro!

Comentário de Ueslei Barroso em 4 maio 2012 às 1:50

Fala André! Cara na pasta do projeto android, tem uma outra pasta por nome bin, lá tem um arquivo tipo nomedoprojeto.apk esse arquivo vc coloca no teu aparelho e o gerenciador de instalação instala pra vc.

Comentário de André Almeida Martins em 5 abril 2012 às 1:26

desculpem-me pela ignorancia.. nao sou expert no assunto mas pretendo ser.. hahaha

porém a pergunta é o seguinte:

Como eu faço pra essa aplicação rodar no android?

Já mandei o código pro arduino, já fiz o esquema elétrico..

o próximo passo é o android.. mas, como eu faço?
nao tinha que ter nenhum "qualquercoisa.apk" nao?

to perdidao.. se alguem puder ajudar, vou agradecer demais!

to a uma semana tentando concluir esse projeto.. o q eu descobri sobre o arduino essa semana nao foi mole.. foi duro começar do zero mais já consigo algumas coisas básicas! Obrigado galera.. flws

Comentário de Ueslei Barroso em 13 março 2012 às 19:41

Oi, Álvaro! Eu verifiquei os códigos do android e verifiquei que realmente você criou um servidor http, eu estudando ele e vou verificar qual é a melhor alternativa para eu fazer o caminho entre roteador e arduino...Até mais Alvaro! Grato!

Comentário de Álvaro Justen em 13 março 2012 às 9:11

Oi, Ueslei. Nos projetos que fiz o Android atua como cliente HTTP e o Arduino como servidor HTTP, mas nada impede de você fazer diferente em seu projeto - com o Android atuando como servidor e utilizando outro protocolo em vez do HTTP. Fiz dessa forma pois, para meus projetos, foi a melhor solução que encontrei.

Comentário de Ueslei Barroso em 12 março 2012 às 21:48

Opa, que rápido o reply...Obrigado! 

Então, o foco do projeto que estou trabalhando é realmente não usar conexão com internet, apenas a rede local mesmo. Estou começando a estudar essa parte de socket agora em Android, só não entendo direito como faço para o Android "receber" e "enviar". Eu preciso fazer um Socket Server e um Socket cliente para que eu possa receber e enviar dados? O Arduino Ethernet shild cria um servidor na minha LAN? Essas são algumas das minhas dúvidas, estou pesquisando algumas coisas e creio que elas serão solucionadas, acabei de entrar no site que tem os seus códigos e vou dar uma estudada....Até mais Álvaro! Obrigado pela ajuda que está dando a toda comunidade!

Comentário de Álvaro Justen em 12 março 2012 às 21:26

Olá, Ueslei! Tudo bem?

O Android acessa a rede local, não sendo necessário que o roteador esteja conectado á Internet. Eu criei alguns outros projetos mostrando como fazer para controlar via Internet, um exemplo é o droiduino (o código está totalmente disponível).

Espero que o projeto que fiz seja útil para você!

Abraços.

Comentário de Ueslei Barroso em 12 março 2012 às 21:07

Olá Alvaro! Parabéns pelo post, muito interessante!

Eu estou trabalhando em um aplicativo em android que envia e recebe informações de sensores. Estou estudando esse tipo de comunicação(Ethernet) para fazer essa aplicação.

Este código que vc liberou em android, recebe e envia informações apenas usando a rede local?Ou é preciso o roteador ter uma conexão com a internet? Estou trabalhando nisso amigo, espero que vc possa me ajudar. Vou baixar o seu código e ver se consigo adaptar para receber e enviar strings pelo celular utilizando arduino ethernet shild também, apenas para test! Até mais!

Comentário de Álvaro Justen em 25 abril 2011 às 1:02

Alexandre, o código está disponível em meu GitHub: https://github.com/turicas/luminaria-rgb

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço