Arduino UNO R4 - MySQL
Ce tutoriel vous explique comment utiliser Arduino UNO R4 pour collecter des données à partir de capteurs et les enregistrer dans une base de données MySQL. Plus en détail, nous apprendrons :
- Comment programmer Arduino UNO R4 pour se connecter à une base de données MySQL
- Comment programmer Arduino UNO R4 pour insérer des données dans une base de données MySQL
- Comment programmer Arduino UNO R4 pour mettre à jour des données dans une base de données MySQL
- Comment programmer Arduino UNO R4 pour récupérer des données à partir d'une base de données MySQL

Préparation du matériel
Ou vous pouvez acheter les kits suivants:
1 | × | Kit de Démarrage DIYables STEM V4 IoT (Arduino inclus) | |
1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Arduino UNO R4 - MySQL
L'Arduino UNO R4 peut se connecter à la base de données MySQL de deux méthodes différentes :
- L'Arduino UNO R4 se connecte directement au serveur MySQL en utilisant le protocole MySQL (il s'agit de la méthode directe).
- L'Arduino UNO R4 se connecte au serveur MySQL par le protocole HTTP (il s'agit de la méthode indirecte).
Voyons lequel est le meilleur.
Arduino UNO R4 interagit directement avec le serveur MySQL

Cela pourrait sembler facile, mais il y a plusieurs inconvénients :
- Autoriser un utilisateur MySQL à accéder à la base de données à distance peut présenter des risques pour la sécurité, même avec des privilèges d'utilisateur limités.
- Le traitement des données sur l'Arduino UNO R4 ou sur un serveur MySQL rend le code Arduino et le script MySQL plus complexes et nécessite une utilisation intensive de la mémoire et du processeur d'Arduino.
- Le serveur MySQL pourrait envoyer une grande quantité de données à l'Arduino UNO R4, ce qui pourrait entraîner une pénurie de mémoire.
- De nombreuses bibliothèques MySQL ne prennent pas en charge SSL/TLS, ce qui signifie que les noms d'utilisateur et les mots de passe sont envoyés sans chiffrement, posant ainsi un autre risque pour la sécurité.
Arduino UNO R4 interagit indirectement avec le serveur MySQL via HTTP/HTTPS
Cette méthode indirecte résout tous les problèmes que présente la méthode directe. Commençons d’abord par voir comment cette méthode indirecte fonctionne avant d’examiner comment elle évite les problèmes de la méthode directe.
Comment cela fonctionne
- Étape 1 : Arduino UNO R4 envoie une requête HTTP au serveur Web
- Étape 2 : Le serveur Web exécute un script PHP
- Étape 3 : Le script PHP reçoit les données de la requête HTTP, les traite et interagit avec la base de données MySQL.
- Étape 4 : Le script PHP traite les résultats et les renvoie à l'Arduino UNO R4 via une réponse HTTP

Ce guide vous expliquera également comment installer un serveur Web et un serveur MySQL sur votre PC. Cela semble complexe, mais ce ne l'est pas.
Maintenant, explorons comment la méthode indirecte permet d’éviter les inconvénients de la méthode directe.
- En plaçant le serveur MySQL et le serveur HTTP sur la même machine, vous pouvez configurer le compte utilisateur MySQL pour n'accéder qu'à partir de cette machine. Le nom d'utilisateur et le mot de passe de ce compte sont enregistrés sur le serveur (mentionné à l'étape 3), ce qui contribue à renforcer la sécurité.
- Un script PHP (étapes 3 et 4) gère le traitement des données. Cela rend les choses plus simples et moins complexes pour l'Arduino UNO R4 et les serveurs MySQL. Utiliser PHP pour le traitement des données est plus facile que d'utiliser le code Arduino UNO R4 ou des scripts MySQL.
- Le script PHP traite les données puis envoie uniquement ce qui est nécessaire à l'Arduino UNO R4 (étape 4). Cela permet d'éviter que l'Arduino UNO R4 manque de mémoire.
- La plupart des bibliothèques Ethernet/WiFi prennent en charge TLS/SSL, ce qui permet les requêtes HTTPS. Avec HTTPS, les données sont chiffrées et transférées en toute sécurité sur Internet.
À l'étape 1, vous pouvez utiliser un nom d'utilisateur et un mot de passe différents pour connecter l'Arduino UNO R4 au serveur Web. Il est important que le nom d'utilisateur et le mot de passe HTTP ne soient pas les mêmes que le nom d'utilisateur et le mot de passe MySQL afin de garantir la sécurité.
Ce guide montrera comment connecter l'Arduino UNO R4 à MySQL indirectement.
Arduino UNO R4 - MySQL via HTTP/HTTPS
Nous devons passer à l'étape suivante :
- Installer le serveur MySQL, le serveur Web et PHP sur votre ordinateur
- Activer le serveur MySQL et le serveur Web
- Créer un compte utilisateur MySQL
- Créer une base de données MySQL
- Créer une table MySQL
- Écrire des scripts PHP
- Programmer l'Arduino UNO R4
Maintenant, prenons cela étape par étape.
Installer le serveur MySQL, le serveur Web et PHP sur votre PC
Le paquet XAMPP contient tout ce qu'il faut. Nous n'avons besoin de l'installer qu'une fois.
- Téléchargez XAMPP à partir de ce lien
- Installez-le
Après l'installation, le dossier nommé C:\xampp\htdocs apparaîtra sur votre PC. Ce dossier contiendra le code PHP (qui sera expliqué plus tard).
Activer MySQL et le serveur Web
- Ouvrez le panneau de configuration XAMPL
- Cliquez sur le bouton Démarrer pour activer MySQL et le serveur Web (voir l'image ci-dessous)

Créer un compte utilisateur MySQL
Nous allons configurer un compte MySQL qui ne peut accéder à la base de données MySQL qu'à partir de l'ordinateur local.
- Même si quelqu'un connaît votre nom d'utilisateur et votre mot de passe, il ne peut pas accéder à votre base de données MySQL à distance.
- Puisque PHP et MySQL sont sur le même PC, PHP peut utiliser le nom d'utilisateur et le mot de passe pour se connecter à la base de données MySQL.
Créons un compte utilisateur MySQL avec le nom d'utilisateur ArduinoUnoR4 et le mot de passe newbiely.com.
- Ouvrez l'invite de commandes sur votre ordinateur. Gardez-la ouverte jusqu'à ce que vous ayez terminé le tutoriel.
- Saisissez cette commande dans l'invite de commandes:
- Le paramètre par défaut de MySQL inclut un compte root qui n'a pas de mot de passe. Il est recommandé de créer un mot de passe pour ce compte.
Tapez la commande suivante dans l'invite de commandes pour définir le mot de passe du compte root : (par exemple YOUR-ROOT-PASSWORD)
- Entrez cette commande dans l'invite de commandes:
- Entrez votre mot de passe root et appuyez sur Entrée.
- Créer un compte utilisateur MySQL avec le nom d'utilisateur 'ArduinoUnoR4' et le mot de passe 'newbiely.com'. Copiez les commandes suivantes et collez-les dans l'invite de commandes :
Vous avez maintenant créé avec succès un compte utilisateur MySQL. Souvenez-vous du nom d'utilisateur et du mot de passe, car vous en aurez besoin pour le script PHP.
Créer une base de données MySQL
Créez une base de données appelée db_arduino en saisissant cette commande dans l'invite de commandes :
Créer une table MySQL
Créons une table appelée tbl_temperature. Copiez les commandes suivantes et collez-les dans l'invite de commandes:
Écrivez un ou plusieurs fichiers PHP
Créez un fichier PHP nommé insert_temp.php à l'emplacement C:\xampp\htdocs
Ce code PHP prend la température à partir de la requête HTTP et l'insère dans la base de données.
- Trouvez l’adresse IP de votre ordinateur. Faites une recherche sur Google si vous n’êtes pas sûr de la façon de la trouver.
- Pour vérifier que le code PHP fonctionne, ouvrez un navigateur web (comme Chrome) et allez sur ce lien : http://192.168.0.4/insert_temp.php?temperature=25.3. N'oubliez pas d'utiliser l’adresse IP de votre propre ordinateur au lieu de « 192.168.0.4 ».
- Vous verrez les résultats s’afficher dans votre navigateur.

- Pour vérifier si les données sont enregistrées dans la base de données, saisissez cette commande dans l'invite de commandes:
La température 25,3 est enregistrée dans la base de données. Ensuite, nous devons programmer l'Arduino UNO R4 pour envoyer une requête HTTP similaire à votre ordinateur.
Écrire du code Arduino UNO R4
Ce code Arduino UNO R4 envoie une requête HTTP à votre ordinateur pour ajouter une température de 30,5 °C à la base de données.
Arduino UNO R4 Code pour Arduino UNO R4 R4 WiFi
Étapes rapides
Suivez ces instructions étape par étape :
- Si c'est la première fois que vous utilisez l'Arduino Uno R4 WiFi/Minima, reportez-vous au tutoriel sur Arduino UNO R4 - Installation du logiciel..
- Connectez la carte Arduino Uno R4 à votre ordinateur à l'aide d'un câble USB.
- Lancez l'IDE Arduino sur votre ordinateur.
- Sélectionnez la carte Arduino Uno R4 appropriée (par exemple, Arduino Uno R4 WiFi) et le port COM.
- Remplacez l'adresse IP dans le code par l'adresse IP de votre ordinateur.
- Compilez et téléversez le code sur l'Arduino UNO R4.
- Ouvrez le moniteur série.
- Affichez la sortie dans le moniteur série.
- Pour vérifier si les informations sont enregistrées dans la base de données, tapez cette commande dans l'invite de commandes :
La température 30,5 est enregistrée dans la base de données.
Comment Arduino UNO R4 insère, met à jour ou récupère des données dans une base de données MySQL
Dans l'exemple, nous avons appris comment ajouter des données à la base de données MySQL. Pour mettre à jour ou récupérer des données, le processus est similaire. Il suffit de modifier les requêtes MySQL dans le script PHP. Pour plus d'informations, visitez W3Schools.
Utilisation avancée
Pour améliorer la sécurité,
- Vous pouvez modifier le code de l'Arduino UNO R4 pour utiliser HTTPS plutôt que HTTP. Pour savoir comment faire, consultez Arduino UNO R4 - Requête HTTPS..
- Vous pouvez vous authentifier en utilisant un nom d'utilisateur et un mot de passe lors de la connexion de l'Arduino UNO R4 à un serveur Web. En savoir plus sur Basic access authentication.
※ Note:
Pour créer un système complet avec une sécurité maximale, nous devons ajouter davantage de fonctionnalités (comme prévenir les injections MySQL, transformer HTTPS en API REST et utiliser le format JSON pour les données). Cependant, ce guide est destiné aux débutants qui apprennent l'Arduino UNO R4. Nous l'avons rendu très simple. Après avoir terminé ce guide, vous pourrez apprendre des sujets plus avancés.