Como ter o wifi raspberry pi conectado controla um arduino?


8

Eu tenho um arduino uno que precisa responder a um aplicativo iOS com a Internet sendo o meio. Meu plano inicial era usar um escudo wifi para o arduino, mas como não consigo um no momento, achei que poderia usar um raspberry pi conectado à Internet para controlar o arduino. Estou assumindo que isso é possível?

Preciso que o raspberry pi responda a um servidor da web e envie um sinal ao arduino. Isso é possível? Em caso afirmativo, alguém pode me dar alguns conselhos sobre como fazer isso?

Respostas:


3

Na verdade, estou trabalhando em um projeto semelhante no momento. É um carro R / C controlado pela web simples. Eu estava no mesmo barco que você, eu originalmente queria um escudo wifi para o meu arduino. Mas decidi usar um pi de framboesa conectado ao meu mega 2560 via USB. Você deve procurar o firmata protcol no seu arduino. Ele vem com o Arduino IDE. Basta olhar em Arquivo-> Exemplos-> Firmata e fazer upload do StandardFirmata para o seu painel.

A próxima etapa que tomei foi executar um servidor da web node.js. com os pacotes de nós firmata e socket.io. Recentemente, comecei a experimentar o pacote johnny-five node.js. Simplesmente porque eu sou meio noob quando se trata de programação node.js. e estava tendo problemas para fazê-lo funcionar corretamente apenas com o pacote de nós firmata. Johnny e cinco parece promissor e tive um pouco de sorte com isso, mas meu código ainda está em andamento. Vou postar um link para minha página do github para que você possa pelo menos ter uma referência (motor_test.js e motor_test.html, lembre-se de que ainda é um código que não funciona. Consegui controlar com êxito um led, mas os motores são um Se eu tiver tempo hoje, postarei meu código no meu controle de LED de trabalho através do projeto node.js.

De qualquer forma, sei que não poderia fornecer uma solução completamente funcional para você, mas espero que isso pelo menos faça com que você vá na direção certa. Sinta-se à vontade para me enviar um e-mail a qualquer momento (messyfresh@gmail.com). Gostaria de ajudar mais da maneira que puder.

Aqui estão as referências. Apenas pesquise no Google. Não posso postar mais de 2 links.
Instale o Node.js no RPi ( http://joshondesign.com/2013/10/23/noderpi )
Minha página do github ( https://github.com/messyfresh/pi_rc )
Firmata
Node.js (encontrei a melhor versão para use com socket.io e firmata é 0.8.2x)
Socket.io
Node.js Firmata
Johnny-Five Node.js


3

Recentemente, eu acompanhei isso com o node-serialport .

O link a seguir explica uma boa estratégia para controle total sobre o Arduino.

Editar: alguém editou e adicionou um link para mim :)

Minha solução

Confira arduino / serial.ino, pi / server.js e pi / views / profile.ejs. Server.js abre o serialPort e um soquete com profile.ejs. Quando algo acontece no profile.ejs, ele aciona o serialPort.write (buffer, codificação) no server.js;

Apenas um FYI por padrão, o Arduino Uno é redefinido quando uma conexão serial é aberta. Se você tentar enviar dados sem esperar um ou dois segundos após a conexão serial ser aberta, ela falhará. Descobri que esse problema se resolvia quando exigia interação humana para acionar serialport.write (). Outra solução pode ser encontrada pesquisando DisabledAutoResetOnSerialConnection no Google.

Espero que isto ajude!

@ bobbyg603


você deve adicionar em seus comentários que projeto github você está se referindo, em seguida, o OP pode ter um olhar
kolin

3

A maneira mais simples seria usar o UART de hardware ( desativar o console no Pi primeiro ) nos dois dispositivos. Quando configurado em 115kilobaud, você pode transmitir uma grande quantidade de dados de texto, como JSON, mas mesmo dados binários, como zips, jpgs podem ser manipulados. É recomendável começar com taxas mais baixas primeiro porque algumas bibliotecas têm problemas com taxas mais altas.

Você pode escrever wrappers no Pi com qualquer sabor que desejar: C, PHP, Java, .NET MONO, Perl ou Python.

Esta é uma opção para bibliotecas leves que você pode criar e há uma abundância de artigos sobre como fazer isso no Arduino e no Raspberry Pi.


1

Desenvolvemos um pequeno daemon php que se conecta e envolve um daemon remserial (Uart-to-TCP-Socket). Ele pode ser facilmente estendido para executar tarefas adicionais, como conectar-se a um servidor da Web e enviar alguns dados.

O daemon vem em um pacote junto com uma interface WEB completa para controlar uma placa semelhante ao Arduino chamada CoPiino.

Entre em contato se precisar de suporte para extrair o daemon.

Algumas informações do projeto podem ser encontradas aqui http://www.copiino.cc

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.