Come avere wifi collegato raspberry pi controllare un arduino?


8

Ho un arduino uno che deve rispondere a un'applicazione iOS con Internet come mezzo di comunicazione. Il mio piano iniziale era quello di utilizzare uno scudo wifi per Arduino, ma dato che non riesco a ottenerne uno in questo momento, ho pensato che avrei potuto usare solo un Raspberry Pi collegato a Internet per controllare l'Arduino. Suppongo che sia possibile?

Devo fare in modo che il Raspberry Pi risponda a un server Web e invii un segnale all'Arduino. È possibile e, in tal caso, qualcuno può darmi qualche consiglio su come procedere?

Risposte:


3

Attualmente sto lavorando a un progetto simile. È una semplice auto R / C controllata dal web. Ero nella tua stessa barca, originariamente volevo uno scudo wifi per il mio arduino. Ma ho deciso di utilizzare un Raspberry Pi collegato al mio mega 2560 tramite USB. Dovresti cercare di eseguire la firmata protcol sul tuo arduino. Viene fornito con l'IDE Arduino. Basta guardare in File-> Esempi-> Firmata e caricare StandardFirmata sulla scheda.

Il passo successivo che ho fatto è stato quello di eseguire un webserver node.js con i pacchetti di nodi firmata e socket.io. Di recente ho iniziato a sperimentare il pacchetto johnny-five node.js. Semplicemente perché sono un po 'indecente quando si tratta di programmazione node.js e ho avuto problemi a farlo funzionare bene solo con il pacchetto del nodo firmata. Johnny-five sembra promettente e ho avuto un po 'di fortuna con esso, ma il mio codice è ancora in lavorazione. Pubblicherò un link alla mia pagina github in modo da poter almeno avere un riferimento (motor_test.js e motor_test.html, tieni solo a mente, il suo codice ancora non funzionante. Sono stato in grado di controllare con successo un led, ma i motori sono un storia diversa Se oggi ho tempo a pubblicare il mio codice sul mio controllo LED funzionante attraverso il progetto node.js.

Comunque so che non potrei fornirti una soluzione completamente funzionante, ma spero che questo almeno ti faccia andare nella giusta direzione. Sentitevi liberi di inviarmi un'e-mail in qualsiasi momento (messyfresh@gmail.com) Mi piacerebbe aiutare di più in ogni modo possibile.

Ecco i riferimenti. Solo Google loro. Non posso pubblicare più di 2 link.
Installa Node.js su RPi ( http://joshondesign.com/2013/10/23/noderpi ) La
mia pagina github ( https://github.com/messyfresh/pi_rc )
Firmata
Node.js (ho trovato la versione migliore per utilizzare con socket.io e firmata è 0.8.2x)
Socket.io
Node.js Firmata
Johnny-Five Node.js


3

Di recente l'ho accompagnato con node-serialport .

Il seguente link spiega una buona strategia per il pieno controllo su Arduino.

Modifica: qualcuno ha modificato e aggiunto un link per me :)

La mia soluzione

Dai un'occhiata a arduino / serial.ino, pi / server.js e pi / views / profile.ejs. Server.js apre serialPort e un socket con profile.ejs. Quando succede qualcosa sul profilo.ejs, attiva serialPort.write (buffer, codifica) in server.js;

Solo una FYI per impostazione predefinita, Arduino Uno si reimposta quando viene aperta una connessione seriale. Se si tenta di inviare i dati senza attendere un secondo o due dopo l'apertura della connessione seriale, non funzionerà. Ho scoperto che questo problema si è risolto da solo quando ho richiesto l'interazione umana per attivare serialport.write (). Un'altra soluzione può essere trovata su Google DisablingAutoResetOnSerialConnection.

Spero che sia di aiuto!

@ bobbyg603


dovresti aggiungere nei tuoi commenti a quale progetto github ti riferisci, quindi l'OP può dare un'occhiata
kolin

3

Il modo più semplice sarebbe usare l'hardware UART ( disabilitare prima la console su Pi ) su entrambi i dispositivi. Quando configurato su 115kilobaud è possibile trasmettere un sacco di dati di testo, come JSON ma anche dati binari come zip, i jpg possono essere gestiti. Si consiglia di iniziare prima con tariffe più basse perché alcune librerie hanno problemi con baud più alti.

È quindi possibile scrivere wrapper sul Pi in qualsiasi sapore che ti piace: C, PHP, Java, .NET MONO, Perl o Python.

Questa è un'opzione per la libreria leggera che puoi costruire da solo e ci sono molti articoli su come farlo su Arduino e Raspberry Pi.


1

Abbiamo sviluppato un piccolo demone php che si connette e avvolge un demone remserial (Uart-to-TCP-Socket). Può essere facilmente esteso per svolgere attività aggiuntive come la connessione a un server Web e l'invio di alcuni dati.

Il demone viene fornito in un pacchetto insieme a un'interfaccia utente WEB completa per controllare una scheda simile ad Arduino chiamata CoPiino.

Fammi sapere se hai bisogno di supporto per estrarre il demone.

Alcune informazioni sul progetto sono disponibili qui http://www.copiino.cc

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.