Présentation et projet de gestion climatique serre

Bonjour à tous,

J'ai découvert arduino il y a quelques semaines, je me suis pas mal documenté sur le sujet mais je n'ai pas encore franchis le pas. ça ne saurait tarder :wink: !

J'ai pour le moment quelques questions basiques sur la faisabilité de mon projet que voici : J'ai une serre tropicale dont je voudrais gérer le climat. La serre est à une trentaine de mètres de la maison.

J'aimerai au niveau de la serre :

  • 3 capteurs de températures (2 zones dans la serre, un troisième extérieur), les DS18B20 me semblent assez adaptés pour ça
  • un capteur d'hygrométrie (808H5V5) dans un premier temps ça devrait suffire
  • capteur de lumière (TSL230R), j'ai besoin d'un intensité lumineuse en lux.

Dans l'idéal, les capteurs de températures devraient gérer, le chauffage et les extracteurs de chaleur ; l'hygromètre, la pompe de brumisation et le capteur de lumière devra déclencher un moteur de volant roulant pour dérouler ou enrouler la toile d'ombrage.

J'aimerai également un module DCF77 et une transmission sans fil (RF ou Xbee ??) à une base qui sera dans la maison.

Est ce que ce n'est pas trop ambitieux de "mettre" tout ça sur un arduino ???

Au niveau de la base de réception dans la maison, je souhaiterai avoir :

  • module de réception (toujours RF ou Xbee ???)
  • alarmes de températures (haute ou basse) ça c'est pas le plus difficile
  • Shield microSD (ou du moins un système de stockage des données des capteurs toutes les 2-3 minutes environ)
  • Ethernet shield (pour un contrôle à distance lors de mes déplacements)
  • peut être un LCD pour afficher température et hygrométrie sans avoir à allumer l'ordi.

Là encore, est ce que ce n'est pas un peu trop pour un seul arduino ?

Tout ça fait un peu "usine à gaz" ! mais ça serait vraiment top si je pouvais gérer tout ça. Ca me permettrait d'éliminer les multiples programmateurs et stations météo que j'ai actuellement.

Ce que j'ai du mal à appréhender c'est si je peux utiliser en même temps par exemple et sur un seul arduino : un module Xbee, un ethernet shield, un SD shield (Celui de l'ethernet shield n'est pas utilisable ?) plus un LCD (série) ??? Il faudra la mega pour ça ?

Si vous avez des conseils ou des retours d'expérience sur de tels projets .... et bien merci beaucoup !!!

@+

Poliben

Bonjour :slight_smile:

Je suis aussi sur un projet d'automatisation (aquarium)

Dans ton cas il faut savoir quelle seront les pin utilisées par chacun des shield.

Pour ce qui est de la communication reseau , j'ai vu un shield wifi.
Tu aurais le sans fil ET le reseau en un seul module.

http://www.asynclabs.com/store?page=shop.product_details&flypage=flypage.tpl&product_id=26&category_id=6

Pour les sonde de type DS18B20 elles se pilote avec un seul fil (One Wire Bus)

Pour ce qui est de multiplier les sorties et entrées "numerique" (On ou Off) il existe les composant nommés Shitf Register.

Avec 3 fil tu peux créer 8 sortie avec un 74HC595 et 8 entrée avec un CD4021

Shift Out : http://www.arduino.cc/en/Tutorial/ShiftOut
Shift In : http://www.arduino.cc/en/Tutorial/ShiftIn

Idem pour le LCD tu peux réduire le nombre de pin utilisées en le plaçant derrière un 74HC595 (3 fils) ou prendre un lcd serie.

Tu auras peut être aussi un problème d'espace pour ton programme.

Pour finir , un mega serait un plus en effet :slight_smile: (il me reste 3 pin ligne sur mon projet avec un 328)

Voila j'espère t'avoir eclairé

