Sensori ds18b20 errore lettura

Discussioni relative all'uso di sensori vari (temperatura, umidità, ....)
America
Messaggi: 185
Iscritto il: 26/08/2018, 13:15

Re: Sensori ds18b20 errore lettura

Messaggioda America » 07/10/2019, 13:22

Hai ragione. Avevo letto male. Grazie per la precisazione.

Inviato dal mio Redmi 4X utilizzando Tapatalk


America
Messaggi: 185
Iscritto il: 26/08/2018, 13:15

Re: Sensori ds18b20 errore lettura

Messaggioda America » 26/10/2019, 12:18

Questa mattina finalmente ho avuto modo di fare le modifiche suggerite da Flane.
Ho messo una resistenza da 2kohm e per ora sembra tutto funzionare a dovere.

Ho solo un problema con un termometro che non riesco a fare funzionare in nessuna maniera. Ho provato a sostituirlo con uno che mi avanzava e niente. In pratica da putty li vedo correttamente e se li interrogo entrambi mi restituiscono il valore corretto.
Da metern invece nulla da fare. Ho ricontrollato tutti i passaggi e mi sembrano essere corretti. Anche cambiando seriale con l'altro termometro il problema rimane.

Il meterID in questione è il 15

Immagine

Immagine

reqsdm:

Codice: Seleziona tutto

#!/usr/bin/php
<?php
// This script will output a meterN compatible format for the main or live command
// You'll need to setup correct permission
// chmod +x reqsdm.php
// then
// ln -s /var/www/comapps/reqsdm.php /usr/local/bin/reqsdm
// Request command with 'reqsdm tensione' or 'reqsdm corrente' or ......

if (isset($_SERVER['REMOTE_ADDR'])) {
    die('Direct access not permitted');
}
if (!isset($argv[1])) {
   die("Abording: no valid argument given.\n");
      } elseif ($argv[1] == 'tensione') {
         $outstr =  exec('cat /dev/shm/metern2.txt | egrep "^2_1\(" | grep "*V)"');
      } elseif ($argv[1] == 'corrente') {
         $outstr =  exec('cat /dev/shm/metern2.txt | egrep "^2_2\(" | grep "*A)"');
      } elseif ($argv[1] == 'freq') {
         $outstr =  exec('cat /dev/shm/metern2.txt | egrep "^2_3\(" | grep "*Hz)"');
      } elseif ($argv[1] == 'cospi') {
         $outstr =  exec('cat /dev/shm/metern2.txt | egrep "^2_4\(" | grep "*F)"');
      } elseif ($argv[1] == 'cpu-temp') {
         $outstr =  exec('cat /sys/class/thermal/thermal_zone0/temp');
         $outstr = $outstr/1000;
         $outstr = "cpu($outstr*°C)";
                } elseif ($argv[1] == 'condizionatore-live') {
                        $outstr =  exec('cat /dev/shm/metern6.txt | egrep "^6\(" | grep "*W)"');
                } elseif ($argv[1] == 'condizionatore-main') {
                        $outstr =  exec('cat /dev/shm/metern6.txt | egrep "^6\(" | grep "*Wh)"');
                } elseif ($argv[1] == 'pdc-live') {
                        $outstr =  exec('cat /dev/shm/metern7.txt | egrep "^7\(" | grep "*W)"');
                } elseif ($argv[1] == 'pdc-main') {
                        $outstr =  exec('cat /dev/shm/metern7.txt | egrep "^7\(" | grep "*Wh)"');
                } elseif ($argv[1] == 'tempDS1') {
                   $outstr =  exec('cat /dev/shm/metern12.txt | egrep "^12\(" | grep "*C)"');
           } elseif ($argv[1] == 'tempDS2') {
                   $outstr =  exec('cat /dev/shm/metern13.txt | egrep "^13\(" | grep "*C)"');
           } elseif ($argv[1] == 'tempDS3') {
                   $outstr =  exec('cat /dev/shm/metern14.txt | egrep "^14\(" | grep "*C)"');        
                } elseif ($argv[1] == 'tempDS4') {
                   $outstr =  exec('cat /dev/shm/metern16.txt | egrep "^15\(" | grep "*C)"');
           } elseif ($argv[1] == 'tempDS5') {
                   $outstr =  exec('cat /dev/shm/metern16.txt | egrep "^16\(" | grep "*C)"');
           } elseif ($argv[1] == 'tempDS6') {
                   $outstr =  exec('cat /dev/shm/metern17.txt | egrep "^17\(" | grep "*C)"');
           } elseif ($argv[1] == 'tempDS7') {
                   $outstr =  exec('cat /dev/shm/metern18.txt | egrep "^18\(" | grep "*C)"');
           } elseif ($argv[1] == 'tempDS8') {
                   $outstr =  exec('cat /dev/shm/metern19.txt | egrep "^19\(" | grep "*C)"');
      // and so on ....
   } else {
    die("Usage: reqsdm (tensione|corrente|freq|cospi|cpu-temp)\n");
   }
