Serveur Web de capteur ESP8266 DS18B20 IDE Arduino (Simple, Multiple) – Serveur d’impression
Il s'agit d'un guide détaillé sur le capteur de température DS18B20 avec ESP8266 utilisant Arduino IDE. Nous verrons comment câbler le capteur, installer les bibliothèques requises et écrire le code permettant d’obtenir les lectures du capteur d’un ou de plusieurs capteurs. Enfin, nous allons créer un serveur Web simple pour afficher les lectures du capteur.
Tout au long de ce tutoriel, nous aborderons les sujets suivants:
- Lire la température d'un capteur de température DS18B20;
- Lire la température de plusieurs capteurs de température DS18B20;
- Affiche les lectures du capteur DS18B20 sur un serveur Web.
Vous aimerez peut-être aussi la lecture d'autres guides DS18B20:
En savoir plus sur l'ESP8266 avec notre cours: Domotique utilisant l'ESP8266.
Sommaire
Présentation du capteur de température DS18B20
Le capteur de température DS18B20 est un capteur de température numérique à un fil. Cela signifie qu'il suffit d'une ligne de données (et de GND) pour communiquer avec votre ESP8266.
Il peut être alimenté par une source d'alimentation externe ou par la ligne de données (appelée «mode parasite»), ce qui élimine le recours à une source d'alimentation externe.
Chaque capteur de température DS18B20 possède un code série unique de 64 bits. Cela vous permet de connecter plusieurs capteurs au même fil de données. Ainsi, vous pouvez obtenir la température de plusieurs capteurs en utilisant un seul GPIO.
Le capteur de température DS18B20 est également disponible en version étanche.
Voici un résumé des caractéristiques les plus pertinentes du capteur de température DS18B20:
- Communique sur un bus monofil
- Gamme d'alimentation: 3.0V à 5.5V
- Plage de température de fonctionnement: -55ºC à + 125ºC
- Précision +/- 0.5ºC (entre -10ºC et 85ºC)
Pour plus d'informations, consultez la fiche technique DS18B20.
Pièces requises
Pour compléter ce tutoriel, vous avez besoin des composants suivants:
Vous pouvez utiliser les liens précédents ou aller directement à MakerAdvisor.com/tools pour trouver toutes les pièces de vos projets au meilleur prix!
ESP8266 avec schéma de principe DS18B20
Comme mentionné précédemment, le capteur de température DS18B20 peut être alimenté via la broche VDD (mode normal), ou il peut tirer son énergie de la ligne de données (mode parasite). Vous pouvez choisir l'un ou l'autre mode.
Mode Parasite
Mode normal
Remarque: Dans ce tutoriel, nous connectons la ligne de données DS18B20 à GPIO 4, mais vous pouvez utiliser n’importe quel autre GPIO approprié.
Lisez notre Guide de référence de l’ESP8266 GPIO pour en savoir plus sur les GPIO de l’ESP8266.
Remarque: Si vous utilisez un ESP-01, GPIO 2 est la broche la plus appropriée pour se connecter à la broche de données DS18B20.
Préparer votre IDE Arduino
Nous allons programmer l’ESP8266 en utilisant Arduino IDE. Assurez-vous donc que le module complémentaire ESP8266 est installé avant de poursuivre:
Installation de bibliothèques pour DS18B20
Pour interfacer avec le capteur de température DS18B20, vous devez installer la bibliothèque One Wire de Paul Stoffregen et la bibliothèque Dallas Temperature. Suivez les étapes suivantes pour installer ces bibliothèques.
1. Ouvrez votre IDE Arduino et accédez à Esquisser > Inclure la bibliothèque > Gérer les bibliothèques. Le gestionnaire de bibliothèque devrait s'ouvrir.
2. Tapez “un fil”Dans la zone de recherche et installez la bibliothèque OneWire de Paul Stoffregen.
3. Ensuite, recherchez “Dallas”Et installez la bibliothèque Dallas Temperature de Miles Burton.
Après avoir installé les bibliothèques, redémarrez votre IDE Arduino.
Code (DS18B20 simple)
Après avoir installé les bibliothèques requises, vous pouvez télécharger le code suivant sur l'ESP8266. Le code lit la température à partir du capteur de température DS18B20 et affiche les lectures sur le moniteur série Arduino IDE.
/ *********
Rui Santos
Détails complets du projet sur https://RandomNerdTutorials.com
********* /
#comprendre
#comprendre
// GPIO auquel le DS18B20 est connecté
const int oneWireBus = 4;
// Configuration d'une instance OneWire pour communiquer avec tout périphérique OneWire
OneWire oneWire (oneWireBus);
// Passer notre référence oneWire au capteur de température Dallas
Sondes de température Dallas (& oneWire);
void setup()
// Démarrer le moniteur série
Serial.begin (115200);
// Démarrer le capteur DS18B20
capteurs.begin ();
boucle vide ()
sensors.requestTemperatures ();
température de flottementC = sensors.getTempCByIndex (0);
température de flottement F = sensors.getTempFByIndex (0);
Serial.print (temperatureC);
Serial.println ("ºC");
Serial.print (temperatureF);
Serial.println ("ºF");
délai (5000);
Voir le code brut
Il existe de nombreuses façons d'obtenir la température à l'aide de capteurs de température DS18B20. Toutefois, si vous n’utilisez qu’un seul capteur, c’est l’un des moyens les plus simples et les plus simples.
Comment fonctionne le code
Commencez par inclure le OneWire et le DallasTempérature bibliothèques.
#comprendre
#comprendre
Créez les instances nécessaires pour le capteur de température. Le capteur de température est connecté à GPIO 4.
// GPIO auquel le DS18B20 est connecté
const int oneWireBus = 4;
// Configuration d'une instance OneWire pour communiquer avec tout périphérique OneWire
OneWire oneWire (oneWireBus);
// Passer notre référence oneWire au capteur de température Dallas
Sondes de température Dallas (& oneWire);
dans le installer(), initialisez le moniteur série à un débit en bauds de 115200.
Serial.begin (115200);
Initialisez le capteur de température DS18B20:
capteurs.begin ();
Avant d’obtenir la température, vous devez appeler le requestTempératures () méthode.
sensors.requestTemperatures ();
Ensuite, obtenez la température en Celsius en utilisant le bouton getTempCByIndex () méthode comme indiqué ci-dessous:
température de flottementC = sensors.getTempCByIndex (0);
Ou utilisez le getTempFByIndex () pour obtenir la température en degrés Fahrenheit.
température de flottement F = sensors.getTempFByIndex (0);
le getTempCByIndex () et le getTempFByIndex () les méthodes acceptent l'index du capteur de température. Comme nous n’utilisons qu’un seul capteur, son index est 0. Si vous souhaitez lire plusieurs capteurs, utilisez l’indice 0 pour un capteur, l’indice 1 pour un autre capteur, etc.
Enfin, imprimez les résultats dans le moniteur série.
Serial.print (temperatureC);
Serial.println ("ºC");
Serial.print (temperatureF);
Serial.println ("ºF");
De nouvelles lectures de température sont demandées toutes les 5 secondes.
délai (5000);
Manifestation
Après avoir chargé le code, ouvrez le moniteur série Arduino IDE à une vitesse de 9600 bauds. Vous devriez obtenir la température affichée en degrés Celsius et Fahrenheit:
Obtenir la température de plusieurs capteurs de température DS18B20
Le capteur de température DS18B20 communique à l'aide d'un protocole à un fil et chaque capteur possède un code série unique de 64 bits, ce qui vous permet de lire la température de plusieurs capteurs à l'aide d'une seule broche numérique.
Schématique
Pour lire la température de plusieurs capteurs, il vous suffit de câbler toutes les lignes de données comme indiqué dans le schéma suivant:
Code (plusieurs DS18B20)
Ensuite, téléchargez le code suivant. Il analyse tous les appareils sur GPIO 4 et imprime la température pour chacun. Cette esquisse est basée sur l'exemple fourni par la bibliothèque DallasTemperature.
/ *********
Rui Santos
Détails complets du projet sur https://RandomNerdTutorials.com
********* /
#comprendre
#comprendre
// Le fil de données est branché à GPIO 4
#define ONE_WIRE_BUS 4
// Configuration d'une instance OneWire pour communiquer avec tout périphérique OneWire (pas uniquement les CI de température Maxim / Dallas)
OneWire oneWire (ONE_WIRE_BUS);
// Passons notre référence oneWire à Dallas Temperature.
Sondes de température Dallas (& oneWire);
// Nombre d'appareils de température trouvés
int numberOfDevices;
// Nous utiliserons cette variable pour stocker une adresse de périphérique trouvée
DeviceAddress tempDeviceAddress;
void setup()
// démarre le port série
Serial.begin (115200);
// Démarrer la bibliothèque
capteurs.begin ();
// Compter un nombre d'appareils sur le fil
numberOfDevices = sensors.getDeviceCount ();
// localiser les appareils sur le bus
Serial.print ("Appareils de localisation ...");
Serial.print ("Trouvé");
Serial.print (numberOfDevices, DEC);
Serial.println ("devices.");
// Boucle à travers chaque périphérique, adresse d'impression
pour (int i = 0; i <numberOfDevices; i ++)
// Recherche l'adresse sur le fil
if (sensors.getAddress (tempDeviceAddress, i))
Serial.print ("périphérique trouvé");
Serial.print (i, DEC);
Serial.print ("avec adresse:");
printAddress (tempDeviceAddress);
Serial.println ();
autre
Serial.print ("Appareil fantôme détecté à");
Serial.print (i, DEC);
Serial.print ("mais l'adresse n'a pas pu être détectée. Vérifiez l'alimentation et le câblage");
boucle vide ()
sensors.requestTemperatures (); // Envoyer la commande pour obtenir les températures
// boucle en boucle sur chaque appareil, impression des données de température
pour (int i = 0; i <numberOfDevices; i ++)
// Recherche l'adresse sur le fil
if (sensors.getAddress (tempDeviceAddress, i))
// Affiche l'identifiant de l'appareil
Serial.print ("Température pour le périphérique:");
Serial.println (i, DEC);
// Imprimer les données
float tempC = sensors.getTempC (tempDeviceAddress);
Serial.print ("Temp C:");
Serial.print (tempC);
Serial.print ("Temp F:");
Serial.println (DallasTemperature :: toFahrenheit (tempC)); // Convertit tempC en Fahrenheit
délai (5000);
// fonction pour imprimer une adresse de périphérique
void printAddress (DeviceAddress deviceAddress)
pour (uint8_t i = 0; i <8; i ++)
if (deviceAddress[i] <16) Serial.print ("0");
Serial.print (deviceAddress[i], HEX);
Voir le code brut
Comment fonctionne le code
Le code utilise plusieurs méthodes utiles pour gérer plusieurs capteurs DS18B20.
Vous utilisez le getDeviceCount () méthode permettant d’obtenir le nombre de capteurs DS18B20 sur la ligne de données.
numberOfDevices = sensors.getDeviceCount ();
le getAddress () méthode trouve les adresses de capteurs:
if (sensors.getAddress (tempDeviceAddress, i)) {
L'adresse est unique pour chaque capteur. Ainsi, chaque capteur peut être identifié par son adresse.
Ensuite, vous utilisez le getTempC () méthode qui accepte en argument l'adresse du périphérique. Avec cette méthode, vous pouvez obtenir la température d’un capteur spécifique:
float tempC = sensors.getTempC (tempDeviceAddress);
Pour obtenir la température en degrés Fahrenheit, vous pouvez utiliser le bouton getTemF (). Vous pouvez également convertir la température en degrés Celsius en degrés Fahrenheit comme suit:
DallasTempérature :: toFahrenheit (tempC)
Manifestation
Après avoir chargé le code, ouvrez votre moniteur série à une vitesse de transmission de 115200 bauds. Tous les relevés de vos capteurs doivent s'afficher comme indiqué ci-dessous:
Afficher les relevés de température du DS18B20 sur un serveur Web
Pour créer le serveur Web, nous allons utiliser la bibliothèque ESPAsyncWebServer, qui offre un moyen simple de créer un serveur Web asynchrone. La construction d'un serveur Web asynchrone présente plusieurs avantages. Nous vous recommandons de consulter rapidement la documentation de la bibliothèque sur sa page GitHub.
Installation de la bibliothèque ESPAsyncWebServer
La bibliothèque ESPAsyncWebServer n'est pas disponible pour l'installation dans le gestionnaire de bibliothèque Arduino IDE. Donc, vous devez l'installer manuellement.
Suivez les étapes suivantes pour installer la bibliothèque ESPAsyncWebServer:
- Cliquez ici pour télécharger la bibliothèque ESPAsyncWebServer. Vous devriez avoir un dossier .zip dans votre dossier Téléchargements
- Décompressez le dossier .zip et vous devriez obtenir ESPAsyncWebServer-master dossier
- Renommez votre dossier à partir de
ESPAsyncWebServer-masterà ESPAsyncWebServer - Bouge le ESPAsyncWebServer dossier de votre dossier de bibliothèques d'installation Arduino IDE
Installation de la bibliothèque TCP ESPAsync
La bibliothèque ESPAsyncWebServer a besoin de la bibliothèque ESPAsyncTCP pour fonctionner. Suivez les étapes suivantes pour installer cette bibliothèque:
- Cliquez ici pour télécharger la bibliothèque ESPAsyncTCP. Vous devriez avoir un dossier .zip dans votre dossier Téléchargements
- Décompressez le dossier .zip et vous devriez obtenir ESPAsyncTCP-master dossier
- Renommez votre dossier à partir de
ESPAsyncTCP-masterà ESPAsyncTCP - Bouge le ESPAsyncTCP dossier de votre dossier de bibliothèques d'installation Arduino IDE
- Enfin, rouvrez votre IDE Arduino
Code (serveur Web async DS18B20)
Ouvrez votre IDE Arduino et copiez le code suivant.
/ *********
Rui Santos
Détails complets du projet sur https://RandomNerdTutorials.com
********* /
// Importer les bibliothèques requises
#ifdef ESP32
#comprendre
#comprendre
#autre
#comprendre
#comprendre
#comprendre
#comprendre
#comprendre
#fin si
#comprendre
#comprendre
// Le fil de données est connecté à GPIO 4
#define ONE_WIRE_BUS 4
// Configuration d'une instance OneWire pour communiquer avec tout périphérique OneWire
OneWire oneWire (ONE_WIRE_BUS);
// Passer notre référence oneWire au capteur de température Dallas
Sondes de température Dallas (& oneWire);
// Remplacez par vos identifiants réseau
const char * ssid = "REPLACE_WITH_YOUR_SSID";
const char * password = "REPLACE_WITH_YOUR_PASSWORD";
// Créer un objet AsyncWebServer sur le port 80
Serveur AsyncWebServer (80);
String readDSTemperatureC ()
// Appelez sensors.requestTemperatures () pour émettre une température globale et des demandes à tous les périphériques du bus.
sensors.requestTemperatures ();
float tempC = sensors.getTempCByIndex (0);
if (tempC == -127.00)
Serial.println ("Échec de lecture du capteur DS18B20");
revenir "--";
autre
Serial.print ("Temperature Celsius:");
Serial.println (tempC);
chaîne de retour (tempC);
String readDSTemperatureF ()
// Appelez sensors.requestTemperatures () pour émettre une température globale et des demandes à tous les périphériques du bus.
sensors.requestTemperatures ();
float tempF = sensors.getTempFByIndex (0);
if (int (tempF) == -196)
Serial.println ("Échec de lecture du capteur DS18B20");
revenir "--";
autre
Serial.print ("Temperature Fahrenheit:");
Serial.println (tempF);
chaîne de retour (tempF);
const char index_html[] PROGMEM = R "rawliteral (
ESP DS18B20 Server
Température Celsius
% TEMPERATUREC%
& deg; C
Température Fahrenheit
% TEMPERATUREF%
& deg; F
) rawliteral ";
// remplace l'espace réservé par les valeurs DHT
Processeur de chaîne (const String & var)
//Serial.println(var);
if (var == "TEMPERATUREC")
retourne readDSTemperatureC ();
else if (var == "TEMPERATUREF")
retourne readDSTemperatureF ();
return String ();
void setup()
// Port série à des fins de débogage
Serial.begin (115200);
Serial.println ();
// Démarrer la bibliothèque DS18B20
capteurs.begin ();
// Se connecter au Wi-Fi
WiFi.begin (ssid, mot de passe);
Serial.println ("Connexion au WiFi");
while (WiFi.status ()! = WL_CONNECTED)
retard (500);
Serial.print (".");
Serial.println ();
// Imprimer l'adresse IP locale de l'ESP
Serial.println (WiFi.localIP ());
// Route pour root / page Web
server.on ("/", HTTP_GET, [](Demande AsyncWebServerRequest *)
request-> send_P (200, "text / html", index_html, processeur);
);
server.on ("/ temperaturec", HTTP_GET, [](Demande AsyncWebServerRequest *)
request-> send_P (200, "text / plain", readDSTemperatureC (). c_str ());
);
server.on ("/ temperaturef", HTTP_GET, [](Demande AsyncWebServerRequest *)
request-> send_P (200, "text / plain", readDSTemperatureF (). c_str ());
);
// Démarrer le serveur
server.begin ();
boucle vide ()
Voir le code brut
Insérez vos informations d'identification réseau dans les variables suivantes et le code fonctionnera immédiatement.
const char * ssid = "REPLACE_WITH_YOUR_SSID";
const char * password = "REPLACE_WITH_YOUR_PASSWORD";
Comment fonctionne le code
Dans les paragraphes suivants, nous expliquerons comment fonctionne le code. Continuez à lire si vous voulez en savoir plus ou allez à la section «Démonstration» pour voir le résultat final.
Importer des bibliothèques
Commencez par importer les bibliothèques requises.
#comprendre
#comprendre
#comprendre
#comprendre
#comprendre
#comprendre
#comprendre
Instancier le capteur DS18B20
Définissez le GPIO auquel le pin de données DS18B20 est connecté. Dans ce cas, il est connecté à GPIO 4(D1).
#define ONE_WIRE_BUS 4
Instanciez les instances nécessaires à l’initialisation du capteur:
// Configuration d'une instance OneWire pour communiquer avec tout périphérique OneWire
OneWire oneWire (ONE_WIRE_BUS);
// Passer notre référence oneWire au capteur de température Dallas
Sondes de température Dallas (& oneWire);
Définir vos identifiants réseau
Insérez vos informations d'identification réseau dans les variables suivantes pour que l'ESP8266 puisse se connecter à votre réseau local.
const char * ssid = "REPLACE_WITH_YOUR_SSID";
const char * password = "REPLACE_WITH_YOUR_PASSWORD";
Créez un objet AsyncWebServer sur le port 80.
Serveur AsyncWebServer (80);
Lire les fonctions de température
Ensuite, nous créons deux fonctions pour lire la température.
le readDSTempératureC () fonction renvoie les lectures en degrés Celsius.
String readDSTemperatureC ()
// Appelez sensors.requestTemperatures () pour émettre une température globale et des demandes à tous les périphériques du bus.
sensors.requestTemperatures ();
float tempC = sensors.getTempCByIndex (0);
if (tempC == -127.00)
Serial.println ("Échec de lecture du capteur DS18B20");
revenir "--";
autre
Serial.print ("Temperature Celsius:");
Serial.println (tempC);
chaîne de retour (tempC);
Si le capteur ne parvient pas à obtenir une lecture valide, il renvoie -127. Nous avons donc une instruction if qui renvoie deux tirets (–-) au cas où le capteur ne parviendrait pas à obtenir les lectures.
if (tempC == -127.00) {
Serial.println ("Échec de lecture du capteur DS18B20");
revenir "--";
le reaDSTempératureF () function fonctionne de manière similaire mais renvoie les lectures en degrés Fahrenheit.
Les lectures sont renvoyées sous forme de type chaîne. Pour convertir un float en chaîne, utilisez la commande Chaîne() une fonction.
chaîne de retour (tempC);
Construire la page Web
L'étape suivante consiste à créer la page Web. Le HTML et le CSS nécessaires à la création de la page Web sont enregistrés sur le index_html variable.
Dans le texte HTML, nous avons TEMPERATUREC et TEMPERATUREF entre % panneaux. C'est un espace réservé pour les valeurs de température.
Cela signifie que cela % TEMPERATUREC% Le texte est comme une variable qui sera remplacée par la valeur de température réelle du capteur. Les espaces réservés sur le texte HTML doivent être compris entre % panneaux.
Nous avons expliqué en détail le fonctionnement du code HTML et CSS utilisé dans ce serveur Web dans un précédent tutoriel. Donc, si vous voulez en savoir plus, référez-vous au prochain projet:
Processeur
Maintenant, nous devons créer le processeur() fonction, qui remplacera les espaces réservés dans notre texte HTML par les valeurs de température réelles.
Processeur de chaîne (const String & var)
//Serial.println(var);
if (var == "TEMPERATUREC")
retourne readDSTemperatureC ();
else if (var == "TEMPERATUREF")
retourne readDSTemperatureF ();
return String ();
Lorsque la page Web est demandée, nous vérifions si le code HTML a des espaces réservés. S'il trouve le % TEMPERATUREC% espace réservé, nous retournons la température en Celsius en appelant le readDSTempératureC () fonction créée précédemment.
if (var == "TEMPERATUREC")
retourne readDSTemperatureC ();
Si l'espace réservé est % TEMPERATUREF%, on retourne la température en Fahrenheit.
else if (var == "TEMPERATUREF")
retourne readDSTemperatureF ();
installer()
dans le installer(), initialisez le moniteur série à des fins de débogage.
Serial.begin (115200);
Initialisez le capteur de température DS18B20.
capteurs.begin ();
Connectez-vous à votre réseau local et imprimez l'adresse IP de l'ESP8266.
WiFi.begin (ssid, mot de passe);
Serial.println ("Connexion au WiFi");
while (WiFi.status ()! = WL_CONNECTED)
retard (500);
Serial.print (".");
Serial.println ();
// Imprimer l'adresse IP locale ESP8266
Serial.println (WiFi.localIP ());
Enfin, ajoutez les prochaines lignes de code pour gérer le serveur Web.
server.on ("/", HTTP_GET, [](Demande AsyncWebServerRequest *)
request-> send_P (200, "text / html", index_html, processeur);
);
server.on ("/ temperaturec", HTTP_GET, [](Demande AsyncWebServerRequest *)
request-> send_P (200, "text / plain", readDSTemperatureC (). c_str ());
);
server.on ("/ temperaturef", HTTP_GET, [](Demande AsyncWebServerRequest *)
request-> send_P (200, "text / plain", readDSTemperatureF (). c_str ());
);
Lorsque nous faisons une demande sur l’URL racine, nous envoyons le texte HTML stocké dans le fichier. index_html variable. Nous devons également passer le processeur fonction, qui remplacera tous les espaces réservés avec les bonnes valeurs.
server.on ("/", HTTP_GET, [](Demande AsyncWebServerRequest *)
request-> send_P (200, "text / html", index_html, processeur);
);
Nous devons ajouter deux gestionnaires supplémentaires pour mettre à jour les relevés de température. Lorsque nous recevons une demande sur le /Températurec URL, nous devons simplement envoyer la valeur de température mise à jour. C'est du texte brut, et il devrait être envoyé comme un caractère, alors, nous utilisons le c_str () méthode.
server.on ("/ temperaturec", HTTP_GET, [](Demande AsyncWebServerRequest *)
request-> send_P (200, "text / plain", readDSTemperatureC (). c_str ());
);
Le même processus est répété pour la température en degrés Fahrenheit.
server.on ("/ temperaturef", HTTP_GET, [](Demande AsyncWebServerRequest *)
request-> send_P (200, "text / plain", readDSTemperatureF (). c_str ());
);
Enfin, nous pouvons démarrer le serveur.
server.begin ();
Comme il s’agit d’un serveur Web asynchrone, nous n’avons pas besoin d’écrire dans le boucle().
boucle vide ()
C’est à peu près comment le code fonctionne.
Manifestation
Après avoir chargé le code, ouvrez le moniteur série Arduino IDE à une vitesse de transmission de 115200 bauds. Après quelques secondes, votre adresse IP devrait s'afficher.
Dans votre réseau local, ouvrez un navigateur et tapez l'adresse IP de l'ESP8266.
Vous pouvez maintenant voir la température en degrés Celsius et Fahrenheit sur votre serveur Web. Les lectures du capteur se mettent à jour automatiquement sans qu'il soit nécessaire d'actualiser la page Web.
Emballer
Il s'agissait d'un guide détaillé sur la façon d'utiliser le capteur de température DS18B20 avec l'ESP8266 et d'afficher les lectures sur un serveur Web.
Le DS18B20 communique via un protocole à un fil et chaque capteur possède un code série unique de 64 bits, ce qui signifie que vous pouvez lire plusieurs capteurs sur la même broche de données.
Nous espérons que vous avez trouvé ce tutoriel utile. Nous avons d’autres tutoriels avec l’ESP8266 qui pourraient également vous plaire:
En savoir plus sur le ESP8266 avec Domotique à l'aide de ESP8266 (cours eBook + vidéo).
Merci d'avoir lu.
Commentaires
Laisser un commentaire