Sensore pressione BMP180 - errore di installazione

Discussioni relative all'uso di sensori vari (temperatura, umidità, ....)
Avatar utente
amorospo
Messaggi: 61
Iscritto il: 20/01/2016, 15:44

Sensore pressione BMP180 - errore di installazione

Messaggioda amorospo » 10/02/2016, 22:50

Man mano che i cinesi mi spediscono i sensori che ho ordinato a Natale implemento il mio datalogger come da guide varie. Adesso è il momento del sensore BMP180.
Ho seguito la guida di flane ver 2.20, ho trovato un paio di incongruenze che ho superato, ma ora sono fermo e non riesco a leggere il sensore, e neanche google mi è di aiuto :(

Primo segnalo le due incongruenze che ho trovato:

A pag. 68 si legge di eseguire questa serie di comandi:
sudo –s
cd /home/pi
apt-get update
apt-get install git build-essential python-dev python-smbus
mkdir /BMP180Code
cd BMP180Code
git clone https://github.com/adafruit/Adafruit_Python_BMP.git
cd Adafruit_Python_BMP
python setup.py install

penso che nella riga in grassetto NON vada la / altrimenti la cartella viene creata nel root principale e non sotto home/pi.

sempre a pag.68 poco più sotto si editava il file pa.py:

#!/usr/bin/python
ID = sys.argv[1]
import Adafruit_BMP.BMP085 as BMP085 # Imports the BMP library
# Create an 'object' containing the BMP180 data
sensor = BMP085.BMP085()
print '7_1({0:0.2f}*C)'.format(sensor.read_temperature()) # Temperature in Celcius
print '7_2({0:0.2f}*Pa)'.format(sensor.read_pressure()*1/100.00) # The local pressure
print '7_3({0:0.2f}*m)'.format(sensor.read_altitude()) # The current altitude
print '7_4({0:0.2f}*Pm)'.format(sensor.read_sealevel_pressure()*1/100.00) # The sea-level pressure

la riga in grassetto ho dovuto toglierla (confrontando il file con quello sotto la cartella /home/pi/BMP180Code/Adafruit_Python_BMP/examples/simpletest.py) perchè altrimenti mi dava sempre questo errore:

Traceback (most recent call last):
File "/var/www/MyScripts/pa.py", line 2, in <module>
ID = sys.argv[1]
NameError: name 'sys' is not defined


Fatti questi due cambiamenti arrivo a questo nuovo errore, sia eseguendo il simpletest.py che pa.py:

Traceback (most recent call last):
File "/var/www/MyScripts/pa.py", line 4, in <module>
sensor = BMP085.BMP085()
File "build/bdist.linux-armv7l/egg/Adafruit_BMP/BMP085.py", line 68, in __init__
File "build/bdist.linux-armv7l/egg/Adafruit_BMP/BMP085.py", line 71, in _load_calibration
File "build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py", line 195, in readS16BE
File "build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py", line 172, in readS16
File "build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py", line 159, in readU16
IOError: [Errno 5] Input/output error

e qui non riesco proprio ad arrivarci :(
Avete idea di cosa fare?


Avatar utente
amorospo
Messaggi: 61
Iscritto il: 20/01/2016, 15:44

Re: Sensore pressione BMP180 - errore di installazione

Messaggioda amorospo » 10/02/2016, 22:52

ah, non dovrebbe essere un problema di connessioni, perchè il comando sudo i2cdetect -y 1 restituisce questa lettura corretta:
root@raspberrypi:/var/www/MyScripts# sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77

Avatar utente
amorospo
Messaggi: 61
Iscritto il: 20/01/2016, 15:44

Re: Sensore pressione BMP180 - errore di installazione

Messaggioda amorospo » 11/02/2016, 20:51

Indovinate....

... era un problema di collegamento!
Attaccato, staccato e riavviato una decina di volte e adesso funziona. :P


Avatar utente
amorospo
Messaggi: 61
Iscritto il: 20/01/2016, 15:44

Re: Sensore pressione BMP180 - errore di installazione

Messaggioda amorospo » 12/02/2016, 8:57

Piccola modifica da inserire nella guida: la pressione locale e al livello del mare NON è misurata in Pascal (Pa) MA in ettoPascal (hPa) che sono tra l'altro equivalenti ai millibar (mbar) di uso più comune.
Quindi nella configurazione dei metern occorre mettere come unità di misura sia nel live che nel logger o hPa o mbar.

Avatar utente
amorospo
Messaggi: 61
Iscritto il: 20/01/2016, 15:44

Re: Sensore pressione BMP180 - errore di installazione

Messaggioda amorospo » 12/02/2016, 22:36

Ho notato che il grafico che genera metern per la pressione espressa in hPa è abbastanza inutile, perchè dovendo gestire valori che oscillano normalmente fra 970 e 1035 crea un grafico con scala da 0 a 1500 con step ogni 500, il che si traduce in pratica in una linea continua orizzontale, perchè le variazioni nell'arco di un giorno sono davvero minime rispetto alla scala.
Per ovviare io ho trasformato la lettura da hPa a 10kPa (o dbar) cambiando nel file pa.py le righe interessate così:
prima:

Codice: Seleziona tutto

print '7_4({0:0.2f}*Pm)'.format(sensor.read_sealevel_pressure()*1/100.00) # The sea-level pressure in hPa

dopo:

Codice: Seleziona tutto

print '7_4({[b]0:0.4f[/b]}*Pm)'.format(sensor.read_sealevel_pressure()*1/[b]10000.00[/b]) # The sea-level pressure in 10kPa


Così facendo metern dovrà gestire valori che variano da 9,7 a 10,35 circa e quindi produrrò un grafico molto più interessante.

Ovviamente occorre anche cambiare nella configuraizone del metern di riferimento il numero di decimali e portarli da 2 a 4.


Torna a “Meters hardware”

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti