1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 9); // RX, TX
/*------------------DECLARATION DES VARIABLES-----------------*/
int Reception=0;
String data="";
int a=0;
char *tableau[5];
String On="";
String Off="";
char buff[64];
int CO2_ON;
int CO2_OFF;
/*------------------------------------------------------------*/
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
delay(1000);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
if (!ds3231.begin()) {
Serial.println("[ERREUR] Impossible d'établir la connexion avec le module DS3231");
Serial.flush();
while (1);
}
}
void loop()
{
if (mySerial.available()>0) /*Interrogation du port serie*/
{
Reception=mySerial.read();
if (char(Reception) != '\n')
{
data+=(char)Reception;
}
else
{
int Taille = data.length() + 1; /*---Longueur de la chaîne-----------------------------------------------------------------*/
char tab_char[Taille]; /*---Tableau de type char dont les dimenssions sont égales à la longueur de la chaîne------*/
data.toCharArray(tab_char,Taille); /*---On passe les caractères de la chaîne dans le tableau créé précedement-----------------*/
for (a=0; a<=4; a++)
{
if (a > 0)
{
tableau[a]=strtok(0,";"); /*découpage de la chaine au niveau des points virgules*/
if (a == 1){Off = tableau[1];}
} /* */
else /* chaque ligne du tableau */
{ /* */
tableau[a]=strtok(tab_char,";"); /* contient un bout de la chaine */
On = tableau[0];
}
}
}
}
if (char(Reception) == '\n')
{
Reception=0;
data="";
/*------------------------CO2_ON--------------------------------------------------*/
String strCO2;
Taille=On.length();
index = On.indexOf("=");
index++;
strCO2=On.substring(index, Taille);
CO2_ON = strCO2.toInt();
/*------------------------CO2_OFF--------------------------------------------------*/
Taille=Off.length();
index = Off.indexOf("=");
index++;
strCO2=Off.substring(index, Taille);
CO2_OFF = strCO2.toInt();
/*-------------------------------------------------------------------------------*/
sprintf(buff, "CO2_ON:%02d CO2_OFF:%02d", CO2_ON, CO2_OFF);
Serial.println(buff); /*Affichage des valeurs de CO2_ON et CO2_OFF*/
Serial.flush();
}
// digitalWrite(LED_BUILTIN, HIGH) ;
// delay (CO2_ON);
// digitalWrite(LED_BUILTIN, LOW) ;
// delay (CO2_OFF);
} |
Partager