Bonjour !
Je me présente rapidement avant d'entrer dans la supplication J'ai 27 ans, je suis infographiste auto-entrepreneur et co-gérant d'une société de gestion technique événementielle, donc autant dire que je suis plutôt du côté hardware de la force... Si je me débrouille bien en maitrise des logiciels, je n'ai en revanche aucune base en codage si ce n'est les logiques simples (if then while or ...etc) que j'utilise dans certains soft. Ah si, j'ai fait du HTML et CSS à la Fac
En mai dernier je me suis lancé dans l'inconnu avec un projet en tête, celui de réaliser une sonde météo avec affichage en temps réel et une liaison WiFi avec gestion graphique des températures et de l'humidité via ThingSpeak ! L'idée était de pouvoir afficher différentes infos sur l'écran, et de passer de l'une à l'autre en basculant le bouzin, à l'aide donc d'un tilt-switch (par exemple : info 1 = Temp + HR + Heure, info 2 = Graph dernières 24h, info 3 = prévisions météo 5j)
Le matos que j'ai acheté (en avril) :
- Rasp Pi Zero Wifi
- Sonde température DS18B20
- Sonde humidité (et température) DHT22
- Un breadboard pour vérifier mon montage
J'ai donc assemblé mes 2 sondes en fouinant sur internet pour savoir sur quel port brancher, téléchargé les librairies correspondantes (c'est l'équivalent de drivers pour Raspberry ?)
Ensuite j'ai trouvé différents bouts de codes que j'ai arrangé à ma sauce afin de récupérer les 2 données de température, d'en faire une moyenne (tmoyenne) et d'afficher cette valeur avec l'humidité relative :
Bon j'ai passé une journée entière à faire ça, mais j'étais super content car ça marchais impecc !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import sys import Adafruit_DHT import time tempfile = open("/sys/bus/w1/devices/28-031652910aff/w1_slave") thetext = tempfile.read() tempfile.close() tempdata = thetext.split("\n")[1].split(" ")[9] temperature2 = float(tempdata[2:]) temperature2 = temperature2 / 1000 sensor = Adafruit_DHT.AM2302 pin = 5 humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) tmoyenne = (temperature+temperature2*2)/3 print('Temperature Moyenne={0:0.1f}*C Humidite={1:0.1f}%'.format(tmoyenne, humidity))
Je suis ensuite passé à l'étape IoT...pareil, bout de code adapté :
Ça marchait ! (bien qu'au bout d'une heure ou deux, le script s'arrêtait sans que je comprenne pourquoi)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 import sys import Adafruit_DHT from time import sleep import urllib2 myAPI = "touchezpasàmonserveur" def getSensorData(): tempfile = open("/sys/bus/w1/devices/28-031652910aff/w1_slave") thetext = tempfile.read() tempfile.close() tempdata = thetext.split("\n")[1].split(" ")[9] temperature2 = float(tempdata[2:]) temperature2 = temperature2 / 1000 sensor = Adafruit_DHT.AM2302 pin = 5 humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) tmoyenne = (temperature+temperature2*2)/3 T = tmoyenne RH = humidity return (str(RH), str(T)) def main(): print 'starting...' baseURL = 'https://api.thingspeak.com/update?api_key=%s' % myAPI while True: try: RH, T = getSensorData() f = urllib2.urlopen(baseURL + "&field1=%s&field2=%s" % (RH, T)) print f.read() f.close() sleep(60) except: print 'exiting.' break # call main if __name__ == '__main__': main()
J'ai ensuite eu un peu moins de temps et j'ai totalement laissé le projet de côté...pour reprendre il y a quelques jours en achetant l'écran et le switch.
Problème : plus rien ne marche.
J'ai remarqué (après avoir allumé) que ma sonde DS18B20 avait son cable GND cassé (mal rangé )...j'ai éteint, réparé, mais voici le message d'erreur que j'obtiens :
Dans un premier temps, j'aimerai que cela remarche comment avant...le hic c'est que je n'ai aucune idée de comment aborder la chose...
Ensuite, j'aimerai trouver une solution de câblage propre (j'utilise des fil de breadboard) pour le modèle final, et surtout comprendre comment ajouter à mon câblage l'écran et le switch...
Voici mon câblage actuel, avec celui recommandé pour le switch que je n'ai pas encore relié :
Dans le genre bombe artisanale on est bien
Thanks ! et merci d'avance pour vos contributions
Partager