• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
arduino api raspberry le e

Arduino,raspberry e le api
#1
Ciao a tutti
tempo fa mi ero cimentato nel curiosare sull'adattabilità delle api al clima e all'umidità che da noi ha variazioni serie da sera a mattino (Trentino)
il risultato lo potete trovare nel mio sito qui
http://nuke.fotoarrigo.com/Arduino/Ardui...fault.aspx
si nota la manca un elemento importante : peso
per il resto ho usato un ArduinoUnoR3 e alcuni sensori sia all'interno dell'arnia (per fortuna non me li hanno prpolizzati) che all'esterno.
Mi piacerebbe aggiungere il sitema di pesatura (non so da dove cominciare) e poi sarebbe bello travasare tutto su raspberry e creare un'app per interrogare da smartfone o tablet e vedere il grafico degli ultimi 7-15 giorni (meglio 15)
Ce la possiamo fare? qualcun altro si unisce? 
Peccato che non sia ancora riuscito a mettere windows su raspberry altrimenti per me sarebbe piu semplice ma forse qualcuno mi può suggerire qualcosa di meglio
Ringraziando per eventuali suggerimenti ,saluti, Arrigo

A GabrieleToselli
ahahaha Wink  Wink  Wink  ma deve essere una sonda piiiiiiiiiiiiiiiicola e wifi
ciao
Risposta
#2
Io ci sono
Se si fà un database MySQL dopo si è apposto...
Tabelle e grafici prendono i dati dal DB

Sinceramente mi manca il passaggio da Arduino a raspberry dei dati

Per il resto penso di poter dare una valida mano
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
#3
Io invece, ti propongo l'approccio più semplice del datalogger atipico.
In cui il database risiede on line, esistono già App per consultarlo dagli smartphone e per implementarli basta un programma in Python sul RaspberryPi.
Anzi.. Anticipo che al ritorno dalle vacanze potrebbe vedere la luce la nuova versione (per l'occasione il nome diventerà ZzedLogger). È pensato apposta perché ognuno lo possa adattare alle proprie esigenze, senza dover "impazzire" con Php e Mysql..
Risposta
#4
Mica ci avevo pensato!
Mi sa che la soluzione l'ha trovata il caro Zzed

(Xarrigo ho curiosato sul tuo sito e...ho scoperto che sei radioamatore
Un'altra passione in comune
Io sono SWL I06040MI Smile
73 iw3aad )
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
#5
Penso che il passaggio più logico da arduino a raspberry sia via seriale, unico neo dovrò mettere un'adattatore di livelli perchè arduino 5V e raspberry 3,3 ma non è un problema.
Per il DB allora attendo Zzed e poi vediamo, intanto cerco di finire la parte Hw e montare il tutto assieme perchè ora è tutto sparpagliato ed è scomodo per le prove.
Gabriele peccato che tu sia così lontano! io ho cominciato tanti anni fa come I1-14406 !!! una vita!!
Comunque ancora adesso mi diletto come SWL più che OM e sto facendo qualcosa con sistemi digitali e a breve con un piccolo rx DRM
saluti e 73 Arrigo
Risposta
#6
Ho provato il datalogger atapico di Zzed

Ottimo...Perfetto Heart  Rolleyes

Scopiazzando di qui e di là ho creato un piccolo script in python:

Codice:
#!/usr/bin/env python
__author__ = 'GabrieleToselli'
# Programma per loggare la temperatura del computer (o RaspberryPi) su un canale thingspeak
# 1- Iscriviti a thingspeak.com , crea un canale
# Copia la KEY nello spazio sotto "key = xx".
# Avvia lo script con" sudo python temp.py "


import httplib, urllib
import time
sleep = 1 # Intervallo di invio dati (in secondi)
key = '0917YXT2BV6S6P3F'  # Campo KEY (inserire la propria)


def thermometer():
   while True:
       #Calcola la temperatura in gradi centigradi
       temp = int(open('/sys/class/thermal/thermal_zone0/temp').read()) /1e3
       params = urllib.urlencode({'field1': temp, 'key':key })
       headers = {"Content-typZZe": "application/x-www-form-urlencoded","Accept": "text/plain"}
       conn = httplib.HTTPConnection("api.thingspeak.com:80")
       try:
           conn.request("POST", "/update", params, headers)
           response = conn.getresponse()
           print temp
           print response.status, response.reason
           data = response.read()
           conn.close()
       except:
           print "connection failed"
       break

if __name__ == "__main__":
       while True:
               thermometer()
               time.sleep(sleep)

in poche parole ogni secondo rileva la temperatura cpu e mette i dati in un grafico:




La variabile sleep definisce l'intervallo.

Ovviamente nel tuo caso i dati verranno importati da arduino e poi inviati a thingspeak


Dimenticavo
sto anche cercando un modo per fare un file cvs con le 2 var (data e tempo)
per poi (come diceva zzed) farlo importare da thingspeak appena la connessione torna disponibile


non sapendo praticamente nulla di python è un pò un casino ma....mica ci corre dietro nessunoo Smile Smile

Peccato la lontananza si....con tutte queste passioni in comune Wink

73s + 51 arrigo
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
#7
Ciao Gabriele
interessante e a prima vista semplice, ma se hai più canali usi sempre una sola API o ogni canale è a sè?
Sarebbe interessante su uno stesso diagramma avere le tre temperature e i tre valori di umidità; con la base dei tempi unica si possono fare delle osservazioni interessanti.
Sto analizzando il connettore GPIO, forse si riesce fare qualcosa di carino anche solo con raspberry.
In setimana tempo e impegni permettendo metterò su carta qualcosa.
Intanto ho fatto un elenco di quello penso sia utile lasciando liberi i pin per il colloquio SPI (collegamenti rete?) e ti allego il foglio
ciao, Arrigo
Risposta
#8
Penso si possa mettere diverse var nel grafico.....stasera sperimento!
Buona giornata!
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
#9
proseguendo gli eseprimenti mi sono accorto che il dato compare sul grafico con circa 15 secondi di ritardo....nel tuo caso non farà ne caldo ne freddo ma in altri utilizzi....vabbhe poco male:
Codice:
gab@gab:~/Documenti/Script/temperature$ python temp22.py
59.0
dato inviato!
54.0
dato inviato!
58.0
dato inviato!
56.0
dato inviato!
52.0
dato inviato!
58.0
dato inviato!
il risultato:

   


Ho provato a mettere 2 invii in uno script ma ha poco senso visto che (a quanto ne so) in un grafico ci possono essere  solo 2 variabili (temp e data/ora)

Qui si puo vedere una pagina con i 2 iframe dei 2 canali...
Il mio software non ha mai bugs. Include soltanto funzionalità casuali.


Risposta
#10
Ciao,
risponsta rapida perchè ho un master che mi fa diventar matto ma io ho la testa dura ahahaha
Per il ritardo di alcuni secondi nella mia applicazione è ininfluente, ma anche per termostati ecc. e a freddo non ricordo chi deve avere risposta immediata ( su grafico non in attuazione)
Per il numero delle variabili sullo stesso grafico non sono daccordo: pensa di dover  confrontare 3 temperature (il mio caso) che con tre colori diversi di avrebbe un ottimo risultato.
Appena finito 'sto tormento di lavoro ci risentiamo. ciao
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect