logo DendroWorld
logo bourbon nature

Contrôleur global Arduino

Amenagement d'un biotope artificiel

Contrôleur global Arduino

Message non lupar artnod » Lun 12 Déc 2016, 03:47

Bonjour à tous,

Je me permet de partager mon projet de contrôleur climatique à base d'Arduino, Le but à terme est de fournir une solution capable de gérer indépendamment:
  • 1 interface Homme-Machine pour configurer les différents paramètres souhaités
  • 1 minuterie journalière pour l'éclairage, précision à la minute.
  • 1 minuterie cyclique pour le pulvérisateur, précision à la seconde. Configurations jour et nuit.
  • 1 détecteur de niveau d'eau pour le réservoir. (Alerte + bloquer la pulvérisation)
  • 1 thermostat pour le chauffage, précision 0.01°C. Configurations jour et nuit.
  • 1 variateur pour la ventilation, en fonction de la température précision 0.01°C et de l’hygrométrie précision 0.01%. Configurations jour et nuit.

Ceux-ci à l'aide:
  • 1 Arduino
  • 1 écran lcd 16x2 + keypad
  • 1 horloge temps réel (ds1307)
  • 1 capteur à ultra son (hc-sr04)
  • 1 sonde température waterproof (ds18b20)
  • 1 sonde température et hygrométrie (dht22)
  • 4 relais 230V 10A.
  • 1 transistor NPN darlington (TIP120) et quelques composants résistance, diode, optocoupleur

Tout n'est pas encore fini entre autre le variateur, mais le reste est fonctionnelle.
Ce post sera mis à jour au fur et à mesure de l'avancement du projet.
Tout mon code est bien sûr open source et disponible gratuitement sur github : https://github.com/artnod78/Terrarium/.

N'hésitez pas à poser vos questions.
Cordialement,
artnod.
Dernière édition par artnod le Sam 18 Mars 2017, 22:56, édité 4 fois.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar vincent36 » Lun 12 Déc 2016, 08:45

Merci pour ton partage de librairies, à la base tu utilises quoi comme arduino le mega ou le uno?
Avatar de l’utilisateur
vincent36
Oeuf
Oeuf
 
Message(s) : 84
Inscription : Mar 14 Juil 2015, 14:13
Localisation : 36 - MIGNE
Code postal: 36800
Ville: MIGNE

Re: Contrôleur global Arduino

Message non lupar artnod » Lun 12 Déc 2016, 16:24

Bonjour,
D'habitude j'utilise des Arduino Nano v3 bien moins couteux qu'un Uno. Mon prototype est pour le moment sur un Arduino Uno avec un shield lcd keypad.

++
artnod
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar artnod » Dim 08 Jan 2017, 18:43

Hello,
Petite avancée sur le projet.
Toujours à partir des éléments du post d'origine, j'ai ajouté:
  • 1 écran lcd 16x2 (16 caractères sur 2 lignes)
  • 1 keypad (4 touches directionnelles et un bouton de sélection)
  • 1 capteur ultra-son (hc-sr04) pour connaitre le niveau d'eau dans le réservoir
  • intégré la sauvegarde et chargement des paramètres dans l'EEPROM

Du coup l'écran lcd et le keypad me permettent:
  • de configurer les paramètres souhaités via un système de menu
  • d'afficher bien entendu, l'heure, les valeurs des différentes sondes et l’état des timer, thermostat...
  • d'afficher une alerte si le réservoir d'eau est vide
Dans le cas où le réservoir est considéré comme vide par le capteur ultra-son, la méthode run() de l'objet CyclicTimer ne sera pas appelé afin d'éviter d’endommager la pompe.


Petit aperçu du menu princiale:
Image

Ceux qui reste encore faire:
  • Fusionner les librairies Thermostat et Hygrostat pour en faire qu'une.
  • Limiter les sauvegardes dans l'EEPROM dans le cas où la nouvelle valeur et identique à l'ancienne.
  • Configurer l'adresse EEPROM pour les objets lors de sa déclaration (au lieu de le spécifier a chaque fois lors des sauvegarde et chargement)
  • Quelques modifications dans les compteur
  • Créer les menu pour la saisi du niveau d'eau critique dans le réservoir.
  • Créer les menu pour l'intensité et la durée du rétro éclairage.
  • Créer les menu pour vider l'EEPROM.
  • Compléter la documentation.

Tout mon code est bien sûr disponible gratuitement sur github : https://github.com/artnod78/Terrarium/.
J'ai commencé (en cours) à faire la doc de chaque méthode classe par classe: https://github.com/artnod78/Terrarium/wiki
Cordialement,
artnod.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar artnod » Ven 13 Jan 2017, 15:57

Bonjour,
Du nouveau sur le projet. Voici les quelques améliorations et fonctionnalités que j'ai ajouté.

Alerte réservoir vide
Test pour ne pas déclencher le pulvérisateur si le réservoir est en alerte.
Arrête la pulvérisation si le réservoir est en alerte.
  • Nouvelle classe Reservoir.
  • Ajout d'un menu Compteur.
  • Saisi via la classe CompteurInt.

Configuration de l'intensité et de la durée du rétro éclairage
L'intensité est représentée par une valeur allant de 0 (éteins) à 8 (le maximum).
La durée est représentée en seconde.
Un retour à l'accueil est effectué quand le rétro éclairage s'éteins.
  • Nouvelle classe RetroLcd.
  • Ajout d'un menu Compteur.
  • Saisi via les classes CompteurInt et CompteurSeconde.

Réinitialiser l'Arduino
Réinitialise tout les paramètres par défaut (valeur à 0 et objets désactivés).
Efface l'eeprom.
Demande de confirmation.
  • Nouvelle classe RetroLcd.
  • Ajout d'un menu Compteur.
  • Saisi via la classe CompteurBool.

Fusion des classes Hygrostat et Thermostat
Plus qu'une classe au lieu de deux. Fonctionne comme l'ancien classe Hygrostat.
  • Modification de la classe Thermostat .
  • Suppression de la classe Hygrostat.
  • Valeur min et max pour le journée et la nuit.
  • Précision au centième (0.01).

Limiter les sauvegardes dans l'EEPROM
Limiter les sauvegardes dans l'EEPROM dans le cas où la nouvelle valeur et identique à l'ancienne.

Déclaration des objets avec une adresse EEPROM
Configurer l'adresse EEPROM pour les objets lors de sa déclaration (au lieu de la spécifier à chaque fois lors des sauvegardes et chargements).

Quelques optimisations dans les compteurs
  • Création de la classe ReadKey .
  • Suppression de la lecture du keypad dans les classes Compteur, CompteurDate...
  • Séparation du l'affichage lcd et de la saisi.

Mise à jour de la documentation
Mise à jour des fichiers README.md



Ceux qui reste encore faire
  • Modifier la réinitialisation de l'Arduino. Ne réinitialiser et sauvegarder que les paramètres qui ont été modifié (différent de 0).
  • Créer un compteur pour la saisi de float.
  • Intégrer le nouveau compteur pour la saisi du thermostat.
  • Compléter la documentation.

Tout mon code est bien sûr open source et disponible gratuitement sur github : https://github.com/artnod78/Terrarium.
La documentation: https://github.com/artnod78/Terrarium/wiki.

N'hésitez pas à poser vos questions.
Cordialement,
artnod.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar jejevly » Ven 13 Jan 2017, 21:30

Merci pour le partage :wink:
Image
Avatar de l’utilisateur
jejevly
Grenouille modératrice
Grenouille modératrice
 
Message(s) : 1290
Inscription : Jeu 19 Nov 2009, 20:36
Localisation : Haute-savoie
Code postal: 74000
Ville: ANNECY

Re: Contrôleur global Arduino

Message non lupar anolis34 (Anogreen) » Ven 13 Jan 2017, 22:26

jejevly a écrit :Merci pour le partage :wink:


+1
anolis34 (Anogreen)
Grenouille botaniste
Grenouille botaniste
 
Message(s) : 2358
Inscription : Lun 10 Sep 2012, 04:51
Localisation : 30000 Nîmes
Code postal: 30000
Ville: Nîmes

Re: Contrôleur global Arduino

Message non lupar lestyman » Sam 28 Jan 2017, 10:11

Un grand merci pour ton partage. Je vais également me lancer dans un tel projet. Mais je n'y connais pas encore grand chose. Penses tu qu'il est possible d'envoyer les données sur un smartphone? Merci
1.2. Epipedobates Anthony
0.0.2 Auratus el copé
Avatar de l’utilisateur
lestyman
Tétard
Tétard
 
Message(s) : 142
Inscription : Mer 02 Juin 2010, 21:13
Localisation : B Mons
Code postal: 0
Ville:

Re: Contrôleur global Arduino

Message non lupar artnod » Sam 28 Jan 2017, 20:06

Bonjour,

lestyman a écrit :Un grand merci pour ton partage. Je vais également me lancer dans un tel projet.

Merci. N'hésite pas à poser tes questions pour ton projet.

lestyman a écrit :Penses tu qu'il est possible d'envoyer les données sur un smartphone? Merci

Oui bien sur.

Plusieurs méthode sont possibles pour des communications à distance:
  • En utilisant une connexion internet déjà présent (prise rj45 ou wifi). On peut utiliser cette connexion et l'utilisation d'une messagerie instantanée pour faire un système d'alerte et de commande.
  • En utilisant un module 3G/4G si la couverture réseau le permet. On peut utiliser cette connexion et l'utilisation d'une messagerie instantanée pour faire un système d'alerte et de commande.
  • En utilisant un module GSM si la couverture réseau le permet. On peut utiliser cette connexion et faire un système d'alerte et de commande par SMS.
La messagerie instantané n'est qu'un exemple. Je pensais notamment à Telegram qui propose un système de robot très simple d'utilisation.
Il existe plein de protocoles de communication (MQTT, XMPP...), sinon tu peux très bien développer une application web ou une simple api et une application pour ton smartphone.

Pour des communications local (inférieur à 100m) une multitude de solution existe, bluetooth, wifi, rf 433MHz ...

artnod
++
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar artnod » Dim 29 Jan 2017, 18:42

Bonjour,
Encore du nouveau sur mon projet. Voici les quelques améliorations et fonctionnalités que j'ai ajouté.

Utiliser qu'un menu et un sous menu
En effet auparavant, un objet Compteur été créé pour chaque sous menu (timers, thermostat ...). Maintenant il n'y en a qu'un seul.

Modifier le le reset
Seul les paramètres qui ont été modifiés sont réinitialisés. Permet de diminuer le nombre d'écriture dans l'EEPROM.

Créer un compteur pour la saisi de float
Auparavant le thermostat été configuré avec un nombre entier alors qu'il prend en charge les nombres décimal.
Un nouveau Compteur à été créé pour la saisi de float et intégré dans la configuration du thermostat.

Mise à jour de la documentation
Mise à jour des fichiers README.md

Ceux qui reste encore faire
Vu que toute les broches de l'Arduino sont utilisées cela limite grandement les futurs fonctionnalités.
  • L'ajout d'un contrôleur de vitesse pour l'extraction est toujours en cours de réflexion.
  • Des tests, des tests et encore des tests.
  • Finir un prototype que je vous présenterais.
  • Agrémenter la doc d'exemples.
L'ajout d'un dimmer (allumage et extinction progressif) pour la lumière est aussi en cours de réflexion et ne sera pas ajouté dans la prochaine version mais plus tard.

Tout mon code est bien sûr open source et disponible gratuitement sur github : https://github.com/artnod78/Terrarium/.

N'hésitez pas à poser vos questions.
Cordialement,
artnod.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar lestyman » Sam 18 Mars 2017, 17:39

Aurais-tu des photos de ton installation?

Merci ;)
1.2. Epipedobates Anthony
0.0.2 Auratus el copé
Avatar de l’utilisateur
lestyman
Tétard
Tétard
 
Message(s) : 142
Inscription : Mer 02 Juin 2010, 21:13
Localisation : B Mons
Code postal: 0
Ville:

Re: Contrôleur global Arduino

Message non lupar artnod » Sam 18 Mars 2017, 22:27

Bonjour,
Mon contrôleur est toujours en phase de prototypage (breadboard et câble dupont a gogo). Donc pas encore vraiment installé sur un terra.
Je n'ai pas encore fait de photos. Je te fait ça demain.

En attendant voici un schéma grossier
terraduino.png


++
artnod
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar Benoit76 » Sam 18 Mars 2017, 23:47

Une chose que j'aimerai faire
Mais un language de chinois :(
Site Relatant ma passion pour les Terrariophilie et mes créations

http://www.facebook.com/pages/Silence-C ... 5279914597
Benoit76
Tétard
Tétard
 
Message(s) : 328
Inscription : Lun 29 Août 2011, 16:46
Localisation : 76 ROUEN
Code postal: 76190
Ville: Rouen

Re: Contrôleur global Arduino

Message non lupar artnod » Dim 19 Mars 2017, 02:41

C'est pas du chinois, c'est de l'anglais, de la logique et un peu de mathématique :smt005
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar Jérémie B » Dim 19 Mars 2017, 11:04

artnod a écrit :C'est pas du chinois, c'est de l'anglais,

:smt005 :smt005 :smt005
pauvre Benoit ! :wink:
Image
Dendrobates.
Ranitomeya.
Epipedobates.
Hyloxalus.
Et pas mal d'autres animaux...
Avatar de l’utilisateur
Jérémie B
Grenouille adulte
Grenouille adulte
 
Message(s) : 4391
Inscription : Mar 14 Mars 2006, 15:49
Localisation : 37 Beaumont-Village
Code postal: 37460
Ville: Beaumont-Villlage

Re: Contrôleur global Arduino

Message non lupar Benoit76 » Dim 19 Mars 2017, 17:48

Jai eu 4 a mon bac S de math
Jsuis dans la CENSURE :/
Site Relatant ma passion pour les Terrariophilie et mes créations

http://www.facebook.com/pages/Silence-C ... 5279914597
Benoit76
Tétard
Tétard
 
Message(s) : 328
Inscription : Lun 29 Août 2011, 16:46
Localisation : 76 ROUEN
Code postal: 76190
Ville: Rouen

Re: Contrôleur global Arduino

Message non lupar artnod » Dim 19 Mars 2017, 18:25

Bonjour,
Benoit76 a écrit :Jai eu 4 a mon bac S de math
Jsuis dans la CENSURE :/


:smt005 :smt005 :smt005
Quand je parle de math c'est niveau collège.
Exemple: Convertir une heure 15h27 en minute depuis 00h00:
Code : Tout sélectionner
HH = 15;
MM = 27;
minute_depuis_minuit  = (HH*60)+MM;

Ça va pas plus loin (si peut être des division et des modulo).

++
artnod
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar artnod » Dim 19 Mars 2017, 18:38

Hello,
lestyman a écrit :Aurais-tu des photos de ton installation?


Je vais commencer par le capteur ultra-son pour mesurer le niveau d'eau dans le réservoir:
IMG_20170319_163546.jpg

IMG_20170319_163623.jpg

IMG_20170319_163901.jpg

IMG_20170319_170008.jpg


Le capteur ultra-son sera relié à l'Arduino via un câble USB.

++
artnod
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Dernière édition par artnod le Dim 19 Mars 2017, 19:15, édité 1 fois.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar artnod » Dim 19 Mars 2017, 19:15

Re,
lestyman a écrit :Aurais-tu des photos de ton installation?


Voici la partie "sensor". Elle regroupe la sonde DS18B20 (tige en alu) et la sonde DHT22 (le bout de plastique blanc):
IMG_20170319_163040.jpg

Les deux sondes sont branchées sur le même port USB. Qui sera relié à son tour à l'Arduino via un câble USB.

Un petit circuit imprimé remplacera la breadbord (platine jaune perforré). Ainsi qu'un petit boitier.
La longueur des câbles entre ce circuit imprimé et les sondes seront augmentés à ~1 mètre afin de pourvoir correctement les installer dans le terrarium.

++
artnod
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Dernière édition par artnod le Dim 19 Mars 2017, 19:54, édité 1 fois.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar artnod » Dim 19 Mars 2017, 19:53

Re,
lestyman a écrit :Aurais-tu des photos de ton installation?


Voici la partie "Puissance". Permet de commander 3 prises 230V 10A.
IMG_20170319_163437.jpg

Un petit circuit imprimé remplacera la breadbord (platine verte perforé) avec le tranfo 230V - 5V. Ainsi qu'un petit boitier.
  • 1 - Entrée 5V (chargeur classique USB)
  • 2 - Commande des relais sur port USB. Sera connecté à l'arduino via un câble USB
  • 3 - Sortie 5V pour tous le controleur (Arduino, sondes ...)

++
artnod
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Dernière édition par artnod le Lun 20 Mars 2017, 02:28, édité 2 fois.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar artnod » Dim 19 Mars 2017, 20:09

Re,
lestyman a écrit :Aurais-tu des photos de ton installation?


Et pour finir la partie la plus importante, la partie "Arduino":
IMG_20170319_162609.jpg

  • 01 - Alimentation pour le ventilateur 60V MAX et 60W MAX
  • 02 - Vers le ventilateur
  • 03 - Entrée 5V, connecté àla sorite 5V de la partie "puissance"
  • 04 - Fil de commande pour la vitesse du ventilateur
  • 05 - Alim 5V pour l'Arduino et l'écran LCD
  • 06 - Commande des relais et port USB, connecté à la partie "puissance"
  • 07 - Bus I2c pour récupérer l'heure de la RTC
  • 08 - Port USB pour le capteur ultra-son, connecté au capteur ultra-son sur le réservoir
  • 09 - Port USB pour les sondes DS18B20 et DHT22, connecté à la partie "sensor"
  • 10 - Visse de réglage du contraste de l'écran LCD
  • 11 - Ecran LCD
  • 12 - Keypad
Sur cette photo l'Arduino n'est pas très visible car le cicuit imprimé "lcd keypad" est enfiché sur l'arduino.
Un circuit imprimé remplacera la breadbord. Ainsi qu'un boitier. Ce circuit viendra s'enfiché entre le circuit imprimé "lcd keypad" et l'Arduino.
Il ressemblera à peut près à ça:
circuit.png


A vos commentaires :wink:
++
artnod
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar artnod » Ven 20 Oct 2017, 15:05

Hello,
Me revoilà après 7 mois d'absence :roll: :roll: :roll:

Pas beaucoup de de nouveau sur le projet. Voici les "dernières" (mois de mai) modifications :

Modification des menus
Petite réorganisation des menus, l'écran d’accueil reste identique.

Création du shield
Concernant le shield, il s'agit d'un circuit imprimé qui contiendra toute les connectique pour pouvoir y brancher les sondes et les actionneurs.
Voici le schéma de se fameux shield:
pcb[1].PNG

Et voici le shield une fois imprimé:
IMG_20171020_180427-2.jpg


Ceux qui reste encore faire
Je vais me libérer un peu de temps pour me remettre doucement sur le projet.
  • Refonte de la Classe CyclicTimer (type de cycle, nombre de pulvérisation et durée pulverisation).
  • Test du shield + doc.
  • Création du boitier.
  • Compléter la documentation.

Tout mon code est bien sûr open source et disponible gratuitement sur github : https://github.com/artnod78/Terrarium/.

N'hésitez pas à poser vos questions.
Cordialement,
artnod.
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
artnod
Tétard
Tétard
 
Message(s) : 103
Inscription : Jeu 01 Déc 2016, 20:11
Code postal: 78360
Ville: Montesson

Re: Contrôleur global Arduino

Message non lupar Jérémie B » Jeu 26 Oct 2017, 12:49

Sacré boulot ! :smt023
Image
Dendrobates.
Ranitomeya.
Epipedobates.
Hyloxalus.
Et pas mal d'autres animaux...
Avatar de l’utilisateur
Jérémie B
Grenouille adulte
Grenouille adulte
 
Message(s) : 4391
Inscription : Mar 14 Mars 2006, 15:49
Localisation : 37 Beaumont-Village
Code postal: 37460
Ville: Beaumont-Villlage


Retour vers Terrariums & bricolage

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 91 invité(s)