Commit 81478c7d authored by Mamadou diallo's avatar Mamadou diallo

add gsm on project

parent a9e26cd0
......@@ -4,6 +4,8 @@
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
SoftwareSerial * gsm;
// Definition des pins des capteurs et actionneurs
#define capteur_hum_sol A1 //capteur humidite sol a connecter sur le A0
......@@ -14,8 +16,8 @@
//Déclaration des variables du programme
int valeur_hum_sol = 0; // on stocke les valeurs lu par le capteur d'humidité sol
int heure = 19;
int minut = 9;
int heure = 00;
int minut = 0;
int Switch = 10; //switch boutton poussoir encoder
byte portA = 11; //encoder invertion fritzing 6
......@@ -44,6 +46,27 @@ void setup ()
delay(1000);
lcd.clear();
//GSM
gsm = new SoftwareSerial(8, 7);
gsm->begin(9600);
gsm->print("pin state low\n");
delay(3000); // give time for GSM module to register on network.
gsm->println("AT+CMGF=1"); // set SMS mode to text
delay(200);
gsm->println("AT+CNMI=2,2,0,0,0"); // Module de jeu pour envoyer des données SMS vers série dès réception
delay(200);
/*
gsm->println("AT+CMGF=1");// envoi du message
delay(500);
//Serial.println("AT+CMGS=\"46030329\"");
gsm->println(String("AT+CMGS=") + String("\"41080188") + String("\""));
delay(500);
gsm->print("systeme allumer");
delay(500);
gsm->write(26);
delay(500);
*/
pinMode(capteur_hum_sol, INPUT);
pinMode(capteur_reservoir, INPUT);
pinMode(portA, INPUT);
......@@ -77,29 +100,70 @@ void loop ()
{
// on lit l'heure sur le rtc
DateTime now = rtc.now();
//on lance le debug pour verifier si il ya pas de probleme
// Debug();
// Debug();
control();
affiche_lcd();
//on test si on n'a recu un message
if (gsm->available() > 0)
{
if (gsm->read() == '#')
{
delay(10);
if (gsm->read() == 'a') {
if (reservoir_test() == true)
{
arroser();
sms("Arrosage terminer avec succes");
}
else // sinon on envoie un message alert que le reservoir est vide
{
sms("Reservoir vide");
}
}
}
}
affiche_lcd();
//on test si il est heure d'arroser
if ((now.hour() == heure ) && (now.minute() == minut))
else if ((now.hour() == heure ) && (now.minute() == minut))
{
if ( digitalRead(capteur_reservoir) == 1) // on test si le reservoir d'eau est remplit
if (reservoir_test() == true)
{
arroser();
lcd.setCursor(0, 1);
lcd.print("fin arrosage");
sms("Arrosage terminer avec succes");
}
else // sinon on envoie un message alert que le reservoir est vide
{
lcd.setCursor(0, 1);
lcd.print("reservoir vide");
sms("Reservoir vide");
}
/*
if ( digitalRead(capteur_reservoir) == 1) // on test si le reservoir d'eau est remplit
{
arroser();
lcd.setCursor(0, 1);
lcd.print("fin arrosage");
}
else // sinon on envoie un message alert que le reservoir est vide
{
lcd.setCursor(0, 1);
lcd.print("reservoir vide");
}
*/
}
}
......@@ -191,6 +255,31 @@ void control() {
}
bool reservoir_test()
{
if (digitalRead(capteur_reservoir) == 1)
{
return true;
}
else
{
return false;
}
}
void sms( String texte)
{
gsm->println("AT+CMGF=1");// envoi du message
delay(500);
//Serial.println("AT+CMGS=\"46030329\"");
gsm->println(String("AT+CMGS=") + String("\"41080188") + String("\""));
delay(500);
gsm->print(texte);
delay(500);
gsm->write(26);
delay(500);
}
////////////////////////////////////// fonction affichage //////////////////////////////////////
void affiche_lcd()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment