[Projet]Serre

Bonjours a tous, je me présente je m'appel james et j'ai 23 ans.
Je commence dans la programmation arduino (un peut compliqué le début).
Pour ma serre je vais avoir:

-Arduino duemilanové ou mega (cela dépendra)
-2x capteur de temperature LM35DZ
-1x SFR05 capteur ultrason
-1x Capteur DHT11 Digital Temperature Humidity Sensor Module *
-1x DS1302 Real Time Clock *
-1x SD Card Module Slot Socket Reader*
-1x MWC MultiWii Flight Control Board LCD Debugger *
-1x LCD 2x16 commandé en 4bit
-1x 4-Channel Relay Shield Module *
-1x Light Sensor Photoresistor Module for Arduino *

*Tous reçu
Voila pour la partie capteur.

Pour commencer j'ai bracher un par un mes capteurs j'arrive a lire les données
Pour la sonde de température, j'arrive a allumer une LED si la temperature dépasse une certaine valeur.
/1 J'aimerais pouvoir faire varier la vitesse d'un ventilateur en fonction de la temperature.

Pour le capteur SFR05,qui servira pour le niveau d'eau d'un cuve, j'arrive a afficher la distance en CM.
J'ai un petit soucis au niveau affichage du lcd car si par exemple la mesure et 158cm et qu'elle passe à 38cm, l'afficheur va mettre 38cmm et pour 5 cm, 5cmmm
/2Ceci etant un soucis mineur vu que j'aimerais afficher un barregraphe pour une meilleur lecture avec une led qui s'allume si le niveau passe un certain seuil.

Voila pour le moment si vous voulez que je mette les codes dites le moi.

Merci d'avance a ceux qui pourrons m'aidez

EDIT: il me semble que je me suit tromper de rubrique...

Bonjour Snyp,

/1 J'aimerais pouvoir faire varier la vitesse d'un ventilateur en fonction de la temperature.

Pour la variation de vitesse, il faudrait connaître le type de moteur de ton ventillateur !

J'ai un petit soucis au niveau affichage du lcd car si par exemple la mesure et 158cm et qu'elle passe à 38cm, l'afficheur va mettre 38cmm et pour 5 cm, 5cmmm

les "m" supplémentaires proviennent de ton affichage précédent car la ligne était plus longue. Tu dois :

  • compléter ta ligne d'affichage de blancs pour effacer toute trace de l'affichage précédent,
  • effacer complétement ta ligne d'affichage avant l'envoi de ton nouveau message

/2Ceci etant un soucis mineur vu que j'aimerais afficher un barregraphe pour une meilleur lecture avec une led qui s'allume si le niveau passe un certain seuil.

ok mais où est le problème ?

icare

1/ Ce serais des ventilateurs de pc 3 ou 4 fils. J'ai des C9013 H548 en transistor

2/ Il suffirait que dand mon void loop je rajoute un lcd.clear?
Pour le barregraphe je ne le ferais pas temps que je ne comprendrais pas comment l'afficheur fonctionne.
Je n'est pas envie de sauter d'étape pour ne rien oublier.

Cordialement

Bonsoir,

Snyp:
2/ Il suffirait que dand mon void loop je rajoute un lcd.clear?
Pour le barregraphe je ne le ferais pas temps que je ne comprendrais pas comment l'afficheur fonctionne.

Oui avec un lcd;clear est une des solutions

Tu utilises quel type d'afficheur (I2C, série ou 4/8 fils + référence)?
icare

Coucou ,
alors avec la fonction lcd.clear sa marche par contre l'ecran clignote ce qui est normal je pense.
Pour l'instant j'ai un lcd 4fils mais je vais bientot recevoir mon lcd serial (+ - data).
Donc maintenant que j'ai compris sa, j'aimerais afficher la distance avec un barregraphe valeur comprise entre 0 et 100cm (0 étant mon reservoir plein et 100 reservoir vide).
Faut-il que j'utilise un librarie special ou arduino c'est le gérer ?

Bonjour,

Snyp:
alors avec la fonction lcd.clear sa marche par contre l'ecran clignote ce qui est normal je pense.

Oui c'est normal, mais en affichant 3 caractères blancs (space) en fin le phénomène disparaît.
exemple :
200 cm
0 cm
il va afficher :
0 cmcm
si tu affiches
0 cm___(_ pour space)
il va afficher :
0 cm

Snyp:
Faut-il que j'utilise un librarie special ou arduino c'est le gérer ?

Non pas besoin de librairie spéciale celle de l'écran suffira (pour un lcd série bien sur).
Ton barregraphe va afficher des rectangles pleins plus éventuellement des portions de rectangles pleins si tu programmes des caractères spéciaux sur ton lcd

Snyp:
Pour l'instant j'ai un lcd 4fils mais je vais bientot recevoir mon lcd serial (+ - data).

