Оглавление:

Введение в ESP32: 10 шагов
Введение в ESP32: 10 шагов

Видео: Введение в ESP32: 10 шагов

Видео: Введение в ESP32: 10 шагов
Видео: ESP-IDF | Введение 2024, Июль
Anonim
Image
Image
Ключевая особенность
Ключевая особенность

В этой статье мы поговорим о ESP32, который я считаю старшим братом ESP8266. Мне очень нравится этот микроконтроллер, потому что в нем есть Wi-Fi. Просто чтобы у вас было представление, до того, как ESP появится, если вам понадобится Arduino для работы с Wi-Fi, вам придется потратить от 200 до 300 долларов на покупку адаптера Wi-Fi. Адаптер для сетевого кабеля не такой уж и дорогой, но для WiFi он всегда был и остается дорогим. Но, к счастью, Espressif Systems запустила ESP и решает нашу жизнь.

Мне нравится ESP32 с этим форматом, у которого есть порт USB. Этой схемой NodeMCU легко манипулировать, потому что она не требует никакой электроники. Просто подключите кабель, включите устройство и запрограммируйте его. Он работает так же, как Arduino.

В любом случае, сегодня мы поговорим об общих аспектах ESP32 и о том, как настроить Arduino IDE для программирования большего количества устройств этого типа. Также мы сделаем программу, которая ищет сети и показывает, какая из них мощнее.

Шаг 1. Основные характеристики

Чип со встроенным Wi-Fi: стандарт 802.11 B / G / N, работает в диапазоне от 2,4 до 2,5 ГГц

Режимы работы: клиент, точка доступа, станция + точка доступа

Двухъядерный микропроцессор Tensilica Xtensa 32-бит LX6

Регулируемая частота от 80 МГц до 240 МГц

Рабочее напряжение: 3,3 В постоянного тока

Он имеет SRAM 512 КБ

Особенности 448 КБ ПЗУ

Имеет внешнюю флеш-память объемом 32 Мб (4 мегабайта).

Максимальный ток на вывод составляет 12 мА (рекомендуется использовать 6 мА)

Имеет 36 GPIO

GPIO с функциями PWM / I2C и SPI

Он имеет Bluetooth v4.2 BR / EDR и BLE (Bluetooth с низким энергопотреблением)

Шаг 2: Сравнение ESP32, ESP8266 и Arduino R3

Сравнение ESP32, ESP8266 и Arduino R3
Сравнение ESP32, ESP8266 и Arduino R3

Шаг 3: Типы ESP32

Типы ESP32
Типы ESP32

ESP32 родился с множеством братьев и сестер. Сегодня я использую первый слева, Espressif, но есть несколько марок и типов, включая встроенный дисплей Oled. Однако отличия заключаются в одном чипе: Tensilica LX6, 2 Core.

Шаг 4: узел WiFi MCU-32S ESP-WROOM-32

Узел Wi-Fi MCU-32S ESP-WROOM-32
Узел Wi-Fi MCU-32S ESP-WROOM-32

Это схема ESP, которую мы используем в нашей сборке. Это чип, обладающий большой привлекательностью и мощностью. Это несколько контактов, которые вы выбираете, хотите ли они работать как цифровой аналоговый, аналогово-цифровой или даже если это работает как дверь, как цифровой.

Шаг 5: Настройка Arduino IDE (Windows)

Настройка Arduino IDE (Windows)
Настройка Arduino IDE (Windows)
Настройка Arduino IDE (Windows)
Настройка Arduino IDE (Windows)

Вот как настроить IDE Arduino, чтобы мы могли скомпилировать для ESP32:

1. Скачайте файлы по ссылке:

2. Разархивируйте файл и скопируйте его содержимое по следующему пути:

C: / Users / [ИМЯ_ПОЛЬЗОВАТЕЛЯ] / Documents / Arduino / hardware / espressif / esp32

Примечание. Если нет каталогов "espressif" и "esp32", просто создайте их как обычно.

3. Откройте каталог.

C: / Users / [ИМЯ_ПОЛЬЗОВАТЕЛЯ] / Documents / Arduino / hardware / espressif / esp32 / tools

Запустите файл «get.exe».

4. После завершения "get.exe" подключите ESP32, дождитесь установки драйверов (или установки вручную).

Готово, теперь просто выберите плату ESP32 в «tools >> board» и скомпилируйте свой код.

Шаг 6: сканирование WiFi

Вот пример того, как искать доступные сети Wi-Fi рядом с ESP-32, а также уровень сигнала в каждой из них. При каждом сканировании мы также узнаем, какая сеть имеет лучший уровень сигнала.

Шаг 7: Код

Для начала подключим библиотеку «WiFi.h», которая нам понадобится для работы с сетевой картой нашего устройства.

#include "WiFi.h"

Вот две переменные, которые будут использоваться для хранения SSID (имени) сети и мощности сигнала.

Строка networkSSID = ""; int StrengthSignal = -9999;

Шаг 8: настройка

В функции setup () мы определим режим поведения WiFi нашего устройства. В этом случае, поскольку целью является поиск доступных сетей, мы настроим наше устройство для работы в качестве «станции».

void setup () {// Инициализируем Serial для входа в Serial Monitor Serial.begin (115200);

// настраиваем режим работы WiFi как станцию WiFi.mode (WIFI_STA); // WIFI_STA - константа, указывающая режим станции

// отключаемся от точки доступа, если она уже подключена WiFi.disconnect (); задержка (100);

// Serial.println ("Настройка завершена");}

Шаг 9: цикл

В функции loop () мы будем искать доступные сети, а затем распечатывать журнал найденных сетей. Для каждой из этих сетей мы проведем сравнение, чтобы найти сеть с самым высоким уровнем сигнала.

void loop () {// Serial.println ("начало сканирования"); // выполняет сканирование доступных сетей

int n = WiFi.scanNetworks ();

Serial.println («Сканирование выполнено»);

// проверяем, нашли ли вы какую-либо сеть if (n == 0) {Serial.println ("Сеть не найдена"); } еще {networkSSID = ""; StrengthSignal = -9999; Serial.print (n); Serial.println ("сети найдены / n"); for (int i = 0; i <n; ++ i) {// печать на последовательном мониторе каждой из найденных сетей Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // имя сети (ssid) Serial.print ("СИГНАЛ:"); Serial.print (WiFi. RSSI (i)); // мощность сигнала Serial.print ("\ t / tCHANNEL:"); Serial.print ((int) WiFi.channel (i)); Serial.print ("\ t / tMAC:"); Serial.print (WiFi. BSSIDstr (i)); Serial.println ("\ п / п"); если (абс (WiFi. RSSI (я)) <абс (силаСигнал)) {силаСигнал = WiFi. RSSI (я); networkSSID = WiFi. SSID (i); Serial.print ("НАЙДЕНА СЕТЬ С ЛУЧШИМ СИГНАЛОМ: ("); Serial.print (networkSSID); Serial.print (") - СИГНАЛ: ("); Serial.print (StrengthSignal); Serial.println (")"); } задержка (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// интервал 5 секунд для выполнения нового сканирования delay (5000); }

"Если (абс (WiFi. RSSI (i))"

Обратите внимание, что в приведенном выше заявлении мы используем abs (), эта функция принимает абсолютное значение (т.е. не отрицательное) числа. В нашем случае мы сделали это, чтобы найти наименьшее из значений в сравнении, потому что интенсивность сигнала дается как отрицательное число, и чем ближе к нулю, тем лучше сигнал.

Шаг 10: файлы

Загрузите все мои файлы с: www.fernandok.com

Рекомендуемые: