Connexion arduino vers BDD Mysql

Fermé
Maxime_3 Messages postés 1 Date d'inscription jeudi 23 mai 2019 Statut Membre Dernière intervention 23 mai 2019 - 23 mai 2019 à 09:46
Bonjour,



Configuration: Windows / Firefox 64.0
Bonjour, cela fait depuis quelque jour que j'essaye de connecter mon arduino à ma base de donnés mysql, mais je n'y arrive pas :)

Voici mon code :

#include <sha1.h>
//#include <sha256.h>
#include <mysql.h>
#include <avr/wdt.h>
#include <Wire.h>
#include <SPI.h>
#include <Ethernet.h>

const int LEDROUGE = 49; // broche 53 du micro-contrôleur se nomme maintenant : LEDROUGE
const int LEDBLEU = 53; // broche 51 du micro-contrôleur se nomme maintenant : LEDBLEU
const int buzzer = 31;//broche 31 du micro-contrôleur se nomme maintenant : buzzer
int seuil = 600 ;
int delai = 1 ;
char date ;
char temps ;
char heure ;
char buf[256];
char buf2[256];


//On rajoute une LEd tÃemoin sur pin 4

int PinAnalogiqueHumidite=0; //Broche Analogique de mesure d'humidité
int PinAnalogiqueHumidite2=1; //Broche Analogique de mesure d'humidité
int PinAnalogiqueHumidite3=2; //Broche Analogique de mesure d'humidité
int PinAnalogiqueHumidite4=3; //Broche Analogique de mesure d'humidité
//int PinNumeriqueHumidite=1; //Broche Numérique mesure de l'humidité
//int PinNumeriqueHumidite2=1; //Broche Numérique mesure de l'humidité
//int PinNumeriqueHumidite3=1; //Broche Numérique mesure de l'humidité
//int PinNumeriqueHumidite4=1; //Broche Numérique mesure de l'humidité
int PinLed=3; //LED témoin de seuilde sécheresse


int hsol1; //Humidite su sol, mesure analogique
int hsol2; //Humidite su sol, mesure analogique
int hsol3; //Humidite su sol, mesure analogique
int hsol4; // Humidite sur sol, mesure analogique
int secheresse; //0 ou 1 si seuil atteint

int hum1;
int inond1;
int hum2;
int inond2;
int hum3;
int inond3;
int hum4;
int inond4;

// Ces deux bibliothèques sont indispensables pour le shield


// CONFIGURATION LAN ARDUINO
byte mac_addr[] = { 0x90, 0xA2, 0xDA, 0x0F, 0x69, 0xAC };
byte ip_addr[] = { 192, 168, 5, 10 };
byte dns_addr[] = { 192, 168, 5, 1 };
byte gateway_addr[] = { 192, 168, 5, 1};
byte netmask[] = { 255, 255, 255, 0 };


// PARAMETRAGE DE CONNEXION A LA BASE DE DONNEES MYSQL
IPAddress server_addr(192, 168, 5, 20);
unsigned int Port=3306;
char user[] = "admin";
char password[] = "lomson4646";
boolean sqlconnect= true;
char sqlDbase[] = " USE sonde";

char hum1Str[10];
char inond1Str[10];
char hum2Str[10];
char inond2Str[10];
char hum3Str[10];
char inond3Str[10];
char hum4Str[10];
char inond4Str[10];

Connector my_conn; // The Connector/Arduino reference

void softwareReset( uint8_t prescaller) {
// start watchdog with the provided prescaller
wdt_enable( prescaller);
// wait for the prescaller time to expire
// without sending the reset signal by using
// the wdt_reset() method
while(1) {}
}

void setup() //fonction d'initialisation de la carte
{
Serial.begin(9600);
Serial.println("Demarrage de la sonde"); // Inscrit cette citation dans les logs
Ethernet.begin(mac_addr, ip_addr, dns_addr, gateway_addr, netmask);
Wire.begin();


// put your setup code here, to run once:
wdt_enable(WDTO_8S);

//contenu de l'initialisation

pinMode(LEDROUGE, OUTPUT); //LEDROUGE est une broche de sortie
pinMode(LEDBLEU, OUTPUT); //LEDVERTE est une broche de sortie
}


void loop()
//boucle principale



//*****************************************************************************************************
//SONDE
{
// Si la valeur hsol est plus petite que seuil alors on allume la led rouge et le buzzer
Serial.println ("Si hsol est infèrieur à seuil on allume la led et le buzzer"); // Inscrit cette citation dans les logs

hsol1 = analogRead(PinAnalogiqueHumidite); // Lit la tension analogique
Serial.print ("Valeur du capteur 1 : ");
Serial.println(hsol1);
hsol2 = analogRead(PinAnalogiqueHumidite2);
Serial.print ("Valeur du capteur 2 : "); // Lit la tension analogique
Serial.println(hsol2);
hsol3 = analogRead(PinAnalogiqueHumidite3); // Lit la tension analogique
Serial.print ("Valeur du capteur 3 : ");
Serial.println(hsol3);
hsol4 = analogRead(PinAnalogiqueHumidite4); // Lit la tension analogique
Serial.print ("Valeur du capteur 4 : ");
Serial.println(hsol4);


if (hsol1<seuil || hsol2<seuil || hsol3<seuil || hsol4<seuil)
// Si la valeur hsol1 est plus petite que seuil alors on allume la led et le buzzer
{


Serial.println ("Alerte inondation"); // Inscrit cette citation dans les logs
Serial.println ("Allumage de la LEDROUGE"); // Inscrit cette citation dans les logs
digitalWrite(LEDROUGE, HIGH);
}
else
{
Serial.println ("Extinction de la LEDROUGE"); // Inscrit cette citation dans les logs
digitalWrite(LEDROUGE, LOW);
}
Serial.println ("=-------------=");
Serial.println ();




// CLIGNOTEMENT LED BLEU

Serial.println("Allumage de la LEDBLEU"); // Inscrit cette ciation dans les logs
digitalWrite(LEDBLEU, HIGH);
delay(250);
Serial.println("Extinction de la LEDBLEU"); // Inscrit cette citation dans les logs
digitalWrite(LEDBLEU, LOW);
delay(250);
Serial.println ("=-------------=");
Serial.println ();


Serial.println("Connexion au serveur Host...");
Serial.print(server_addr);
Serial.print(" ");
Serial.print(3306);
Serial.print(" ");
Serial.println(user);
Serial.println(password);

if (my_conn.mysql_connect(server_addr, 3306, user, password))
{

Serial.println("Connexion au serveur réussi");
Serial.print("Connexion à la base de données...");
Serial.println(sqlDbase);
//my_conn.cmd_query(sqlDbase) ;
Serial.println("Connexion à la base de données réussi");
Serial.println("Ecriture base de données dans table sonde1_inond...");
//sprintf(buf,"UPDATE sonde_inond SET capteur1='%s', capteur2='%s', capteur3='%s', capteur4='%s', temps=NOW() WHERE id=1;",hum1Str,inond1Str,hum2Str,inond2Str,hum3Str,inond3Str,hum4Str,inond4Str) ;
//my_conn.cmd_query(buf);
//Serial.println("Ecriture base de données dans table sonde1_inond_hist...");
//sprintf(buf2,"INSERT INTO sonde_inond_hist ( capteur1, capteur2, capteur3, capteur4, temps) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', NOW())",hum1Str,inond1Str,hum2Str,inond2Str,hum3Str,inond3Str,hum4Str,inond4Str,temps);
//my_conn.cmd_query(buf2);
my_conn.disconnect();
Serial.println("Deconnexion de la base...");
}
else
{
Serial.println("erreur de connexion");
}



wdt_reset();
}