Ligne 77 : | Ligne 77 : | ||
La fonction "int" permet juste de nommer une sortie du relais (par exemple la sortie 2 correspond au ventilateur). | La fonction "int" permet juste de nommer une sortie du relais (par exemple la sortie 2 correspond au ventilateur). | ||
+ | |||
<u>'''Partie 2: Initialisation des variables'''</u> | <u>'''Partie 2: Initialisation des variables'''</u> | ||
Ligne 94 : | Ligne 95 : | ||
''veut dire: "sur la sortie de la broche nommée "batterie", mettre une tension de 5V"'' | ''veut dire: "sur la sortie de la broche nommée "batterie", mettre une tension de 5V"'' | ||
− | <u>Partie 3: Ecriture de la boucle</u> | + | Cette parti sert à |
+ | |||
+ | |||
+ | <u>'''Partie 3: Ecriture de la boucle'''</u> | ||
+ | |||
+ | |||
+ | <u>'''Code complet:'''</u> | ||
+ | |||
+ | const int sensorPin = A0; | ||
+ | |||
+ | int batterie = 5; | ||
+ | |||
+ | int hydro = 4; | ||
+ | |||
+ | int bulleur = 3; | ||
+ | |||
+ | int ventilateur = 2; | ||
+ | |||
+ | |||
+ | void setup() | ||
+ | |||
+ | { | ||
+ | |||
+ | Serial.begin(9600); //open a serial port | ||
+ | |||
+ | pinMode(batterie,OUTPUT); | ||
+ | |||
+ | digitalWrite(batterie, HIGH); | ||
+ | |||
+ | pinMode(hydro,OUTPUT); | ||
+ | |||
+ | digitalWrite(hydro, HIGH); | ||
+ | |||
+ | pinMode(bulleur,OUTPUT); | ||
+ | |||
+ | digitalWrite(bulleur, HIGH); | ||
+ | |||
+ | pinMode(ventilateur,OUTPUT); | ||
+ | |||
+ | digitalWrite(ventilateur, HIGH); | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | |||
+ | { | ||
+ | |||
+ | digitalWrite(batterie, LOW); | ||
+ | |||
+ | delay(300000); | ||
+ | |||
+ | digitalWrite(batterie, HIGH); | ||
+ | |||
+ | |||
+ | digitalWrite(hydro, LOW); | ||
+ | |||
+ | delay(600000); | ||
+ | |||
+ | digitalWrite(hydro, HIGH); | ||
+ | |||
+ | |||
+ | digitalWrite(bulleur, LOW); | ||
+ | |||
+ | delay(1200000); | ||
+ | |||
+ | digitalWrite(bulleur, HIGH); | ||
+ | |||
+ | int sensorVal = analogRead(sensorPin); | ||
+ | |||
+ | float voltage = (sensorVal/1024.0)*5.0; | ||
+ | |||
+ | float temperature = (voltage - .5) * 100+35; | ||
+ | |||
+ | Serial.print("temperature: "); | ||
+ | |||
+ | Serial.print(temperature); | ||
+ | |||
+ | if(temperature > 25){ | ||
+ | |||
+ | digitalWrite(ventilateur, LOW); | ||
+ | |||
+ | delay(600000); | ||
+ | |||
+ | digitalWrite(ventilateur, HIGH); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
− | < | + | {{Warning|Le moindre point virgule ou la moindre accolade sont importants, veiller}}<br /> |
|Step_Picture_00=Pilotage_de_l'hydroponie_via_Arduino_Capture.PNG | |Step_Picture_00=Pilotage_de_l'hydroponie_via_Arduino_Capture.PNG | ||
|Step_Picture_01=Pilotage_de_l'hydroponie_via_Arduino_Capture1.PNG | |Step_Picture_01=Pilotage_de_l'hydroponie_via_Arduino_Capture1.PNG |
Tutorial de Cyprien Cayla | Catégories : Alimentation, Énergie
Ce tutoriel permet le pilotage d'une plantation hydroponique via un petit système électronique contrôlé par une carte Arduino, de l'assemblage des composants à l'écriture du programme de guidage. Cette installation a été étudiée et documentée lors d'une escale du Nomade des Mers à Taipei (Taïwan) et est dorénavant utilisée pour gérer le système hydroponique du bateau.
Ce tutoriel permet le pilotage d'une plantation hydroponique via un petit système électronique contrôlé par une carte Arduino, de l'assemblage des composants à l'écriture du programme de guidage. Cette installation a été étudiée et documentée lors d'une escale du Nomade des Mers à Taipei (Taïwan) et est dorénavant utilisée pour gérer le système hydroponique du bateau.
Cette installation est spécialement utile lorsque l'on dispose d'une source d'énergie limitée ou inconstante car elle permet de répartir l'énergie entre les différents composants en réduisant au maximum les pertes.
On peut ainsi grâce à une certaine alternance:
- Contrôler la température de la pièce grâce au déclenchement ou pas d'un petit ventilateur d’appoint
- Contrôler le fonctionnement des différentes pompes à eau
- Contrôler la charge des batteries afin de stocker l'énergie non utilisée
Pour le circuit électronique:
- un fer à souder
- du fil d'étain
Pour la programmation:
-le programme Arduino, facilement téléchargeable gratuitement sur le site Arduino (https://www.arduino.cc/en/Main/Software#)
Partie 1: Attribution des variables
Cette partie consiste à définir les constantes et à nommer les relais.
La fonction "const int" permet de créer une constante qui sera la valeur lue par le capteur en A0.
La fonction "int" permet juste de nommer une sortie du relais (par exemple la sortie 2 correspond au ventilateur).
Partie 2: Initialisation des variables
La fonction "Serial.begin" donne le débit de transfert de donnée en caractère par seconde (baud). 9600 est une valeur standard et est largement suffisante pour ce type de programme.
La fonction "PinMode" configure la broche choisi pour un certain comportement en entrée "INPUT" ou en sortie "OUTPUT" (ici en sortie).
La fonction "digitalWrite" permet de donner l'action à faire surla broche choisie avec le "PinMode". Elle mettra donc 5V de tension pour "HIGH" et 0V pour "LOW".
Par exemple:
pinMode(batterie,OUTPUT);
digitalWrite(batterie, HIGH);
veut dire: "sur la sortie de la broche nommée "batterie", mettre une tension de 5V"
Cette parti sert à
Partie 3: Ecriture de la boucle
Code complet:
const int sensorPin = A0;
int batterie = 5;
int hydro = 4;
int bulleur = 3;
int ventilateur = 2;
void setup()
{
Serial.begin(9600); //open a serial port
pinMode(batterie,OUTPUT);
digitalWrite(batterie, HIGH);
pinMode(hydro,OUTPUT);
digitalWrite(hydro, HIGH);
pinMode(bulleur,OUTPUT);
digitalWrite(bulleur, HIGH);
pinMode(ventilateur,OUTPUT);
digitalWrite(ventilateur, HIGH);
}
void loop()
{
digitalWrite(batterie, LOW);
delay(300000);
digitalWrite(batterie, HIGH);
digitalWrite(hydro, LOW);
delay(600000);
digitalWrite(hydro, HIGH);
digitalWrite(bulleur, LOW);
delay(1200000);
digitalWrite(bulleur, HIGH);
int sensorVal = analogRead(sensorPin);
float voltage = (sensorVal/1024.0)*5.0;
float temperature = (voltage - .5) * 100+35;
Serial.print("temperature: ");
Serial.print(temperature);
if(temperature > 25){
digitalWrite(ventilateur, LOW);
delay(600000);
digitalWrite(ventilateur, HIGH);
}
}
Draft
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #