Projet Raspquarium

De l'aquarium à la piscine en passant par l'arrosage du massif de fleurs et la photo ultra-rapide de gouttes qui tombent, le Raspberry Pi peut tout faire...

Modérateur : Francois

Répondre
HiPPiaS
Messages : 18
Enregistré le : mer. 26 juil. 2017 12:59

Projet Raspquarium

Message par HiPPiaS » ven. 28 juil. 2017 02:38

Bonjour,

Il est temps de présenter le projet qui accapare un peu de mon temps dernièrement.
Je vais essayer de structurer mon post au cas où ça puisse aider quelqu'un.

Bonne lecture !!!

HiPPiaS
Messages : 18
Enregistré le : mer. 26 juil. 2017 12:59

Re: Projet Raspquarium

Message par HiPPiaS » ven. 28 juil. 2017 02:42

RaspQarium - Kesako ???


Le RaspQuarium est un petit module de gestion d’Aquarium basé sur un Raspberry Pi. Ce module est censé gérer toutes les fonctionnalités que je jugerai utile.

L’aquarium en question est un petit BiOrb 15L. Ce système assez malin possède la particularité d’utiliser l’effet venturi généré par le flux de bulles pour aspirer les impuretés via son filtre. Ceci en fait un Aquarium tout équipé sans aucun élément sous tension immergé.

Image

Les fonctionnalités souhaitées :
- Gestion des périodes d’allumage et d’extinction de l’aquarium
- Gestion de la température de l’aquarium (partiellement mis en place)
- Distributeur de nourriture (en cours d’étude...)

Les contraintes :
- Alimentation en 12V, je ne souhaite qu’une alimentation pour le bulleur, le chauffage et le Raspberry. Celle d’origine fait 12V AC et 20VA (1,7A). Les LEDs consomment 220mA et le bulleur 55mA, le Raspberry nécessite en théorie 5V et 1A max. Ca devrait passer.
- Aucun élément sous tension ne devra être immergé, pas même le chauffage.
Modifié en dernier par HiPPiaS le lun. 31 juil. 2017 18:40, modifié 3 fois.

HiPPiaS
Messages : 18
Enregistré le : mer. 26 juil. 2017 12:59

Re: Projet Raspquarium

Message par HiPPiaS » ven. 28 juil. 2017 02:50

Choix du Raspberry

Image

Pas cher, peu encombrant, peu de consommation, bluetooth et wifi intégré, le Raspberry Pi Zero possède tous les atouts que je souhaite.
Dans sa version W, le Wifi natif me permettra de le piloter via SSH à partir de mon PC portable. Si problème ou au démarrage, je pourrai toujours mettre un clavier Bluetooth/USB et un écran HDMI/DVI.

Mon choix s'est porté sur un kit Rasbpberry Pi zero W avec carte 4 Go + convertisseurs mini HDMI/HDMI et Micro-USB/USB.

HiPPiaS
Messages : 18
Enregistré le : mer. 26 juil. 2017 12:59

Re: Projet Raspquarium

Message par HiPPiaS » ven. 28 juil. 2017 03:02

L’alimentation

Le Raspberry est alimenté en 5V cc et nous disposons d’une alimentation 12V ac.

Il nous faut d’abord redresser le courant alternatif en courant continu à l’aide d’un montage pont de diode et capa. A vide ce montage délivre 18,4V ac et en charge 16,35V ac (sans le Raspberry).

Image

Un régulateur TSR 1-2450 est utilisé pour passer du 12V continu au 5V continu. Il dispose d’une bonne stabilité et d’un bon rendement. De plus, on peut rentrer entre 6,5 et 36V, ce que notre tension redressée devrait toujours nous fournir.

L’alimentation se fait via le port micro-USB comme recommandé.

Schéma de montage :
Image

Il nous faut donc :
1 pont de diode
1 capa 1000 µF
1 TSR1-2450
1 connecteur micro USB.

HiPPiaS
Messages : 18
Enregistré le : mer. 26 juil. 2017 12:59

Re: Projet Raspquarium

Message par HiPPiaS » lun. 31 juil. 2017 19:00

Gestion de la lumière - Le montage choisi

Je pensais au départ utiliser un Mosfet pour commander du 12V et entrer en continue sur mon ruban de LEDs. Cette tentative fut un échec (voir le topic sur Framboise314). ^^
On va donc commander l’allumage de la lumière à l’aide d’un relais 12V que nous commanderons avec un transistor. C’est moins tordu, sachant que nos LEDs sont initialement alimentées en alternatif.

