Projet arrosage automatique simple

Bonjour a tous,

Je vais commencer de suite par vous dire que je suis totalement novice dans le monde de la programmation malgré quelques lecture et vidéo sur le sujet.

J'ai pour projet de réaliser un petit arrosage automatique pour mon balcon.

J'ai a ma disposition une pompe d'aquarium, du tuyau souple, une arrivée d'eau, une prise électrique.

Le but étant de contrôler la pompe électroniquement avec un arduino.

Dans le titre j'ai marqué simple car je voudrais seulement que l'arrosage se déclenche a une heure précise peu importe la météo. (mes plantes sont a l'abris)

Dans la logique j'aimerais donc que la pompe se déclenche tout les jours a 18h pendant 1min.

J'ai fait des recherches sur internet et si j'ai bien suivi il va me falloir une carte arduino uno, une carte ds1307 couplé a celui-ci et un relais.

Arduino va permettre le déclencher l'action sur le relais qui lui va permettre d'activer la pompe et la ds1307 quand a elle vérifie le l'heure actuelle.

Seulement a partir de la je suis incapable d’écrire le programme qui gère cela.

Donc si quelqu'un parmi vous pouvez m'aider a finir se projet surtout au niveau programmation je lui en serait reconnaissant. Et accessoirement m'expliquer le fonctionnement du programme pour pouvoir être capable de le modifier pour l'hiver par exemple 1 jours sur 2

Par avance merci :)

hello ICI ou encore là

bonjour,
déjà avant de te lancer la dedans, commence par faire de petits programmes pour te familiariser.
avec le ds1307, il y a des exemples, donc fais les et tu vas comprendre rapidement comment faire.

un exemple trouvé comme ca, avant il faut le mettre à l’heure

#include <ds1307.h>
#include <Wire.h>

ds1307 DS1307;

uint8_t buffer[7]; // receiving buffer

void setup()
{
    Serial.begin(9600);
    Wire.begin();
    Serial.println("Real Time Clock module with DS1307 test sketch");

    DS1307.resume();   // turn on the internal clock
}

void loop()
{
    DS1307.getDate(buffer);

    Serial.print("Date(dd:mm:yy) ");
    Serial.print(buffer[4], DEC);    // day
    Serial.print(':');
    Serial.print(buffer[5], DEC);    // month
    Serial.print(':');
    Serial.print(buffer[6], DEC);    // year
    Serial.print(':');
    Serial.print(" Time(hh:mm:ss) ");
    Serial.print(buffer[2], DEC);    // hours
    Serial.print(':');
    Serial.print(buffer[1], DEC);    // minutes
    Serial.print(':');
    Serial.println(buffer[0], DEC);  // seconds

    delay(1000);
}

donc tu chope l’heure et minute, tu compare si heure est à 18 et minute à 0
si oui ===> relais allumé
si heure est à 18 et minute > à 0 ==> relais off

autre solution
si heure différent de 18 ET minute différent de 0 relais off sinon relais on

Ah oui ok je pensais pas que ça aller être aussi dur pour moi… je vais essayé de voir des petits tutos pour le ds1307 mais a mon avis c’est pas gagné

Merci en tout cas

L'utilisation d'une carte arduino est impératif ? Si non, ce projet peut être réaliser à l'aide d'un timer est d'un monostable.

Salut standboy,

j’avais d’abord pensé a un minuteur comme celui-ci : http://i59.servimg.com/u/f59/18/28/71/56/vellem10.jpg

Mais par rapport a la taille je me suis penché vers un arduino (je mettais imaginé lui imprimer en 3d un petit boitier) mais si effectivement la programmation me pose problème tant pis je vais pas m’embêter je fais mon montage avec le timer. Et je branche la pompe direct sur la prise timer

Bonjour

En premier lieu, oublie le ds1307 qui va dériver de plusieurs minutes par jour, et prends un ds3231.

+1 avec inforbarquee : commence "petit" par des tests unitaires de chaque composant. C'est comme ça qu'on apprend.

Achète tout de suite au moins DEUX arduino, DEUX horloges, DEUX relais, etc. Pour quelques euros, pas la peine de se retrouver coincé. Quand ton système sera en place, tu seras bien content d'avoir l'équipement en double pour bidouiller la version + 1.

Par la suite, tu trouveras plein de possibilités d'extension de ton système :

  • pourquoi pas une sonde de température et/ou une sonde d'humidité pour ajuster les dosages?
  • un capteur de niveau dans ta réserve d'eau pour éviter la marche à sec de la pompe ?
  • une petite alarme quand la réserve est vide ?
  • une gestion des quantités en fonction de la saison ?
  • un écran et des boutons pour modifier les quantités, sans avoir à tout démonter pour le rebrancher au PC et modifier le soft ?
  • un dosage d'apport d'engrais ?
  • un pilotage depuis ton smartphone?

Arduino s'apparente parfois à une drogue dure. Attention à la dépendance... :smiling_imp:

J'ai trouvé un truc sympa qui correspond a peu de chose prêt a ce que je recherche.

http://gilles.thebault.free.fr/spip.php?article53

En gros le fichier ds3231.h doit être au même endroit que le fichier "moncodearduino.ino"

en sachant que le fichier ds3231.h qui est dans l'article je ne le touche pas.

Maintenant il faudrait que je fasse le fichier .ino

Est-ce que je suis sur la bonne voie ou pas du tout :)

merci d'avance.

PS: bricoleau je vais acheter ce que tu m'as dit

Il faudrait comme même que tu sache ce que tu fait, sinon c'est de la bidouille.

L'erreur inlassablement faite c'est de foncer directement au code et c'est le meilleur moyen de se perdre.

Bonjour si j' ai bien compris tout ,

sur votre balcon vous avez a disposition : une prise en 220 V , une arrivée d' eau deja sous pression ?

si tel est le cas , il vous faudrait , acheter un boitier electrique etanche suffisament grand ( 10 emplacements ou plus ) pour y placer votr carte arduino + alimentation ( ou tansfo ) .

A la place d ' acheter une pompe qui plus est prend beaucoup de place , il vaudrait mieux simplement placer une electrovanne sur votre arrivée d' eau et en sortie placer votre tuyau souple qui irait alimenter un autre tuyau de goutte a goutte avec une sortie a chaque plante .

ce serait d' une part plus simple a mettre en place , plus facile a gerer electriquement , et moins cher avec une efficacité au top et pas de vibration ni bruit .

l ' electrovanne doit etre placée a l ' abri de la pluie , mais pas enfermée car elle a besoin de dissiper la chaleur .

cela reste tres facile a mettre en place , la plus grosse difficulté de ce systeme reside dans la gestion des alimentations electriques et donc le choix des bons produits .

De plus avec une electrovanne a la place d' une pompe , niveau securité c ' est quand meme plus sur car vous ne travaillerez pas en 220 v . seule les alimentations seront en entrée connectée sur le 220 v et elle seront enfermées dans le boitier etanche , donc risque tres minime .

au niveau de la programmation une relais qui enclenche l ' electrovanne a l ' heure desirée pendant la durée voulue et c ' est reglé .

Le top serait de trouver une electrovanne en 5 V , mais je ne sais pas si ca existe avec un debit approprié , ou une alimentation en 12 V ou 24 V ( pour EV ) ET 5 V ( pour arduino ) sinon faudra passer par 2 alimentations distinctes .

PS : - Un rapide tour sur gogole et j' ai trouvé ca : http://www.a4.fr/mini-electrovanne-laiton-4-5-a-6v.html

-j ' ai oublié de preciser qu il faut aussi installer entre l ' electrovanne et le robinet un filtre tres fin qu il faudra nettoyer quand vous voyez qu il est sale car sinon vous risquez de vous retrouvez avec des fuites , et a priori ces EV ne sont pas vraiment a demonter , souvent on perd le petit ressort et c ' est foutu .

il protegera a la fois l' EV et les sorties du goutte a goutte tres sensible aux obstructions. ce filtre me parait indispensable afin de garantir une certaine perenité dans le temps au projet .

Bonjour a tous,

Je reviens poster ici la solution que j’ai enfin trouver en m’amusant avec un kit arduino :slight_smile:

Donc pour le montage je l’ai réaliser comme ceci :

et pour le programme le voici :

#include <Wire.h>
#include "RTClib.h"

RTC_DS3231 rtc;

int relais = 7; //definition du pin N°7 comme connection avec mon relais

void setup () {
  
  Wire.begin(); //Démarrage de la librairie wire.h
  rtc.begin(); //Démarrage de la librairie RTClib.h
  pinMode(relais, OUTPUT); //definis relais comme sortie
  digitalWrite(relais, LOW);

   if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }
} /*//Si RTC ne fonctionne pas
  if (! rtc.begin()) {
    Serial.println("RTC ne fonctionne pas !");

    //Met à l'heure à date à laquelle le sketch est compilé
    //rtc.adjust(DateTime(__DATE__, __TIME__));
  }
}*/

void loop() {
  //Heure actuel
  DateTime now = rtc.now();

  //la pompe se déclenchera tout les jours à 19h30
  if (now.dayOfTheWeek() == 1, 2, 3, 4, 5, 6, 7 && now.hour() == 18 && now.minute() == 59) {
    //Day of week : 1 pour lundi, 2 pour mardi, ...
    digitalWrite(relais, HIGH);
    delay(180000); // 3 minutes
    //
  } 
  
  else {
    digitalWrite(relais, LOW);

  }

  delay(1000);
}

perso, je préfère arroser uniquement si la terre est sèche. Si ça peut en intéresser certains, j'anime un atelier gratuit sur le sujet au Fablab de St Quentin en Yvelines (sqylab) : https://www.sqylab.org/evenets/fabriquer-son-arrosage-automatique-avec-un-arduino/