Go Down

Topic: SPAM de SMS avec programme gsm (Read 784 times) previous topic - next topic

SebastienB19

Feb 03, 2015, 09:45 am Last Edit: Feb 03, 2015, 09:46 am by SebastienB19
Bonjour a tous,aujourd'hui je viens demander de l'aide sur ce forum.Donc voila je suis lycéen et j'apprends arduino et j'ai un projet a realiser pour la fin de l'année.Je suis en train de cree un programme pour que quand l'eau(dans une cuve a eau) atteint une certaine temperature,la gsm envoie un message automatiquement a un utilisateur qui puisse decongeler la cuve.Donc mon probleme est le suivant:quand l'eau atteint les 26 degrés(c'est un test) ca envoie bien les messages mais ça spam de message 20 a la seconde :smiley-eek-blue:,je viens vous demander mon aide
PS: je suis débutant ne me critiquez pas

#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>
#include <Ultrasonic.h>
#include <OneWire.h> // Inclusion de la librairie OneWire
#include <SoftwareSerial.h>
#include <SoftwareSerial.h>
#include <String.h>


#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define TEAL 0x6


Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();


OneWire ds(5); // Création de l'objet OneWire ds
Ultrasonic ultrasonic(4);
SoftwareSerial SIM900(7, 8);
SoftwareSerial mySerial(7,8);
char incoming_char=0;
 
// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp){
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté
 
  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }
   
  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur
 
  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur
 
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
   
  ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(800);             // Et on attend la fin de la mesure
   
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad
 
  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data = ds.read();       // Et on stock les octets reçus
   
  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625;
   
  // Pas d'erreur
  return true;
}
 
// setup()
void setup() {
  mySerial.begin(19200);             
  Serial.begin(19200);   
 
  lcd.begin(16, 2);
}
 
// loop()
void loop() {
 
  lcd.setBacklight(0x6);
 
  float temp;
   
  // Lit la température ambiante à ~1Hz
  if(getTemperature(&temp)) {
     
    // Affiche la température
    lcd.setCursor(0,0);
    lcd.print("Temp: ");
    lcd.print(temp);
    lcd.print((char)223); // caractère °
    lcd.print('C');
   // lcd.println();
  }
{
  lcd.setCursor(0,1);
  lcd.print("Volume: ");
  ultrasonic.MeasureInCentimeters();
  delay(150);
  lcd.print(ultrasonic.RangeInCentimeters,DEC); 
  lcd.println("cm            ");
}

boolean risquegel=false;

if (temp > 26) {  //normal que se soit a 26 degres nous testons
  risquegel = true;

  else risquegel = false;
 


if (risquegel = true)
  {
    mySerial.print("AT+CMGF=1\r");   
    delay(5000);
    mySerial.println("AT + CMGS = \"+*********\"");
    delay(5000);
    mySerial.println("Attention l'eau risque de geler");
    mySerial.println((char)26);
    delay(5000);
    mySerial.println();
  }
 

B@tto

Code: [Select]
if (temp > 26) {  //normal que se soit a 26 degres nous testons
 risquegel = true;
}  
 else {
risquegel = false;
messageEnvoye=false
}
 


if (risquegel = true && messageEnvoye==false)
 {
   mySerial.print("AT+CMGF=1\r");    
   delay(5000);
   mySerial.println("AT + CMGS = \"+*********\"");
   delay(5000);
   mySerial.println("Attention l'eau risque de geler");
   mySerial.println((char)26);
   delay(5000);
   mySerial.println();
  messageEnvoye=true; 
}
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

SebastienB19

merci beaucoup de ton aide ! j'ai pu résoudre mon problème et passer a l'étape suivante de mon projet :)

Go Up