Serveur d'impression

Programmation de l'ESP8266 avec l'IDE Arduino: bibliothèques, GPIO, serveur Web, client Web, pilotes – Bien choisir son serveur d impression

Le 5 mai 2020 - 23 minutes de lecture

Les modules WiFi ESP8266 peuvent remplacer Arduino dans de nombreuses applications en ajoutant une connectivité Wi-Fi à faible coût. Lors du lancement des modules ESP8266 (en 2014), le langage de programmation préféré était Lua (vous pouvez toujours programmer dans ce langage!). Rapidement, la grande majorité des bibliothèques Arduino ont été adaptées pour fonctionner sur l'ESP8266.

Article mis à jour le 24 avril 2020

Aujourd'hui, il est aussi simple de programmer un module ESP8266 qu'un Arduino en C ++. Nous allons découvrir dans ce tutoriel comment installer les bibliothèques nécessaires sur l'IDE Arduino, et découvrir à travers des exemples simples les bases de la programmation de l'ESP8266.

Installer des cartes et des bibliothèques pour les modules ESP8266 sur l'IDE Arduino

Lancez l'IDE Arduino et ouvrez les préférences dans le menu Fichier. Sur macOS, allez dans le menu Arduino puis Préférences … Cliquez sur l'icône indiquée par la flèche rouge sur la photo ci-dessous.

ide arduino esp8266 préférence

Dans le champ de saisie, collez l'adresse internet suivante puis validez

https://arduino.esp8266.com/stable/package_esp8266com_index.json

http://arduino.esp8266.com/staging/package_esp8266com_index.json

url bibliothécaire idé Arduino esp8266

Pour les cartes ESP32, ajoutez la source suivante

https://dl.espressif.com/dl/package_esp32_index.json

Cela indique à l'IDE Arduino qu'il doit se rendre sur le site arduino.esp8266.com afin de récupérer d'autres cartes compatibles. Maintenant, allez dans le menu Outils puis Type de cartes et enfin Gestionnaire de cartes

    gestionnaire de cartes ide arduino

Dans le champ de recherche, entrez esp8266 pour trouver les nouvelles cartes à installer. Si les cartes n'apparaissent pas, vérifiez dans les préférences que l'URL est correcte. vérifiez également la connexion Internet. Cliquer sur Installer.

ide arduino installe la carte esp8266

L'installation ne prend que quelques minutes. Une fois l'installation terminée, fermez le gestionnaire de cartes et ouvrez à nouveau le menu Outils. Dans le sous-menu Type de carte, vous avez maintenant une nouvelle section appelée Modules ESP8266.

ide arduino esp8266 liste des cartes

Les principaux fabricants qui contribuent le plus à la communauté (Adafruit, ESPresso, Olimex, Sparkfun, WeMos…) sont au menu. Pour les autres modules, choisissez simplement le module ESP8266 générique.

Pour afficher les exemples installés avec les cartes ESP826, si vous n'avez qu'à choisir dans la liste puis allez sur le Fichier -> Exemples.

Problèmes avec le bus I2C et la bibliothèque SD à partir de la version 2.5

La version 2.5 du SDK ESP8266 semble introduire des modifications importantes pouvant entraîner des problèmes d'incompatibilité avec certains libraires. Par exemple, j'ai rencontré des problèmes de compilation avec la bibliothèque SD qui permet l'enregistrement et la lecture sur une carte micro SD. Un problème similaire a été signalé en 2016 sur le forum officiel. Le compilateur refuse de compiler le programme sans que la sélection de puce de la carte SD ne soit indiquée. ce paramètre est normalement facultatif. Si une sélection de puce est indiquée, la compilation et le téléchargement sont effectués correctement mais la communication avec le bus I2C est perdue.

Si vous rencontrez un problème similaire, vous pouvez (temporairement) revenir à une version précédente du SDK.

Comment installer une version précédente du SDK ESP8266

Cependant, si vous rencontrez un problème, vous pouvez utiliser une version précédente du SDK. Pour ce faire, ouvrez le gestionnaire de cartes et recherchez la carte ESP8266. Cliquez sur Supprimer pour supprimer l'intégralité du SDK.

supprimer esp8266 sdk ide arduino

Choisissez ensuite la version souhaitée, par exemple la version 2.4.2 et cliquez sur installer. Ne cliquez pas sur la mise à jour car l'IDE Arduino installe automatiquement la dernière version publiée (la plus récente)!

installer la version esp8266 sdk ide arduino

Avant d'aller plus loin, note sur ESP-01

Module Wifi esp8266 esp-01L'ESP-01 est une version plus limitée de l'ESP8266. Il ne dispose que de 2 GPIO. Le module a une mémoire flash plus petite (de 512 Ko à 1 Mo). La programmation est identique mais «plus pénible» car il faut mettre le module dans un mode particulier avant de pouvoir télécharger le programme (mode Bootload). Ce n'est pas un module approprié pour apprendre et démarrer avec l'ESP8266. Cependant, si vous avez besoin de plus d'informations, vous pouvez trouver plusieurs tutoriels sur le blog en recherchant avec le mot-clé ESP-01.

Différences entre Arduino et ESP8266, identification des broches

L'ESP8266 possède 9 E / S numériques au lieu de 14 pour l'Arduino Uno. Alors que sur l'Arduino Uno, il n'y a que 6 sorties qui prennent en charge le mode PWM (3, 5, 6, 9, 10 et 11), toutes les sorties de l'ESP8266 peuvent générer un signal PWM. Si vous avez besoin de plus d'E / S, vous pouvez passer à ESP32.

En résumé

Arduino / Genuino 101 ESP8266 (ESP-12x)
Micro-contrôleur Arduio Uno et la plupart des cartes compatible: ATmel ATmega328p

Le nouveau Genuino 101: Intel Curie

Tensilica Xtensa LX106
Sans fil
Bluetooth LE
Adressage 8… 32 bits 32bits
Fréquence d'horloge 16 MHz 80 MHz
Mémoire flash 32kb 512… 4 Mo (1)
Nombre d'E / S x14 x11 (D0… D8 + RX / TX)
Nombre de sorties PWM Arduino Uno et clones: x6 (3, 5, 6, 9, 10, 11)

Arduino 101: x4

Toutes les sorties sont PWM
Nombre d'entrées analogiques x6 (A0..A5), 10 bits, 5 V max. x1 (A0), 10 bits, 1 V max. (2)
UART (port série) x1 x1 (3)
I2C x1 x1
SPI x1 x1
Documentation technique Arduino Uno R3

Genuino 101

version 5.4

L'identification des broches est légèrement différente sur l'ESP8266. Chaque sortie est précédée d'un (pour numérique probablement). Dans un programme Arduino, vous pouvez directement utiliser le marqueur indiqué sur la carte D1 ou l'équivalent Arduino 5.

