Bonjour à tous,
Depuis quelques temps je me suis lancer dans la réalisation d'une "jardinnière connecté", ce produit aura de nombreuses fonctionnalités (arrosage auto, détection d'humidité sol, détection humidité & température air, panneaux solaires, pilotage à distance à l'aide d'un esp 8266).
Je ne suis pas programmeur de formation, j'ai un bagage technique plutôt dans la mécanique industrielle, c'est donc sans difficulté que j'ai réalisé la structure de mon produit (le proto en miniature).
Voilà quelques semaines que j'avance sur la parties électronique & programmation avec l'aide de personnes que je peux croiser sur le net. (et des différents autres projets que j'ai pu voir)
Alors venons en a mon problème ! Alors je souhaites faire de la "programmation modulaire" afin de ne pas avoir un programme de 800 lignes.
Pour le moment j'ai seulement programmer les fonctions arrosages (avec une simple tempo cela changera) & le capteur d'humidité sol.
et j'ai cette erreur :-/
exit status 1
Erreur de compilation pour la carte Generic ESP8266 Module
Je serais attentif a vos différentes remarques et questions, merci d'avance pour votre aide :-).
Programme "main"
#include <arduino.h>
#include "init_pompe.h" //inclue le .h qui permet d'inclure les fonctions du .ino
#include "init_capteur_humidite_sol.h"
#include "config.h"
// fonctionnement pompe
void loop () {
// quelques lignes pour faire des vérifications sur le moniteur série
Serial.println("moniteur pret");
Serial.print (PinPompe);
Serial.print("\n");
Serial.print (PinSensor);
Serial.print("\n");
// fonctionnement de la pompe
digitalWrite(PinPompe, LOW);
delay (1000); // temps ou la pompe fonctionne
digitalWrite (PinPompe, HIGH);
delay (1000); // temps ou la pompe ne fonctionne pas
// fonctionnement capteur humidite sol
int ValeurSensor = 0; // je pense qu'il faut déclarer les int ici et pas dans mon header, ils n'auront pas la "portée" pour agir dans ce programme
int pourcentage =0; // idem que le ValeurSensor je ne pense pas pouvoir le définir avec #define dans le header (j'ai testé)
int AfficheValeurEtPourcentage();
ValeurSensor = analogRead(PinSensor);
pourcentage = ConvertEnPercent(ValeurSensor);
AfficheValeurEtPourcentage();
delay(1000);
}
int ConvertEnPercent(int value){
int ValeurPorcentage = 0;
ValeurPorcentage = map(value, 370, 0, 0, 100);
return ValeurPorcentage;
}
Voici un config.h
void setup ()
{
Serial.begin(9600);
init_capteur_humidite_sol(PinSensor);
init_pompe(PinPompe);
}
init_capteur_humidite_sol.h
//capteur d'humidité du sol
#define PinSensor A0
void init_capteur_humidite_sol(int pin);
init_capteur_humidite_sol
#include "init_capteur_humidite_sol.h"
void init_capteur_humidite_sol(int pin){
int ValeurSensor = 0; // j'ai du remettre cette valeur dans la boucle, je pense que le int n'a pas une "portée" suffisante.
pinMode(pin, INPUT);
}
init_pompe.h
//ici les defines et les prototype des fonctions
#define PinPompe 14
void init_pompe(int pin);
init_pompe
#include "init_pompe.h"
void init_pompe(int pin) {
pinMode(pin, OUTPUT);
}