allora, sono andato un po' avanti ma non sono ancora giunto all'obiettivo.
Ho capito diverse cosette in più grazie all'aiuto dell'autore:
Nella maggior parte dei casi quando si utilizza un sensore c'è uno script di Python per gestirlo e fornire l'output del sensore.
quello che non avevo capito è che il comando:
import dweepy
dweepy.dweet_for('NomeCasualeSceltoDaTe', {'NomeSensore': 'ValoreSensore'})
deve essere inserito nello script di cui sopra.
Io sto provando con il sensore temperatura DS18B20 e ho modificato il relativo file .py
poi ho seguito le istruzioni dell'autore
Entra in Freeboard , crea una nuova Dashboard col nome che preferisci
Sotto "DataSource" premi ADD -> Dweet.io -> Name: QuellocheVuoi -> ThingName: ilNomeCasualeSceltoPrima -> Save
Premi "ADD PANE" -> + -> Scegli cio che ti serve (es. TEXT) -> Datasource: scegli il valore che ti serve -> Save
il risultato è il seguente
https://freeboard.io/board/NoToty
Però in pratica se a "Valore sensore" sostituisco un numero allora viene riportato correttamente su freeboard, se inserisco quella che secondo me è la variabile, non visualizzo il valore. Probabilmente non ho capito nello script cosa sostituire a "Valore Sensore"
riporto di seguito lo script e i miei tentativi.
----------Script--------------
Codice:
import os
import glob
import time
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28-0315620274ff')[0]
device_file = device_folder + '/w1_slave'
def read_temp_raw():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
return lines
def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
return temp_c
import dweepy
dweepy.dweet_for('TemperaturaSuolo', {'DS18B20': '20.85'})
#il problema: non ho capito la variabile da inserire al posto di 20.85
while True:
print(read_temp())
---------Fine Script---------
ma se inserisco un valore numerico al posto della variabile su freeboard lo vedo, altrimenti no.
Ho provato ad inserire varie cose al posto di 20.85 :
1) temp_c
2) read_temp()
3) print(read_temp())
4) float(temp_string) / 1000.0
5) temp_c = float(temp_string) / 1000.0
ognuno di questi di questi tentativi l'ho fatto con $ davanti o meno.
Mi sapreste dare una mano?
Grazie in anticipo
Buona serata
LaPa