regarde un peu du coté de la seeeduino stalker (http://www.seeedstudio.com/depot/seeeduino-stalker-p-600.html)
C'est une arduino 168 :frowning: mais elle embarque un lecteur de SD-Card, un module RTC, et un socket pour XBee :slight_smile:
Tu peux t'en servir de shield ou seul. (doc: http://www.seeedstudio.com/depot/datasheet/Seeeduino_Stalker.pdf)
Couplée à un shield wifi, des Shitf Register (voire I/O expander en I2C), comme le propose Poliben, je pense que ça peut le faire pour ton cas.
Le lecteur de SD-Card "consomme" 4 pins de l'arduino, le RTC est sur les 2 pins I2C.

Gromain59

Sympa :slight_smile: merci pour ces infos, ces liens, et ces éclaircissements !
Ca me fait pas mal de nouveaux trucs à potasser ;D
La seeeduino stalker parait assez séduisante en effet.

@+
Benoit

Même si la stalker semble être sympa, je te conseille quand même une mega car le code peut devenir important pour tes evolution future: CO2 etc ..et puis avoir plusieurs liaisons série est pratique pour l'affichage LCD, ca évite beaucoup de connexions et de code. J'ai testé un systéme similaire avec quelques différences pour les sondes. Maintenant il sert à un aquarium. Attention aussi au DCF77 avec le XBEE car dans mon cas ca marche à condition que le DCF soit suffisamment éloigné du module XBee. Et puis tu voudra probablement le niveau d'eau, augmenter le nombre de relais...
Un détail aussi, pour actionner le 220, si c'était a refaire j'utiliserais des relais SSR ce qui simplifie le montage.

Bon courage .

Merci pour tous ces précieux conseils. Comme je suis vraiment un grand débutant, je crois que je vais commencer par me faire la main avec les capteurs et la gestion des relais et mettre de coté la transmission wireless des données.

Dans un premier temps j'achète une duemilanove et quand je serai bien au point j'envisagerai la mega et la transmission des données. Une question peut être idiote (je pense connaitre la réponse mais bon), Il n'y aura pas de problème de communication entre la duemilanove et la mega (si j'en achète une par la suite ) ?

Merci encore
Benoit

Aucun soucis de compatibilité. :wink:

Poliben, j'étais exactement dans le même cas que toi avec aucune compétence en électronique au départ et des station météo avec un système bâtard. Donc tu verra pour ce que tu veux faire, c'est très simple, la mega n'ajoute aucune difficulté et tu en trouvera des copie sur ebay pour pas cher.

Très très intéressant comme projet, tien nous au courant !!!

Hello :slight_smile:

Bon, j'ai reçu il y a quelques jours la 2009... je me suis fait la main avec les différents tutoriels .... et ma première impression est que tout ceci ne semble pas très compliqué :slight_smile: Je n'ai jamais fait de C mais j'ai pratiqué pas mal le PHP et même si c'est différent, finalement la partie code ne me pose pas trop de problème pour le moment(même si je sais que ce que j'ai fait est très très basique) ::slight_smile: J'ai commencé mon propre code et j'arrive à afficher température (DS18B20) et ainsi que la date et l'heure (Horloge DS1307) sur un LCD ... ç'est pas grand chose mais c'est déjà un début :slight_smile:

La prochaine étape lorsque je les aurai reçu sera de tester le TSL230R avec les relais !

@Startx : j'ai commandé une mega !

Par contre, depuis hier soir j'ai un soucis et je crois que j'ai fait le gros boulet >:( J'était tellement content de mon premier montage que j'ai voulu le faire fonctionner en autonome dans la serre (je ne l'avais utilisé que sur l'USB jusque là). Je n'avais qu'une alim 16V 500mA (que j'ai vérifiée avec mon multimètre). Étant donné le voltage max indiqué est 20V, je l'ai branché une première fois, tout fonctionnait. Je l'ai débranché pour modifier le code, j'ai vérifié que c'était ok avec l'USB puis je l'ai rebranché sur mon alim (moins d'une 10aine de seconde car j'ai vu qu'il y avait un soucis) ... et depuis plus rien

Quand je reboot l'arduino ... la LED du pin 13 ne clignote plus (il y a seulement les diodes Tx et Rx
Quand je veux uploader un sketch... j'ai le fameux message d'erreur

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

et pour finir il m'a semblé percevoir une légère odeur de bakélite cramée >:( J'ai bien peur d'avoir réussi l'exploit de cramer ma première arduino en moins d'une semaine >:(

Est ce que vous avez une idée de ce que je peux tenter ou elle est morte ? (pourtant j'ai bien vérifié l'alim avant de m'en servir, elle était bien en dessous de 20V)

Enfin, me reste plus qu'à attendre la mega et ne pas refaire la boulette !

@+
Benoit

Re tout le monde :slight_smile:

Bon, j'ai réglé les problèmes que j'évoquais plus haut et j'ai repris mes essais. pas de problème majeur avec les capteurs...

Par contre je reviens vers vous car je suis un peu perdu avec les modules Xbee (série 1). En mode transparent j'arrive à peu près à envoyer les températures d'un arduino à l'autre. Là ou ça pèche c'est en mode API, comme je l'ai dit au début de ce post, je suis un grand débutant. J'ai lu beaucoup concernant les modules Xbee, leur configuration (là aucun soucis ils communiquent bien et sont bien configurés). J'ai également fait la plupart des tutoriels concernant la librairie Xbee-arduino. Mais finalement, plus j'en fait et plus je m'embrouille, notamment sur l'utilisation du tableau "payload".

Est ce que vous auriez des conseils ou des liens avec des exemples tout simple comme envoyer une chaine de caractère d'un xbee à l'autre et l'afficher dans la console du récepteur. vraiment un truc très basique mais qui m'aiderait à comprendre le fonctionnement des "packets".

Voilà, par avance Merci ! et moi, je retourne à ma lecture :wink:

@+
poliben

c'est ca que tu cherches ??
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1249684776

Mais tu veux piloter un module Xbee sans arduino ?
Perso j'utilise la librairie messenger em mode série et ca fonctionne nickel.

Startx

Hello,

Désolé pour ma réponse tardive j'ai été un peu booké ces jours -ci. Merci pour ta réponse, mais finalement à force de lecture et de persévérance j'ai fini par comprendre le fonctionnement :slight_smile:

Ça transmet nickel :slight_smile: Les températures, et la luminosité en Lux pour le moment, ce WeekEnd je m'attaque à l'humidité relative et je teste l'ethernet shield.

Apparemment j'ai vu sur la partie internationale du forum qu'on pouvait utiliser le slot SD (que j'ai rajouté dessus) sans modification du hardware de la carte avec la librairie SDcardSDlog. Quelqu'un peut confirmer ??

Mon projet a bien avancé :slight_smile: , je posterai bientôt photos et captures d'écrans des logs.

Deux petites questions en passant.

Avec les sondes de température DS18B20, j'ai de façon sporadique une température de 85.00° relevée à la place de la température réelle. Quelqu'un a déjà eu ce soucis ? Ça n'est pas vraiment un problème car je ne sauvegarde pas la donnée, lorsque cela se produit, mais j'aimerai comprendre (je vais chercher, je n'ai pas encore regardé si c'est un problème récurent )

Dernière petite question, j'ai des module Xbee série 1 Ce sont seulement des 1 mW et j'ai l'impression que la portée est bien moindre que celle annoncée dans les datasheets. Ma serre est à une trentaine de mètres de la maison (avec des murs en pierre). Je crois que je vais être obligé de prendre des 60mW, mais avant d'investir dedans (vu qu'ils ne sont pas donnés quand même) j'aimerai savoir si d'après vous leur portée sera suffisante (ils donnent 300m en milieu urbain je crois donc ça devrait aller ?)

Voilou,

Merci encore Startx

@+
Poliben

Re tous :slight_smile:

Ah y est ! Tout fonctionne parfaitement ! :slight_smile: Auto réponse, pour ceux qui rencontreraient les même problèmes.

Pour les DS18B20 qui renvoient la température 85.00°C, il suffit d'ajouter un délais plus important entre le moment ou on envoie la requête pour récupérer les températures et le moment ou on l'affiche (j'ai mis un délais de 2000µS et ça fonctionne très bien). D'après ce que j'ai lu, on peut aussi diminuer la résistance de pull-up de 4.7kOhm (ne pas mettre moins de 1k), mais je n'ai pas testé.

Pour le problème de la portée des modules Xbee Serie 1, j'ai réduit la vitesse à 2400bauds et ça passe impec :slight_smile: (j'ai mesuré, il y a 50 m et 2 murs en pierre)

voici un petit morceau de log, je posterai des photos lorsque le montage sera un peu plus propre ::slight_smile:

Suivi climatique de la serre
Reception donnees
Reception OK

Dim 04 07 2010   06:50:01   
Temp 1 : 35.19 C Temp 2 : 29.44 C
Mini : 29.50 C Maxi : 35.31 C

Luminance :  8376 Lux    Humidite relative :72.72 %

Temp Ext : 28.81
Mini : 28.75 Maxi : 28.75


Reception donnees
Reception OK

Dim 04 07 2010   06:50:15   
Temp 1 : 35.00 C Temp 2 : 29.38 C
Mini : 29.44 C Maxi : 35.31 C

Luminance :  8376 Lux   Humidite relative :68.45 %

Temp Ext : 28.81 C
Mini : 28.75 C Maxi : 28.81 C

Je m'attaque à l'ethernet maintent pour stocker tout ça sur mon site web :slight_smile:

@+

Poliben

Bravo, beau projet !

churchill

Salut tout le monde,

Je remonte mon sujet initial car mon projet est presque achevé. Je dis presque car je pense que je le ferai évoluer au fur et à mesure de mes besoin. J'ai finalement du investir dans des modules xbee 60mW car la portée des 1mW n'était pas suffisante.

Coté serre, il y a une 2009, 3 sondes de température DS18B20 (1 extérieure, 2 intérieures), un capteur de lumière TSL230R et un capteur d'hygrométrie HIH4030.

Coté maison, une mega avec, le shield ethernet officiel, modifié pour pouvoir utilisé le slot SD qui est dessus, une horloge RTC (mais pas DCF) DS1307, un LCD et un buzzer pour l'alarme de température sonore. L'arduino m'envoie un mail dès que les températrures descendent au dessous ou dépasse un seuil critique.

Pour le serveur web, j'utilise les librairies Fat16 et TinyWebServer. Dans une premier temps, je stockais tous les fichiers, php et javascript directement sur la carte SD de l'arduino mais ça prenait de la place inutilement et pas forcément évident de mettre à jour ces fichiers. Donc je les stocke tous sur ma page perso free et n'utilise le serveur de l'arduino que pour aller chercher les données sauvegardées (toutes les minutes) sur la carte SD.

Comme une image vaut mieux qu'un long discourt voici 2 photos de ma réalisation :

Et une capture de l'interface Web, qui est encore très basique, mais je travaille dessus. Pour les graphiques, j'utilise la librairie javascript Flot pour JQuery. Je la trouve assez sympa, et assez facilement "customisable" avec de nombreuses options de zoom et de graphiques. Un plus elle gère les timestamp et transforme et adapte automatiquement les échelles de temps.

P.S. : Un problème cependant, l'ethernet shield plante assez régulièrement (1 fois par 24h en moyenne) Il y a pas mal d'info la dessus :
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1238295170/30
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1225354009/29#29, etc...
J'ai essayé les solutions évoquées mais ça ne semble pas vraiment résoudre le problème, même s'il me semble qu'elle plante moins souvent :-/

Un corolaire je pense, l'envoi automatique de mail en cas de forte ou très basse température ne fonctionne plus, faut que je me penche là dessus.

un mot: Bravo !
beau mélange de techno mis en oeuvre, et qui marche !
Pour ton problème de plantage d'ethernet shield, peut-être est-ce dû à un nombre de requêtes simultanées trop importantes ? Il y a une limitation à 4 sockets ouverts en même temps.

Gromain

Superbe boulot Poliben, ca fait plaisir aussi de te trouver sur d'autre forums. :sunglasses:
Même si finalement le but est toujours le même! :wink:

Merci :slight_smile:

Je me demande si le plantage de l'ethernet shield ne vient pas plutôt de la librairie Fat16 et de la carte SD en fait. Il me semble qu'il plante systématiquement quand mon fichier de données atteint la taille de 32ko (un fichier par jour du type 20100807.txt). Je ne me souviens pas avoir lu que Fat16 ne gérait que des fichiers de moins de 32ko ni qu'il y avait une limitation sur la taille (excepté le format 8.3 dans les noms de fichier). Je fais dorénavant qu'une sauvegarde de données toutes les 2 minutes, ce qui est largement suffisant, et devrait réduire le fichier journalier à moins de 32ko ... on verra bien, je posterai de toute façon ce qu'il en est.

@+
Benoit

Je ne sais pas si c'est possible à utiliser pour toi, mais apparemment il existe une librairie Fat32 pour l'arduino :
http://code.google.com/p/sdfatlib/