Outils pour utilisateurs

Outils du site


esp32_devkit

Ceci est une ancienne révision du document !


ESP32 devkit v1

Ici sont rassemblés des informations pour travailler avec un ESP32 devkit. Ce kit a été créé par une boite nommée Espressif. https://www.espressif.com/en/products/hardware/esp32/overview

Avant toute chose, il faut bien vérifier le modèle de l'ESP32 board que vous utilisez, car il existe de noumbreux modèles differents, avec pour chacun un cablage différents.

La version “lolin32” semble être un bon choix pour une carte de developpement, car elle fit mieux sur une breadbord. Il reste une ligne de chaque côté de la breadbord pour connecter des fils. Elle dispose de quoi brancher une batterie et du nécéssaire de recharge de la baterie, et consomme très peu de courant en deepsleep mode. Néansmoins, il semble qu'il faille toujours souder les connecteurs sois même.

Un tuto complet ici : https://mjrobot.org/iot-made-simple-playing-with-the-esp32-on-arduino-ide/. Attenton, votre ESP32 est probablement cablé différement !

Beaucoup de versions sont listés dans ce magnifique document google : vous trouverez forcément chaussures à votre pied. Vous pouvez trier le document par un tas de critères, comme “breadboard friendly”, présence d'un ecran, présence d'un transceiver LoRa, présence d'une gestion de charge de batterie, …

Détails techniques

Voici les détails techniques colléctés en vrac depuis le site internet de https://mjrobot.org.

Fonctionnalités clées

  • 240 MHz dual-core Tensilica LX6 microcontroller avec 600 DMIPS
  • 520 KB SRAM intégré
  • Émetteur-récepteur Wi-Fi 802.11 b/g/n HT40 Wi-Fi transceiver intégré, baseband, stack et LwIP
  • Bluetooth dual mode intégré (classic et BLE)
  • 16 MB flash, memory-mapped to the CPU code space
  • 2.3V to 3.6V operating voltage
  • Temperature de fonctionnement de -40°C à +125°C
  • Onboard PCB antenna / IPEX connector for external antenna

Capteurs

  • Ultra-low noise analog amplifier
  • Capteur à effet Hall
  • 10x capacitive touch interfaces
  • 32 kHz crystal oscillator

34 ports GPIO

  • 3 x UARTs, including hardware flow control
  • 3 x SPI
  • 2 x I2S
  • 18 x ADC input channels
  • 2 x DAC
  • 2 x I2C
  • PWM/timer input/output available on every GPIO pin
  • OpenOCD debug interface with 32 kB TRAX buffer
  • SDIO master/slave 50 MHz
  • Supports external SPI flash up to 16 MB
  • SD-card interface support

Securité des communications

  • WEP, WPA/WPA2 PSK/Enterprise
  • Hardware accelerated encryption: AES/SHA2/Elliptical Curve Cryptography/RSA-4096

Performance

  • Supports sniffer, Station, SoftAP and Wi-Fi direct mode
  • Max data rate of 150 Mbps@11n HT40, 72 Mbps@11n HT20, 54 Mbps@11g, and 11 Mbps@11b
  • Maximum transmit power of 19.5 dBm@11b, 16.5 dBm@11g, 15.5 dBm@11n
  • Minimum receiver sensitivity of -97 dBm
  • 135 Mbps UDP sustained throughput
  • 5 μA power consumption in Deep-sleep

Utilisation de l'IDE Arduino

L'installation de la carte sur Arduino IDE est documenté sur le projet github .

Le projet annonce que la plupart du framework arduino est implémenté.

Les premiers pas de max sur l'ESP32 devkit

Mes premiers ESP32 devkit semblent etre des “ESP32 devkit v1”. C'est un terme plutot générique et il existe beaucoup de kit differents avec ce nom. Mon devkit est chiant car il n'est pas breadboard friendly. Lorsque je le monte sur une breadboard, je n'ai accès quà un côté des pins dispositif.

