Erreur : OSError: [Errno 110] ETIMEDOUT (Capteur SCD30)
Bonjour,
Je programme actuellement un capteur SCD30 qui fonctionne, j'utilise un ESP8266 comme microcontrôleur j'ai les valeurs de CO2, humidité et de température mais au bout d'un certain temps il s'arrête et m'affiche l'erreur : OSError: [Errno 110] ETIMEDOUT
L'erreur est indiquée à la ligne 18.
Voici le code ci-dessous en Python :
Je n'arrive pas à résoudre ce problème.
Je vous remercie par avance pour votre aide.
Je programme actuellement un capteur SCD30 qui fonctionne, j'utilise un ESP8266 comme microcontrôleur j'ai les valeurs de CO2, humidité et de température mais au bout d'un certain temps il s'arrête et m'affiche l'erreur : OSError: [Errno 110] ETIMEDOUT
L'erreur est indiquée à la ligne 18.
Voici le code ci-dessous en Python :
from machine import Pin, I2C
import time
import struct
adressSCD30 = 0x61
GET_DATA_READY = 0x0202
i2c = I2C(sda=Pin(4), scl=Pin(5), freq=100000)
i2c.writeto(0x61,b'\x03\x00')
time.sleep(2) #attendre un peu que le capteur soit prêt
boucle=0
while boucle==0 :
i2c.writeto(0x61,b'\x02\x02')
var= i2c.readfrom(0x61,3)
dataready=list(var)
print(dataready)
ready = dataready[1]
time.sleep(1)
if ready == 1:
i2c.writeto(0x61,b'\x03\x00')
time.sleep(0.0001)
var= i2c.readfrom(0x61,18)
data=list(var)
#print(data)
for i in range (0,17) :
data[i]=int(data[i])
#print(data)
var=struct.pack('>B',data[0])
#print(var)
ready = 0
struct_co2=struct.pack('>BBBB',data[0],data[1],data[3],data[4])
float_co2=struct.unpack('>f', struct_co2)
struct_T=struct.pack('>BBBB', data[6], data[7], data[9], data[10])
float_T=struct.unpack('>f', struct_T)
struct_rH=struct.pack('>BBBB', data[12], data[13], data[15], data[16])
float_rH=struct.unpack('>f', struct_rH)
print(float_co2[0], "ppm")
print(float_T[0], "°C")
print(float_rH[0], "%")
time.sleep(2)
boucle=1
Je n'arrive pas à résoudre ce problème.
Je vous remercie par avance pour votre aide.
Configuration: Windows / Chrome 101.0.4951.64
A voir également:
- [Errno 110] etimedout
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
1 réponse
Bonjour,
Je vois deux explications possibles :
Bref, il y a quelque chose qui n'est pas clair... Il faudrait regarder à l'intérieur du code de ton package
Bonne chance
Je vois deux explications possibles :
- soit tu as mal initialisé l'objet
I2C
(paramètres du constructeur invalide, ligne 9) - soit le device avec lequel tu interagis est trop lent, et tu peux tenter d'augmenter le timeout. Ce qui est étonnant c'est que d'après cette documentation, l'objet
I2C
n'est pas supposé lever cette exception (et n'a donc pas de paramètretimeout
) contrairement à l'objetSoftI2C
.
Bref, il y a quelque chose qui n'est pas clair... Il faudrait regarder à l'intérieur du code de ton package
machinepour mieux comprendre ce qui se passe, car la documentation que j'ai donnée en lien n'est peut-êtr e pas à jour (et peut-être que du coup, l'objet
I2Cexpose un paramètre
timeout).
Bonne chance