Initialisation
This commit is contained in:
65
data/pages/electronique/esp/adapteur-usb-esp01.txt
Normal file
65
data/pages/electronique/esp/adapteur-usb-esp01.txt
Normal file
@@ -0,0 +1,65 @@
|
||||
====== Adaptateur USB vers ESP-01 ======
|
||||
{{ :electronique:esp:pasted:20201207-233302.png?75x75|Adapteur USB vers ESP-01}}
|
||||
|
||||
===== Généralités =====
|
||||
|
||||
Cet [[https://amzn.to/3oHZ1Eo|adaptateur USB vers ESP-01 avec puce CH340]] permet d'accéder facilement au circuit ESP-01 via le port USB d'un ordinateur. L'adaptateur dispose également d'un régulateur 3,3 V.
|
||||
|
||||
Cela permet de recevoir des informations de l'ESP-01 ou d'[[electronique:esp:esp8266-commandes-at|envoyer des commandes AT]].
|
||||
|
||||
> Acheter un [[https://amzn.to/3oHZ1Eo|adaptateur USB vers ESP-01 avec puce CH340]]
|
||||
|
||||
===== Activer le mode PROGRAMMATION =====
|
||||
|
||||
|
||||
Il faut basculer l'**ESP-01** du **mode UART** en **mode FLASH** ou mode PROGRAMMATION , ce qui permet de programmer l'ESP8266. Cette bascule n'est pas réalisée logiciellement. Il faut réaliser la bascule en **mode PROGRAMMATION** électriquement.
|
||||
|
||||
|
||||
{{ :electronique:esp:pasted:20201212-191417.png |Erreur lors du téléversement vers ESP-01}}
|
||||
|
||||
Sans cette bascule, l'IDE Arduino affiche des erreurs graves.
|
||||
|
||||
<code>
|
||||
Executable segment sizes:
|
||||
IROM : 234612 - code in flash (default or ICACHE_FLASH_ATTR)
|
||||
IRAM : 26888 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
|
||||
DATA : 1252 ) - initialized variables (global, static) in RAM/HEAP
|
||||
RODATA : 1376 ) / 81920 - constants (global, static) in RAM/HEAP
|
||||
BSS : 25112 ) - zeroed variables (global, static) in RAM/HEAP
|
||||
Le croquis utilise 264128 octets (25%) de l'espace de stockage de programmes. Le maximum est de 1044464 octets.
|
||||
Les variables globales utilisent 27740 octets (33%) de mémoire dynamique, ce qui laisse 54180 octets pour les variables locales. Le maximum est de 81920 octets.
|
||||
esptool.py v2.8
|
||||
Serial port /dev/ttyUSB0
|
||||
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
|
||||
File "/home/cedric24c/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/upload.py", line 65, in <module>
|
||||
esptool.main(cmdline)
|
||||
File "/home/cedric24c/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool/esptool.py", line 2890, in main
|
||||
esp.connect(args.before)
|
||||
File "/home/cedric24c/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool/esptool.py", line 483, in connect
|
||||
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
|
||||
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
|
||||
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
|
||||
</code>
|
||||
|
||||
|
||||
|
||||
Certains [[https://amzn.to/3oHZ1Eo|adaptateurs USB vers ESP-01]] ne sont pas équipés de cette bascule. Voici quelques modifications matérielles a effectuer pour rendre programmable l'ESP8266. Cette modification est à effectuer sur l'adaptateur. Il est nécessaire d'avoir de l'**étain** et un **fer à souder**. J'ai utiliser **deux fils** et **une broche de connexion** avec un **jumper**.
|
||||
|
||||
|
||||
{{ :electronique:esp:pasted:20201212-134043.png?150 |Broches de l'ESP-01 }}
|
||||
|
||||
Il faut relier les broches **GPIO0** et **GND**.
|
||||
|
||||
{{ :electronique:esp:pasted:20201212-173952.png |Adaptateur USB vers ESP-01 hacké}}
|
||||
|
||||
J'ajoute un peu de colle blanche, avec un pistolet à colle afin de rigidifier l'ensemble et de ne pas tirer sur les soudures.
|
||||
|
||||
{{ :electronique:esp:pasted:20201213-084414.png |Finition du hack sur l'adaptateur USB vers ESP-01}}
|
||||
|
||||
A partir de maintenant, vous pouvez téléverser votre programme.
|
||||
|
||||
{{ :electronique:esp:pasted:20201213-083952.png }}
|
||||
|
||||
Le programme téléversé écrasera le code déjà chargé et notamment celui avec les commandes AT ([[electronique:esp:esp8266-commandes-at|commandes Hayes]]).
|
||||
|
||||
<WRAP clear/>
|
||||
16
data/pages/electronique/esp/communiquer-avec-un-esp-32.txt
Normal file
16
data/pages/electronique/esp/communiquer-avec-un-esp-32.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
====== Communiquer avec un module ESP-32 ======
|
||||
{{tag>"script linux"}}
|
||||
{{ :dummy.png?75x75|Nom de la section}}
|
||||
|
||||
Pour communiquer avec un module ESP-32, vous pouvez utiliser plusieurs méthodes, notamment:
|
||||
|
||||
1. Communication série (UART): L'ESP-32 dispose de broches UART qui permettent la communication série. Vous pouvez utiliser un câble USB-TTL pour connecter l'ESP-32 à votre ordinateur et utiliser un terminal série pour envoyer et recevoir des données.
|
||||
|
||||
2. Wi-Fi: L'ESP-32 prend en charge la communication Wi-Fi. Vous pouvez [[electronique:esp:creer-un-point-d-acces|configurer l'ESP-32 en tant que point d'accès]] ou le [[electronique:esp:se-connecter-a-un-reseau-wifi|connecter à votre réseau Wi-Fi existant]]. Une fois connecté, vous pouvez communiquer avec l'ESP-32 via des sockets TCP/IP ou en utilisant des protocoles réseau tels que HTTP.
|
||||
|
||||
3. Bluetooth: Certains modules ESP-32 prennent également en charge la communication Bluetooth. Vous pouvez utiliser des protocoles Bluetooth tels que Bluetooth Low Energy (BLE) pour établir une communication avec d'autres appareils compatibles Bluetooth.
|
||||
|
||||
4. Protocoles de communication spécifiques: L'ESP-32 prend en charge divers protocoles de communication tels que MQTT, CoAP, WebSocket, etc. Vous pouvez choisir le protocole qui convient le mieux à votre cas d'utilisation et configurer l'ESP-32 en conséquence.
|
||||
|
||||
Il est important de noter que la communication avec l'ESP-32 nécessite un développement logiciel approprié. Vous pouvez utiliser l'IDE Arduino, PlatformIO ou d'autres outils de développement pour écrire le code nécessaire pour établir la communication et traiter les données sur l'ESP-32. Assurez-vous de consulter la documentation et les exemples fournis par le fabricant de l'ESP-32 pour obtenir des informations déta
|
||||
|
||||
31
data/pages/electronique/esp/creer-un-point-d-acces.txt
Normal file
31
data/pages/electronique/esp/creer-un-point-d-acces.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
====== Créer un Point d'Accès Wifi (AP) ======
|
||||
|
||||
Un **point d'accès Wifi** (AP) consiste à créer un réseau Wifi avec nom (appelé SSID). Ci-dessous, un code pour créer rapidement un point d'accès Wifi avec l'**ESP 8266**. Le nom de réseau s’appellera **ESP1 - AP**, stockée dans la variable **ssid**.
|
||||
|
||||
<code C esp8266-wifi-ap.ino>
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
/* Définition du réseau Wifi à diffuser */
|
||||
const char *ssid = "ESP1 - AP";
|
||||
|
||||
|
||||
void setup() {
|
||||
delay(1000);
|
||||
Serial.begin(115200);
|
||||
Serial.println();
|
||||
Serial.println("Configuration du point d'accès...");
|
||||
WiFi.softAP(ssid);
|
||||
|
||||
IPAddress apIP = WiFi.softAPIP();
|
||||
Serial.print("AP adresse IP: ");
|
||||
Serial.println(apIP);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
</code>
|
||||
21
data/pages/electronique/esp/doiting-esp-12f/index.txt
Normal file
21
data/pages/electronique/esp/doiting-esp-12f/index.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
====== DOITING ESP 12F ======
|
||||
{{ :dummy.png?75x75|Nom de la section}}
|
||||
|
||||
====== Galerie photos ======
|
||||
|
||||
{{gallery>.:}}
|
||||
|
||||
====== Caractéristiques ======
|
||||
|
||||
|
||||
^ Tension de fonctionnement | 3.3 V (3.0 à 3.6 ~ V) |
|
||||
^ Température de l'environnement de travail | de -40°C à 85°C |
|
||||
^ Processeur | Tensilica L106 32 bits |
|
||||
^ RAM | 50KB (disponible) |
|
||||
^ Flash | 32 Mbits |
|
||||
^ Wifi | 802.11 b/g/n 2.4 GHz, prend en charge le mode de sécurité WPA/WPA2 |
|
||||
^ Gamme de fréquences | 2.4 GHz ~ à à à 2.5 à 2400 GHz (2483.5 MHz à MHz) |
|
||||
^ Fréquences | de 80 MHz et 160 MHz |
|
||||
^ Bus | UART, I2C, GPIO, PWM, SDIO, SPI, ADC, PWM, IR |
|
||||
^ Protocoles réseau | Prendre en charge TCP, uu, UDP, HTTP, FTP |
|
||||
^ Consommation | Consommation moyenne : 80mA\\ Consommation en sommeil profond : 20µA\\ Consommation en arrêt : < 5µA |
|
||||
112
data/pages/electronique/esp/esp32-commander-led-wifi.txt
Normal file
112
data/pages/electronique/esp/esp32-commander-led-wifi.txt
Normal file
@@ -0,0 +1,112 @@
|
||||
====== Commander une LED Wifi ======
|
||||
{{ :dummy.png?75x75|Commander la LED intégrer aux boards basées sur ESP866 par une page HTML via une connexion Wifi.}}
|
||||
|
||||
Nous avons vu dans le chapitre [..] comment la carte ESP 8266 peut se connecter à un **point d'accès** Wifi. Nous nous fixons comme objectif de connecter l'ESP 8266 au même réseau qu’un smartphone ou un ordinateur pour commander une LED. Pour ce faire, nous allons configurer l'ESP 8266 afin d'**offrir un service**. Dans un premier temps nous **offrirons** une page Web à l'utilisateur. Elle permettra de commander la LED incorporée sur votre plaque de développement ESP 8266.
|
||||
|
||||
{{ :electronique:esp:pasted:20220325-185318.png | Carte ESP-12F avec la LED BUILT IN allumée }}
|
||||
|
||||
Sur la carte de développement, comme l'ESP-12F, est soudée une LED. Cette LED est celle qui clignote faiblement quand vous téléversez une programme. C'est également celle qui clignote avec le programme **blink led**. Techniquement parlant, cette LED est branchée sur le port GPIO 16. Mais il n'est pas forcément nécessaire de connaître cette valeur par cœur car nous utiliserons dans le code la **constante** (mot clé défini dans l'IDE ARDUINO) ''LED_BUILTIN''.
|
||||
|
||||
|
||||
..
|
||||
|
||||
Jusqu'à présent nous avons utiliser l'ESP pour **présenter une page Web**, fournir un moyen de **commander la LED** et **informer de l'état de la LED**. Dans les objets connectés il n'est pas nécessaire de **présenter une page Web** car celle-ci est fournie par un service centralisé comme **Domoticz** ou **OpenHAB**.
|
||||
|
||||
<code C>
|
||||
#include <ESP8266WiFi.h>
|
||||
|
||||
const char* ssid = "MON-REZO-WIFI";
|
||||
const char* password = "leMotDePasseDuRezoWifi";
|
||||
|
||||
int ledPin = 16;
|
||||
|
||||
// Déclaration du Server sur le port 80
|
||||
WiFiServer server(80);
|
||||
|
||||
void setup()
|
||||
{
|
||||
// initialisation de la communication série
|
||||
Serial.begin(115200);
|
||||
|
||||
delay(100);
|
||||
|
||||
// initialisation de la sortie pour la LED
|
||||
int valeurLED = HIGH;
|
||||
pinMode(ledPin, OUTPUT);
|
||||
digitalWrite(ledPin, valeurLED);
|
||||
|
||||
// Connexion wifi
|
||||
Serial.println();
|
||||
Serial.print("Connexion au réseau Wifi ");
|
||||
Serial.println(ssid);
|
||||
|
||||
WiFi.begin(ssid, password);
|
||||
|
||||
// connexion en cours ...
|
||||
while (WiFi.status() != WL_CONNECTED)
|
||||
{
|
||||
delay(500);
|
||||
Serial.print(".");
|
||||
}
|
||||
|
||||
// Wifi connecter
|
||||
Serial.println("Réseau WIFI connecté");
|
||||
|
||||
// Démmarrage du serveur.
|
||||
server.begin();
|
||||
Serial.println("Serveur démarré !");
|
||||
|
||||
// Affichage de l'adresse IP
|
||||
Serial.print("Utiliser cette adresse URL pour la connexion : ");
|
||||
Serial.print("http://");
|
||||
Serial.print(WiFi.localIP());
|
||||
Serial.println("/");
|
||||
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
// Attente de connexion d'un client
|
||||
client = server.available();
|
||||
if (!client)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Attendre si le client envoie des données ...
|
||||
Serial.println("nouveau client");
|
||||
while(!client.available()){
|
||||
delay(1);
|
||||
}
|
||||
|
||||
String request = client.readStringUntil('\r');
|
||||
Serial.println(request);
|
||||
client.flush();
|
||||
|
||||
if (request.indexOf("/LED=ON") != -1) {
|
||||
valeurLED = LOW;
|
||||
digitalWrite(ledPin, valeurLED); // allumer la led
|
||||
}
|
||||
if (request.indexOf("/LED=OFF") != -1) {
|
||||
valeurLED = HIGH;
|
||||
digitalWrite(ledPin, valeurLED); // éteindre la led
|
||||
}
|
||||
|
||||
|
||||
// Réponse
|
||||
client.println("HTTP/1.1 200 OK");
|
||||
client.println("Content-Type: application/json");
|
||||
client.println("");
|
||||
|
||||
if(valeurLED == LOW) {
|
||||
client.println("{\"LED\": \"on\"}");
|
||||
} else {
|
||||
client.println("{\"LED\": \"off\"}");
|
||||
}
|
||||
|
||||
Serial.println("Client déconnecté");
|
||||
Serial.println("");
|
||||
|
||||
}
|
||||
</code>
|
||||
28
data/pages/electronique/esp/esp32-ep8266-mesh.txt
Normal file
28
data/pages/electronique/esp/esp32-ep8266-mesh.txt
Normal file
@@ -0,0 +1,28 @@
|
||||
====== ESP32 ESP8266 MESH ======
|
||||
{{ :dummy.png?75x75|Nom de la section}}
|
||||
|
||||
**ESP Mesh** permet à plusieurs appareils (//node// en anglais) de communiquer avec chacun des autres sur un seul réseau sans fil.
|
||||
|
||||
**ESP Mesh** est un protocole de réseau qui s'appuie sur le protocole Wifi. **ESP Mesh** permet à des appareils identifiés, répartis sur une grande étendu a être interconnectés sous le même WLAN unique. **ESP Mesh** agrandi, organise et maintient son réseau MESH de manière autonome.
|
||||
|
||||
Dans un réseau Wifi traditionnel chaque appareil doit établir une connexion avec le point d'accès pour pouvoir établir une connexion. Il y a deux limites à se mode de connexion. La première est le nombre d'appareils connectés au point d'accès. La seconde est la porté maximale du point d'accès.
|
||||
|
||||
{{:electronique:esp:pasted:20220815-180756.png}}
|
||||
|
||||
Le réseau MESH permet de repousser ces limites. Chaque appareil peut communiquer avec un autre appareil voisin sans pour autant avoir un point d'accès à portée. La configuration des appareils constituant le réseau MESH est effectué dans l'appareil, mais la détection des voisins est automatique. Son maintient est gérée de manière automatique.
|
||||
|
||||
{{:electronique:esp:pasted:20220815-180946.png}}
|
||||
|
||||
===== Pré requis =====
|
||||
|
||||
|
||||
* Arduino IDE
|
||||
* Librairie **painlessMesh**
|
||||
|
||||
|
||||
===== Documentation =====
|
||||
|
||||
Documentation officielle Espessif ESP WIFI MESH [[https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp-wifi-mesh.html|Go to Espressif]]
|
||||
|
||||
ESP-MESH avec des ESP32 et des ESP8266 en utilisant la librairie **painlessMesh**.
|
||||
[[https://randomnerdtutorials.com/esp-mesh-esp32-esp8266-painlessmesh/|Go to Random Nerd Tutorial]]
|
||||
188
data/pages/electronique/esp/esp8266-commandes-at.txt
Normal file
188
data/pages/electronique/esp/esp8266-commandes-at.txt
Normal file
@@ -0,0 +1,188 @@
|
||||
====== Commandes AT ======
|
||||
|
||||
Sans modification du programme le **circuit intégré ESP8266** répondra à des commandes AT (ou commandes Hayes) s'il est chargé avec le [[electronique:esp:esp8266ex-restore-commandes-at|firmware adéquat]]. C'est le cas de la plupart des [[electronique:esp:specifications-esp-01|ESP-01]]
|
||||
|
||||
Je propose le T.P. suivant afin de prendre en main un **ESP8266** avec les commandes AT.
|
||||
|
||||
<WRAP clear/>
|
||||
----
|
||||
|
||||
Vérifier le fonctionnement du mode Wifi
|
||||
|
||||
AT+CWMODE?
|
||||
|
||||
----
|
||||
|
||||
Passer en mode dual (AP + client)
|
||||
|
||||
AT+CWMODE=3
|
||||
-> ok
|
||||
|
||||
----
|
||||
|
||||
Se connecter à un réseau
|
||||
|
||||
AT+CWJAP="ACEGRP_NET","249cb30b415788bdd20c5d3c20"
|
||||
|
||||
-> WIFI CONNECTED
|
||||
-> WIFI GOT IP
|
||||
->
|
||||
-> OK
|
||||
|
||||
----
|
||||
|
||||
Mémoriser les paramètres de connexion
|
||||
|
||||
AT+CWQAP
|
||||
->
|
||||
-> OK
|
||||
|
||||
----
|
||||
|
||||
Lister les adresses réseaux
|
||||
|
||||
AT+CIFSR
|
||||
-> +CIFSR:APIP,"192.168.4.1"
|
||||
-> +CIFSR:APMAC,"1a:fe:34:9a:36:13"
|
||||
-> +CIFSR:STAIP,"192.168.101.20"
|
||||
-> +CIFSR:STAMAC,"18:fe:34:9a:36:13"
|
||||
->
|
||||
-> OK
|
||||
|
||||
----
|
||||
|
||||
Activer les connexions multiples
|
||||
|
||||
<code>
|
||||
00:21:55.429 -> OK
|
||||
01:09:33.601 -> AT+CIPMUX=1
|
||||
</code>
|
||||
|
||||
----
|
||||
|
||||
Activer le serveur Web (port 80)
|
||||
|
||||
<code>
|
||||
01:09:33.601 -> OK
|
||||
01:09:40.391 -> AT+CIPSERVER=1,80
|
||||
</code>
|
||||
|
||||
Lorsqu'un client se connecte, les informations suivantes dans la console s'affichent :
|
||||
|
||||
<code>
|
||||
01:09:56.319 -> 0,CONNECT
|
||||
01:09:56.319 ->
|
||||
01:09:56.319 -> +IPD,0,341:GET / HTTP/1.1
|
||||
01:09:56.319 -> Host: 192.168.101.20
|
||||
01:09:56.319 -> User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0
|
||||
01:09:56.319 -> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
|
||||
01:09:56.319 -> Accept-Language: fr,fr-FR;q=0.5
|
||||
01:09:56.319 -> Accept-Encoding: gzip, deflate
|
||||
01:09:56.352 -> DNT: 1
|
||||
01:09:56.352 -> Connection: keep-alive
|
||||
01:09:56.352 -> Upgrade-Insecure-Requests: 1
|
||||
01:09:56.352 ->
|
||||
01:12:56.522 -> 0,CLOSED
|
||||
</code>
|
||||
|
||||
====== Glossaire des commandes AT - Wifi ======
|
||||
|
||||
===== CWMODE : Mode de fonctionnement du Wifi =====
|
||||
|
||||
**Retourner** la valeur numérique du mode de fonctionnement du Wifi du module ESP.
|
||||
|
||||
AT+CWMODE?
|
||||
|
||||
**Désigner** la valeur numérique du mode de fonctionnement du Wifi du module ESP. Par exemple
|
||||
|
||||
AT+CWMODE=3
|
||||
|
||||
**Valeurs numériques** pour désigner du mode de fonctionnement du Wifi pour **CWMODE** :
|
||||
|
||||
* 1 = mode client
|
||||
* 2 = mode point d'accès (AP)
|
||||
* 3 = AP + mode client (dual mode)
|
||||
|
||||
__Exemple de réponse avec AT+CWMODE?__
|
||||
23:16:33.243 -> AT+CWMODE?
|
||||
23:16:33.243 -> +CWMODE:1
|
||||
|
||||
|
||||
===== CWLAP - Lister les points d'accès =====
|
||||
|
||||
Lister les points d'accès vus par l'ESP.
|
||||
|
||||
AT+CWLAP
|
||||
|
||||
Chaque ligne retournée correspond à un point d'accès avec les paramètres **ecn**, **ssid**, **rssi**, **mac**, **channel**.
|
||||
|
||||
* ecn: 0 OPEN , 1 WEP , 2 WPA_PSK , 3 WPA2_PSK , 4 WPA_WPA2_PSK
|
||||
* ssid: chaîne représentant le nom du point d'accès
|
||||
* rssi: force du signal en dB
|
||||
* mac: chaîne représentant l'adresse MAC
|
||||
* channel : valeur numérique
|
||||
|
||||
__Exemple de réponse avec AT+CWLAP__
|
||||
|
||||
<code>
|
||||
23:16:55.796 -> AT+CWLAP
|
||||
23:16:57.915 -> +CWLAP:(3,"ACEGRP_NET-F2",-22,"f8:9a:78:9b:67:05",4)
|
||||
23:16:57.915 -> +CWLAP:(3,"ACEGRP_NET",-68,"50:c7:bf:8c:4f:e9",6)
|
||||
23:16:57.915 -> +CWLAP:(3,"ACEGRP_NET",-82,"e0:24:81:49:14:eb",7)
|
||||
23:16:57.915 ->
|
||||
23:16:57.915 -> OK
|
||||
</code>
|
||||
|
||||
===== CWJAP - Se connecter à un point d'accès =====
|
||||
|
||||
Connecter à un point d'accès l'ESP de nom de réseau **ssid** et de mot de passe **passwd**.
|
||||
|
||||
AT+CWJAP="ssid","passwd"
|
||||
|
||||
__Exemple de réponse avec AT+CWJAP en echec__
|
||||
|
||||
<code>
|
||||
00:13:39.096 -> AT+CWJAP="ACEGRP_NET","249cb30b415788bdd20c5d3c20"
|
||||
|
||||
00:13:46.182 -> WIFI DISCONNECT
|
||||
00:13:54.427 -> +CWJAP:1
|
||||
00:13:54.427 ->
|
||||
00:13:54.427 -> FAIL
|
||||
</code>
|
||||
|
||||
__Exemple de réponse avec AT+CWJAP en réussite__
|
||||
|
||||
<code>
|
||||
00:14:02.538 -> AT+CWJAP="ACEGRP_NET","249cb30b415788bdd20c5d3c20"
|
||||
|
||||
00:14:08.763 -> WIFI CONNECTED
|
||||
00:14:12.671 -> WIFI GOT IP
|
||||
00:14:13.632 ->
|
||||
00:14:13.632 -> OK
|
||||
</code>
|
||||
|
||||
===== CIFSR - Renvoi l'adresse IP local =====
|
||||
|
||||
AT+CIFSR
|
||||
|
||||
Renvoi l'adresse IP local. Il y a une adresse en mode client et une adresse en mode AP.
|
||||
|
||||
===== CIPMUX - Permettre des connexions multiples =====
|
||||
|
||||
Permet des connexions multiples ou non. L'option **mode** permet d'autoriser (valeur 1) ou non (valeur 0) les connexions multiples.
|
||||
|
||||
AT+CIPMUX=mode
|
||||
|
||||
===== CIPSERVER - Configurer comme un serveur =====
|
||||
|
||||
Configurer l'ESP8266 comme un serveur (**mode** à 1) ou non (**mode** à 0) sur le **port** indiqué. **Port** n'est pas une valeur obligatoire.
|
||||
|
||||
AT+CIPSERVER=mode,port
|
||||
|
||||
Si **mode** est passé à 0, il faut redémarrer l'ESP8266.
|
||||
|
||||
Le **port** par défaut est le 333.
|
||||
|
||||
La création d'un serveur n'est possible qu'a condition d'executer en pré requis la commande ''AT+CIPMUX=1''.
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
====== Réinitialiser ESP8266EX avec le Firmware AT Espressif ======
|
||||
{{ :dummy.png?75x75|ESP8266EX AT Firmware}}
|
||||
|
||||
Je vous propose de réinitialiser votre ESP-01, basé sur l'ESP8266EX, afin de retrouver les fonctionnalités de base tel que les commandes AT.
|
||||
|
||||
--
|
||||
|
||||
Se rendre sur le site https://www.espressif.com/en/products/socs/esp8266ex/resources
|
||||
|
||||
{{ :electronique:esp:pasted:20201213-085909.png }}
|
||||
|
||||
Dans la section ''AT'', choisir ''ESP8266 NonOS AT Bin V1.7.4'' ou plus récent.
|
||||
|
||||
L'archive ZIP téléchargée contient des binaires pour ESP8266EX. Les binaires sont des fichiers compilés depuis un langage avancé tel que le langage C. Nous ne pouvons pas comprendre les fichiers binaires si nous les éditons. Les fichiers binaires peuvent être téléverser dans le microcontrôleur sans autres étapes.
|
||||
|
||||
L'archive propose 4 binaires :
|
||||
* boot - **boot_v1.7.bin**
|
||||
* programme AT - **user1.1024.new.2.bin**
|
||||
* data - **esp_init_data_default_v08.bin**
|
||||
* du vide - **blank.bin**
|
||||
|
||||
Une copie des ces binaires pour **ESP8266EX 512k+512k** est disponible à l'adresse https://gitlab.com/cedricAbonnel/esp/-/tree/master/esp01/esp8266ex_at_bin
|
||||
|
||||
--
|
||||
|
||||
Nous utilisons le programme Pyhton **esptool.py** pour téléverser dans l'ESP8266EX. Il faut au préalable connaitre le port USB sur lequel est branché le circuit. Il faut consulter les fichiers présents dans ''/dev/tty*'' depuis un terminal :
|
||||
ls /dev/tty*
|
||||
|
||||
Parmi la liste retournée, la valeur **/dev/ttyUSB0** nous semble la plus appropriée.
|
||||
|
||||
--
|
||||
|
||||
Pour téléverser les binaires en ligne de commande, utilisons **esptool.py** :
|
||||
|
||||
<code>
|
||||
esptool.py --port /dev/ttyUSB0 write_flash --flash_mode qio 0x0 boot_v1.7.bin 0x01000 user1.1024.new.2.bin 0xfc000 esp_init_data_default_v08.bin 0x7e000 blank.bin 0xfe000 blank.bin
|
||||
</code>
|
||||
|
||||
Les valeurs précédents le nom des binaires à charger représentent l'emplacement mémoire (adresse mémoire) ou l'écriture doit commencer :
|
||||
<code>
|
||||
### Flash size 8Mbit: 512KB+512KB
|
||||
boot_v1.2+.bin 0x00000
|
||||
user1.1024.new.2.bin 0x01000
|
||||
esp_init_data_default.bin 0xfc000
|
||||
blank.bin 0x7e000 & 0xfe000
|
||||
</code>
|
||||
|
||||
Je verse une larme à l'affichage du résultat :
|
||||
|
||||
{{ :electronique:esp:pasted:20201213-094634.png }}
|
||||
|
||||
Une vérification s'impose dans une console série.
|
||||
|
||||
{{ :electronique:esp:pasted:20201213-094758.png }}
|
||||
|
||||
117
data/pages/electronique/esp/familles-et-evolutions.txt
Normal file
117
data/pages/electronique/esp/familles-et-evolutions.txt
Normal file
@@ -0,0 +1,117 @@
|
||||
====== Familles et évolutions ======
|
||||
{{tag>"script linux"}}
|
||||
{{ :dummy.png?75x75|Nom de la section}}
|
||||
|
||||
Il existe plusieurs familles d'ESP (System on a Chip - ESP8266, ESP32, etc.), chacune ayant ses propres caractéristiques et fonctionnalités.
|
||||
|
||||
{{ :electronique:esp:pasted:20220127-233808.png?240|ESP8266 }}
|
||||
**ESP8266** : L'ESP8266 st considéré comme l'un des premiers et le plus populaire microcontrôleurs IoT à faible coût avec une connectivité Wi-Fi intégrée, en raison de sa simplicité d'utilisation et de son coût abordable.
|
||||
|
||||
La famille d'ESP8266 a évolué au fil du temps pour inclure de nouvelles fonctionnalités et une connectivité Wi-Fi améliorée. Les modèles les plus anciens tels que l'ESP-01 étaient principalement utilisés pour les projets IoT de base, mais les modèles plus récents, tels que l'ESP-12E et l'ESP-32, offrent une connectivité Wi-Fi plus stable et une plus grande capacité de traitement, ainsi que des broches supplémentaires pour des interfaces de communication telles que les ports UART, SPI et I2C. De plus, certains modèles récents d'ESP8266 proposent également un support pour la connectivité Bluetooth, ce qui les rend encore plus polyvalents pour les projets IoT.
|
||||
|
||||
* ESP-01
|
||||
* ESP-01S
|
||||
* ESP-01M
|
||||
* ESP-02
|
||||
* ESP-03
|
||||
* ESP-04
|
||||
* ESP-05
|
||||
* ESP-06
|
||||
* ESP-07
|
||||
* ESP-07S
|
||||
* ESP-08
|
||||
* ESP-09
|
||||
* ESP-10
|
||||
* ESP-11
|
||||
* ESP-12
|
||||
* ESP-12E
|
||||
* ESP-12F
|
||||
* ESP-12S
|
||||
* ESP-13
|
||||
* ESP-14
|
||||
* ESP-WROOM-02
|
||||
* ESP-WROOM-02D
|
||||
* ESP-WROOM-02U
|
||||
* ESP-WROOM-S2
|
||||
|
||||
Voir https://en.wikipedia.org/wiki/ESP8266
|
||||
|
||||
---
|
||||
<WRAP clear/>
|
||||
|
||||
|
||||
|
||||
{{ ::electronique:esp32.png?256|ESP32}}
|
||||
L'**ESP32** est une évolution de l'ESP8266, offrant des fonctionnalités supplémentaires telles que le Bluetooth, une plus grande mémoire, des cœurs supplémentaires pour une meilleure gestion des tâches multiples et une meilleure consommation d'énergie.
|
||||
Certains modèles d'ESP-32 proposent également des fonctionnalités supplémentaires telles que des capteurs intégrés, une connectivité sans fil sécurisée et un support pour des protocoles de communication supplémentaires.
|
||||
|
||||
* ESP-WROOM-03
|
||||
* ESP32-WROOM-32
|
||||
* ESP32-WROOM-32D
|
||||
* ESP32-SOLO-1
|
||||
* ESP32-WROOM-32U
|
||||
* ESP32-WROVER
|
||||
* ESP32-WROVER-I
|
||||
* ESP32-WROVER-B
|
||||
* ESP32-WROVER-IB
|
||||
* ESP32-PICO-V3-ZERO
|
||||
* ESP32-S
|
||||
* ESP32-A1S
|
||||
* ESP-32S-ALB
|
||||
* ALB-WROOM
|
||||
* ALB32-WROVER
|
||||
* ESP-WROOM-32
|
||||
* ESP32-Bit
|
||||
* ESP-32F
|
||||
* W32
|
||||
* W33
|
||||
* PSH-C32
|
||||
* W01
|
||||
* L01
|
||||
* L04
|
||||
* S01
|
||||
* G01
|
||||
* NINA-W131
|
||||
* NINA-W132
|
||||
|
||||
Voir https://en.wikipedia.org/wiki/ESP32
|
||||
|
||||
La famille des '**ESP32-S**, qui se concentre sur les applications à faible coût et à faible consommation d'énergie.
|
||||
|
||||
* ESP32-S2
|
||||
* ESP32-S2-MINI-1
|
||||
* ESP32-S2-MINI-1U
|
||||
* ESP32-S2-SOLO
|
||||
* ESP32-S2-SOLO-U
|
||||
* ESP32-S2-WROVER
|
||||
* ESP32-S2-WROVER-I
|
||||
* ESP32-S2-WROOM
|
||||
* ESP32-S2-WROOM-I
|
||||
|
||||
* ESP32-S3
|
||||
* ESP32-S3-WROOM-1
|
||||
* ESP32-S3-WROOM-1U
|
||||
* ESP32-S3-WROOM-2
|
||||
* ESP32-S3-MINI-1
|
||||
* ESP32-S3-MINI-1U
|
||||
|
||||
|
||||
Famille des **ESP32-C**
|
||||
|
||||
* ESP32-C3-MINI-1
|
||||
* ESP32-C3-MINI-1U
|
||||
* ESP32-C3-WROOM-02
|
||||
* ESP32-C3-WROOM-02U
|
||||
|
||||
* ESP32-C6
|
||||
|
||||
|
||||
Famille des **ESP32-H**
|
||||
|
||||
* ESP32-H2
|
||||
|
||||
---
|
||||
|
||||
|
||||
--- //[[user:cedricabonnel]]//
|
||||
|
||||
114
data/pages/electronique/esp/index.txt
Normal file
114
data/pages/electronique/esp/index.txt
Normal file
@@ -0,0 +1,114 @@
|
||||
====== ESP ======
|
||||
{{ ::electronique:esp32.png?75x75|ESP}}
|
||||
|
||||
Les **ESP** (Espressif Systems Processor) sont des microcontrôleurs avec un module **Wi-Fi intégré**, conçus pour le développement **IoT** (Internet of Things). Ils sont souvent utilisés pour la conception de produits intelligents pour la maison, la vie personnelle et l'industrie. Les **ESP** peuvent être programmés à l'aide d'un environnement de développement intégré (IDE) similaire à celui d'**Arduino**, ce qui en fait un choix populaire pour les développeurs débutants et expérimentés. Il existe plusieurs familles d'**ESP**, chacune avec ses propres caractéristiques et fonctionnalités uniques, telles que la mémoire flash, la RAM, les ports GPIO, etc. Les produits les plus populaires de la famille **ESP** incluent l'**ESP8266** et l'**ESP32**.
|
||||
|
||||
|
||||
|
||||
===== Comparaison des differéntes familles =====
|
||||
|
||||
^ ^ ESP8266 ^ ESP32 ^ ESP32-C3 ^
|
||||
^ Date de sortie | 2014 | 2016 | 2020 |
|
||||
^ MCU | Xtensa Single-Core 32-bit | Xtensa Dual-Core 32-bit | RISC-V 32-bit Single-Core |
|
||||
^ Fréquence | 80 MHz | 160 à 240 MHz | 160 MHz |
|
||||
^ RAM / SRAM | 160 Ko | 520 Ko | 400 Ko |
|
||||
^ Wifi | 802.11b/g/n (max 65Mbps) | 802.11b/g/n | 802.11b/g/n |
|
||||
^ Bluetooth | non | 4.2 et BLE | 5.0 et BLE |
|
||||
^ ESP Mesh | oui | oui | oui |
|
||||
^ Capteur T° integré | non | oui | oui |
|
||||
^ Capteur Effet Hall | non | oui | non |
|
||||
^ GPIO | 17 | 36 | 22 |
|
||||
^ Crypto Support | non | AES, SHA-2, RSA, ECC, RNG | AES-128/256, RSA Accelerator, SHA Accelerator, Random Number Generator (RNG), HMAC |
|
||||
^ Consommation en veille | 20 µA | 5 µA | 5 µA\\ 1 µA en mode arrêt |
|
||||
|
||||
|
||||
|
||||
|
||||
===== Table des matières =====
|
||||
|
||||
* [[.:|Introduction]]
|
||||
--
|
||||
|
||||
|
||||
** ESP8266 ** : un microcontrôleur Wi-Fi à faible coût utilisé pour construire des projets IoT (Internet des objets) et domotiques.
|
||||
|
||||
* [[.:programmer-esp-avec-arduino-ide]]
|
||||
* [[.:specifications-ESP-8266]]
|
||||
|
||||
* [[https://arduino-esp8266.readthedocs.io/en/latest/|ESP8266 Arduino Core’s documentation]]
|
||||
* [[https://github.com/esp8266/Arduino|Arduino core for the ESP8266]]
|
||||
|
||||
* **ESP-01**
|
||||
* [[.:specifications-ESP-01]]
|
||||
* [[.:premier-programme-esp01]]
|
||||
|
||||
* ** ESP-12F **
|
||||
* [[.:doiting-esp-12f:]]
|
||||
|
||||
|
||||
**ESP32** : un autre microcontrôleur Wi-Fi et Bluetooth doté de plus de mémoire et de puissance de traitement que l'ESP8266.
|
||||
|
||||
|
||||
* ** Infos concernant la Famille des ESP32 **
|
||||
* [[.:programmer-esp32-avec-arduino-ide]]
|
||||
* [[https://github.com/espressif/arduino-esp32|Arduino core for the ESP32]]
|
||||
* [[https://docs.espressif.com/projects/esp-idf/en/latest/esp32/index.html|ESP32 Programming Guide]]
|
||||
|
||||
* ** Infos concernant la Famille des ESP32-S **
|
||||
* [[.:programmer-esp32-avec-arduino-ide]]
|
||||
* [[https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/index.html|ESP32-S2 Programming Guide]]
|
||||
* [[https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/index.html|ESP32-S3 Programming Guide]]
|
||||
|
||||
* ** Infos concernant la Famille des ESP32-C **
|
||||
* [[.:programmer-esp32-avec-arduino-ide]]
|
||||
* [[.:specifications-ESP32-C3]]
|
||||
* [[https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/index.html|ESP32-C3 Programming Guide]]
|
||||
|
||||
* **ESP32-H2**
|
||||
* [[.:specifications-ESP32-H2]]
|
||||
|
||||
**Adaptateurs USB vers ESP** : des dispositifs permettant de connecter des ESP à un ordinateur via USB pour la programmation et le débogage.
|
||||
|
||||
* [[.:adapteur-usb-esp01]]
|
||||
|
||||
**Programmation de l'ESP** : comment écrire et charger du code sur l'ESP pour contrôler les périphériques connectés.
|
||||
|
||||
* [[.:installer-logiciel-arduino-ide]]
|
||||
|
||||
**Communiquer avec l'ESP**
|
||||
|
||||
* [[.:communiquer-avec-un-ESP-32]]
|
||||
* [[.:se-connecter-a-un-reseau-wifi]]
|
||||
* [[.:creer-un-point-d-acces]]
|
||||
* [[.:wifi-manager]]
|
||||
|
||||
Les commandes AT
|
||||
* [[.:esp8266-commandes-at]]
|
||||
* [[.:esp8266ex-restore-commandes-at]]
|
||||
|
||||
SPIFFS
|
||||
* [[electronique:esp:telechargement-de-donnees-esp32-spiffs]]
|
||||
|
||||
Mise à jour OTA
|
||||
* [[electronique:esp:mises-a-jour-ota-over-the-air-de-l-esp32]]
|
||||
|
||||
IRemote
|
||||
* [[electronique:esp:iremote]]
|
||||
|
||||
Serveur NTP
|
||||
* [[electronique:esp:serveur-ntp]]
|
||||
|
||||
**Interaction de l'ESP avec d'autres périphériques** : comment utiliser l'ESP pour contrôler des appareils tels que des moteurs, des capteurs et des écrans.
|
||||
|
||||
|
||||
|
||||
**Sécurité de l'ESP** : comment protéger les projets IoT contre les attaques en ligne en utilisant des techniques telles que le cryptage et l'authentification.
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
|
||||
** [[Références et bibliographies Arduino et ESP]] **
|
||||
|
||||
--
|
||||
@@ -0,0 +1 @@
|
||||
{{page>:electronique:arduino:105-installation-du-logiciel-arduino-ide}}
|
||||
4
data/pages/electronique/esp/iremote.txt
Normal file
4
data/pages/electronique/esp/iremote.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
====== Bibliothèque IRemote ======
|
||||
|
||||
https://github.com/Arduino-IRremote/Arduino-IRremote
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
====== Mises à jour OTA (Over-the-Air) de l’ESP32 ======
|
||||
|
||||
|
||||
|
||||
https://randomnerdtutorials.com/esp32-ota-over-the-air-arduino/
|
||||
75
data/pages/electronique/esp/module-relais-wifi-esp.txt
Normal file
75
data/pages/electronique/esp/module-relais-wifi-esp.txt
Normal file
@@ -0,0 +1,75 @@
|
||||
====== Module relais wifi ESP ======
|
||||
{{ :electronique:esp:pasted:20210327-090456.png?75x75|Module de contrôleur de relais WIFI sans fil basé sur un ESP.}}
|
||||
|
||||
Cet article est en cours de rédaction. Il manque des informations essentielles à la compréhension et à la réalisation de l'exemple. Vous pouvez participer à la rédaction de cet article en vous inscrivant ou en laissant un message dans les commentaires.
|
||||
|
||||
===== Composants principaux de la carte =====
|
||||
|
||||
{{:electronique:esp:pasted:20210327-090529.png}}
|
||||
|
||||
|
||||
===== Détail des connecteurs =====
|
||||
|
||||
|
||||
{{:electronique:esp:pasted:20210327-090543.png}}
|
||||
|
||||
^ N° ^ Désignation ^
|
||||
| 1 | VCC, GND: alimentation cc 8-80V |
|
||||
| 2 | Micro USB: alimentation USB cc 5V\\ Remarque: DC8-80V/DC5V USB/broche d'en-tête 5V peut choisir l'une des trois méthodes d'alimentation. Bouton 3,6x6mm: bouton de réinitialisation ESP8266 |
|
||||
| 3 | Bouton reset |
|
||||
| 4 | Port UART: GND, RX, TX, 5V\\ Sont respectivement connectés au GND, TX, RX, 5V de l'ESP8266. Module de port série TTL externe.\\ IO0 doit être connecté à GND pour télécharger. Une fois le téléchargement terminé, déconnectez la connexion IO0 et GND. |
|
||||
| 5 | Report GPIO de l'ESP8266 |
|
||||
| 6 | Sortie de relais\\ NC: relais normalement fermé. Le relais est relié avec le COM\\ COM: commun du relais;\\ NON: relais normalement ouvert. Il est relié au COM après avoir reçu la commande. |
|
||||
| 7 | Indicateur de puissance LED |
|
||||
| 8 | LED Programmable: utilisez le contrôle GPO16 |
|
||||
| 9 | Indicateur de relais LED: s'allume lorsqu'il est fermé. |
|
||||
|
||||
===== Vue du dessous =====
|
||||
|
||||
{{:electronique:esp:pasted:20210327-091509.png}}
|
||||
|
||||
===== ESP-12F =====
|
||||
|
||||
|
||||
{{:electronique:esp:pasted:20210327-091523.png}}
|
||||
|
||||
{{:electronique:esp:pasted:20210327-091544.png}}
|
||||
|
||||
^ PIN ^ Désingation ^
|
||||
| GND | Terre |
|
||||
| GPIO15 | MTDO; HSPICS; UARTO-RTS |
|
||||
| GPIO2 | GPIO4 |
|
||||
| GPIO0 | |
|
||||
| GPIO5 | port d'entraînement de relais, l'entraînement de IO5 est utilisé par défaut. Si vous voulez utiliser d'autres e/s pour conduire le relais, vous pouvez supprimer e14, puis connecter les e/s du relais d'entraînement à cette broche de relais |
|
||||
| GPIO4 | |
|
||||
| RXD0 | RX: UARTO-RXD: GPIO3 |
|
||||
| TXD0 | UARTO-TXD; GPIO1 |
|
||||
| RST | |
|
||||
| ADC | résultat de conversion A/n. Plage de tension d'entrée: 0 ~ 1V, plage de valeur: 0 ~ 1024 |
|
||||
| EN | |
|
||||
| GPIO16 | |
|
||||
| GPIO14 | |
|
||||
| GPIO12 | HSPI-MISO |
|
||||
| GPIO13 | |
|
||||
| VCC | Alimentaiton 3v3 |
|
||||
| CS0 | sélection de puce |
|
||||
| MISO | sortie esclave et entrée hôte |
|
||||
| GPIO9 | |
|
||||
| GPIO10 | |
|
||||
| MOSI | sortie hôte et entrée esclave |
|
||||
| SCLK | horloge |
|
||||
|
||||
|
||||
===== Caractéristiques du relais =====
|
||||
|
||||
* Switching capacity available by 10A in spite of small size design for highdensity P.C. board mounting technique.
|
||||
* UL,CUL,TUV recognized.
|
||||
* Selection of plastic material for high temperature and better chemical solution performance.
|
||||
* Sealed types available.
|
||||
* Simple relay magnetic circuit to meet low cost of mass production.
|
||||
|
||||
{{:electronique:esp:pasted:20210327-095627.png}}
|
||||
|
||||
{{ :electronique:esp:srd-12vdc-xx-x_etc.pdf |}}
|
||||
|
||||
|
||||
59
data/pages/electronique/esp/premier-programme-esp01.txt
Normal file
59
data/pages/electronique/esp/premier-programme-esp01.txt
Normal file
@@ -0,0 +1,59 @@
|
||||
====== Premier programme ESP-01 ======
|
||||
{{ :dummy.png?75x75|Premier programme ESP-01}}
|
||||
|
||||
Je vous propose un programme qui affichera dans la console série, des informations utiles concernant votre ESP-01.
|
||||
|
||||
<code C>
|
||||
ADC_MODE(ADC_VCC);
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
/* ESP8266EX */
|
||||
Serial.println("INFO ESP8266EX");
|
||||
Serial.printf("Numéro de série de l'ESP8266EX .....: %u\n", ESP.getChipId());
|
||||
float frequenceCpu = float(ESP.getCpuFreqMHz());
|
||||
Serial.printf("Fréquence du CPU ...................: %4.1f MHz\n", frequenceCpu);
|
||||
float vcc = float(ESP.getVcc()) / 1000;
|
||||
Serial.printf("Alimentation .......................: %4.2f V\n", vcc);
|
||||
String chaine = ESP.getCoreVersion();
|
||||
chaine.replace('_', '.');
|
||||
Serial.print("Version du gestionnaire de carte...: ");
|
||||
Serial.println(chaine);
|
||||
Serial.printf("Version du SDK .....................: %s\n\n", ESP.getSdkVersion());
|
||||
/* Mémoire flash */
|
||||
Serial.println("INFO FLASH");
|
||||
Serial.printf("Numéro de série du chip ............: %u\n", ESP.getFlashChipId());
|
||||
float frequenceFlash = float(ESP.getFlashChipSpeed()) /1000000;
|
||||
Serial.printf("Fréquence ..........................: %4.1f MHz\n", frequenceFlash);
|
||||
Serial.printf("capacité effective .................: %u octets\n", ESP.getFlashChipRealSize());
|
||||
Serial.printf("capacité paramétrée dans l'EDI .....: %u octets\n", ESP.getFlashChipSize());
|
||||
Serial.printf("Taille du sketch ...................: %u octets\n", ESP.getSketchSize());
|
||||
Serial.printf("Mémoire disponible .................: %u octets\n\n\n", ESP.getFreeSketchSpace());
|
||||
delay(10000);
|
||||
}
|
||||
</code>
|
||||
|
||||
Consultez la dernière version de ce programme à l'adresse {{https://gitlab.com/cedricAbonnel/esp/-/blob/master/esp01/infoesp8266exp.ino}}
|
||||
|
||||
Le résultat est le suivant
|
||||
<code>
|
||||
23:22:50.073 -> INFO ESP8266EX
|
||||
23:22:50.073 -> Numéro de série de l'ESP8266EX .....: 10106374
|
||||
23:22:50.073 -> Fréquence du CPU ...................: 80.0 MHz
|
||||
23:22:50.106 -> Alimentation .......................: 3.47 V
|
||||
23:22:50.106 -> Version du gestionnaire de carte...: 2.7.4
|
||||
23:22:50.106 -> Version du SDK .....................: 2.2.2-dev(38a443e)
|
||||
23:22:50.106 ->
|
||||
23:22:50.106 -> INFO FLASH
|
||||
23:22:50.106 -> Numéro de série du chip ............: 1327304
|
||||
23:22:50.106 -> Fréquence ..........................: 40.0 MHz
|
||||
23:22:50.106 -> capacité effective .................: 1048576 octets
|
||||
23:22:50.106 -> capacité paramétrée dans l'EDI .....: 1048576 octets
|
||||
23:22:50.106 -> Taille du sketch ...................: 268288 octets
|
||||
23:22:50.139 -> Mémoire disponible .................: 778240 octets
|
||||
</code>
|
||||
@@ -0,0 +1,72 @@
|
||||
====== Programmer un ESP8266 avec Arduino IDE ======
|
||||
|
||||
Nous utiliserons la carte de développement (DevKit) NodeMCU v3 avec un **circuit intégré ESP8266MOD** soudé.
|
||||
Cette carte peut être programmée avec **Arduino IDE**.
|
||||
|
||||
|
||||
{{ :electronique:esp:pasted:20201206-195401.png }}
|
||||
|
||||
|
||||
Il va donc falloir mettre à jour l'IDE Arduino pour pouvoir l'adapter à ce nouveau module.
|
||||
|
||||
L'IDE Arduino est très flexible. Comme pour la partie matériel, l'idée est de mettre à disposition de l'utilisateur un produit puissant, flexible et très simple à utiliser. Il va donc falloir passer par une étape de configuration qui va nous permettre de programmer sur notre module ESP comme sur un Arduino.
|
||||
|
||||
Dans un premier temps, on va indiquer au programme que l'on a besoin d'installer une nouvelle carte (board) et préciser où l'on va pouvoir récupérer ces informations.
|
||||
|
||||
Dans l'IDE, aller dans //Fichiers//=>//Préférences//.
|
||||
|
||||
{{ electronique:arduino:idearduino_fichier_preferences.png?nolink |}}
|
||||
|
||||
Une fenêtre intitulé //Préférences//.
|
||||
|
||||
{{ electronique:arduino:idearduino_preferences.png?nolink |}}
|
||||
|
||||
Dans le champs intitulé //URL de gestionnaire de cartes supplémentaires// , coller l'URL suivante :
|
||||
http://arduino.esp8266.com/stable/package_esp8266com_index.json
|
||||
|
||||
Si le site précédent (arduino.esp8266.com) ne répond pas, je vous donne une variante :
|
||||
https://github.com/esp8266/Arduino/blob/master/package/package_esp8266com_index.template.json
|
||||
|
||||
{{ electronique:arduino:idearduino_preferences_url_de_gestionnaire_de_cartes_supplementaires.png?nolink |}}
|
||||
|
||||
Puis cliquer sur le bouton {{electronique:arduino:bouton_ok.png?nolink|Ok}}
|
||||
|
||||
On va installer la carte correspondant au NodeMCU.
|
||||
|
||||
Aller dans //Outils// => //Type de carte// => //Gestionnaire de carte//
|
||||
|
||||
{{ electronique:arduino:idearduino_outils_typedecarte_gestionnairedecarte.png?nolink |}}
|
||||
|
||||
Le fenêtre de //Gestionnaire de carte// s'ouvre. Saisir dans le champ de recherche le nom ''ESP8266''.
|
||||
|
||||
{{ electronique:arduino:idearduino_gestionnairedecarte_esp8266.png?nolink |}}
|
||||
|
||||
Cliquer à l'intérieur du cadre //esp8266//. Un bouton //Installer// apparaît à côté de la version disponible. Cliquer dessus pour installer...
|
||||
|
||||
{{ electronique:arduino:idearduino_gestionnairedecarte_esp8266_installer.png?nolink |}}
|
||||
|
||||
L'installation des fichiers commence. L'IDE va aller récupérer le compilateur, des sources de librairies et tout ce qu'il faut pour pouvoir utiliser l'ESP8266 comme un Arduino.
|
||||
|
||||
{{ electronique:arduino:idearduino_gestionnairedecarte_esp8266_installer_progression.png?nolink |}}
|
||||
|
||||
L'indicateur ''INSTALLED'' apparait. L'IDE est maintenant capable de compiler un logiciel pour l'ESP8266 et le téléverser sur votre carte.
|
||||
|
||||
{{ electronique:arduino:idearduino_gestionnairedecarte_esp8266_installed.png?nolink |}}
|
||||
|
||||
Maintenant, on indique à l'IDE d'utiliser les éléments pour la carte ESP8266.
|
||||
|
||||
Aller dans //Outils// => //Type de carte//.
|
||||
|
||||
{{ electronique:arduino:idearduino_outils_typedecarte.png?nolink |}}
|
||||
|
||||
Sélectionner dans la longue liste, //NodeMCU 1.0 (ESP-12E Module)//.
|
||||
|
||||
{{ electronique:arduino:idearduino_outils_typedecarte_nodemcu.png?nolink |}}
|
||||
|
||||
Enfin, il faudra sélectionner le port de communication.
|
||||
|
||||
{{ electronique:arduino:idearduino_outils_port_devttyusb3.png?nolink |}}
|
||||
|
||||
On pourra vérifier que la communication soit bien initialisée en utilisant //Outils// => //Get Board Info//
|
||||
|
||||
{{ electronique:arduino:idearduino_outils_getboardinfo.png?nolink |}}
|
||||
@@ -0,0 +1,68 @@
|
||||
====== Programmer un ESP32 avec Arduino IDE ======
|
||||
|
||||
Nous utiliserons la carte de développement (DevKit) NodeMCU ESP C3 avec un **circuit intégré ESP-C3-32S** soudé.
|
||||
Cette carte peut être programmée avec **Arduino IDE**.
|
||||
|
||||
{{ :electronique:esp:pasted:20220127-162544.png?noLink | ESP32 C3 32S}}
|
||||
|
||||
Il va donc falloir mettre à jour l'IDE Arduino pour pouvoir l'adapter à ce nouveau module.
|
||||
|
||||
L'IDE Arduino est très flexible. Comme pour la partie matériel, l'idée est de mettre à disposition de l'utilisateur un produit puissant, flexible et très simple à utiliser. Il va donc falloir passer par une étape de configuration qui va nous permettre de programmer sur notre module ESP comme sur un Arduino.
|
||||
|
||||
Dans un premier temps, on va indiquer au programme que l'on a besoin d'installer une nouvelle carte (board) et préciser où l'on va pouvoir récupérer ces informations.
|
||||
|
||||
Dans l'IDE, aller dans //Fichiers//=>//Préférences//.
|
||||
|
||||
{{ electronique:arduino:idearduino_fichier_preferences.png?nolink |}}
|
||||
|
||||
Une fenêtre intitulé //Préférences//.
|
||||
|
||||
{{ electronique:arduino:idearduino_preferences.png?nolink |}}
|
||||
|
||||
Dans le champs intitulé //URL de gestionnaire de cartes supplémentaires// , coller l'URL suivante :
|
||||
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
|
||||
|
||||
{{ electronique:arduino:idearduino_preferences_url_de_gestionnaire_de_cartes_supplementaires.png?nolink |}}
|
||||
|
||||
Puis cliquer sur le bouton {{electronique:arduino:bouton_ok.png?nolink|Ok}}
|
||||
|
||||
On va installer la carte correspondant au NodeMCU.
|
||||
|
||||
Aller dans //Outils// => //Type de carte// => //Gestionnaire de carte//
|
||||
|
||||
{{ electronique:arduino:idearduino_outils_typedecarte_gestionnairedecarte.png?nolink |}}
|
||||
|
||||
Le fenêtre de //Gestionnaire de carte// s'ouvre. Saisir dans le champ de recherche le nom ''ESP32''.
|
||||
|
||||
{{ :electronique:esp:pasted:20220127-155732.png?noLink |Recherche d'ESP32 dans le Gestionnaire de carte}}
|
||||
|
||||
Cliquer à l'intérieur du cadre //esp32//. Un bouton //Installer// apparaît à côté de la version disponible. Cliquer dessus pour installer...
|
||||
|
||||
{{ :electronique:esp:pasted:20220127-155807.png?noLink | Clique sur le bouton Installer}}
|
||||
|
||||
|
||||
L'installation des fichiers commence. L'IDE va aller récupérer le compilateur, des sources de librairies et tout ce qu'il faut pour pouvoir utiliser l'ESP8266 comme un Arduino.
|
||||
|
||||
{{ :electronique:esp:pasted:20220127-155425.png?noLink |Progression de l'installation dans le Gestionnaire de carte}}
|
||||
|
||||
L'indicateur ''INSTALLED'' apparait. L'IDE est maintenant capable de compiler un logiciel pour l'ESP8266 et le téléverser sur votre carte.
|
||||
|
||||
{{ :electronique:esp:pasted:20220127-155644.png?noLink |esp32 installé}}
|
||||
|
||||
Maintenant, on indique à l'IDE d'utiliser les éléments pour la carte **ESP32 Arduino** .
|
||||
|
||||
Aller dans //Outils// => //Type de carte//.
|
||||
|
||||
{{:electronique:esp:pasted:20220127-162228.png?noLink | menu Outils, type de carte}}
|
||||
|
||||
Sélectionner dans la longue liste, //ESP32C3 Dev Module//.
|
||||
|
||||
{{ :electronique:esp:pasted:20220127-162151.png?noLink | Selection type de carte ESP32C3}}
|
||||
|
||||
Enfin, il faudra sélectionner le port de communication.
|
||||
|
||||
{{ electronique:arduino:idearduino_outils_port_devttyusb3.png?nolink |}}
|
||||
|
||||
On pourra vérifier que la communication soit bien initialisée en utilisant //Outils// => //Get Board Info//
|
||||
|
||||
{{ electronique:arduino:idearduino_outils_getboardinfo.png?nolink |}}
|
||||
@@ -0,0 +1,147 @@
|
||||
====== Références et bibliographies Arduino et ESP ======
|
||||
|
||||
__Livre **Arduino, Maîtrisez sa programmation et ses cartes d'interface (shields)**__
|
||||
|
||||
[[https://amzn.to/3G7yIQu|{{:electronique:esp:pasted:20220128-082624.png?248 }}]]
|
||||
de **Christian Tavernier**
|
||||
|
||||
* [[https://amzn.to/3G7yIQu|Commander le livre]]
|
||||
|
||||
* [[https://amzn.to/3G7yIQu|Commander le Kindle]]
|
||||
|
||||
**Notes de l'éditeur :**
|
||||
|
||||
Après un bref rappel de ce qu’est un microcontrôleur et une présentation des différentes versions d’Arduino, cet ouvrage fournit tous les éléments nécessaires à la conception et à la mise en oeuvre de nombreuses applications performantes avec notamment :
|
||||
* la présentation complète de la syntaxe du langage de programmation ;
|
||||
* plusieurs dizaines de schémas d’interfaces avec les dispositifs les plus divers (afficheurs, moteurs, relais, capteurs, bus I2C, SPI, Ethernet, etc.) ;
|
||||
* plusieurs dizaines d’exemples de programmes types permettant la mise en oeuvre de ces interfaces.
|
||||
Accessible sans connaissances préalables en électronique ou en programmation, cette nouvelle édition mise à jour s’adresse aussi bien à l’amateur passionné, qu’au professionnel désireux d’intégrer des Arduino dans ses applications. Chacun pouvant y trouver selon son niveau le degré d’information requis.
|
||||
|
||||
**Commentaires :**
|
||||
|
||||
Surement le meilleur ouvrage. Démarche très étudiée et les informations sont pertinentes. Il aborde de façon très claire et bien structurée la programmation de l'Arduino puis la réalisation de circuits.
|
||||
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
---
|
||||
|
||||
|
||||
__Livre **Mouvement, lumière et son avec Arduino et Raspberry Pi**__
|
||||
|
||||
[[https://amzn.to/3ucTZpD|{{:electronique:esp:pasted:20220128-084748.png?248 }}]]
|
||||
Avec 30 projets ludiques (Serial makers) de **Simon Monk**
|
||||
|
||||
* [[https://amzn.to/3ucTZpD|Commander le livre]]
|
||||
|
||||
* [[https://amzn.to/3r7zIzL|Commander le Kindle]]
|
||||
|
||||
**Notes de l'éditeur :**
|
||||
|
||||
Cet ouvrage à vocation pratique explique comme créer et contrôler des mouvements, de la lumière et du son à l'aide d'un Arduino et d'un Raspberry Pi. Avec à l'appui 30 projets ludiques à réaliser, il détaille comment utiliser ces deux plates-formes pour contrôler des LED, des moteurs de divers types, des bobines, des dispositifs à courant alternatif, des pompes, ou encore des systèmes d'affichage ou de production de sons. Il se clôt par des projets permettant de contrôler des mécanismes et des systèmes avec Internet, faisant ainsi pénétrer le lecteur dans le monde des objets connectés. Le maker, qui aura déjà eu l'occasion d'utiliser un Arduino ou un Raspberry Pi pour mesurer le monde réel à l'aide de capteurs, passera ici à l'action en découvrant les bases de l'automatisation.
|
||||
|
||||
Dans ce livre, vous apprendrez notamment à :
|
||||
|
||||
* créer un système d'arrosage automatique de vos plantes avec Arduino
|
||||
* mettre au point un rafraîchisseur de boissons
|
||||
* fabriquer une marionnette qui danse en fonction de vos tweets
|
||||
* concevoir un éclateur aléatoire de ballon
|
||||
|
||||
Téléchargez le code source des programmes Arduino et Raspberry Pi présentés dans cet ouvrage sur www.serialmakers.com
|
||||
|
||||
**Commentaires :**
|
||||
|
||||
Toutes les explications sont claires et précises. Idéal pour débuter mais aussi pour l'utilisateur confirmé.
|
||||
Les comparaisons Arduino - Raspberry PI sont très utiles.
|
||||
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
---
|
||||
|
||||
__Livre **Arduino pour la domotique**__
|
||||
|
||||
[[https://amzn.to/3G8tl3e|{{:electronique:esp:pasted:20220128-083115.png?248 }}]]
|
||||
de **Marc-Olivier Schwartz**
|
||||
|
||||
* [[https://amzn.to/3G8tl3e|Commander le livre]]
|
||||
|
||||
* [[https://amzn.to/3G8tl3e|Commander le Kindle]]
|
||||
|
||||
**Notes de l'éditeur :**
|
||||
|
||||
Cet ouvrage est un guide pas-à-pas de projets concrets avec des exemples de code, des schémas et des photos pédagogiques.
|
||||
Il se termine par une introduction à l'impression 3D pour réaliser soi-même les boîtiers dans lesquels encastrer circuits et capteurs.
|
||||
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
---
|
||||
|
||||
__Livre **Arduino le guide complet**__
|
||||
|
||||
[[https://amzn.to/3o7F0Jv|{{:electronique:esp:pasted:20220128-083453.png?248 }}]]
|
||||
Une référence pour ingénieurs, techniciens et bricoleurs de **John Malcolm Hughes**
|
||||
|
||||
* [[https://amzn.to/3o7F0Jv|Commander le livre]]
|
||||
|
||||
* [[https://amzn.to/3o7F0Jv|Commander le Kindle]]
|
||||
|
||||
**Notes de l'éditeur :**
|
||||
|
||||
Le livre le plus complet sur Arduino et son environnement de programmation.
|
||||
|
||||
JM Hughes est ingénieur système et possède 30 ans d'expérience dans le domaine de l'électronique. Il est spécialisé dans le domaine de l'aérospatiale. Il a piloté le projet informatique associé au Phoenix Mars Lander, la sonde spatiale qui s'est posée sur la planète Mars en 2008.
|
||||
|
||||
Au programme :
|
||||
* La famille Arduino
|
||||
* Le micro-contrôleur AVR
|
||||
* Programmer Arduino
|
||||
* Utiliser le langage C et C++
|
||||
* Les bibliothèques Arduino
|
||||
* Les modules d'entrées/sorties
|
||||
* Élaborer 4 projets grandeur nature
|
||||
|
||||
**Commentaires :**
|
||||
|
||||
Ce guide ressemble plus à un inventaire des produits (shields) disponibles avec les différentes cartes ARDUINO qu'à un ouvrage sur les possibilités de ces cartes de développement.
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
---
|
||||
|
||||
__Magazine français **Hackable**__
|
||||
|
||||
{{:electronique:esp:pasted:20220128-075944.png?248 }}
|
||||
|
||||
Né en 2014, Hackable est un magazine destiné aux professionnels et particuliers souhaitant découvrir et progresser dans les domaines de l’électronique numérique et de l’embarqué. Il fournit un contenu riche. Le contenu du magazine est conçu de manière à permettre une mise en pratique directe des connaissances acquises et apprendre tout en faisant.
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
---
|
||||
|
||||
__Livre **Arduino, Applications avancées**__
|
||||
|
||||
[[https://amzn.to/3g2sXZt|{{:electronique:esp:pasted:20220128-081229.png?noLink&248 }}]]
|
||||
|
||||
Claviers tactiles, télécommande par Internet, géolocalisation, applications sans fil... (Technologie électronique) de **Christian Tavernier**
|
||||
|
||||
* [[https://amzn.to/3g2sXZt|Commander le livre]]
|
||||
|
||||
* [[https://amzn.to/3g2sXZt|Commander le Kindle]]
|
||||
|
||||
**Notes de l'éditeur :**
|
||||
|
||||
Ce livre présente des montages électroniques programmables complexes et ambitieux.
|
||||
|
||||
Il aborde ainsi des concepts et des interfaces dits "évolués" tels que :
|
||||
* la connexion aux réseaux (notamment à Internet) que ce soit en mode filaire ou sans fil,
|
||||
* l'utilisation de modules GSM pour exploiter Arduino via un téléphone mobile,
|
||||
* l'utilisation de cartes mémoire SD
|
||||
* le couplage à des modules GPS pour réaliser des applications géolocalisées,
|
||||
* l'utilisation de la synthèse et de la reconnaissance vocale.
|
||||
|
||||
Les programmes nécessaires à leur mise en oeuvre sont fournis dans les suppléments en ligne de l'ouvrage.
|
||||
Un premier chapitre de "remise à niveau" permet à ceux qui n'auraient pas lu le premier ouvrage d'aborder néanmoins celui-ci sans difficulté.
|
||||
|
||||
<WRAP clear/>
|
||||
@@ -0,0 +1,46 @@
|
||||
====== Se connecter à un réseau Wifi ======
|
||||
|
||||
Les extraits de codes suivants ont été testés avec un **Espressif ESP8266** / **ESP 12F** soudé sur une carte **NodeMcu V3**.
|
||||
|
||||
Un connexion **Wifi Client** permet d'indiquer à l'**ESP** de se connecter à un réseau Wifi, désigné dans notre code par la variable **wifi_ssid**, utilisée par la méthode **WiFiMulti.addAP**. Il est également possible d'indiquer un mot de passe en tant que second paramètre (''WiFiMulti.addAP(wifi_ssid, "mot de passe");'').
|
||||
|
||||
<code C esp8266-wifi-client.ino>
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ESP8266WiFiMulti.h>
|
||||
|
||||
const char* wifi_ssid = "AP_for_Alpinux_FABLAB";
|
||||
|
||||
|
||||
ESP8266WiFiMulti WiFiMulti;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
delay(1000);
|
||||
Serial.println("\n");
|
||||
|
||||
// Tentative de connexion Wifi
|
||||
WiFi.mode(WIFI_STA);
|
||||
WiFiMulti.addAP(wifi_ssid);
|
||||
Serial.print("Tentative de connexion au Wifi .");
|
||||
|
||||
while (WiFiMulti.run() != WL_CONNECTED) {
|
||||
Serial.print(".");
|
||||
delay(500);
|
||||
}
|
||||
|
||||
Serial.println("\n");
|
||||
Serial.println("Connexion Wifi réussie");
|
||||
Serial.print("Adresse IP : ");
|
||||
Serial.println(WiFi.localIP());
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
}
|
||||
|
||||
</code>
|
||||
|
||||
Voilà le résultat dans le **moniteur série** de l'application **Arduino IDE**.
|
||||
|
||||
{{:electronique:esp:pasted:20201111-233656.png}}
|
||||
3
data/pages/electronique/esp/serveur-ntp.txt
Normal file
3
data/pages/electronique/esp/serveur-ntp.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
====== Serveur NTP ======
|
||||
|
||||
https://www.elektormagazine.fr/labs/ntp-server
|
||||
5
data/pages/electronique/esp/sidebar.txt
Normal file
5
data/pages/electronique/esp/sidebar.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
{{ ::electronique:esp32.png?75x75 |ESP ESP-01 ESP8266}}
|
||||
<WRAP clear/>
|
||||
|
||||
{{page>index#table-des-matieres}}
|
||||
~~NOCACHE~~
|
||||
57
data/pages/electronique/esp/specifications-esp-01.txt
Normal file
57
data/pages/electronique/esp/specifications-esp-01.txt
Normal file
@@ -0,0 +1,57 @@
|
||||
====== Spécifications de l'ESP-01 ======
|
||||
|
||||
{{ :electronique:esp:pasted:20220128-103802.png?128|Image d'un ESP-01}}
|
||||
|
||||
L'[[https://amzn.to/3oAwIaR|ESP-01]] est un circuit imprimé avec pour caractéristique un **microcontrôleur ESP8266EX**, une **mémoire SPI Flash** de 1 MB à 16 MB, une **antenne sur PCB de 3 dBi** et un **connecteur 8 broches**.
|
||||
|
||||
> Acheter un [[https://amzn.to/3oAwIaR|ESP-01 basé sur ESP8266]]
|
||||
|
||||
L'**ESP-01** ne possède pas d'interface USB. Cela va nécessiter un montage complémentaire pour le programmer. Un **adaptateur USB vers série pour ESP8266EX** permettra dans un premier temps d'interagir avec l'**ESP-01**, depuis un ordinateur avec port USB.
|
||||
|
||||
Avant tout, nous allons comprendre la différence entre **ESP8266EX** et **ESP-01**. L'**ESP8266EX** représente le circuit intégré, le composant principal, alors que l'**ESP-01** est le circuit imprimé intégrant les composants, connecteurs et circuit PCB.
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
__DataSheet ESP-01__
|
||||
|
||||
|
||||
__Schéma des connecteurs ESP-01__
|
||||
|
||||
{{ :electronique:esp:pasted:20220128-110155.png |Schéma des connecteurs de la carte PINOUT ESP-01 }}
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
Sur le ESP-01, il y a 8 connecteurs reliés directement à l' ESP8266EX.
|
||||
* 2 pour l'alimentation (VCC) et la masse (GND).
|
||||
* 2 pour la réception (RX) et l’émission de données (TX) avec l'UART.
|
||||
* 2 connectées à la GPIO (GPIO0 et GPIO2)
|
||||
* et 2 autres (RST) et (CH_PD)
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
|
||||
{{ :electronique:esp:pasted:20201207-233302.png?300|ESP-01 avec connecteur USB CH360}}
|
||||
Lorsque l'on connecte un **circuit imprimé ESP-01** avec un **adaptateur USB** basé sur une puce **CH360**, le circuit effectue un pont entre l'ESP-01 et l'ordinateur. Il se connecte sur la port série UART de l'ESP8266.
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
===== Fiche technique / datasheet =====
|
||||
|
||||
Vous pouvez télécharger le datasheet : {{ :electronique:esp:esp01.pdf |ESP 01 Wifi Module}}
|
||||
|
||||
{{ :electronique:esp:pasted:20201209-085932.png |DataSheet l'ESP-01}}
|
||||
|
||||
|
||||
===== Configurer l'IDE Arduino =====
|
||||
|
||||
|
||||
{{ :electronique:esp:pasted:20201212-183454.png|Paramétrage Arduino Uno}}
|
||||
|
||||
Je vous invite à consulter la page dédiée à [[electronique:esp:installer-logiciel-arduino-ide|l'installation de logiciel IDE Arduino]] et au paramétrage de celui-ci pour intégrer les [[electronique:esp:programmer-esp-avec-arduino-ide|paramètres pour les circuits ESP]].
|
||||
|
||||
Ensuite, il faut modifier quelques paramètres.
|
||||
|
||||
Pour l’**ESP-01** il faut sélectionner le **Generic ESP8266 module** et modifier les paramètres selon votre carte ! Dans la plupart des cas dont le mien, pas besoin de toucher à quoique se soit mise à part le port série sur lequel votre carte est branchée.
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
120
data/pages/electronique/esp/specifications-esp-8266.txt
Normal file
120
data/pages/electronique/esp/specifications-esp-8266.txt
Normal file
@@ -0,0 +1,120 @@
|
||||
====== Spécifications de l'ESP8266 ======
|
||||
|
||||
L'**ESP826** est un **micro controleur** bas coût avec une capacité de communication **Wifi** en protocole TCP/IP. Le développement est assuré **Espressif Systems**, société publique de Chine de portée multi nationale (Repulbique Tchèque, Inde, Brésil, Singapour).
|
||||
|
||||
===== - Spécifications techniques =====
|
||||
|
||||
* Processeur : Microprocesseur RISC L106 32-bit basé sur le processeur **Tensilica Xtensa Diamond Standard 106Micro** cadencé à 80 MHz
|
||||
|
||||
* Memory:
|
||||
* 32 KiB instruction RAM
|
||||
* 32 KiB instruction cache RAM
|
||||
* 80 KiB user-data RAM
|
||||
* 16 KiB ETS system-data RAM
|
||||
|
||||
* External QSPI flash: up to 16 MiB is supported (512 KiB to 4 MiB typically included)
|
||||
|
||||
* IEEE 802.11 b/g/n Wi-Fi
|
||||
|
||||
* Integrated TR switch, balun, LNA, power amplifier and matching network
|
||||
|
||||
* WEP or WPA/WPA2 authentication, or open networks
|
||||
|
||||
* 17 GPIO pins
|
||||
|
||||
* Serial Peripheral Interface Bus (SPI)
|
||||
|
||||
* I²C (software implementation)[7]
|
||||
|
||||
* I²S interfaces with DMA (sharing pins with GPIO)
|
||||
|
||||
* UART on dedicated pins, plus a transmit-only UART can be enabled on GPIO2
|
||||
|
||||
* 10-bit ADC (successive approximation ADC)
|
||||
|
||||
|
||||
===== - Circuits intégrés (modules) =====
|
||||
|
||||
Il existe deux principaux constructeurs de circuits intégrés (modules) **ESP8266** :
|
||||
|
||||
__Circuits intégrés **Ai-Thinker**__
|
||||
|
||||
|
||||
{{ :electronique:ai-thinker.png?100|Logo Ai-Thinker}}
|
||||
|
||||
* ESP-01
|
||||
* ESP-01S
|
||||
* ESP-01M
|
||||
* ESP-02
|
||||
* ESP-03
|
||||
* ESP-04
|
||||
* ESP-05
|
||||
* ESP-06
|
||||
* ESP-07
|
||||
* ESP-07S
|
||||
* ESP-08
|
||||
* ESP-09
|
||||
* ESP-10
|
||||
* ESP-11
|
||||
* ESP-12
|
||||
* ESP-12E
|
||||
* ESP-12F
|
||||
* ESP-12S
|
||||
* ESP-13
|
||||
* ESP-14
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
|
||||
__Circuits intégrés **Espressif**__
|
||||
|
||||
{{ :electronique:espressif-logo-pratik-panda-clients-2.png?100|Logo Espressif}}
|
||||
|
||||
* ESP-WROOM-02
|
||||
* ESP-WROOM-02D
|
||||
* ESP-WROOM-02U
|
||||
* ESP-WROOM-S2
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
+ d'infos : https://en.wikipedia.org/wiki/ESP8266
|
||||
|
||||
|
||||
===== - Cartes de développement (SDK) =====
|
||||
|
||||
La carte de développement intègre le **circuit intégré** avec le nécessaire pour réaliser des montages rapidement.
|
||||
|
||||
La première version de l'**ESP866** est sortie en 2014 avec différentes cartes de développement : NodeMCU DEVKIT, Ai-Thinker ESP01, WeMos, Adafruit, SparkFun ...
|
||||
|
||||
==== - ESP-01 ====
|
||||
|
||||
Voir la page [[electronique:esp:specifications-esp-01|]]
|
||||
|
||||
|
||||
==== - AI Thinker ESP8266MOD ====
|
||||
|
||||
|
||||
{{ :electronique:esp:nodemcuv3.0-pinout.jpg |AI Thinker ESP8266MOD}}
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
|
||||
==== - Espressif ESP-12E ====
|
||||
|
||||
__Schéma des connecteurs ESP-12E__
|
||||
|
||||
{{ :electronique:esp:pasted:20220128-104522.png |Schéma des connecteurs de la carte PINOUT ESP-01}}
|
||||
|
||||
|
||||
==== DOITING ESP 12F ====
|
||||
|
||||
|
||||
Ver 0.1
|
||||
|
||||
[[.:doiting-esp-12f:|plus d'infos]]
|
||||
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
|
||||
--- //[[user:CédricABONNEL]] 2022/01/28 09:05//
|
||||
38
data/pages/electronique/esp/specifications-esp32-c3.txt
Normal file
38
data/pages/electronique/esp/specifications-esp32-c3.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
====== Spécifications de l'ESP32-C3 ======
|
||||
|
||||
<WRAP center round important 60%>
|
||||
En cours de rédaction
|
||||
|
||||
Le contenu peut être faux
|
||||
</WRAP>
|
||||
|
||||
|
||||
L'[[https://amzn.to/3KPSx2b|ESP32-C3]] est un circuit imprimé avec pour caractéristique un **microcontrôleur ESP32 série C**.
|
||||
|
||||
> Acheter un [[https://amzn.to/3KPSx2b|ESP32-C3, le successeur de l'ESP32]]
|
||||
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
|
||||
|
||||
===== Fiche technique / datasheet =====
|
||||
|
||||
Vous pouvez télécharger les datasheets :
|
||||
* {{ :electronique:esp:esp32-c3_datasheet_en.pdf |ESP32-C3}}
|
||||
* {{ :electronique:esp:esp-c3-32s-kit-v1.0_specification.pdf |Ai ESP-c3-32s}}
|
||||
|
||||
{{ :electronique:esp:pasted:20220128-004933.png |esp32-c3-devkitm-1-v1-pinout}}
|
||||
===== Configurer l'IDE Arduino =====
|
||||
|
||||
|
||||
{{ :electronique:esp:pasted:20201212-183454.png|Paramétrage Arduino Uno}}
|
||||
|
||||
Je vous invite à consulter la page dédiée à [[electronique:esp:installer-logiciel-arduino-ide|l'installation de logiciel IDE Arduino]] et au paramétrage de celui-ci pour intégrer les [[:electronique:esp:programmer-esp32-avec-arduino-ide|paramètres pour les circuits ESP32]].
|
||||
|
||||
Ensuite, il faut modifier quelques paramètres.
|
||||
|
||||
Pour l’**ESP32** il faut sélectionner le **???????** et modifier les paramètres selon votre carte ! Dans la plupart des cas dont le mien, pas besoin de toucher à quoique se soit mise à part le port série sur lequel votre carte est branchée.
|
||||
|
||||
<WRAP clear/>
|
||||
|
||||
19
data/pages/electronique/esp/specifications-esp32-h2.txt
Normal file
19
data/pages/electronique/esp/specifications-esp32-h2.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
====== Specifications ESP32 H2 ======
|
||||
{{ :dummy.png?75x75|Nom de la section}}
|
||||
|
||||
**Espressif** annonce en novembre 2021 la sortie de l'ESP32-H2 qui vient compléter l'offre des ESP32 en ajoutant un connexion **IEEE 802.15.4** et **Bluetooth 5 (LE)**.
|
||||
|
||||
Le IEEE 802.15.4 est un protocole de communication de la famille des LR WPAN :
|
||||
* faible consommation
|
||||
* faible portée
|
||||
* faible débit
|
||||
* formation d'un réseau mèche ou maillé
|
||||
* détection d'énergie
|
||||
* ...
|
||||
|
||||
Il y aura deux type de dispositifs :
|
||||
* le dispositif ayant toutes les fonctions possibles (FFD : Full Function Device)
|
||||
* dispositif ayant des fonctions limitées (RFD : Reduced Function Device)
|
||||
|
||||
|
||||
L'implémentaiton de ce protocole est utilisée dans les protocoles **ZigBee** ou **6LoWPAN**.
|
||||
@@ -0,0 +1,6 @@
|
||||
====== Téléchargement de données ESP32 SPIFFS ======
|
||||
|
||||
|
||||
|
||||
https://randomnerdtutorials.com/install-esp32-filesystem-uploader-arduino-ide/
|
||||
|
||||
88
data/pages/electronique/esp/wifi-manager.txt
Normal file
88
data/pages/electronique/esp/wifi-manager.txt
Normal file
@@ -0,0 +1,88 @@
|
||||
===== Wifi Manager avec l'ESP =====
|
||||
|
||||
|
||||
|
||||
Vous pouvez programmer l'ESP pour se connecter à un point d'accès Wi-Fi existant ou de créer un point d'accès s'il ne peut pas se connecter. Vous pouvez configurer et gérer la connexion Wi-Fi d'un ESP à l'aide de la bibliothèque **WiFiManager**.
|
||||
|
||||
La bibliothèque **WiFiManager** simplifie la gestion des informations d'identification du réseau (SSID et mot de passe) en éliminant la nécessité de les coder en dur. En utilisant cette bibliothèque, l'ESP est capable de se connecter automatiquement à un réseau Wi-Fi préalablement configuré, ou de créer un point d'accès auquel vous pouvez vous connecter pour configurer les informations d'identification du réseau. Ainsi, vous n'avez plus à modifier le code source pour changer les paramètres de connexion Wi-Fi, ce qui facilite grandement la mise en place et la configuration de vos projets.
|
||||
|
||||
|
||||
<code C esp8266-wifi-manager.ino>
|
||||
#include <WiFiManager.h>
|
||||
|
||||
WiFiManager wm;
|
||||
|
||||
void setup() {
|
||||
// Configuration du mode Wi-Fi en mode client station
|
||||
WiFi.mode(WIFI_STA);
|
||||
|
||||
Serial.begin(115200);
|
||||
delay(1000);
|
||||
Serial.println();
|
||||
|
||||
Serial.println("Tentative de connexion au réseau Wi-Fi...");
|
||||
|
||||
// Connexion automatique au réseau Wi-Fi connu
|
||||
if (!wm.autoConnect()) {
|
||||
Serial.println("Erreur de connexion au réseau Wi-Fi.");
|
||||
// Vous pouvez ajouter ici une logique pour gérer l'erreur de connexion
|
||||
} else {
|
||||
// Connexion réussie
|
||||
Serial.println("Connexion au réseau Wi-Fi réussie !");
|
||||
Serial.print("Adresse IP : ");
|
||||
Serial.println(WiFi.localIP());
|
||||
// Vous pouvez ajouter ici une logique pour exécuter des actions supplémentaires après la connexion réussie
|
||||
}
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Vous pouvez ajouter ici du code supplémentaire à exécuter en boucle
|
||||
}
|
||||
|
||||
|
||||
</code>
|
||||
|
||||
|
||||
===== Exemples de fonctionnement =====
|
||||
|
||||
__1. Réseau Wifi enregistré non disponbile__
|
||||
|
||||
Après un redémarrage de l'ESP, le réseau WiFi ''ACEGRP_SATNET1'' devient inaccessible. Le gestionnaire **WiFi Manager** propose son interface Web pour effectuer d'autres réglages si écessaires.
|
||||
|
||||
| {{:electronique:esp:pasted:20230706-190947.png}} |
|
||||
|
||||
Il est possible de sélectionner un autre réseau Wifi dans le menu **Configure Wifi** (http://192.168.4.1/wifi) :
|
||||
|
||||
| {{:electronique:esp:pasted:20230706-191715.png}} |
|
||||
|
||||
Il est possible de supprimer la configuration Wifi déjà enregistré dans la section **Info** (http://192.168.4.1/info) :
|
||||
|
||||
| {{:electronique:esp:pasted:20230706-192055.png}} |
|
||||
|
||||
__2. Aucun réseau Wifi connu__
|
||||
|
||||
| {{:electronique:esp:pasted:20230706-193716.png}} |
|
||||
|
||||
On peut ajouter un nouveau réseau :
|
||||
|
||||
| {{:electronique:esp:pasted:20230706-194049.png}} |
|
||||
|
||||
__3. ESP connecté sur le même réseau Wifi qu'un ordinateur__
|
||||
|
||||
Utilisation du programme ''nmap'' pour découvrir les périphériques réseau.
|
||||
|
||||
{{:electronique:esp:pasted:20230706-194454.png}}
|
||||
|
||||
<code>
|
||||
sudo nmap 192.168.197.0/24
|
||||
</code>
|
||||
|
||||
<code>
|
||||
Starting Nmap 7.80 ( https://nmap.org ) at 2023-07-06 19:43 CEST
|
||||
...
|
||||
|
||||
Nmap scan report for 192.168.197.228
|
||||
Host is up (0.012s latency).
|
||||
All 1000 scanned ports on 192.168.197.228 are closed
|
||||
MAC Address: C4:4F:33:75:8C:9D (Espressif)
|
||||
</code>
|
||||
Reference in New Issue
Block a user