Voici un tuto bien étoffé pour commencer à bricoler rapidement avec le meme ESP32 devkit que le mien : https://mjrobot.org/iot-made-simple-playing-with-the-esp32-on-arduino-ide/

Ports de communications SPI

cf: http://iot-bits.com/esp32/esp32-spi-tutorial-part-1/

Sur l'ESP32, 2 ports SPI sont disponnibles :

  • SPI2 (HSPI)
  • SPI3 (VSPI)

HSPI (SPI2)

  • CLK ⇒ GPIO 14
  • MISO ⇒ GPIO 13
  • MOSI ⇒ GPIO 12
  • SS ⇒ GPIO 15

VSPI (SPI3)

  • CLK ⇒ GPIO 18
  • MISO ⇒ GPIO 23
  • MOSI ⇒ GPIO 19
  • SS ⇒ GPIO 5

Notes

  • GPIO2 pilote la diode bleue.
  • GPIO22 pas utilisable en INPUT ou en INPUT_PULLUP ?

Troubleshooting

  • Lors de l'UPLOAD du code compilé: l'erreur suivante apparait : “Serial object has no attribut dtr”. Pour régler cela il faut maj la biblothèque python pyserial: sudo pip install –upgrade pyserial
  • Lors de l'UPLOAD du code compilé: l'erreur suivante apparait : “Failed to connect to ESP32: Timed out waiting for packet header”. Il faut vérifier que les pin RX0/TX0 (GPIO3/GPIO1) de l'ESP32 ne sont pas utilisés. Ces 2 pins servent à la liaison de debug.

Pilotage d'un écran TFT 240x240 px : le ST7789

Cablage

  • 1 GND Power ground
  • 2 VCC Power 3.3+
  • 3 SCL SPI clock line
  • 4 SDA SPI data line
  • 5 RES Reset
  • 6 DC Data/command selection foot
  • 7 BLK Backlight control, the default can be left floating, low level to turn off the backlight.

Téléchargement de la bibliothèque arduino ici : https://www.arduinolibraries.info/libraries/adafruit-st7735-and-st7789-library

La bibliothèque arduino GFX est également nécéssaire. Elle est disponible dans le “librairie manager” de l'IDE Arduino.

Configuration du sketch :

#define TFT_CS    13
#define TFT_RST   4 // Or set to -1 and connect to Arduino RESET pin
#define TFT_DC    15
#define TFT_SCLK  18  // Clock out
#define TFT_MOSI  23  // Data out
 
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);

Plus de code sur github ici : https://github.com/mxbossard/laperco-capteurs/tree/master/arduino_sketches/lora_uart_tester_screen

Les premiers pas de Bjorn sur l'ESP32 devkit

Mon objectif initial est de tester des librairies graphiques en vue d'un futur projet sur ce genre de hardware (teasing de ouf). J'avais sous la main un écran ST7735 (en 128x160px) qui embarque également un port microSD, je tout acheté à vil prix chez une grande enseigne française d'électronique. Le module ESP32 m'a été gentiment prêté par Gaziel qui en avait un au fond de son sac. Celui-ci viens du marché chinois des internets et laisse une rangé de libre de chaque coté de la breadboard une fois enfiché.

Hardware

  • todo

Software

  • todo

Notes

  • todo

Notes pour l'utilisation du serveur WEB de l'ESP32

Un tuto interessant au sujet de l'outillage pour construire des pages web en économisant l'espace mémoire : https://nathanmcminn.com/2018/09/23/a-modern-micro-web-stack-for-the-esp32/ On y parle notamment de SPIFFS le mini File System disponible pour ESP32. cf : https://github.com/ntmcminn/arduino-examples/blob/master/esp32-ap-mode/esp32-ap-mode.ino

esp32_devkit.1550138759.txt.gz · Dernière modification : 2019/02/14 10:05 de BjornToLose