Tentative de connexion Arduino/MySQL

Bonjour à tous, je suis débutant dans ce milieu. Étant en dernière année de prépa maths sup' j'ai un projet à présenter à Paris en fin d'année, et ce projet nécessite une base de données.

J'utilise Xampp, le site PhpMyAdmin, un Shield ethernet sur un Arduino Genuino/UNO et mon PC portable est connecté en wifi à la 4G de mon téléphone (pas le choix).

J'ai donc installé la bibliothèque "MySQL Connector Arduino" et copié collé l'exemple du site en changeant les données de connexion...

#include <Ethernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>

// Informations pour la base de données
byte mac_addr[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // Adresse physique du shield
IPAddress server_addr(10,236,149,41); // IP du serveur MySQL
//IPAddress server_addr('localhost'); // IP du serveur MySQL
char user[]="root"; // Nom de compte pour BDD
char password[]=""; // Mot de passe pour compte BDD

// Initialisation de la connexion Ethernet
EthernetClient client; // Utilisation d'un client Ethernet et non WIFI
MySQL_Connection conn((Client *)&client); // Connexion de MySQL 



void setup() {
  // put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Tentative de Connexion...");
Ethernet.begin(mac_addr);
if (conn.connect(server_addr, 3306, user, password)){
}
else 
  Serial.println("Échec de la Connexion");
}

void loop() {
  // put your main code here, to run repeatedly:

}

le problème étant que ça ne fonctionne pas du tout! Je ne sais pas si j'ai mis la bonne adresse IP (j'ai pris celle de mon ordi, de mon téléphone, le 127.0.0.1 du serveur mysql mais rien à faire ça ne fonctionne pas). Je m'en remet donc à vous car mes professeurs ne trouvent pas d'où vient le souci. Je vous remercie par avance!
Bonne fin de journée.

10.236.149.41 : est-ce sûr que le PC a cette adresse locale ?
Est-ce bien l'adresse affichée par ifconfig (Linux) ou ipconfig (Windows) ?

J'adore ce genre de topic.

  • question posée par le demandeur.
  • question posée par un intervenant, question qui ne semble pas débile à priori.
  • plus de nouvelles.

Que penser ?

  • le demandeur a résolu son problème tout seul ?
  • il a abandonné le projet
  • il s'est cassé une jambe en tombant dans l'escalier ?
  • son ordi ou son smartphone est tombé en panne ?
  • il est à la plage à ABOU DABI et a oublié son chargeur à son domicile ?
  • sa bonne femme lui a expressément ordonné de s'occuper de la vaisselle et du ménage jusqu'à nouvel ordre ?

J'adore :smiling_imp: :grin: :sunglasses:

Rebonjour, je suis désolé, mais je n'ai reçu absolument aucune notification et je suis revenu plusieurs fois histoire de voir où s'en était, sauf que je n'avais aucune réponse.
Je te demande donc de m'excuser par rapport à cette réponse tardive, néanmoins, nul besoin d'être désobligeant avec moi.

Pour répondre, j'ai plusieurs adresses données par le ipconfig /all, je ne sais pas laquelle prendre, alors j'en ai essayé plusieurs, mais rien ne change.

Merci de ta réponse, je répondrais plus vite la prochaine fois.

edit: voici l'adresse IPV4 que j'obtiens dans ma cmd "192.168.137.53"
mais cela ne fonctionne toujours pas.

nul besoin d'être désobligeant avec moi.

Non, simplement un peu d'ironie, sans intention de nuire.

192.168.137.53 : cette adresse me semble déjà plus probable pour un réseau local que 10.236.149.41.

Jette un œil ici : Arduino / Mysql / RFID - #8 by hbachetti - Français - Arduino Forum

C'est peut-être simplement une question de privilèges.

Ok, je vais donc réessayer ça demain, voir si ça change quelque chose!
Merci pour le lien, je vais aller lire ça de ce pas.

Et au niveau de la connexion; le fait que je l'obtienne par la 4g de mon téléphone ne change rien à l'exemple de base du constructeur ?

Le téléphone sert d'interface avec le monde extérieur. Il fait office de modem, comme une box.

D'accord, merci!
Alors, du coup j'ai deux adresses possibles, j'ai celle donnée par ipconfig, et celle-ci: 192.168.0.254 "créée" par le câble ethernet entre mon pc, le switch, et l'arduino. J'ai essayé les deux, mais aucune ne fonctionne, je reçois toujours "échec de la connexion" dans le moniteur série. Je n'ai également rien trouvé au niveau de la priorité.

Peut-être dans mon cas, vaut il mieux faire comme la personne du topic que tu m'as envoyé? Faire un fichier excel qui recevra les données? Car je fais avec mon collègue un courantomètre; l'objectif est que quand il tourne, le capteur envoie les données et les stocks sur la base de données. J'aimerai aller plus loin après et peut être voir pour faire un petit site qui les affiche...N'y connaissant absolument rien en code cela me parait compliqué, mais cela fait aussi parti de l'épreuve....

Qu'en penses-tu? Rester sur xampp/mysql etc, ou passer sur un fichier excel qui recevra tout cela, mais donc on passerait sur du sans fil pour le réseau ad hoc?

Merci du temps accordé!

J'ai essayé les deux, mais aucune ne fonctionne,

L'adresse à prendre en compte est l'adresse Ethernet :

192.168.0.254 semble être une adresse de configuration de box Free.

As-tu bien lu le #7 du topic en question ?

J'ai essayé l'exemple basic_select de la librairie.

La base de données : https://dev.mysql.com/doc/index-other.html (world database)

Après exécution du script world.sql :

  • autorisation accès par le réseau :
    ** Commenter bind-address dans msqld.conf**
  • privilèges d'accès à la database :
    __ GRANT ALL ON world.* TO 'riton'@'%' IDENTIFIED BY 'password';__
    ** FLUSH PRIVILEGES;**

Pas de problème particulier. Mise en œuvre très simple.
Un peu de doc ici : Redirecting…

Accès par le réseau (bind-address dans msqld.conf)
Si tu te contentes de jouer avec des adresses IP alors que ta base n'est accessible que par le PC qui l'héberge, pas la peine d'aller plus loin.

Accès à la base (privilèges)
Idem. Si les accès à la base et aux tables ne sont pas autorisés pour ton identifiant, tu n'obtiendras rien.

As-tu au moins examiné ces 2 aspects ?

Qu'en penses-tu? Rester sur xampp/mysql etc, ou passer sur un fichier excel qui recevra tout cela, mais donc on passerait sur du sans fil pour le réseau ad hoc?

Un fichier implique une SD, qu'il faut extraire, remettre, initialiser à nouveau, etc.
A toi de voir.

J'aimerai aller plus loin après et peut être voir pour faire un petit site qui les affiche...N'y connaissant absolument rien en code cela me parait compliqué, mais cela fait aussi parti de l'épreuve....

Vois ici : un-web-server-sur-ethernet

Ah d'accord, normal alors si je prenais celle du wifi...

Oui je l'ai lu, j'ai cherché dans le fichier mysql.ini, je n'ai pas trouvé de mysql.conf. J'ai vu que c'était dans le un chemin d'accès type "/etc/my.cnf /var/lib/mysql/my.cnf ~/.my.cnf". Mais impossible de le trouver...

Merci beaucoup pour le lien, je le garde sous le coude au cas où!

Malheureusement, je ne pourrais pas avancer sur le dit projet pendant 3 semaines à compter d'aujourd'hui. Je te suis très reconnaissant pour ton aide et tes conseils.

/etc/my.cnf /var/lib/mysql/my.cnf ~/.my.cnf

Il me semble évident que /etc est un répertoire inexistant sur une machine Windows.

Il existe néanmoins un fichier my.ini ou my.cnf dans le répertoire d'installation MYSQL, ou ailleurs (c:\windows ou c:\windows\system32).

On parle aussi de différents fichiers de configuration :
my-huge.ini
my-large.ini
my-medium.ini
my-small.ini
Il faut renommer l'un des 4 fichiers en my.ini.

http://philippe.ameline.free.fr/download/documentation/mysql_56.html

N'ayant pas de machine Windows, je peux difficilement vérifier, ou en dire plus.