Como configurar arduino controle da web sem um escudo ethernet

web controle arduinoPara as últimas semanas, eu entregue o controle da iluminação ambiente no meu estúdio para os espectadores durante a transmissão ao vivo tecnofilia Podcast - Você pode ver os resultados do que no gravada episódio aqui. Hoje, eu pensei que eu vou explicar exatamente como eu conseguido isso usando um pouco de javascript, Em processamento, e um Arduino. O método que eu vou descrever não requer um escudo Ethernet para o Arduino, e eu vou fornecer amostras de código completo para você usar também.

requisitos:

  • Arduino
  • Luzes para controlar o circuito apropriado no Arduino- ver meu tutorial backlight ambiente desde a semana passada para um diagrama do circuito e quebra de componentes.
  • Em processamento software em seu PC ou Mac
  • site de hospedagem
  • habilidades de codificação básicos com javascript e PHP, embora eu vou fornecer o código completo que você pode personalizar.

Setup Arduino

Primeiro, remeter para última semanas tutorial para o lado Arduino das coisas- o código que estará usando é idêntica, como eu estou usando o mesmo circuito de controle de faixa de LED RGB, por isso não vou repetir isso aqui. Para resumir, o Arduino será a leitura de valores RGB da conexão serial USB para o computador. web controle arduino

Processing App

O aplicativo Processing vamos usar é muito simples (pastebin) - Ele usa um básica loadStrings () função para ler um arquivo de texto armazenado em um endereço web remoto - neste caso eu usei http://jamesbruce.me/lights/LED.txt. Criar um arquivo de texto exemplo no seu host para testar isso, e ajustar em conformidade. O ficheiro de texto deve ser apenas 3 linhas de valores de R, G e B. projetos web arduino Você também vai precisar alterar a porta serial para qualquer que seja sua USB está conectado. Como antes, a primeira coisa que o aplicativo irá fazer é produzir uma lista dos portos de série para o console - verificar isso para uma correta de usar, em seguida, re-run. Sua faixa de LED Arduino deve acender com o que os valores aleatórios adicionado ao arquivo de texto.

Controle Web Arduino

No lado do controle da web que eu escolhi uma cor picker plugin jQuery simples chamado Espectro- existem outras pessoas lá fora, mas eu senti que isto era tão simples como necessário e também funciona com o toque em um celular, enquanto outros Tentei não faria. Coloque o spectrum.js e spectrum.css arquivos no mesmo diretório como tudo o resto (Eu fiz a / luzes sub-diretório em meu servidor para manter as coisas limpas). projetos web arduino Nós estaremos usando PHP tanto para exibir o controle de web, e lidar com a LED.txt arquivo escrito, se as variáveis ​​são dadas no pedido POST. Quando o usuário visita essa página e escolhe uma cor, ele envia um pedido de AJAX com as variáveis ​​cor de volta para si mesmo. Isso mantém a coisa toda contido dentro de um arquivo. O cheio PHP / HTML podem ser encontrados neste pastebin (Salve-o como index.php em um sub-diretório juntamente com os outros arquivos), mas deixe-me dar um breve esboço do código envolvido.

  1. PHP: Detectar se há uma variável post chamado "cores". Se assim for, abra o arquivo LED.txt para a escrita, e substituir com as variáveis ​​post.projetos web arduino
  2. HTML: Importação jQuery, Spectrum.js, e Spectrum.css
  3. javascript: Function getRGB retorna uma matriz de valores separados por vírgula RGB dada uma variedade de diferentes formatos de cor CSS, tais como #aaaaa.
  4. javascript: Criar o controlo do espectro, e anexar uma chamada de AJAX para a cor escolhida alterado evento. O AJAX chama este arquivo manipulador com os valores RGB dadas pelo controle.web controle arduino

Por fim, verifique se o LED.txt arquivo é gravável pelo servidor. UMA 655 ou 777 a permissão deve fazê-lo. Inicie o arquivo e dê um ir- o aplicativo de processamento terá de ser executado e irá atualizar o arquivo a cada segundo. Se o seletor de cores nem sequer aparece na página, verifique o console javascript para erros.

Armadilhas e os novos trabalhos

Como já referi, este método não usar um escudo Ethernet de propósito, para que qualquer pessoa com hospedagem básica site poderia tê-lo criado muito rapidamente e barata. No entanto, isso não significa que temos de usar o aplicativo de processamento para atuar como um gateway para buscar a data- sem o PC em execução, ele simplesmente não vai funcionar. Com a adição de um escudo Ethernet ou Wi-Fi, que pode mover o Arduino em qualquer lugar sem estar amarrado a um PC, e quer buscar comandos remotamente ou empurrá-los direto para o Arduino com um pouco de encaminhamento de porta. Vou abordar este outro dia. Há também uma questão de concorrência - a nossa forma de tê-lo criado é que o arquivo será simplesmente substituído cada vez que alguém escolhe uma nova cor, e o atraso entre as alterações de cor é decidido no código de processamento. Se você quer ter muitos usuários constantemente ajustando a cor, um sistema de fila de espera com um banco de dados pode ser mais appropriate- usando um arquivo simples para armazenar os valores podem resultar em algumas mudanças que estão sendo ignorados caso ocorram as atualizações mais frequência do que estamos atualizando o arquivo. Então, é claro, você não tem nenhuma maneira de saber se ele ainda trabalhou bem, então a menos que você estivesse assistindo a transmissão ao vivo. Idealmente, haveria uma webcam configurar e incorporado na página de controle. Como uma tech demo, porém, eu acho que isso é muito incríveis- Eu espero que você pode ver o potencial de controle remoto basicamente qualquer coisa através da internet através de um Arduino. Justin sugeriu que entregar o controle da minha forno- I negado. Você tem projetos interessantes que você acha que isso pode ajudar?

» » Como configurar arduino controle da web sem um escudo ethernet