esp32
This is an old revision of the document!
Table of Contents
Préambule
Installation
Install config sous Linux
Sous Debian 12, lors du 1er test, j'ai reçu ces deux messages d'erreur:
- Error Msg:
ModuleNotFoundError: No module named 'serial
' - Error msg:
Failed uploading: no upload port provided
On va donc, d'abord:
# apt install python3-serial
# /sbin/usermod -aG dialout <USER>
+ reboot
Suivi de l'installation proprement dite :
- Download Aduino IDE: https://www.arduino.cc/en/software
- Unzip :
$ unzip arduino[…]
- Launch :
$ cd arduino[…]
,$ ./arduino-ide
- Menu File → Preferences → Additional boards manager URLs: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Menu Tools → Board → Board Manager… → search with ESP32, select de most recent version of ESP32 by Espressif Systems, and Install
- Menu Tools → Board → Esp32 → ESP32 Dev Module
- Menu Tools → Port → /dev/ttyUSB0
Test
- Menu File → example → ESP32 → ChipID → GetChipID
- Upload: Menu Sketch → Upload
- Menu Tools → Serial Monitor
- Change to 115200 Baud
ESP32 Chip model = ESP32-D0WDQ6 Rev 101 This chip has 2 cores Chip ID: 11493932
Serial Output
void setup() { Serial.begin(115200); while (!Serial) continue; Serial.println("Ready."); } void loop() { }
K2000
[26/09/2014]
Suite illogique des pins GPIO
GPIO-1 en OUTPUT → conflit avec sortie serial
#include <math.h> const float pi = 3.14159; const int ledPin[7] = {5,18,19,21,3,22,23}; void setup() { for (int i=0; i<7; i++) { pinMode (ledPin[i], OUTPUT); } } void loop() { for (float ang=-pi; ang<pi; ang=ang+(2*pi/700)) { int led = (1+std::sin(ang))*7/2; digitalWrite (ledPin[led], HIGH); delay(1); digitalWrite (ledPin[led], LOW); } }
Thread
#include <WiFi.h> #include <WebServer.h> #include <HTTPClient.h> #include <ArduinoJson.h> #include <Thread.h> const char *ssid = "....."; const char *password = "....."; float btc; Thread myThread = Thread(); void getBtcFromKraken() { HTTPClient http; http.begin("https://api.kraken.com/0/public/Ticker?pair=XXBTZEUR"); int httpCode = http.GET(); if (httpCode == HTTP_CODE_OK) { String response = http.getString(); JsonDocument doc; DeserializationError error = deserializeJson(doc, response); if (!error) { btc = doc["result"]["XXBTZEUR"]["c"][0].as<float>(); Serial.print("BTC: "); Serial.println(btc); } } http.end(); } WebServer server(80); void handleRoot() { String html = "BTC = " + String(btc); server.send(200, "text/plain", html); } void setup(void) { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) delay(500); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); //if (MDNS.begin("esp32")) { // Serial.println("MDNS responder started"); //} myThread.onRun(getBtcFromKraken); myThread.setInterval(10000); myThread.run(); server.on("/", handleRoot); server.onNotFound([]() { server.send(404, "text/plain", "Not Found"); }); server.begin(); Serial.println("HTTP server started"); } void loop(void) { if (myThread.shouldRun()) myThread.run(); Serial.print("."); server.handleClient(); delay(500); //allow the cpu to switch to other tasks }
esp32.1741292114.txt.gz · Last modified: 2025/03/06 20:15 by bruno