Per aggiungere la scheda all'Arduino IDE si deve scaricare il pacchetto
https://dl.espressif.com/dl/package_esp32_index.json
inoltre potrebbero essere necessari i driver per la porta seriale via USB scaricabili da qui
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
Questo e' il pinout della scheda
Una cosa che mi ha fatto impazzire e' che nonostante questi settaggi abbastanza conservativi non riuscivo a fare l'upload sulla scheda (con il messaggio di errore
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Il trucco e' quello di premere il pulsante di Boot al momento di fare l'upload
Le connessioni dell'ESP 32 con l'OLED sono attraverso i seguenti pin
Una cosa che mi ha fatto impazzire e' che nonostante questi settaggi abbastanza conservativi non riuscivo a fare l'upload sulla scheda (con il messaggio di errore
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Il trucco e' quello di premere il pulsante di Boot al momento di fare l'upload
Le connessioni dell'ESP 32 con l'OLED sono attraverso i seguenti pin
SCL - Pin 4
SDA - Pin 5
La libreria per controllare l'OLED si puo' scaricare da qui . I programmi di esempio della libreria devono essere modificati (per esempo SSD1306SimpleDemo) cosi'
-----------------------------------------------
#include <Wire.h> // Only needed for Arduino 1.6.5 and earlier
#include "SSD1306.h" // alias for `#include "SSD1306Wire.h"`
#include "images.h"
SSD1306 display(0x3c, 5, 4);
#define DEMO_DURATION 3000
typedef void (*Demo)(void);
-----------------------------------------------
----------------------------------------------
#include "WiFi.h"
#include "SSD1306.h"
SSD1306 display(0x3c, 5, 4);
void setup()
{
pinMode(16,OUTPUT);
digitalWrite(16, LOW);
delay(50);
digitalWrite(16, HIGH);
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
display.init();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_10);
Serial.println("Setup done");
}
void loop()
{
display.clear();
display.setTextAlignment(TEXT_ALIGN_LEFT);
Serial.println("scan start");
int n = WiFi.scanNetworks();
Serial.println("scan done");
if (n == 0) {
Serial.println("no networks found");
} else {
Serial.print(n);
Serial.println(" networks found");
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");
display.drawString(0, (10*i),WiFi.SSID(i)+" "+WiFi.RSSI(i));
display.display();
delay(10);
}
}
Serial.println("");
delay(5000);
}