Освой Arduino играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

ESP32: Встроенные примеры

Рассмотрим примеры, которые входят в состав Arduino IDE при установке платы.

ESP32

AnalogOut

LEDCSoftwareFade

Вместо analogWrite() плата ESP32 использует функцию ledcWrite(). Запустим пример из ESP32/AnalogOut/LEDCSoftwareFade. В коде я заменил строчку для встроенного светодиода.


#define LED_PIN            2

Остальной код приводить не буду. После запуска встроенный светодиод будет плавно менять свою интенсивность свечения.


ChipID

GetChipID

Пример позволяет узнать идентификатор платы, который по сути является его MAC-адресом.


uint64_t chipid;

void setup() {
  Serial.begin(115200);
}

void loop() {
  chipid = ESP.getEfuseMac(); //The chip ID is essentially its MAC address(length: 6 bytes).
  Serial.printf("ESP32 Chip ID = %04X", (uint16_t)(chipid >> 32)); //print High 2 bytes
  Serial.printf("%08X\n", (uint32_t)chipid); //print Low 4bytes.

  delay(3000);
}

HallSensor

Пример использует датчик Холла для обнаружения магнита. У меня есть лучший пример с использованием светодиода.


int val = 0;
void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println(val);
}

Touch

TouchRead

Пример для считывания показаний с тач-выводов. У меня есть отдельная статья с лучшим примером.


// ESP32 Touch Test
// Just test touch pin - Touch0 is T0 which is on GPIO 4.

void setup()
{
  Serial.begin(115200);
  delay(1000); // give me time to bring up serial monitor
  Serial.println("ESP32 Touch Test");
}

void loop()
{
  Serial.println(touchRead(T0));  // get value using T0
  delay(1000);
}

WiFi

WiFiScan

Пример сканирования WiFi-сети. Выводит число найденных точек и их названия.


#include "WiFi.h"

void setup()
{
    Serial.begin(115200);

    // Set WiFi to station mode and disconnect from an AP if it was previously connected
    WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(100);

    Serial.println("Setup done");
}

void loop()
{
    Serial.println("scan start");

    // WiFi.scanNetworks will return the number of networks found
    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)?" ":"*");
            delay(10);
        }
    }
    Serial.println("");

    // Wait a bit before scanning again
    delay(5000);
}
Реклама