echo "$outstr";
?>


/etc/cron.d/ds18b20:

Codice: Seleziona tutto

    #!/bin/bash
     
    SHELL=/bin/bash
    PATH=/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=""
    # Minute  Hour    Day of Month   Month              Day of Week        User   Command
    # (0-59)  (0-23)  (1-31)         (1-12 or Jan-Dec)  (0-6 or Sun-Sat)
    4,9,14,19,24,29,34,39,44,49,54,59  * * * * root /usr/local/bin/ds18b20 02119177aef0 12 > /dev/null 2>&1
    4,9,14,19,24,29,34,39,44,49,54,59  * * * * root /usr/local/bin/ds18b20 02149177741a 13 > /dev/null 2>&1
    4,9,14,19,24,29,34,39,44,49,54,59  * * * * root /usr/local/bin/ds18b20 021491776b0e 14 > /dev/null 2>&1
    4,9,14,19,24,29,34,39,44,49,54,59  * * * * root /usr/local/bin/ds18b20 02119177c7b0 15 > /dev/null 2>&1
    4,9,14,19,24,29,34,39,44,49,54,59  * * * * root /usr/local/bin/ds18b20 020b91772d4c 16 > /dev/null 2>&1
    4,9,14,19,24,29,34,39,44,49,54,59  * * * * root /usr/local/bin/ds18b20 021891775c73 17 > /dev/null 2>&1
    4,9,14,19,24,29,34,39,44,49,54,59  * * * * root /usr/local/bin/ds18b20 02119177b5bc 18 > /dev/null 2>&1
    4,9,14,19,24,29,34,39,44,49,54,59  * * * * root /usr/local/bin/ds18b20 02119177aaa1 19 > /dev/null 2>&1




Qualche suggerimento?

America
Messaggi: 185
Iscritto il: 26/08/2018, 13:15

Re: Sensori ds18b20 errore lettura

Messaggioda America » 27/10/2019, 10:23

Ho fatto un casino. Questa mattina volevo provare ad aggirare il problema creando due nuove righe sotto ai sensori esistenti con dei nuovi ID ma devo aver fatto qualche casino....

Ora non funziona nessun sensore temperatura. Appena collegati da putty si vedevano. Poi una volta modificati i file con i nuovi ID non ha funzionato piu niente. Ora nemmeno da putty vedo più i sensori....

Ecco quello che dice putty:


Immagine

Qualche suggerimento?

Aggiungo contenuto del file /etc/systemd/system/ds18b20.service

Codice: Seleziona tutto

[Unit]
Description=DS18B20 sensor service
Requires=local-fs.target
Requires=network-online.target
After=multi-user.target
 
[Service]
Type=oneshot
ExecStart=/usr/local/bin/ds18b20 02119177aef0 12
ExecStart=/usr/local/bin/ds18b20 02149177741a 13
ExecStart=/usr/local/bin/ds18b20 021491776b0e 14
ExecStart=/usr/local/bin/ds18b20 02119177c7b0 15
ExecStart=/usr/local/bin/ds18b20 020b91772d4c 16
ExecStart=/usr/local/bin/ds18b20 021891775c73 17
ExecStart=/usr/local/bin/ds18b20 02119177b5bc 18
ExecStart=/usr/local/bin/ds18b20 02119177aaa1 19

[Install]
WantedBy=multi-user.target


