Partage
  • Partager sur Facebook
  • Partager sur Twitter

Connexion arduino vers BDD Mysql

    23 mai 2019 à 9:36:27

    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();
    }






    • Partager sur Facebook
    • Partager sur Twitter

    Connexion arduino vers BDD Mysql

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown