Bonjour à tous,
Je commence aujourd'hui ce post consacré au raspberry et plus précisement a l'environnement permettant de controller pas mal de choses sur son aquarium : REEF-PI
J'ai profité d'un arrêt maladie du à une infection pulmonaire pour m'atteler à assembler le projet...
Le projet reef-pi est un projet open source. Le code se télécharge et s'installe sur un raspberry 1, 2 ou 3
Mon projet perso est basé sur un raspberry pi 3b+ la dernière version en date du raspberry.
Pour ceux qui ne le savent pas, le raspberry est un mini ordinateur qui tient sur une carte de la taille d'une carte de crédit.
Pour plus de détail sur la bete, voici le lien du site officiel de la communauté FR --> https://www.raspberrypi-france.fr/
Pour ma part, j'ai pris un carte micro SD de 32Go mais une 16 voire une 8Go peuvent suffire.
J'ai personnellement pris le starter kit de ABOX TEK qui contient déjà la carte micro sd préformaté avec le logiciel NOOBS nous permettant d'installer l'OS que vous voulez.
Voici le lien de mon kit sur AMAZON --> https://www.amazon.fr/gp/product/B07DC37YSS/ref=ppx_yo_dt_b_asin_title_o00__o00_s01?ie=UTF8&psc=1
Pour réaliser mon controleur de température, j'ai utilisé les guides de Adafruit mais j'ai fait des adaptations car tout n'est pas détaillé sur leur site...heureusement mes années d'école d'ingénieur m'ont bien servi...
Pour le moment mon projet permet juste de partager sur un site internet accessible de partout, les données de température de mon bac et de la piece dans laquelle il se trouve.
Pour l'instant je ne pilote pas encore le chauffage, ce sera la prochaine étape.
Voici donc une capture de ce que nous obtenons, a noter que j'ai plongé d'abord ma sonde dans mon aqua d'eau douce d'ou la différence de témpérature que l'on observe aujourd'hui :-)
Et voici le circuit vu de dessus surplombant le raspberry pi
https://i.ibb.co/qkMjGb4/montage-light.jpg
Je vais réaliser ce tuto en plusieurs étapes, chaque message représentera une étape...
Voila j'espere que cela vous interessera autant que moi...
ETAPE 1 - Rassembler le matériel et installer l'OS sur le raspberry
Afin de réaliser le circuit de récupération de la température via 2 sondes, j'ai eu besoin de quelques composants electroniques.
J'ai pris le partie de commander un kit de débutant en électronique comportant pas mal d'éléments dont j'avais besoin : connecteurs, breadboard (carte perforée permettant de réaliser le montage), résistances...
Liste de ce que j'ai commandé sur Amazon
Kit Abox Raspberry --> https://www.amazon.fr/gp/product/B07DC37YSS/ref=ppx_yo_dt_b_asin_title_o00__o00_s01?ie=UTF8&psc=1
Kit électronique de débutant --> https://www.amazon.fr/gp/product/B01I0ZEK48/ref=ppx_yo_dt_b_asin_title_o00__o00_s00?ie=UTF8&psc=1
Ce kit comporte le "power supply" raspberry qui permet d'alimenter plus simplement la breadboard mais je ne l'ai pas utilisé pour l'instant...
Kit 2 sondes DS18B20 avec 3m de cable --> https://www.amazon.fr/gp/product/B07CZ1G29V/ref=ppx_yo_dt_b_asin_title_o00__o00_s00?ie=UTF8&psc=1
En 4 jours j'avais tout récupéré car ce sont des produits expédiés par Amazon...
Arrive donc la mise en route du raspberry et la préparation de celui ci pour installer reef pi dessus.
Je lis rapidement des tutos pour installer les dissipateurs, en fonction de la version de votre raspberry, vous pouvez avoir d'autres dissipateurs à installer, google vous permettra de trouver la vidéo qui va bien pour les installer tranquillement.
Une fois les dissipateurs en place, je branche un clavier et une souris en USB : ATTENTION RASPBERRY ne supporte que des connectiques USB, vérifiez bien que vous avez une souris et un clavier USB car sinon ce sera compliqué de le paramétrer au départ, une fois le wifi et vnc activé plus besoin de ces claviers et souris...
Je mets ma carte SD avec noobs préinstallé dans l'encoche située sous le raspberry, je branche l'alimentation en suivant les indications sur le petit guide de démarrage fourni avec le raspberry. Pour l'instant je le connecte en ETHERNET a mon réseau, ensuite nous le paramétrerons en Wifi afin de ne pas etre obligé d'avoir une connexion filaire en permanence...
Enfin je connecte ma télé au cable HDMI fourni avec le kit que j'ai commandé et je démarre la bete a l'aide du petit interrupteur sur le cable d'alimentation.
ATTENTION le raspberry n'a pas de bouton ON/OFF
Et ça démarre directement sur l'écran de sélection de l'OS de noobs, vous pouvez changer la langue également pour que ce soit compréhensible...
https://github.com/raspberrypi/noobs/raw/master/screenshots/os_installed.png
Une fois l'écran lancé, j'ai installé RASPBIAN qui est une distribution linux débian spéciale pour les raspberry pi
Et j'ai laissé le systeme se débrouiller pour lancer le téléchargement et installer l'OS tout seul.
Quelques minutes plus tard, mon raspberry pi est déjà prêt, installé, connecté à internet et en attente de mes instructions...
A partir de là, nous avons un raspberry pi fonctionnel avec lequel nous pouvons faire tout ce que l'on veut.
Etape 2 - Parametrer le Wifi et rendre le Raspberry pilotable à distance.
Pour cela il va falloir travailler proprement, soit vous etes sur la configuration de base et tout est facile en cliquant sur l'icone comportant deux fleches bleues en haut à droite, vous trouvez votre SID wifi dans la liste et vous vous connectez dessus, soit vous etes comme moi et rien ne marche du premier coup et vous allez etre obligé de mettre les mains dans le camboui...
Commençons par paramétrer le wifi de mon côté j'ai besoin d'une IP fixe sur mon réseau interne (la je vais en perdre quelques uns qui ne comprennent pas grand chose à internet et qui ne se sont jamais vraiment posé la question...) afin que mon routeur puisse trouver mon raspberry depuis l'IP externe et router le port choisi vers le raspberry...sinon mon raspberry ne sera visible que sur mon réseau interne... ce qui ne me servira pas a grand chose...
Du coup démarrage de la console par l'icone de terminal en haut à gauche
Normalement votre raspberry vous a demandé de creer un compte admin avec mot de passe afin de vous connecter et de vous permettre de travailler sur la configuration.
Une fois le terminal démarré, il vous faut taper la commande suivante :
sudo nano /etc/dhcpcd.conf
Cela ouvre le fichier de configuration du dhcp
Dans ce fichier il vous faut trouver les lignes qui commencent normalement par un # et qui concerne l'interface eth0 (qui est votre connexion ethernet actuelle)
# Example static IP configuration:
interface wlan0
## Ici nous avons remplacé eth0 par wlan0 qui correspond à l'adresse de notre carte wifi
static ip_address=XXX.XXX.XXX.XXX/24
## ici vous remplacez les XXX par l'adresse IP que vous voulez donner a votre raspberry ex : 192.168.0.15
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=XXX.XXX.XXX.XXX
## sur la ligne ci dessus, vous parametrez l'adresse de votre routeur ou de votre box internet...ex : 192.168.0.254
Une fois les modifications effectuées, il faut sortir avec CTRL+X, dire Oui pour modifier le fichier et "entrer"
Une fois la configuration du dhcp effectuée, il va falloir donner les paramétres à l'interface wlan0 pour se connecter à notre réseau wifi
Cela se passe dans le fichier wpa_supplicant, tapez la commande suivante :
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Il faut parametrer le réseau comme ci dessous
network={
ssid="VotreSSID"
psk="VotreMotDePasse"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
wep_key0=""
}
Ici le SSID est protégé en WPA2, je vous laisse ajuster les parametres en suivant les indications sur le site :
https://raspbian-france.fr/connecter-wifi-raspberry-pi-3/
Un petit redémarrage du raspberry est requis, pour ma part j'ai débranché le cable réseau pour etre sur que cela fonctionne et j'ai tapez la commande :
sudo reboot
Normalement a ce stade, votre raspberry se connecte a votre réseau wifi, les 2 petites fleches en haut à droite ont été remplacées par un symbole wifi bleu.
Nous allons maintenant activer le service VNC permettant de prendre la main à distance et s'affranchir des claviers et souris.
Pour cela il suffit de lancer la commande :
sudo raspi-config
D'aller dans INTERFACING OPTIONS et ensuite VNC et selectionner le, ce qui permettra de l'activer. Normalement en redemarrant le raspberry, vous devez avoir une petite icone VNC qui s'affiche en haut à droite à côté de votre réseau wifi.
Pour prendre la main à distance depuis votre PC, rien de plus simple, il faut installer realVNC qui est gratuit pour une utilisation personnelle. Et ensuite vous ajoutez le raspberry et vous pourrez vous connecter dessus.
Vous pouvez choisir l'option sans interface graphique via une connexion SSH. Pour cela rien de plus simple, il suffit de demarrer le service SSH.
Tapez la commande sudo raspi-config
Dans les interfacing options vous pouvez "Enabled" ou "Disabled" le service SSH.
Une fois activé, vous pouvez vous connecter via votre client SSH favoris (j'utilise Putty) afin de lancer les commandes que vous désirez.
Etape 3 - Installation de Reef-Pi notre solution open source de supervision
Reef pi a été développé pour permettre a des personnes ne connaissant pas la programmation, d'interfacer le raspberry avec pas mal de capteurs via le port GPIO 40 broches...
C'est ce port qui va permettre de piloter des relais, de brancher des capteurs et des sondes et de transferer les informations sur notre raspberry.
Une équipe de developpeur a donc eu l'idée de creer un environnement clé en main pour réaliser tout cela sans rien connaitre à la programmation...
Reef-pi est donc le chainons manquant entre notre raspberry et nos capteurs permettant de récupérer facilement les informations et les restituer sous forme graphiques.
Comme les personnes de chez Reef-pi sont tres gentilles, tout ceci est disponible sur une interface web et se base sur des standards du marché (go, react, serveur apache...)
Voici donc le lien du projet sur github : https://github.com/reef-pi/reef-pi
Le lien vers le site expliquant un peu ce que l'on peut faire avec Reef-pi : https://reef-pi.github.io/
Le lien vers les tutos que j'ai utilisé et que je vais essayer de traduire ici : https://learn.adafruit.com/search?q=reef-pi
Commençons par installer le logiciel et le paramétrer
On va d'abord mettre notre distribution Raspbian à jour, et on va lancer les timers qui pourront etre utilisés ensuite par Reef-pi, ces timers nous permettrons dans un second temps de programmer des actions à heures régulières...
Rien de plus simple, en ouvrant un terminal, tapons les différentes commandes :
sudo apt-get update -y
sudo apt-get upgrade -y
sudo systemctl start systemd-timesyncd
sudo systemctl enable systemd-timesyncd
Vous laissez faire et le systeme va se mettre à jour directement depuis internet.
Une fois terminé, on va parametrer le raspberry pour utiliser les timers.
Il faut éditer le fichier /boot/config.txt
Pour cela sudo nano /boot/config.txt
On va rajouter la ligne dans le chapitre des "overlay"
dtoverlay=pwm-2chan
Ctrl+X et O pour Oui pour accepter la modification...
Encore un petit coup de sudo raspi-config
Dans interfacing-options, sélectionner 1-wire et "Enabled" --> "Yes"
Reef-pi n'utilise pas le protocole SPI pour les GPIO et du coup, il n'est pas nécessaire de le laisser activé comme ca on pourra réutiliser les ports GPIO spécifiques SPI pour d'autres utilisations.
Encore un petit coup de sudo raspi-config
Dans interfacing-options, sélectionner SPI et "Enabled" --> "No"
Une fois cette configuration en place, nous sommes prêt a installer Reef-Pi
Pour cela nous allons faire un wget sur l'URL de la release qui nous interesse, pour ma part comme j'utilise une raspberry pi 3, j'ai pris la release spécifique pour ce modèle.
Et ensuite nous décompressons le package.
wget -c https://github.com/reef-pi/reef-pi/releases/download/2.2/reef-pi-2.2-pi3.deb
sudo dpkg -i reef-pi-2.2-pi3.deb
Et voila c'est terminé, le service reef-pi démarre en automatique et vous pouvez vous connecter sur l'adresse IP de votre raspberry directement depuis votre navigateur. Si vous etes sur votre réseau depuis n'importe lequel de vos machines.
Pour ma part il s'agit de l'ip 192.168.0.30
Par défaut les user et mot de passe sont : reef-pi et reef-pi
Pour l'instant l'interface ne présente rien car nous n'avons pas encore paramétré les sondes ni le raspberry pour collecter les infos...
Etape 4 – Création du circuit électronique de branchement des 2 sondes
Maintenant que notre raspberry est prêt à recevoir les données, il va falloir passer a la partie pratique de notre montage et mettre enfin en place notre petit circuit electronique avec nos 2 sondes permettant de capter la température de l’eau et la température de l’air ambiant.
Pour cela rien de plus simple, nous allons prendre notre petite carte de prototypage « breadboard » et réaliser le montage suivant :
https://i.ibb.co/6mYV0J3/Schema-Sondes-Raspberry-Model-3.jpg
Bien évidemment ce montage peut être modifié car j’ai voulu l’aérer au maximum pour comprendre le branchement des 3 fils des sondes DS18B20.
Elles doivent être alimentées par un courant de 3.3V et le fil jaune qui transmet l’information doit être protégé par une résistance de 4.7 kohm (pour ma part j’ai mis une 5.1kohm que j’avais dans mon kit électronique…).
Au final le montage ressemble à la photo que j’ai mise un peu plus haut.
Les ports GPIO du Raspberry se présentent sous la forme suivante
https://www.framboise314.fr/wp-content/uploads/2018/02/kit_composants_GPIO_01.png
Nous avons donc connecté notre fil rouge sur le connecteur 1 -power +3.3V, le fil jaune sur le port GPIO 4/connecteur 7 et le fil noir sur le port GND/connecteur 9 (GND – Ground -Masse ou terre)
Une fois que le circuit est complet, nous pouvons rallumer notre raspberry
ATTENTION – si vous touchez à votre montage electronique ou que vous débranchez des cables pendant que le raspberry tourne, il y a de fortes chances que celui-ci reboote.
Si votre raspberry boote, c’est que votre montage ne présente pas de soucis…cela ne veut pas dire que vos sondes fonctionnent correctement, nous allons vérifier cela maintenant.
Pour vérifier que le bus recoit bien des infos des 2 sondes, nous allons vérifier leur présence dans les données du raspberry
Tapons la commande suivante :
sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices/
ls
Vous devez obtenir la liste des sondes connectées à votre raspberry, pour nous 2 numéros apparaissent.
Chez moi il s’agit des numéros : 28-02131db6c6aa et 28-02131dde75aa
Si vous vouez afficher la température de votre sonde, rien de plus simple, dans la console tapez
cd 28-02131db6c6aa (en remplacant par le numéro de votre sonde)
cat w1_slave
Cela devrait vous afficher 2 lignes d’informations et sur la 2eme ligne, vous trouvez la température renvoyée par la sonde :
b7 01 ff ff 7f ff ff ff 48 : crc=48 YES
b7 01 ff ff 7f ff ff ff 48 t=25435
Bon vous me direz que ce n’est pas tres sexy et qu’une petite interface graphique serait plus appropriée pour lire nos températures et c’est la que reef-pi va prendre tout son interet.
Connectons nous à l’interface de reef-pi en tapant l’adresse IP de notre raspberry (pour rappel chez moi c’est 192.168.0.30)
Une fois connecté, nous allons parcourir le menu « TEMPERATURE » et cliquez sur le bouton « + »
Un menu s’ouvre alors pour nous demander quelques informations :
Name, c’est le nom que vous voulez donner à ce capteur
Sensor c’est la liste déroulante qui doit comporter vos 2 sondes si vous avez bien fait les choses…On retrouve les 2 numéros mais il est compliqué de savoir quel numéro correspond à quelle sonde c’est pourquoi j’ai mis 1 sonde dans l’eau de mon côté et 1 sonde en dehors de l’eau, la différence de température me donnera le numéro de chaque sonde…
Unit vous permet de choisir entre Farenheit et Celcius
Check Frequency permet de sélectionner le temps de rafraichissement de l’information sur reef-pi
Sensor Status permet d’activer ou désactiver une sonde.
Alerts vous permet d’activer les alertes, pour l’instant nous ne les avons pas encore paramétrées donc je vous propose de laisser la liste sur « disabled »
Control Heater et Chiller permet de contrôler le chauffage et les ventilo mais nous n’avons pas encore implémenté cette fonctionnalité.
Il vous suffit ensuite de Sauvegarder avec le bouton « Save »
Et de recommencer avec votre 2 eme sonde.
Ainsi vous aurez 2 sondes paramétrées sur votre onglet « TEMPERATURE »
On peut maintenant revenir sur le « Dashboard » ou tableau de bord en français !!! et essayer d’afficher les graphiques de nos sondes de temperatures.
Rien de plus simple, nous cliquons sur « configure », nous mettons le nombre de colonne et de ligne que nous souhaitons, dans « Charts » nous sélectionnons « temperature » et la sonde qui nous intéresse dans la liste déroulante.
Pareil pour la 2eme sonde et ensuite nous cliquons sur « Update »…et rien ne se passe…c’est normal car les 1eres données n’arriveront d’apres le délai que vous avez indiqué dans la « Check frequency »
Au bout d’1 minute pour moi, les 2 premiers points sont apparus sur mes graphiques…indiquant que ma configuration est bonne et que reef-pi est entrain de monitorer ma température sans soucis…
Vous pouvez retrouver une partie de se guide en ligne sur le site adafruit
https://learn.adafruit.com/reef-pi-guide-3-temperature-controller/
Pour ceux qui veulent une version imprimable, n’hésitez pas à me la demander, pour l’instant il n’y a pas les images mais je peux les rajouter…
La prochaine étape va consister à piloter des prises 220V à l’aide de relai afin de déclencher les chauffages et ventilos et peut etre également piloter certaines pompes en fonctions de « timers » sur des périodes précises de la journée…
Voilou A+
PoyPoy