11
Hello, aujourd'hui j'ai décide de me pencher sur un des avantage de notre petit raspberry pi qui est la possibilité d'utilisé des broches GPIO, pour contrôler de l’électronique et faire de la domotique. Pour commencer petit j'ai récupérer deux led une rouge et une vert, mon objectif est que la LED verte informe d'une bonne température exemple inférieur à 40°C et la rouge pas conséquent pour les température supérieur.

Dans un premier je me suis informer sur comment utiliser ces fameuse broche, je suis donc tombé une schématisation de ces broche (ce schéma va vous servir longtemps :D) :


Ensuite grâce a ce croquis j'ai fait un schéma de mes LED :


Une fois le câblage fait il faut passer a la partie programmation et la un outils maintenant indispensable est à installer c'est une librairie qui va permet d'actionner directement les entrée sortie gpio, je vous laisse suivre le tuto du créateur de cette bibliothèque, c'est simple et rapide (lien).

On à fait la plus grosse partie, ensuite ne reste plus qu'à faire le script que je vous est fait :D :

#!/bin/bash
TEMP=$(cat /sys/class/thermal/thermal_zone0/temp)
if [ $TEMP -lt 40000 ] ; then
gpio -g mode 4 out&&gpio -g mode 17 out &&gpio -g write 4 1&&gpio -g write 17 0
elif [ $TEMP -gt 40000 ] ; then
gpio -g mode 4 out&&gpio -g mode 17 out &&gpio -g write 17 1&&gpio -g write 4 0
fi

Bon d'accord le script n'est pas un chef d'oeuvre mais ce sont mes début dans se domaine. Pour modifier la valeur de température dans le script il faut modifier le 40000 (40000=40°C).

Ne reste plus qu'a ajouter dans crontab le lancement du script a intervalle régulière :
crontab e

et y ajouter :

* * * * * /home/pi/chemin de votre script
Tout les minutes le script va se mettre en marche.


Ici la température est en dessous de 40°C.

Publier un commentaire

  1. Quelques questions :
    Plusieurs questions :
    -Quels est le langage de programmation utilisé ?
    -Pourrait tu nous expliquer un peu + ton code ?

    RépondreSupprimer
  2. Plusieurs questions :
    -Quels est le langage de programmation utilisé ?
    -Pourrait tu nous expliquer un peu + ton code ?

    Sinon très bon tuto, merci ;)


    RépondreSupprimer
  3. Bonjour, c'est un langage basique bas et pour l'explication pas de souci et bon idée je vais modifier le tuto.

    RépondreSupprimer
  4. J'attends donc les explications du code :)
    Ah oui, et vu que je bosse avec mon père pour les branchements électrique sur le raspberry, je te transmets ses questions :
    -Pourquoi utilise tu 4 cables pour brancher les leds et pas 3 ( 1 seul pour la borne - )
    -Et à quoi corresponde les -- sur le schéma ?

    Merci de ta réponse ;)

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Le langage utilisé est le "bash" c'est le langage par défaut sur les linux Debian.

      Lorsque tu ouvres une console sur Debian et que tu saisi des commandes, ces commandes sont en bash. (Ex : ls, cd, mkdir,..)

      Explication du code :
      #!/bin/bash =
      ==> Interpréteur de commande, ceci permet de dire au système, y'a du bash dans ce script.

      TEMP=$(cat /sys/class/thermal/thermal_zone0/temp)
      ===> Création d'une variable TEMP avec comme valeur la températeur du raspberry pi qui est contenu par défaut dans /sys/class/thermal/thermal_zone0/temp

      if [ $TEMP -lt 40000 ] ; then
      ===> La valeur contenue dans TEMP est inférieur à 40000, comprendre 40° alors on fait :

      gpio -g mode 4 out&&gpio -g mode 17 out &&gpio -g write 4 1&&gpio -g write 17 0
      ==> On active la Gpio relié à la diode verte

      elif [ $TEMP -gt 40000 ] ; then
      ==> La valeur contenue dans TEMP est supérieur à 40000, comprendre 40° alors on fait :
      gpio -g mode 4 out&&gpio -g mode 17 out &&gpio -g write 17 1&&gpio -g write 4 0
      ==> On active la Gpio relié à la diode rouge

      fi
      ==> Fin de la boucle "si"

      Le problème avec ce script est le suivant :
      $TEMP -lt 40000 signifie strictement inférieur à 40°
      $TEMP -gt 40000 signifie strictement supérieur à 40°

      La diode ne s'allumera pas si la températeur est exactement 40° !
      Il faut remplacer le "-lt" par "-le" ! cela signifie inférieur ou égale à 40° !

      Supprimer
  5. Super reponse Adrien merci, desole le manque de reponse car en se moment j'ai pas une minute a moi. Pour thecloic oui j'aurais mettre les masses aux même point mais quand j'ai fait sa je n'avais pas de plaque a essai.

    RépondreSupprimer
  6. Ce commentaire a été supprimé par un administrateur du blog.

    RépondreSupprimer
  7. Ce commentaire a été supprimé par un administrateur du blog.

    RépondreSupprimer
  8. Ce commentaire a été supprimé par un administrateur du blog.

    RépondreSupprimer
  9. Oh my goodness! Impressive article dude! Many thanks, However I
    am going through troubles with your RSS. I
    don't know why I cannot subscribe to it. Is there anyone else having the same RSS problems? Anybody who knows the answer will you kindly respond? Thanks!!

    Feel free to surf to my blog post - tarot de Marseille

    RépondreSupprimer
  10. Salut ^^

    Je suis tombé par hasard dessus, je fait pas mal de prog sur ardiuno et recement un peu sur raspberry. Par sécurité je te conseille d'ajouter une résistance en série de tes diodes. Sinon l'intencité du courant risque de trop monté, tu pourrai y claqué des diode voir meme le raspberry. 220ohm à la louche

    RépondreSupprimer

 
Top