Arduino connexion base de données Mysql
Résolu
Greg156
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
NHenry Messages postés 15221 Date d'inscription Statut Modérateur Dernière intervention -
NHenry Messages postés 15221 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai réussi à coder un capteur de température sur Arduino, Le problème c'est que j'arrive pas à envoyer les données dans la base de données,
J'aimerais avoir de l'aide là-dessus, ça fait un moment que je galère.
Voici mon code capteur
void setup() { Serial.begin(9600); } void loop() { float voltage = analogRead(A0); float temperature = (5.0 * voltage * 100.0) / 1024.0; Serial.print("La temperature est de : "); Serial.print(temperature); Serial.print("°C"); Serial.println(); delay(1000); }
voici ma base de données
... et voici le code pour envoyer les données que j'ai écrit :
#include <SPI.h> #include <Ethernet.h> #include <MySQL_Connection.h> #include <MySQL_Cursor.h> byte mac[] = { }; // Adresse MAC Ethernet IPAddress serverIP(128, 0, 0, 1); // Adresse IP du serveur MySQL EthernetClient client; MySQL_Connection conn((Client *)&client); const int temperaturePin = A0; // Broche analogique utilisée pour le capteur de température void setup() { Serial.begin(9600); // Connexion à Internet via Ethernet Ethernet.begin(mac); delay(1000); // Connexion à la base de données MySQL Serial.println("Connexion à la base de données..."); if (conn.connect(serverIP, 3306, "root", "", "temperature")) { Serial.println("Connexion réussie !"); } else { Serial.println("Échec de la connexion..."); while (1); } // Exécution des requêtes SQL executeQueries(); } void loop() { // Lecture de la température float voltage = analogRead(temperaturePin); float temperature = (5.0 * voltage * 100.0) / 1024.0; Serial.print("La temperature est de : "); Serial.print(temperature); Serial.print("°C"); Serial.println(); delay(1000); } void executeQueries() { // Affichage des bases de données Serial.println("Bases de données :"); MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn); cur_mem->execute("SHOW DATABASES"); row_values *row; do { row = cur_mem->get_next_row(); if (row != NULL) { Serial.println(row->values[0]); } } while (row != NULL); delete cur_mem; // Affichage des étudiants Serial.println("Données des temperature :"); cur_mem = new MySQL_Cursor(&conn); cur_mem->execute("SELECT * FROM temp"); int num_fields = cur_mem -> get_columns(); do { row = cur_mem->get_next_row(); if (row != NULL) { for (int i = 0; i < num_fields; i++) { if (row->values[i] != NULL) { Serial.print(row->values[i]); Serial.print(" "); } else { Serial.println("NULL"); } } Serial.println(); } } while (row != NULL); delete cur_mem; // Fermeture de la connexion à la base de données conn.close(); }
et ça fait ça :
Merci
A voir également:
- Arduino connexion base de données Mysql
- Gmail connexion - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Connexion chromecast - Guide
- Trier des données excel - Guide
cest l'adresse IP de mon localhost
pourquoi je devrais mettre quoi a la place?
Localhost c'est 127.0.0.1, pas 128.
Si ton serveur Mysql se trouve sur ton arduino, c'est la bonne IP, mais je pense plus que le serveur est sur une autre machine.
Dans ce cas, il faut mettre l'adresse de la machine qui a le serveur MySql et dire (dans la configuration) à MySql d'écouter sur toutes les interfaces (et pas seulement Localhost, qui est la configuration par défaut)
Dans in des fichiers de config : bind-address = 0.0.0.0