Sur la duemilanove, il n'y a qu'un port série partagé avec le téléversement (c'est mignon le canadien) alors soit tu prends une mega (4 ports séries) ou tu utilises des ports séries virtuels sur la "2009" avec la librairie qui va bien. Faire une recherche sur le forum, le sujet a été abordé moult fois.

icare

Salut au sujet de ton ventilateur je ne comprend pas la raison de le reguler. Tu vas etre en presence d'un ventilo qui peut tourner en permanence et par souci de consommation ne serait il pas souhaitable de le faire tourner à fond pendant peu de temps et de le couper afin de reguler ta temperature.

As tu prevu un chauffage pour nos periodes hivernales ?

Salut caco74,
Pour la regulation de temperature il vaut mieux faire tourner un ventilo doucement si la difference de temperature est petite, je prefere.( BEP MECSI)
Ma premiere serre sera d'interieur pour avoiur des fraises en hiver??? xD( BEP MECSI)

bonjour,
à la place du dth11, je mettrais un 21 plus fiable.
ca ressemble un peu à une couveuse en fait, regarde le projet, ca pourrait te donner des idées :wink:
http://arduino.cc/forum/index.php/topic,102352.0.html

Merci je vais regarder ça :wink:

Bonjours tous le monde,
j'ai reçu ma commande !!! J'ai essayé tous un par un ça marche nickel sauf le rtc.
Je m'expliqe, j'arrive pas a configurer l'heure.Voici le code

// DS1302_Serial_Easy (C)2010 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// A quick demo of how to use my DS1302-library to 
// quickly send time and date information over a serial link
//
// I assume you know how to connect the DS1302.
// DS1302:  CE pin    -> Arduino Digital 2
//          I/O pin   -> Arduino Digital 3
//          SCLK pin  -> Arduino Digital 4

#include <DS1302.h>

// Init the DS1302
DS1302 rtc(2, 3, 4);

void setup()
{
// Set the clock to run-mode, and disable the write protection
  rtc.halt(false);
  rtc.writeProtect(false);

// Setup Serial connection
  Serial.begin(9600);

// The following lines can be commented out to use the values already stored in the DS1302
  rtc.setDOW(THURSDAY);        // Set Day-of-Week to FRIDAY
  rtc.setTime(01, 19, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(10, 4, 2012);   // Set the date to August 6th, 2010
}

void loop()
{
// Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");

// Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

// Send time
  Serial.println(rtc.getTimeStr());

// Wait one second before repeating :)
  delay (1000);
}

Je ne vois pas ce qu'il cloche, j'ai passé l'après-midi a chercher differente lib.

Ps: source Electronics - Henning Karlsen

Bonjour,

C'est quoi le problème ?
Sans configurer l'heure, ton horloge marche-t-elle correctement ?
icare

Salut icare,
Oui oui sa marche par contre je c'est pas comment regler la date et l'heure.
Voici ce que m'affiche le moniteur:

Saturday 01.03.2006 -- 10:57:73
Saturday 01.03.2006 -- 10:57:74
Saturday 01.03.2006 -- 10:57:75
Saturday 01.03.2006 -- 10:57:76
Saturday 01.03.2006 -- 10:57:77
Saturday 01.03.2006 -- 10:57:78
Saturday 01.03.2006 -- 10:57:79
Saturday 01.03.2006 -- 10:58:40
Saturday 01.03.2006 -- 10:58:41

Pour regler l'heure et la date, si j'ai bien compris je doit modifier cette partie du code:

// The following lines can be commented out to use the values already stored in the DS1302
  rtc.setDOW(THURSDAY);        // Set Day-of-Week to FRIDAY
  rtc.setTime(01, 19, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(10, 4, 2012);   // Set the date to August 6th, 2010

Puis les commenter, mais sans succes.
Merci encore icare et les autres de m'aider

EDIT: c'est bon j'ai trouver. Pour ce qui aurais le meme module rtc que moi il suffit de l'alimenter en 5v lors du téléversement, et de le remettre en 3v3 apres....

Snyp:
Salut icare,
Oui oui sa marche par contre je c'est pas comment regler la date et l'heure.
Voici ce que m'affiche le moniteur:

Saturday 01.03.2006 -- 10:57:73

Saturday 01.03.2006 -- 10:57:74
Saturday 01.03.2006 -- 10:57:75
Saturday 01.03.2006 -- 10:57:76
Saturday 01.03.2006 -- 10:57:77
Saturday 01.03.2006 -- 10:57:78
Saturday 01.03.2006 -- 10:57:79
Saturday 01.03.2006 -- 10:58:40
Saturday 01.03.2006 -- 10:58:41



Pour regler l'heure et la date, si j'ai bien compris je doit modifier cette partie du code:


// The following lines can be commented out to use the values already stored in the DS1302
  rtc.setDOW(THURSDAY);        // Set Day-of-Week to FRIDAY
  rtc.setTime(01, 19, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(10, 4, 2012);   // Set the date to August 6th, 2010




Puis les commenter, mais sans succes.
Merci encore icare et les autres de m'aider

bonjour
déjà je suis etonné qu'il y ai des secondes superieures à 59 ?
ça passe de de 79 à 40 ?
pour ce qui est de la mise à l'heure , je creerais un sketch ne faisant que cela et j'incterais apres mise à l'heure le scketch de lecture débarassé de la partie mise à l'heure (quitte ensuite à prevoir une routine de mise à l'heure dans le sketch definitif)