Interfacciare Arduino a Rasberry.

Sistemi elettronici di controllo e monitoraggio, Arduino, Rasberry ecc.

Moderatori: gasala50, FabioR

Avatar utente
fcattaneo
Site Admin
Messaggi: 1654
Iscritto il: mar nov 27, 2007 7:44 pm
Contatta:

Interfacciare Arduino a Rasberry.

Messaggioda fcattaneo » gio dic 27, 2012 7:20 pm

Ho analizzato meglio il mio proposito di utilizzare un computer Rasberry per realizzare un sistema di interfaccia, controllo e monitoraggio di impianti solari, pdc e fotovoltaico e sono arrivato alla conclusione che Rasberry e' assolutamente ottimo se usato come server web , mysql e in genere per la fornitura e la memorizzazione dei dati.

Tuttavia per l'interfaccia con il mondo esterno e' molto meglio usare delle schede che abbiano un OS in real time, come Arduino.

Immagine

Detto questo vorrei proporre di studiare, con le varie competenze che troviamo qua sul forum, l'approccio corretto ad un sistema del genere.

... per esempio volendo far dialogare Arduino con Rasberry, quale soluzione e' meglio utlizzare ?

Le opzioni sono :

- Via ETHERNET con upload diretto nel DB installato su Rasberry,
- Via USB
- Via seriale ttl
- Via I2C

Personalmente quella che conosco meglio e' il sistema via Ethernet, che pero' ha lo svantaggio di richiedere un shield ethernet x Arduino che, oltre a costare parecchio, consuma spazio utile nella memoria dello stesso.
C'e' pero l'innegabile vantaggio che non serve software di supporto su Rasberry perche Arduino potrebbe inviare i dati direttamente al server Mysql senza ulteriori interfacce.

Le altre soluzioni sono piu' difficili da implementare e richiedono un software di interfaccia ( Pyton? ) lato Rasberry, ma renderebbero Arduino piu' leggero, economico e potente.

Che dire, l'idea è quella di fare una piattaforma HD utilizzabile x le esigenze di chiunque voglia cimentarsi con il controllo, regolazione e monitoraggio del proprio impianto/i.

Personalmente vorrei realizzare un sistema di controllo x PDC che misuri energia elettrica consumata ed energia termica prodotta, magari implementandolo con un sistema di misura della produzione elettrica di un impianto FV, con lo scopo di ottimizzare il funzionamento e l'autoconsumo.


Saluti,
F.

spider61
Messaggi: 30
Iscritto il: lun gen 11, 2010 11:25 pm

Re: Interfacciare Arduino a Rasberry.

Messaggioda spider61 » mer mar 12, 2014 1:14 pm

