Arduino connexion base de données Mysql
Résolu
Greg156
Messages postés
2
Statut
Membre
-
NHenry Messages postés 15479 Statut Modérateur -
NHenry Messages postés 15479 Statut Modérateur -
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
- Connexion chromecast - Guide
- Supprimer les données de navigation - 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