(1) Mémoire externe. Aujourd'hui, presque tous les modèles ont 4 Mo de mémoire flash. Cependant, tout n'est pas utilisable. Une partie est réservée au stockage des données (stockage des données utilisateur, interface HTML et code d'interface javascript, etc.). Il s'agit de la zone SPIFFS présentée dans cet article.

(2) L'ESP8266 accepte 1V maximum sur la broche analogique. Certains modules intègrent un pont diviseur de tension qui permet d'augmenter la tension. Par exemple, le Wemos d1 mini accepte 3,3 V max.

(3) Un seul port série utilisable. L'autre broche TX est utilisée lors de l'écriture de la mémoire flash

Attention. Chaque fabricant est libre d'attribuer les broches. C'est notamment le cas pour les broches des bus I2C et SPI. Il faudra vérifier la documentation technique de la carte. Vous pouvez également consulter cet article qui résume les broches des principales cartes en vente

ESP8266 broches Remarque Équivalent Arduino / Genuino 101 Autre usage
TX 1 CS1, TXD0
RX 3 RXD0
D0 PWM (1) 16 RÉVEILLER
D1 PWM 5
D2 PWM 4
D3 PWM 0 CS2
D4 PWM 2 TXD1
D5 PWM 14 CLK
D6 PWM 12 MISO
D7 PWM 13 MOSI, RXD2, CTS0
D8 PWM 15 CS, TXD2, RTS0
RST RST
A0 3,3 V max. A0
3V3 3V
5V 800 mA max.
g GND (x3)

(1) Connecté à la broche GND à la mise sous tension pour mettre ESP en mode bootload. Ce mode vous permet de réinstaller le firmware d'origine ou de charger un programme Arduino. Sur certaines cartes, WeMos d1 mini par exemple, cette opération est prise en charge par le gestionnaire de cartes. Cette opération est donc inutile, le téléchargement est transparent.

Généralement, les fabricants publient un schéma de brochage qui indique la broche équivalente sur un Arduino Uno. Ici, par exemple, les broches d'un LoLin WeMos d1 mini. Ce schéma de connexion est valable pour toutes les cartes basées sur le module ESP-12x.

Assortir les broches GPIO WeMos D1 mini

Si vous souhaitez vous lancer dans la programmation Lua, le numéro de broche à utiliser dans le code est également indiqué.

Attention, le GPIO fonctionne avec une tension de 3,3V

Particularité de l'ESP8266 par rapport à l'Arduino Uno (ce n'est plus le cas pour le Genuino 101 et les nouvelles cartes à base d'Intel Curie), le GPIO fonctionne à une tension de 3,3V. Il faudra donc dans certains cas adapter vos montages. Pour cela, il existe des diviseurs de tension (5V à 3,3V) ou inversement (3,3V à 5V).

Comment programmer l'ESP8266 avec l'IDE Arduino?

Équipement et circuit d'essai

Voici un petit montage à réaliser avec un ESP8266 et une Led qui vous permettront de tester les différents codes proposés dans ce tutoriel.

Pour mémoire, voici un tableau récapitulatif de la tension d'alimentation typique en fonction de la couleur et du diamètre de la LED.

Couleur Longueur d'onde (nm) Tension (V) pour diamètre 3 mm Tension (V) pour diamètre 5 mm
rouge 625-630 1.9-2.1 2.1-2.2
Bleu 460-470 3.0-3.2 3.2-3.4
vert 520-525 2.0-2.2 2.0-2.2
Jaune 585-595 2.0-2.2 3.0-3.2
blanc 460-470 3.0-3.2 1.9-2.1

Programmation «classique»

La première chose à savoir lors du démarrage avec un module ESP8266 est que vous pouvez le programmer exactement comme un Arduino. Contrairement aux microcontrôleurs ATTiny moins puissants, le SoC de l'ESP8266 est capable d'exécuter toutes les commandes C ++ du code Arduino. La seule condition à respecter est d'utiliser la bibliothèque adaptée à ces derniers dès que vous souhaitez utiliser le WiFi (paragraphe suivant).

Ouvrez l'IDE Arduino et collez ce code dans un nouveau projet avant de le télécharger.

Que fait ce programme?

  • Une variable entière (int) permet d'indiquer sur quelle sortie la Led est connectée
  • Dans la boucle setup (), nous indiquons que la broche (ici 16) est une sortie (OUTPUT)
  • La boucle loop () s'exécute sans fin. A chaque passage
    • On met la sortie (16) à bas niveau (LOW), c'est-à-dire que la tension de sortie est nulle (pas de courant)
    • Nous attendons 1 seconde. Le délai est indiqué en millisecondes (1000 ms = 1 s)
    • On met la sortie (16) haute (HIGH), c'est-à-dire que la tension de sortie est de 5V (le courant circule)
    • Nous attendons 2 secondes
    • Etc
int led = 16;

void setup () 
pinMode (led, SORTIE); // Initialiser la broche "led" en sortie - Initialiser la broche "LED" en sortie


// Cette boucle fonctionne sans fin
// la fonction de boucle se répète indéfiniment
boucle vide () 
digitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED
retard (1000); // Attendez 1 seconde - Attendez une seconde
digitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension
retard (2000); // 2 secondes de pause - Attendez 2 secondes

Remplacez maintenant dans la sortie 16 par le marquage équivalent de ESP8266, à savoir D0, qui donne int led = D0;

Comme vous pouvez le voir, le programme fonctionne de la même manière.

Remarque. Même si la variable est de type int (entier), nous écrivons une chaîne de caractères dans le code. C'est normal. Au moment de la compilation, la référence à la broche sera remplacée dans le code par la bibliothèque ESP8266.

Programmation du serveur Web: connectez l'ESP8266 au réseau WiFi

La programmation du serveur Web vous permet d'ajouter une interface Web (écrite en HTML et javascript) à un projet ESP8266. C'est également possible avec un Arduino mais c'est parfaitement logique avec un ESP8266 qui a nativement une connexion WiFi.

Prenons le code précédent et ajoutons les deux bibliothèques nécessaires

#comprendre 
#comprendre 

Nous allons créer deux variables pour définir le SSID (identifiant du réseau WiFi) et le mot de passe avant de créer un objet qui contiendra le serveur Web (objet C ++)

const char * ssid = "xxxx"; // Identifiant WiFi
const char * password = "xxxxxxxxx"; // Mot de passe WiFi
ESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80

Le code de fonction de configuration effectue les opérations suivantes

  • Serial.begin (115200) nous ouvrons le port série à 115200 bauds
  • WiFi.begin (ssid, mot de passe) ESP8266 se connecte au réseau WiFi
  • La boucle while écrit un point sur le port série toutes les 500 ms jusqu'à ce que l'ESP8266 soit connecté au WiFi WiFi.status ()! = WL_CONNECTED (très mauvaise idée quand on fonctionne sur batterie ailleurs, mais c'est juste pour comprendre comment ça marche)
  • Serial.println (WiFi.localIP ()) écrit l'adresse IP attribuée par la box Internet ou le routeur à l'ESP8266 sur le port série
  • server.on ("/", []() 
    server.send (200, "text / plain", "Home page"); // Ajouter un point d'entrée, une page web
    );

    Nous ajoutons un point d'entrée, c'est-à-dire une adresse internet (URL) sur laquelle nous afficherons pour l'instant un simple texte

  • server.on ("/ parameters", []() 
    server.send (200, "text / plain", "Une page de paramètres");
    );

    Une deuxième page qui pourrait être une page de paramètres

  • server.begin () enfin, on démarre le serveur web

Il ne reste plus qu'à demander à l'ESP8266 d'écouter les requêtes et d'afficher les pages correspondantes. À cela, nous ajoutons la commande server.handleClient () dans la fonction loop ().

Collez le code complet dans un nouveau projet et téléchargez-le sur WeMos.

#comprendre 
#comprendre 
const char * ssid = "XXXX"; // Identifiant WiFi
const char * password = "XXXXXXXXX"; // Mot de passe WiFi
ESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80

int led = D0;

void setup () 
Serial.begin (115200);
WiFi.begin (ssid, mot de passe);
Serial.println ("");
// nous attendons d'être connectés au WiFi avant de continuer
while (WiFi.status ()! = WL_CONNECTED) 
retard (500);
Serial.print (".");

// nous affichons l'adresse IP attribuée au serveur DSN
Serial.println ("");
Serial.print ("adresse IP:");
Serial.println (WiFi.localIP ());

// on définit les points d'entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple
server.on ("/", []() 
server.send (200, "text / plain", "Home page");
);
server.on ("/ parameters", []() 
server.send (200, "text / plain", "Une page de paramètres");
);
// on démarre le serveur web
server.begin ();
pinMode (led, SORTIE); // Initialiser la broche "led" en sortie - Initialiser la broche "LED" en sortie


// Cette boucle s'exécute sans fin - la fonction de boucle s'exécute indéfiniment
boucle vide () 
// à chaque itération, la fonction handleClient traite les requêtes
server.handleClient ();

digitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED
retard (1000); // Attendez 1 seconde - Attendez une seconde
digitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension
retard (1000); // 2 secondes de pause - Attendez 2 secondes

Ouvrez le moniteur série pour récupérer l'adresse IP de l'ESP8266 sur le réseau local.

Ouvrez maintenant un navigateur Internet et entrez l'adresse IP ou IP_ESP8266 / paramètres.

Et voilà, en quelques lignes de code, vous venez de connecter l'ESP8266 au réseau local (et à Internet en même temps). Vous pouvez accéder à une interface WEB depuis n'importe quel ordinateur ou smartphone. En faisant une redirection de port sur votre box Internet ou votre routeur, vous pouvez même accéder à l'interface extérieure à votre domicile avec une connexion 3G / 4G.

Attention. La connexion n'est pas cryptée. Il n'est pas protégé. Tout le monde peut avoir accès aux commandes de votre interface. Il faudra ajouter des protections (mot de passe…)

Programmation de serveur Web: contrôlez le GPIO depuis un smartphone depuis Internet!

Nous allons maintenant voir comment ajouter des commandes pour contrôler le GPIO à partir d'une interface. Il existe plusieurs méthodes pour générer le code HTML de l'interface qui sera envoyé au navigateur Internet. Ici, nous allons simplement créer une chaîne qui contiendra le code HTML. Tout est expliqué en détail dans ce tutoriel. Chaque ligne est expliquée dans le code. Ce que vous devez vous rappeler :

  • Le code HTML est construit en assemblant des chaînes
  • Il est possible d'intégrer un contenu variable. Voici l'état de la sortie D0 contenue dans la chaîne etatD0.
  • Chaque changement d'état est envoyé au serveur web qui s'exécute sur l'ESP8266 à l'aide d'un formulaire sous la forme d'une requête HTTP de type POST.
  • Ici, la mise à jour est déclenchée manuellement en appuyant sur un bouton (soumettre)
String getPage () 
Page de chaîne = "";
page + = "Démonstration du serveur Web ESP8266 - www.projetsdiy.fr";
page + = "";
page + = "

Démonstration du serveur Web ESP8266

"; page + = "

GPIO

"; page + = "
"; page + = "
  • D0 (indiquer: "; page + = stateD0; page + = ")"; page + = "NOUS"; page + = "DE
"; page + = ""; page + = "

www.projetsdiy.fr

"; page + = ""; page de retour;

Maintenant, nous modifions dans la configuration le point d'entrée vers la page d'accueil. Nous connectons le point d'entrée «/» à la fonction handleRoot.

server.on ("/", handleRoot);

Lorsque la page principale («/») s'affiche ou que le serveur Web reçoit une demande POST (mise à jour GPIO), la fonction handleRoot est appelée. La fonction server.hasArg est utilisée pour connecter des actions. Ici, si la requête contient l'argument (hasArg), alors nous devons changer l'état du GPIO. Nous exécutons la fonction handleSubmit, sinon nous actualisons la page.

void handleRoot () 
if (server.hasArg ("D0")) 
handleSubmit ();
 autre 
server.send (200, "text / html", getPage ());

La fonction handleSubmit récupère la valeur de l'argument "D0" avec la fonction server.arg, puis il suffit de tester sa valeur pour effectuer le traitement correct. Veuillez noter qu'il s'agit d'une chaîne de caractères. Il faut donc tester comme ça == "1" et non == 1. Nous en profitons pour stocker l'état de la sortie dans la variable etatD0.

void handleSubmit () 
// Mettre à jour le GPIO / Mettre à jour le GPIO
String LEDValue;
LEDValue = server.arg ("D0");
Serial.print ("Définir GPIO sur"); Serial.println (LEDValue);
if (LEDValue == "1") 
digitalWrite (D0, 1);
etatD0 = "On";
server.send (200, "text / html", getPage ());
 else if (LEDValue == "0") 
digitalWrite (D0, 0);
etatD0 = "Off";
server.send (200, "text / html", getPage ());
 autre 
Serial.println ("Err Led Value");

Collez le code complet suivant en modifiant l'identifiant WiFi et le mot de passe.

#comprendre 
#comprendre 
const char * ssid = "XXXX"; // Identifiant WiFi
const char * password = "XXXXXXXX"; // Mot de passe WiFi
ESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80

int led = D0;
String etatD0 = "Off";

String getPage () 
Page de chaîne = ""; // Il s'agit du code HTML, la page s'actualise automatiquement
page + = "Démonstration du serveur Web ESP8266 - www.projetsdiy.fr"; // Titre de la barre du navigateur
page + = ""; // style de page
page + = "

Démonstration du serveur Web ESP8266

"; // Titre de la page (H1) page + = "

GPIO

"; // Sous-titre (H3) page + = ""; // Le formulaire sera envoyé avec une requête POST page + = "
  • D0 (état: "; // Première ligne de la liste (ul) avec D0 page + = stateD0; // on concatène la chaîne contenant l'état de la sortie page + = ")"; page + = "ON "; // Bouton pour activer D0 page + = "DE
"; // et désactivez-le page + = ""; // Bouton Actualiser page + = "

www.projetsdiy.fr

"; page + = ""; page de retour; void handleRoot () if (server.hasArg ("D0")) handleSubmit (); autre server.send (200, "text / html", getPage ()); void handleSubmit () // Mettre à jour le GPIO / Mettre à jour le GPIO String LEDValue; LEDValue = server.arg ("D0"); Serial.print ("Définir GPIO sur"); Serial.println (LEDValue); if (LEDValue == "1") digitalWrite (D0, 1); etatD0 = "On"; server.send (200, "text / html", getPage ()); else if (LEDValue == "0") digitalWrite (D0, 0); etatD0 = "Off"; server.send (200, "text / html", getPage ()); autre Serial.println ("Err Led Value"); void setup () Serial.begin (115200); WiFi.begin (ssid, mot de passe); Serial.println (""); // nous attendons d'être connectés au WiFi avant de continuer while (WiFi.status ()! = WL_CONNECTED) retard (500); Serial.print ("."); // nous affichons l'adresse IP qui nous est attribuée Serial.println (""); Serial.print ("adresse IP:"); Serial.println (WiFi.localIP ()); // on définit les points d'entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple server.on ("/", handleRoot); // on démarre le serveur web server.begin (); pinMode (led, SORTIE); // Initialiser la broche "led" en sortie - Initialiser la broche "LED" en sortie // Cette boucle s'exécute sans fin - la fonction de boucle s'exécute indéfiniment boucle vide () // à chaque itération, nous appelons handleClient pour que les requêtes soient traitées server.handleClient ();

Voici l'interface obtenue

Maintenant que c'est plus clair, vous pouvez aller un peu plus loin dans les détails de la programmation du serveur Web ESP8266 en lisant cet article. Vous pouvez réaliser ce type d'interface en suivant ce projet de station météo en 5 étapes.

esp8266 serveur web spiffs bootstrap dht22 bmp180 google charts

Tous les didacticiels de programmation du serveur Web ESP8266

Serveur Web (Interface)

Programmation client Web:

La programmation Web client permet à un module ESP8266 de communiquer avec un autre serveur, un autre ESP8266, une application mobile, etc. Voici quelques exemples d'application:

  • Transmettre des mesures (température, humidité, taux de particules, pression atmosphérique, luminosité, bruit, etc.)
  • États de transmission (détecteur d'ouverture de porte ou de fenêtre, contacteur, etc.)

Voici plusieurs articles sur le sujet avec des exemples d'applications pour communiquer ESP8266 avec Jeedom ou Domoticz (affichage à distance)

Client Web (communication)

Foire aux questions (FAQ)

Sur quelles plateformes l'IDE Arduino est-il disponible?

L'IDE Arduino est disponible sur tous les systèmes d'exploitation (Windows, macOS, Linux, Linux ARM). Quel que soit votre environnement, vous pouvez donc développer vos projets ESP8266 avec l'IDE Arduino. Accédez au site des fonctions Arduino pour récupérer la version qui convient à votre ordinateur ou mini-PC. Il existe également une version en ligne si vous ne souhaitez rien installer sur votre ordinateur.

Pouvez-vous programmer un ESP8266 sur un Mac?

Oui, l'IDE Arduino est également disponible sur macOS. Comme le SDK expressif est écrit en python, il est possible de programmer des modules ESP8266 comme sur un PC Windows.

Peut-on programmer l'ESP8266 depuis Linux ARM (Raspberry Pi par exemple)?

Oui, si vous avez un Raspberry Pi ou un mini-PC équivalent exécutant Linux ARM (un Orange Pi par exemple), il est tout à fait possible d'utiliser l'IDE Arduino.

Je ne sais rien de la programmation, essayez le projet ESP Easy!

Si vous débutez avec les microcontrôleurs et que tout ce que vous avez lu précédemment vous fait un peu peur, pas de problème. Le projet ESP Easy est fait pour vous! ESP Easy est une interface qui permet le développement de sondes ou d'actionneurs par simple configuration. L'interface est en anglais mais tout est expliqué dans ces tutoriels en français.

Quel modèle ESP8266 ou ESP32 choisir pour commencer?

Si votre projet nécessite une connectivité WiFi ou Bluetooth, l'ESP8266 (guide complet) est un module compatible avec le code Arduino. L'ESP32 est une version améliorée qui a plus d'entrées / sorties (GPIO), plus de puissance et consomme encore moins.

Quelques tutoriels et projets basés sur ESP8266

  • Commencez avec des objets connectés DIY (2). Communiquer, programmer, stocker, visualiser, fabriquer des circuits
  • # Test IAQ CCS811, capteur de qualité de l'air TVOC, bus eCO2 i2C (Arduino, ESP8266)
  • Bibliothèque Arduino Telegram Bot universelle compatible avec les mises à niveau Arduino, ESP32 et ESP8266 vers la version 1.1.0
  • Installez facilement ESP Easy R120 ou Mega v2 avec PlatformIO sur ESP8266 [MàJ]
  • Déballage du clone Wemos ESP32 LoLin avec écran OLED monochrome SSD1306 de 0,96 pouces
  • Projet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)
  • Déballage du Wemos D1 R2, du clone ESPDuino, de la carte de développement ESP8266 au format Arduino Uno
  • Projet MicroPython ESP32, lire la température sur plusieurs sondes DS18B20 et publier les mesures sur Domoticz
  • Déballage du blindage Geekcreit PCA9685 I2C 16 servos + 2 moteurs pour Arduino ou ESPDuino (ESP8266)
  • Affichage OLED SSD1306 en MicroPython, exemple avec un baromètre numérique BME280 I2C

Tous les projets ESP8266

Quelques tutoriels et projets basés sur ESP32

  • Nouvelle carte de développement expressive ESP32-Vaquita-DSPG pour l'interface utilisateur vocale
  • ESP32-CAM, flash du firmware. Test sur Domoticz, Jeedom, Home Assistant, NextDom, Node-RED
  • Programmation des cartes ESP32 avec l'IDE Arduino sur macOS, Windows 10, Linux ARM [MàJ]. Cadre ESP-IDF
  • Quel ESP32 choisir pour développer des objets connectés DIY en 2020
  • Wemos LoLin D32 Pro ESP32 avec support d'écran TFT, connecteur et chargeur de batterie LiPo et lecteur de carte SD
  • #Guider. Concevoir, fabriquer et assembler des circuits et des PCB pour des projets de bricolage basés sur ESP32 ou ESP8266
  • MH-Z19, mesure la concentration de CO2. Test avec Domoticz, code Arduino compatible avec ESP32 / ESP8266
  • Projet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)

Tous les projets ESP32

Peut-on utiliser des cartes NodeMCU ou micropython?

Absolument oui. Ce sont d'autres firmwares. NodeMCU vous permet d'exécuter du code Lua. Dès le premier téléchargement, le firmware sera remplacé par le code Arduino. Vous pouvez réinstaller le firmware NodeMCU (suivez ce tutoriel pour cela) ou micropython plus tard.

Tutoriels et projets MicroPython

Tous les projets Micro Pyton

Quelques livres pour débuter en C / C ++

La programmation Arduino utilise des concepts de programmation d'objets C / C ++. Il existe de très bons livres d'introduction ainsi que des tutoriels sur le Web pour aller plus loin que les concepts abordés ici

6,99 €

15,99

en stock

1 nouveau
à partir de 6,99 €

Enregistré le 18 novembre 2019 12 h 03 min

Amazon.fr

Livraison gratuite

Mises à jour

[24/04/2020] Mise à jour de l'article

[3/06/2019] Nouvelle URL vers le SDK ESP8266. Régression du SDK constatée depuis la version 2.5.x. Comment installer une version précédente du SDK

As-tu aimé cet article ?

[Total:[Total:[Total:[Total: Moyenne: ]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.