Ciao,
anche se vedo che la discussione non ha avuto seguito , sarei interessato anche io a interfacciare un arduino col Raspberry , ho un Rasp li' fermo , diversi arduino Nano (gli ultimi 2 li ho presi in cina ad asta a 4 euro cad , compreso la spedizione aerea ?! mi e' arrivato in 7gg. ) visto che il nano assorbe pochissimo e ha anche piu' ingressi analogici (8) l'ho gia utilizzato per farmi la centralina di gestione solare e termostufa , un'altro per un misuratore di potenza istantanea dove ho il FV , e un altro in casa per misurare il consumo elettrico , ma volevo ampliare collegando un po' di temperature , tipo ambiente , esterna e caldaia per poter analizzare meglio ..... volevo poi usare Emoncms ( c'e' gia' l'altra discussione e non sapevo se chiedere qui o la') .

Sarei intenzionato a connettere Arduino via USB al Rasp (tanto non devo usare altre USB) non credo che 10-20mA mandino in tilt la USB del Rasp.... ho visto come hai connesso il Rasp alla Rotex , volevo capire , la Rotex manda in uscita in maniera continua i dati ? e quindi il rasp non fa' altro che intercettarli o li trasmette su richiesta dello script in PY che hai fatto ? mi interessava capire se da Arduino basta mandare ogni X tempo i dati sulla seriale o doveva avere la richiesta per farlo ? e comunque per leggere basta che usi la tua routine PY , modificando solo le conversioni e i nomi delle variabili e dovrebbe funzionare lo stesso.

grazie

Avatar utente
fcattaneo
Site Admin
Messaggi: 1654
Iscritto il: mar nov 27, 2007 7:44 pm
Contatta:

Re: Interfacciare Arduino a Rasberry.

Messaggioda fcattaneo » mer mar 12, 2014 7:32 pm

spider61 ha scritto:anche se vedo che la discussione non ha avuto seguito , sarei interessato anche io a interfacciare un arduino col Raspberry ,


Sarei intenzionato a connettere Arduino via USB al Rasp (tanto non devo usare altre USB) non credo che 10-20mA mandino in tilt la USB del Rasp....

ho visto come hai connesso il Rasp alla Rotex , volevo capire , la Rotex manda in uscita in maniera continua i dati ? e quindi il rasp non fa' altro che intercettarli o li trasmette su richiesta dello script in PY che hai fatto ?

mi interessava capire se da Arduino basta mandare ogni X tempo i dati sulla seriale o doveva avere la richiesta per farlo ?



In realtà il proposito del mio vecchio post si è concretizzato in numerosi altri post; ci sono state persone che hanno collaborato anche se poi ognuno ha scelto una strada leggermente diversa per ottenere più o meno le stesse cose.

Personalmente ho fatto una scheda che usa arduino, non il sistema di sviluppo ma il solo processore con il bootloader, che supportasse più o meno tutto quello che mi ero proposto.

Connettere arduino via useb e' facilissimo ma occorre usare la schedina di sviluppo che ha gia' l'interfaccia pronta ( tipo arduino uno x intenderci ).
Io ho usato l'approccio della seriale presente sulla GPIO del Raspberry.

Lo script che interfaccia la rps3 e' in php e usa la seriale della GPIO.. si puo interfacciare anche alla usb ma occorre un cavo adattatore usb>seriale TTL.
La RPS3 manda i dato ogni 5 secondi ion modo continuo e lo script attende poco meno di 5 secondi in modo da ricevere un solo treno di dati.. poi c'e' il parser che lo elabora ecc.ecc... non c'e' comunicazione tra Arduino e RPS3 ma solo il viceversa.

>mi interessava capire se da Arduino basta mandare ogni X tempo i dati sulla seriale o doveva avere la richiesta per farlo ?

Basta ma si puo fare anche a chiamata... dipende dal software... nei miei progetti ho utilizzato la comunicazione bidirezionale solo per modificare gli stati delle uscite comandate da Arduino... per ricevere i dati non uso la chiamata.

Ciao,
F.

spider61
Messaggi: 30
Iscritto il: lun gen 11, 2010 11:25 pm

Re: Interfacciare Arduino a Rasberry.

Messaggioda spider61 » mer mar 12, 2014 8:34 pm

Grazie della risposta ,
ma non capisco una cosa : perche' dovrei passare dalla GPIO del Rasp quando ho gia' 2 USB , da cui gia' riesco a leggere cio' che Arduino manda , stavo provando un semplice sketch dove leggo una T e la mando nella seriale e dalla parte Raspi la leggo con minicom ?!
Emoncms non puo' leggere attraverso l'USB senza passare dalla GPIO , non e' previsto cio' ?

Avatar utente
fcattaneo
Site Admin
Messaggi: 1654
Iscritto il: mar nov 27, 2007 7:44 pm
Contatta:

Re: Interfacciare Arduino a Rasberry.

Messaggioda fcattaneo » gio mar 13, 2014 6:25 am

Emoncms legge qualsiasi cosa anche perche i dati non se li prende ma occorre mandarglieli... tu ti riferisci all'installazione di Emoncms suggerita x openenergimonitor che usa un modulo aggintivo, da installare su Emoncms, che legge in modo temporizzato i dati dalla GPIO sulla quale è montato un ricevitore wireles.

Nel mio progetto e' presente Emoncms ma NON il modulo gateway.. io preferisco usare 'cron' per schedulare uno script in php che fa questo lavoro... e questo script puo puntare o ad una seriale sulla GPIO o sulla USB indifferentemente.

Questo approccio e' lo stesso che utilizzava Openenergymonito all'inizio.. poi hanno realizzato un gateway che ne semplificasse l'installazione a scapito pero della sua elasticità di utilizzo.

Anche io ho iniziato usando minicom sul Raspy... è la strada giusta.

;)

spider61
Messaggi: 30
Iscritto il: lun gen 11, 2010 11:25 pm

Re: Interfacciare Arduino a Rasberry.

Messaggioda spider61 » gio mar 13, 2014 8:19 am

Bingo ! Ho trovato lo script in Python https://github.com/openenergymonitor/Em ... /pylink.py che fa' quello che volevo , ieri sera ho fatto un po' di prove , lo script parte in background e attende il dato sulla seriale (quindi il tempo lo scandisce arduino) pero' legge il dato lo stampa a video da terminale e poi da' errore quando lo passa a emon , continua a funzionare e appena riarriva il dato rida' errore , ma e' sempre in funzione , devo capire meglio il concetto di nodo e cosa vuole dal lato Arduino , io mando un semplice numero decimale , ma ci siamo quasi :D

Avatar utente
fcattaneo
Site Admin
Messaggi: 1654
Iscritto il: mar nov 27, 2007 7:44 pm
Contatta:

Re: Interfacciare Arduino a Rasberry.

Messaggioda fcattaneo » gio mar 13, 2014 2:36 pm

Se non fosse su Gitub direi che contiene un errore quello script...

prova a cambiare questa riga da cosi :

# Create csv string
csv = ",".join(array)

a cosi :

# Create csv string
csv = join(array)


Comunque posta l'errore che ti da...

Ciao,
F.

spider61
Messaggi: 30
Iscritto il: lun gen 11, 2010 11:25 pm

Re: Interfacciare Arduino a Rasberry.

Messaggioda spider61 » gio mar 13, 2014 7:18 pm

Aggio , ho fatto un po' di prove , sono riuscito a leggere il dato su emon , pero' mi legge solo una volta o due e dopo va in errore e crash ... poteva andare bene anche il tuo in php modifcandolo pero' ,naturalmente, mi serve un qualcosa che non riapra la porta seriale tutte le volte , altrimenti arduino si resetta e il dato della potenza letto con la misura del tempo tra un impulso e l'altro va a farsi benedire....

Quell'istruzione va bene cosi , ho provato a togliere le "," e da' errore ....

questa e' la schermata :

root@raspberrypi:/var/www# python p.py
0
ok
529
Traceback (most recent call last):
File "p.py", line 36, in <module>
response = conn.getresponse()
File "/usr/lib/python2.7/httplib.py", line 1034, in getresponse
response.begin()
File "/usr/lib/python2.7/httplib.py", line 407, in begin
version, status, reason = self._read_status()
File "/usr/lib/python2.7/httplib.py", line 371, in _read_status
raise BadStatusLine(line)
httplib.BadStatusLine: ''
root@raspberrypi:/var/www#


come vedi la prima chiamata manda 0 e risponde OK e infatti si aggiorna la variabile in emon , la seconda manda 529(in questo caso) e non c'e' ok e non arriva a emon..... a volte comunque e' arrivata anche il secondo invio.....

ciao grazie

Avatar utente
fcattaneo
Site Admin
Messaggi: 1654
Iscritto il: mar nov 27, 2007 7:44 pm
Contatta:

Re: Interfacciare Arduino a Rasberry.

Messaggioda fcattaneo » ven mar 14, 2014 6:18 am

spider61 ha scritto:A
,naturalmente, mi serve un qualcosa che non riapra la porta seriale tutte le volte , altrimenti arduino si resetta e il dato della potenza letto con la misura del tempo tra un impulso e l'altro va a farsi benedire....




Attenzione che questo problema lo si deve eliminare mettendo un condensatore tra il reset e la massa.

Guarda su internet e ogni progetto che usa la seriale di Arduino lo usa...
Cerca 'Arduino reset condensator'e.... qualcosa trovi subito.

Ciao,
F.

spider61
Messaggi: 30
Iscritto il: lun gen 11, 2010 11:25 pm

Re: Interfacciare Arduino a Rasberry.

Messaggioda spider61 » ven mar 14, 2014 8:06 am

Avevo letto qualcosa del genere , ma non e' meglio aprire la porta seriale una volta e continuare a leggere quello che arriva .... comunque provo anche quello.....

spider61
Messaggi: 30
Iscritto il: lun gen 11, 2010 11:25 pm

Re: Interfacciare Arduino a Rasberry.

Messaggioda spider61 » ven mar 14, 2014 9:13 pm

Eccoci , metto una schermata completa dello sketch arduino , del terminale Rasp in funzione con sotto Emoncs che si aggiorna , allora il problema di quello script python che non vuole attendere i dati , in pratica vuole al massimo 3" tra un arrivo dati e l'altro , sopra si arrabbia parecchio , poi guardero se bloccare il reset di arduino , adesso ho messo un ciclo while infinito allo script python , invece di lanciarlo a intervalli regolari.... via il primo passo e' fatto :D ....
Allegati
schermata.png
(93.99 KiB) Mai scaricato


Torna a “Domotica, monitoraggio e controllo.”



Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite