Interpréter message reçu dans le moniteur série

Bonjour,

Je travaille sur un projet qui, pour faire court, doit envoyer un SMS lorsque la température du capteur arrive en dessous d'un seuil comme quoi l'eau risque de geler et pose la question si l'on souhaite vider la cuve ou pas.
Jusqu'à présent tout fonctionne, le message s'envoie et j'arrive à recevoir la réponse dans le moniteur série mais j'aimerai interpréter cette réponse, donc le "oui" écrit dans le moniteur série, pour activer un relais (simulation d'une commande avec un oui et non logique).

Donc j'aurais penser à un "truc" comme sa :

if Serial.read("oui");
  {
      digitalWrite(vanne, HIGH);
      delay(1000);      
      digitalWrite(vanne, LOW);   
      delay(2000);            
   }

Mais je ne crois pas que sa fonctionne comme sa :-\

Si quelqu'un sais comment faire, MERCI D'AVANCE :smiley:

Je ne sais pas si c'est ce que tu cherche mais tu peux communiquer avec le moniteur série de cette facon

byte byteRead;

void setup()
{ Serial.begin(9600);
 
}

void loop()
{ if (Serial.available())
  { byteRead = Serial.read();
    if(byteRead =='o')
    { // ce que tu veux
    }
    else if (byteRead == 'u') 
    {  // ce que tu veux  
    }
  }	
}

bonjour,
cherche du coté de strcmp

tu créé un buffer
tu lis chaque caractère et les ajoute
tu compare
tu fais la relation

Bonjour

Pour éviter le conflit entre la reception et l'envoi de données sur la liaison serie, on utilise la fonction

void serialEvent() //déclaration de la fonction d'interruption sur la voie série
un coup d'oeil par là Redirection vers Envoyer et recevoir des données sur la voie série

Bonjour,donc pour résumer j'arrive a ouvrir la vanne grâce au moniteur série en envoyant oui mais je n'arrive pas a ouvrir la vanne en envoyant un SMS.Je voudrais que la arduino puisse comprendre le mot"oui" et l’interpréter après en ouvrant la vanne quand le message arrive a la GSM.Du coup il ne faudrait pas que j'utilise la fonction string() ?

tu n'as pas lu ce que j'ai marqué plus haut :frowning:
strcmp
tu lis le sms recu, et tu compare

if (strcmp(sms_rx, "oui") == 0)fait quelque chose

Désoler infobarquee j'ai lu ton message mais je ne comprenais pas ce qu'il fallait faire avec strcmp je test ca et je te dit si sa marche

ca me met une erreur comme quoi sms_rx was not declared in this scope, comment je vais pour enlever cette erreur ?(Desoler de poser des question je suis novice :slight_smile: )

Oui il faut créer sms_rx, ton tableau de char où les données sont réceptionnées

Donc je crée un char sms_rx et je le met au debut de mon programme ??

Oula oula on part de loin j’ai l’impression. Visiblement tu ne maitrises pas du tout les principes de programmation de base, donc avant qu’on parte dans des discussions à rallonge je te conseille de voir les bases.

Parce qu’il faut et déclarer sms_rx, et le remplir avec ce qui arrive en provenance du port série

Le declarer avec des int/char ou boolean ?

Merci de faire un effort et de chercher un minimum lorsqu'on reçoit de l'aide...