Archives du mot-clé python

Le capteur de température

Image

Voici les entrailles de la bête.

A gauche l’écran LCD, à droite le rasperry avec par dessus son « shield de prototypage ».

4 connexions donc sur ce rasperry :

  • En haut l’alimentation via le port micro usb prévu à cet effet
  • L’écran LCD qui se connect sur le port I2C du rasperry (en jaune et rouge)
  • Le capteur de température qui est un dallas DS18B20 1wire
  • Le réseau

Tout ça pour connecter un bête composant comme le DS18B20 ?

Oui et j’assume, plusieurs raisons, l’écran affiche alternativement l’heure et la température ainsi chaque fois que je descend dans la salle je peu vérifier que cela fonctionne.

Cela permet aussi de justifier le budget pour les non initiés 🙂

Le shield de prototypage est très pratique car cela  permet de visser les connexions, ne sait on jamais peut être qu’il y aura des extensions 🙂

Le matériel provient de chez MCHobby que je soutiens à 100%, ne vous arrêtez pas à la boutique et parcourez le wiki et le blog.

Vous trouverez une vrai mine de renseignements et de tutoriels traduits en français mais surtout commenté ET corrigé. Chaque produit de la boutique le nécessitant est accompagné des liens et tutos du fabricant et aussi quand c’est nécessaire des tutos et notice de montage en image faite par Mr Dominique Meurisse le responsable de ce site.

Je vous conseille la lecture de cet_article   l’a propos du wiki.

Le composant principal : le Dallas DS18B20

Pour la connexion du composant DS18B20 j’ai suivi cet excellent tutoriel   qui en plus me fait dire que j’ai encore beaucoup de choses à apprendre pour faire de joli blog.

Par contre j’ai nettement modifié le code fourni en exemple. En effet parfois le capteur renvoi des valeurs incohérentes style -0.625 de manière un peu aléatoire. C’est pour cette raison et suivant l’avis de quelques moules expérimentées que le script effectue 10 lectures, les tri supprime les 2 premières et les 2 dernières et transmets la moyenne des 6 autres.

Attention : si comme moi vous voulez utiliser ce script avec zabbix vous devez impérativement modifier la valeurs Timeout à 20 ou 30 secondes, sur le serveur ET l’agent.

Le temps de réponse du script est d’environ 8 à 10 secondes sur un rasperry pas du tout optimisé.

Il aurait été plus judicieux d’effectuer les prélèvements « brutes » (une seule lecture) cela dure moins de 3 secondes (valeur par défaut du Timeout Zabbix) et de trouver le bon paramétrage coté Zabbix. Si je trouve je ne manquerais pas d’en parler sur ce blog 🙂

Un dernier truc : au départ j’avais prévu de connecter 2 capteurs d’où la possibilité d’appeller des devices dans le script.

Voici le code actuellement en exploitation :

get_temp2.py  Note : je ne mets plus de code sous WordPress car sournoisement il le tronque.

Voici le schéma de connexion :

SCHEMA CONNEXION

J’aurais bien aimé utiliser Fritzing mais j’ai pas trouvé tout les composants

Sinon voici les connexions :

Pour l’écran :

les bornes 2 – 5V / 3 – SDA / 5 – SCL / 6 – GND sur les mêmes bornes que l’écran LCD

Pour le capteur DS18B20

Le port GPIO #4 (borne 7) sur la borne DATA du DS18B20 (pin 2)

La borne  17 donne 3.3 V à connecter sur la borne VDD du DS18B20 (pin 3)

La borne 25 – GND à connecter sur la borne GND du DS18B20 (pin 1)

Il faut aussi relier une résistance de 4.7 K Ohms entre 2 et 3 (data + VDD) du DS18B20

Rien de très compliqué en fait.

Le shield de prototypage se révèle pratique pour visser les câbles.

L’écran LCD

OK c’est plus pour le fun et pour apprendre, normalement il devrait se connecter directement sur le raspberry mais cela ne m’arrangeait pas. Aussi il à fallut faire une rallonge.

L’écran connecté il faut régler le potentiomètre sinon cela ne fonctionne pas

Pour le montage de celui ci il suffit de suivre les tutos, rien de compliqué non plus.

il faut un peu de code pour que cela fonctionne dont voici celui en exploitation : cmd_LCD.py

NOTE : Impossible de mettre du code propre dans worldpress 😦 il me sucre des portions entières …

il permet d’afficher une couleur différente part tranche de température et j’avais commencé à gérer les boutons directement sur l’écran, mais rien de concret.

En gros il utilise le get_temp pour récupérer la température ambiante et en fonction change de couleur. Pour indiquer que le raspberry est toujours vivant j’alterne l’affichage de la date/heure et de la température.

Ce code est une utilisation de la librairie et des exemples fournis par Adafruit

Si j’ai le temps un jour je modifierai ce script pour que l’on puisse rebooter le raspberry depuis les 5 touches (qui ne sont pas accessible dans le découpage actuel de la boîte).

En fait cette partie a été très simple, même si j’ai galéré pour trouver une boîte et des connecteurs.

En fait en électronique, comme dans beaucoup de choses, il faut savoir rester simple.