User Tools

Site Tools


esp32

This is an old revision of the document!


Préambule

Les vidéos de Tommy Desrochers:

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 :

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