Voici le montage retenu :
Image


Il nous faut donc :
- 1 transistor NPN 2N2222
- 1 résistance de 4,7k
- 1 résistance de 10k
- 1 relais 12V

HiPPiaS
Messages : 18
Enregistré le : mer. 26 juil. 2017 12:59

Re: Projet Raspquarium

Message par HiPPiaS » lun. 31 juil. 2017 19:14

Gestion de la lumière - Le script

J'ai pas mal commenté le code, je ne vais donc pas trop m'étendre dessus.

Code : Tout sélectionner

#!/usr/bin/python
import RPi.GPIO as gpio #importation du module de gestion des gpio
import datetime # Permet de recuperer la date et l'heure
import sys # Permet de recuperer les arguments

#---------------------------- La config ---------------------------
gpio_port=21
#---------------------------------------------------------------------

maintenant=datetime.datetime.now()
heure=maintenant.hour

try:
    action=sys.argv[1] #recupere l'argument on, off ou onboot
except IndexError:
    action="onboot"

gpio.setwarnings(False) # Retire l'avertissement quand le port est
# deja configure
gpio.setmode(gpio.BCM) # pour travailler avec le numero du GPIO
gpio.setup(gpio_port, gpio.OUT)
gpio.setwarnings(True) # reactive les avertissements  pour debug

#-----------------------Les fonctions -----------------------------
def gpio_on():
    print "Activation de la lumiere via le port ",gpio_port
    gpio.output(gpio_port, gpio.HIGH)

def gpio_off():
    print "Desactivation de la lumiere via le port ",gpio_port
    gpio.output(gpio_port, gpio.LOW)

def gpio_onboot():
    if heure >=9 and heure<20:
        gpio_on()
    else:
        gpio_off()
#---------------------------------------------------------------------

#----------------------- Script Principal -------------------------
if action=="on":
    gpio_on()
elif action=="off":
    gpio_off()
elif action=="onboot":
    gpio_onboot()
else:
    print "Argument non valide"
#-----------------------------------------------------------------
Après, on lance tout ça via Crontab (après l'avoir rendu exécutable avec "chmod +x raspquarium_light.py") :

Code : Tout sélectionner

# Execution du script d'allumage des LEDs tous le jours a 9h00
0 9 * * * /home/pi/bin/raspquarium_light.py on

# Execution du script d'extinction des LEDs tous le jours a 20h00
0 20 * * * /home/pi/bin/raspquarium_light.py off
Et enfin, pour que tout se lance normalement dés le démarrage du Pi, on modifie le fichier /etc/rc.local en superutilisateur (sudo nano).

Code : Tout sélectionner

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# lancement des scripts nécessaires au démarrage du raspquarium
python /home/pi/bin/raspquarium_light.py onboot # Allumage de la lumière en fonction de l'heure.

exit 0
Modifié en dernier par HiPPiaS le mar. 1 août 2017 14:44, modifié 1 fois.

nexen
Raspinaute
Messages : 175
Enregistré le : lun. 29 sept. 2014 13:58

Re: Projet Raspquarium

Message par nexen » mar. 1 août 2017 11:54

hello :)

petit script sympa ! et petite question :

Pourquoi n'as tu pas chois la solution suivante (qui évite les modification de scripts d'init)
->un script lancé toutes les minutes par la crontab ? ce qui simplifierai ton script avec juste ta fonction onboot :)


crontab :
*/1 * * * * /home/pi/bin/raspquarium_light.py

script avec uniquement ta partie onboot sans gestion de paramètre :)

je voudrai juste faire avancé le schmilblick :)

cordialement.

PS : tu éteint à 9h dans ton exemple de crontab ;)

HiPPiaS
Messages : 18
Enregistré le : mer. 26 juil. 2017 12:59

Re: Projet Raspquarium

Message par HiPPiaS » mar. 1 août 2017 17:57

Salut,

Merci pour la correction, c'est édité.

Sinon, je voulais surtout éviter au maximum les scripts récurrents. Toutefois, cela risque de changer avec la gestion de la température où je vais avoir besoin de mesures régulières. On verra la vélocité de mon chauffage, mais je vais au minimum avoir un script par minute voir plus fréquemment si j'ai besoin d'ajuster ma puissance de chauffe trop souvent. Pour le moment, si la mesure de température est en quasi finie (reste plus qu'à positionner le capteur intelligemment sur l'aquarium), le système de chauffage est au stade de la réflexion.

Répondre

Retourner vers « Que d'eau, que d'eau ! »