Pin 13 (GPIO27) et Mise a jour  [RESOLU]

Pour les questions spécifiques sur le Raspberry Pi

Modérateur : Francois

Laurent53
Messages : 21
Enregistré le : mer. 30 sept. 2020 10:43

Pin 13 (GPIO27) et Mise a jour  [RESOLU]

Message par Laurent53 » mer. 30 sept. 2020 10:45

Bonjour et merci de m’accepter sur ce forum.

Sur mon Raspberry Pi Type B j’ai une sonde DT22 en Pin 13 (GPIO27) et je récupère tous les 5 minutes la température et l’hygrométrie extérieure. Ça fonctionne sans problème depuis 2014.

j'ai effectué une mise a jour de ma carte SD .Et depuis sa ne fonctionne plus ! Est ce du a cela ?

root@PiHome:/home/www/Graph# python3 readDHT22T.py
Traceback (most recent call last):
File "readDHT22T.py", line 50, in <module>
humidity,temperature = get_outputs("22",pin)
File "readDHT22T.py", line 38, in get_outputs
OK = search("Temp", outputs_raw) and search("Hum", outputs_raw)
File "/usr/lib/python3.2/re.py", line 161, in search
return _compile(pattern, flags).search(string)
TypeError: can't use a string pattern on a bytes-like object

Avez vous une idée Merci .

Gyom_86
Messages : 8
Enregistré le : ven. 28 août 2020 09:03

Re: Pin 13 (GPIO27) et Mise a jour

Message par Gyom_86 » mer. 30 sept. 2020 13:45

Bonjour,

qu'entends-tu par mise à jour de la carte SD?

As-tu changé de version de Rapsbian ou Python?


Guillaume.

Laurent53
Messages : 21
Enregistré le : mer. 30 sept. 2020 10:43

Re: Pin 13 (GPIO27) et Mise a jour

Message par Laurent53 » mer. 30 sept. 2020 13:57

Mise a jour en faisant
sudo apt-get update
sudo apt-get dist-upgrade

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Pin 13 (GPIO27) et Mise a jour

Message par Bud Spencer » mer. 30 sept. 2020 15:23

problème de type

OK = search("Temp", outputs_raw) and search("Hum", outputs_raw)

un truc du genre est plus coherant :

OK = search("Temp", outputs_raw.decode('utf-8')) and search("Hum", outputs_raw.decode('utf-8'))
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Laurent53
Messages : 21
Enregistré le : mer. 30 sept. 2020 10:43

Re: Pin 13 (GPIO27) et Mise a jour

Message par Laurent53 » mer. 30 sept. 2020 16:09

Merci Bud Spencer , je ne comprend pas pourquoi il faut retoucher le code car sa fonctionnais bien avant la mise a jour ,mais j'ai essayé et il y a du mieux

Sa fonctionne 1 fois sur 2 !!

root@PiHome:/home/www/Graph# python readDHT22T.py
DHT22:19.3Celsius, 70.0%
root@PiHome:/home/www/Graph# python readDHT22T.py
DHT22:---Celsius, ---%
root@PiHome:/home/www/Graph#


#Fonction pour lecture DHT22
def get_outputs(typ,pin):
i=0
Hmax=100
for test_output in range(5):
i=i+1
outputs_raw = subprocess.check_output(["/root/Adafruit_DHT", typ, pin])
if len(outputs_raw)==44:
return None,None
OK = search("Temp", outputs_raw.decode('utf-8')) and search("Hum", outputs_raw.decode('utf-8'))
if (OK):
result_humid = search("Hum =\s+([0-9.]+)", outputs_raw)
humidity = result_humid.group(1)
if float(humidity)<=Hmax:
result_temp = search("Temp =\s+([0-9.]+|-[0-9]+)", outputs_raw)
temperature = result_temp.group(1)
if float(temperature)!=-3276:
return humidity,temperature
return None,None

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Pin 13 (GPIO27) et Mise a jour

Message par Bud Spencer » mer. 30 sept. 2020 19:39

Laurent53 a écrit :
mer. 30 sept. 2020 16:09
Merci Bud Spencer , je ne comprend pas pourquoi il faut retoucher le code car sa fonctionnais bien avant la mise a jour
Ça c’est un problème récurrent avec les mise à jours et python. Généralement ça se corrige bien (encore que, avec la fin du support python2 et les milliers de références plus maintenues, ca pleure dans pas mal d'entreprises ...), mais pour ça il faut lire et les docs pour scruter les points de ruptures. Pour les sonde DHTx, c’est pareil. Le protocole utilisé par la plupart des lib est un ‘pseudo’ one wire soft et les erreurs sont plus fréquentes que les bonnes lectures. Perso, je m’étais amusé un peu avec ce type de sonde pour faire quelques tutos ici (et ailleurs), mais elles ont vite rejoint les fonds de tiroir (et en plus elles sont d’une imprécision remarquable …)
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Gyom_86
Messages : 8
Enregistré le : ven. 28 août 2020 09:03

Re: Pin 13 (GPIO27) et Mise a jour

Message par Gyom_86 » mer. 30 sept. 2020 20:54

salut,

Tu devrais peut-être aussi appliquer la modif suggérée par Bud sur les deux lignes avec tes expressions régulières qui récupèrent tes valeurs:

result_humid = search("Hum =\s+([0-9.]+)", outputs_raw.decode('utf-8'))

Laurent53
Messages : 21
Enregistré le : mer. 30 sept. 2020 10:43

Re: Pin 13 (GPIO27) et Mise a jour

Message par Laurent53 » mer. 30 sept. 2020 21:38

Merci pour votre aide je viens de découvrir que mon probleme viens de la librairie adafruit ! Je me suis un peu mélanger les pinceaux avec mes Raspberry !
J'ai bien fait une mise a jour sur mon Raspberry B , ensuite j'ai sauvegardé la carte SD et je l'ai recopié sur une micro SD que j'ai mise dans un Raspberry 2 , Après versification sa fonctionne toujours sur mon Raspberry B, mais pas sur mon Raspberry 2 .CA ne viens pas du tout de la mise a jour, mais de la librairie adafruit qui est différente pour les Raspberry 2 et 3 !

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Pin 13 (GPIO27) et Mise a jour

Message par Bud Spencer » jeu. 1 oct. 2020 15:33

C’est bien du fait d'une mise à jour python (et forcement des libs qui ont évolué avec). Depuis je ne sais plus quel version (2.x...) , les stream de bytes doivent être converti explicitement en précisant l’encodage pour de très nombreuse fonctions et c’est valable aussi dans le sens inverse (exemple)
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Pin 13 (GPIO27) et Mise a jour

Message par Bud Spencer » jeu. 1 oct. 2020 15:36

Gyom_86 a écrit :
mer. 30 sept. 2020 20:54
salut,

Tu devrais peut-être aussi appliquer la modif suggérée par Bud sur les deux lignes avec tes expressions régulières qui récupèrent tes valeurs:

result_humid = search("Hum =\s+([0-9.]+)", outputs_raw.decode('utf-8'))
ou plus simplement en une seule fois en le faisant dès réception des données la ligne

outputs_raw = subprocess.check_output(["/root/Adafruit_DHT", typ, pin])
outputs_raw = subprocess.check_output(["/root/Adafruit_DHT", typ, pin]).decode('utf-8')
ou un truc dans l'genre
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « Raspberry Pi (tout modèles) »