Ho anche copia/incollato i file postati ieri che erano funzionanti ma niente...

carest
Messaggi: 62
Iscritto il: 08/11/2018, 22:09

Re: Sensori ds18b20 errore lettura

Messaggioda carest » 27/10/2019, 13:31

dal messaggio che ti dà putty, sembrerebbe che il sensore sia scollegato. Prova a verificare il collegamento elettrico.

America
Messaggi: 185
Iscritto il: 26/08/2018, 13:15

Re: Sensori ds18b20 errore lettura

Messaggioda America » 27/10/2019, 14:38

Il collegamento elettrico è ok, appena ricontrollato.
Il sensori li ho collegati e li vedevo tutti da putty. Poi ho fatto le modifiche ai vari file come da guida. Da li sono cominciati i problemi.


America
Messaggi: 185
Iscritto il: 26/08/2018, 13:15

Re: Sensori ds18b20 errore lettura

Messaggioda America » 27/10/2019, 15:28

Devo ripartire come una installazione da zero o da un determinato punto della guida?
Chiedo per non fare ulteriori casini visto che per oggi ne ho fatti che basta.....

Grazie.

America
Messaggi: 185
Iscritto il: 26/08/2018, 13:15

Re: Sensori ds18b20 errore lettura

Messaggioda America » 30/10/2019, 6:08

Ho riprovato a risistemare i vari scripts come suggerito da Flane.
Ho rifatto tutti i passaggi della guida tranne per questo (non ero sicuro che fosse buona cosa reinstallare il software già installato):


Immagine

Ho riavviato il tutto ed il problema rimane. Ho testato lo stato del servizio come consigliato in guida con questo comando

Codice: Seleziona tutto

sudo systemctl status ds18b20.service


Il risultato è il seguente:

Codice: Seleziona tutto

● ds18b20.service - DS18B20 sensor service
   Loaded: loaded (/etc/systemd/system/ds18b20.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2019-10-30 05:51:09 CET; 2min 49s ago
  Process: 696 ExecStart=/usr/local/bin/ds18b20 02119177aef0 12 (code=exited, status=0/SUCCESS)
 Main PID: 696 (code=exited, status=0/SUCCESS)

ott 30 05:51:09 FTV5kw systemd[1]: Starting DS18B20 sensor service...
ott 30 05:51:09 FTV5kw ds18b20[696]: Traceback (most recent call last):
ott 30 05:51:09 FTV5kw ds18b20[696]:   File "/usr/local/bin/ds18b20.py", line 5, in <module>
ott 30 05:51:09 FTV5kw ds18b20[696]:     sensor = W1ThermSensor(W1ThermSensor.THERM_SENSOR_DS18B20, address)
ott 30 05:51:09 FTV5kw ds18b20[696]:   File "build/bdist.linux-armv7l/egg/w1thermsensor/core.py", line 160, in __init__
ott 30 05:51:09 FTV5kw ds18b20[696]: w1thermsensor.errors.NoSensorFoundError: No DS18B20 temperature sensor with id '02119177aef0' found
ott 30 05:51:09 FTV5kw systemd[1]: Started DS18B20 sensor service.
~


La prima parte del risultato mi sembra il linea quello scritto in guida, per quel poco che ne capisco.
La penultima riga mi fa pensare possa essere un problema di collegamento come suggerito da @Carest
L'unica cosa e che si sia bruciata la resistenza. Dovrei controllare.

Qualche altro suggerimento?

Grazie.


America
Messaggi: 185
Iscritto il: 26/08/2018, 13:15

Re: Sensori ds18b20 errore lettura

Messaggioda America » 30/10/2019, 20:33

In pratica non vedo più nessun sensore ne da metern ne da putty. Domenica mattina ho messo le mani dove non dovevo ed ho combinato qualcosa.
Ho messo i vari screen shot e contenuto dei vari file nei post precedenti.

Oggi mi è venuto in mente che possa essere andata la resistenza da 2kohm che mi avevi consigliato di mettere qualche tempo fa. I collegamenti non li ho toccati quindi per escludo problemi di collegamenti. In ogni caso venerdi ricontrollo tutto il discorso collegamenti.

Che ne dici?


Torna a “Meters hardware”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite