DHT22
DHT22
Ho installato uno di questi sensori seguendo la guida 2.20. Ho trovato un paio di errori da correggere e forse un terzo.
A pagina 54 allo script python sembra manchi l'ultima riga in grassetto (almeno confrontandolo con quelli nella cartella examples):
# Note that sometimes you won't get a reading and
# the results will be null (because Linux can't
# guarantee the timing of calls to read the sensor).
# If this happens try again!
if humidity is not None and temperature is not None:
print '{0}_1({1:0.1f}*C)'.format(id, temperature)
print '{0}_2({1:0.1f}*%)'.format(id, humidity)
else:
print 'ERROR'
sys.exit(1)
Alla fine di pagina 56 invece nell'editor del file /etc/rc.local mi pare manchi un & come di seguito in grassetto:
sudo /usr/bin/curl http://localhost/123solar/scripts/boot123s.php &
sudo sleep 6
sudo /usr/local/bin/dht22.sh 22 4 6 &
sudo /usr/bin/curl http://localhost/metern/scripts/bootmn.php &
exit 0
Infine il più subdolo di tutti che mi ha fatto impazzire nel capire cosa non funzionasse. All'inizio di pagina 55 nell'editor del file /usr/local/bin/dht22.sh i simboli "meno" prima del parametro "d" sono sbagliati. Non so come spiegarmi, ma quel simbolo che assomiglia ad un meno MA non è un meno! Infatti è leggermente diverso da quello prima della "f" nelle stesse righe.
#!/bin/sh
DATA="$(ADHT_metern.py $1 $2 $3)"
#echo $DATA
if [ x"$DATA" != x ] && [ "$DATA" != "ERROR" ]; then
echo $DATA | cut -f 1 –d\ > /run/shm/metern$3.txt
echo $DATA | cut -f 2 –d\ >> /run/shm/metern$3.txt
fi
A pagina 54 allo script python sembra manchi l'ultima riga in grassetto (almeno confrontandolo con quelli nella cartella examples):
# Note that sometimes you won't get a reading and
# the results will be null (because Linux can't
# guarantee the timing of calls to read the sensor).
# If this happens try again!
if humidity is not None and temperature is not None:
print '{0}_1({1:0.1f}*C)'.format(id, temperature)
print '{0}_2({1:0.1f}*%)'.format(id, humidity)
else:
print 'ERROR'
sys.exit(1)
Alla fine di pagina 56 invece nell'editor del file /etc/rc.local mi pare manchi un & come di seguito in grassetto:
sudo /usr/bin/curl http://localhost/123solar/scripts/boot123s.php &
sudo sleep 6
sudo /usr/local/bin/dht22.sh 22 4 6 &
sudo /usr/bin/curl http://localhost/metern/scripts/bootmn.php &
exit 0
Infine il più subdolo di tutti che mi ha fatto impazzire nel capire cosa non funzionasse. All'inizio di pagina 55 nell'editor del file /usr/local/bin/dht22.sh i simboli "meno" prima del parametro "d" sono sbagliati. Non so come spiegarmi, ma quel simbolo che assomiglia ad un meno MA non è un meno! Infatti è leggermente diverso da quello prima della "f" nelle stesse righe.
#!/bin/sh
DATA="$(ADHT_metern.py $1 $2 $3)"
#echo $DATA
if [ x"$DATA" != x ] && [ "$DATA" != "ERROR" ]; then
echo $DATA | cut -f 1 –d\ > /run/shm/metern$3.txt
echo $DATA | cut -f 2 –d\ >> /run/shm/metern$3.txt
fi
Re: DHT22
Grazie per la segnalazione.
Mi deve essere sfuggito qualcosa nel copia incolla
Per il trattino, credo sia un problema di diversa formattazione dei caratteri speciali.
Vedo di inserire le correzioni nella nuova guida che stò cercando di pubblicare sulla wiki .... tempo permettendo ...
Mi deve essere sfuggito qualcosa nel copia incolla
Per il trattino, credo sia un problema di diversa formattazione dei caratteri speciali.
Vedo di inserire le correzioni nella nuova guida che stò cercando di pubblicare sulla wiki .... tempo permettendo ...
Re: DHT22
Grazie mille amorospo! questo thread ieri sera è stata una manna dal cielo per far funzionare il sensore.... per semplificare ancor di più le cose riporto di seguito lo script python al completo che nella guida è diviso in due e durante il copia ed incolla si possono avere problemi di spaziature e poi alla riga 31
l'otto del metern id è a capo mentre per funzionare deve stare sulla stessa riga.
print 'example: sudo ./Adafruit_DHT.py 2302 4 8 - Read from an AM2302 connected to GPIO #4 and metern id 8'
l'otto del metern id è a capo mentre per funzionare deve stare sulla stessa riga.
Codice: Seleziona tutto
#!/usr/bin/python
# Copyright (c) 2014 Adafruit Industries
# Author: Tony DiCola
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
import sys
import Adafruit_DHT
# Parse command line parameters.
sensor_args = { '11': Adafruit_DHT.DHT11,
'22': Adafruit_DHT.DHT22,
'2302': Adafruit_DHT.AM2302 }
if len(sys.argv) == 4 and sys.argv[1] in sensor_args:
sensor = sensor_args[sys.argv[1]]
pin = sys.argv[2]
id = sys.argv[3]
else:
print 'usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin# metern_id'
print 'example: sudo ./Adafruit_DHT.py 2302 4 8 - Read from an AM2302 connected to GPIO #4 and metern id 8'
sys.exit(1)
# Try to grab a sensor reading. Use the read_retry method which will retry up
# to 15 times to get a sensor reading (waiting 2 seconds between each retry).
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
# Note that sometimes you won't get a reading and
# the results will be null (because Linux can't
# guarantee the timing of calls to read the sensor).
# If this happens try again!
if humidity is not None and temperature is not None:
print '{0}_1({1:0.1f}*C)'.format(id, temperature)
print '{0}_2({1:0.1f}*%)'.format(id, humidity)
else:
print 'ERROR'
sys.exit(1)
-
- Messaggi: 67
- Iscritto il: 21/01/2019, 21:54
-
- Messaggi: 67
- Iscritto il: 21/01/2019, 21:54
Re: DHT22
Nelle ultime versioni di Metern (dalla 0.8 credo) non si può più mettere i comandi cat direttamente in Metern.
Si deve passare per uno script esterno come reqsdm.php.
Si deve passare per uno script esterno come reqsdm.php.
-
- Messaggi: 67
- Iscritto il: 21/01/2019, 21:54
Re: DHT22
Praticamente come posso fare? Grazie della disponibilità
Re: DHT22
Editi il file /var/www/comapps/reqsdm.php ed aggiungi le seguenti righe prima della riga con } else {
e poi come comandi di metern sia in live che in main inserisci:
per la temperatura
per l'umidità
PS: ma se il misuratore su MeterN è il 3 perchè tu gli assegni il numero 6
Nel mio esempio ho messo il 6 perchè la configurazione base prevede di avere già occupati i primi 5 misuratori, ma nel tuo caso se hai il 3 assegnali il 3 nel comando che richiama lo script in phyton
e poi il comando sarà
Codice: Seleziona tutto
} elseif ($argv[1] == 'temp') {
$outstr = exec('cat /run/shm/metern6.txt | grep C');
} elseif ($argv[1] == 'umi') {
$outstr = exec('cat /run/shm/metern6.txt | grep %');
e poi come comandi di metern sia in live che in main inserisci:
per la temperatura
Codice: Seleziona tutto
reqsdm temp
per l'umidità
Codice: Seleziona tutto
reqsdm umi
PS: ma se il misuratore su MeterN è il 3 perchè tu gli assegni il numero 6
Nel mio esempio ho messo il 6 perchè la configurazione base prevede di avere già occupati i primi 5 misuratori, ma nel tuo caso se hai il 3 assegnali il 3 nel comando che richiama lo script in phyton
Codice: Seleziona tutto
sudo ADHT_metern.py 22 4 3
e poi il comando sarà
Codice: Seleziona tutto
cat /run/shm/metern3.txt | grep C
-
- Messaggi: 67
- Iscritto il: 21/01/2019, 21:54
Re: DHT22
sto provando ad editare il file con /var/www/comapps/reqsdm.php
ma mi da abordig no valid argumnt givin
cosa sbaglio?
ma mi da abordig no valid argumnt givin
cosa sbaglio?
-
- Messaggi: 67
- Iscritto il: 21/01/2019, 21:54
Chi c’è in linea
Visitano il forum: Nessuno e 2 ospiti