Spisu treści:

Wprowadzenie do ESP32: 10 kroków
Wprowadzenie do ESP32: 10 kroków

Wideo: Wprowadzenie do ESP32: 10 kroków

Wideo: Wprowadzenie do ESP32: 10 kroków
Wideo: Kurs programowania w C i RTOS modułów SoC ESP8266 / ESP32 - wstęp. Historia i podział modułów ESP 2024, Lipiec
Anonim
Image
Image
Kluczowe cechy
Kluczowe cechy

W tym artykule porozmawiamy o ESP32, którego uważam za starszego brata ESP8266. Bardzo podoba mi się ten mikrokontroler, bo ma WiFi. Abyś miał pomysł, zanim ESP powstanie, jeśli potrzebujesz Arduino, aby mieć WiFi, musiałbyś wydać od 200 do 300 USD na zakup adaptera Wifi. Adapter do kabla sieciowego nie jest taki drogi, ale dla WiFi zawsze był i nadal jest drogi. Ale na szczęście firma Espressif Systems uruchomiła ESP i rozwiązuje nasze życie.

Podoba mi się ESP32 z tym formatem, który ma port USB. Ten schemat NodeMCU jest łatwy do manipulowania, ponieważ nie wymaga żadnej elektroniki. Wystarczy podłączyć kabel, zasilić urządzenie i je zaprogramować. Działa jak Arduino.

Tak czy inaczej, dzisiaj porozmawiamy o ogólnych aspektach ESP32 i jak skonfigurować Arduino IDE, aby zaprogramować więcej urządzeń tego typu. Stworzymy również program, który przeszukuje sieci i pokazuje, która z nich jest silniejsza.

Krok 1: Kluczowe cechy

Chip z wbudowanym WiFi: standard 802.11 B/G/N, działający w zakresie od 2,4 do 2,5 GHz

Tryby pracy: Klient, Punkt Dostępowy, Stacja + Punkt Dostępowy

Dwurdzeniowy mikroprocesor Tensilica Xtensa 32-bitowy LX6

Regulowany zegar od 80 MHz do 240 MHz

Napięcie robocze: 3,3 VDC

Ma SRAM 512 KB

Funkcje pamięci ROM 448 KB

Posiada zewnętrzną pamięć flash 32Mb (4 megabajty)

Maksymalny prąd na pin wynosi 12mA (zaleca się użycie 6mA)

Posiada 36 GPIO

GPIO z funkcjami PWM/I2C i SPI

Posiada Bluetooth v4.2 BR/EDR i BLE (Bluetooth Low Energy)

Krok 2: Porównanie między ESP32, ESP8266 i Arduino R3

Porównanie między ESP32, ESP8266 i Arduino R3
Porównanie między ESP32, ESP8266 i Arduino R3

Krok 3: Rodzaje ESP32

Rodzaje ESP32
Rodzaje ESP32

ESP32 urodził się z wieloma rodzeństwem. Dzisiaj używam pierwszego od lewej, Espressif, ale jest kilka marek i typów, w tym wbudowany wyświetlacz Oled. Jednak różnice dotyczą tego samego układu: Tensilica LX6, 2 Core.

Krok 4: Węzeł WiFiMCU-32S ESP-WROOM-32

Węzeł WiFiMCU-32S ESP-WROOM-32
Węzeł WiFiMCU-32S ESP-WROOM-32

To jest schemat ESP, którego używamy w naszym montażu. Jest to chip, który ma wiele uroku i mocy. Jest kilka pinów, które możesz wybrać, czy mają pracować jako cyfrowe analogowe, analogowe cyfrowe, czy nawet jeśli drzwi działają jako cyfrowe.

Krok 5: Konfiguracja Arduino IDE (Windows)

Konfiguracja Arduino IDE (Windows)
Konfiguracja Arduino IDE (Windows)
Konfiguracja Arduino IDE (Windows)
Konfiguracja Arduino IDE (Windows)

Oto jak skonfigurować Arduino IDE, abyśmy mogli skompilować dla ESP32:

1. Pobierz pliki poprzez link:

2. Rozpakuj plik i skopiuj zawartość do następującej ścieżki:

C: / Użytkownicy / [NAZWA_TWOJEGO_UŻYTKOWNIKA] / Dokumenty / Arduino / sprzęt / espressif / esp32

Uwaga: Jeśli nie ma katalogów „espressif” i „esp32”, po prostu utwórz je normalnie.

3. Otwórz katalog

C: / Użytkownicy / [NAZWA_TWOJEGO_UŻYTKOWNIKA] / Dokumenty / Arduino / sprzęt / espressif / esp32 / narzędzia

Uruchom plik "get.exe".

4. Po zakończeniu "get.exe" podłącz ESP32, poczekaj na zainstalowanie sterowników (lub zainstaluj ręcznie).

Gotowe, teraz po prostu wybierz płytę ESP32 w "narzędzia >> płyta" i skompiluj swój kod.

Krok 6: Skanowanie Wi-Fi

Oto przykład, jak szukać dostępnych sieci WiFi w pobliżu ESP-32, a także siłę sygnału każdej z nich. Przy każdym skanowaniu dowiemy się również, która sieć ma najlepszą siłę sygnału.

Krok 7: Kod

Najpierw dołączmy bibliotekę "WiFi.h", będzie to konieczne, aby umożliwić nam pracę z kartą sieciową naszego urządzenia.

#include "WiFi.h"

Oto dwie zmienne, które będą używane do przechowywania identyfikatora SSID sieci (nazwy) i siły sygnału.

String networkSSID = "";int siłaSignal = -9999;

Krok 8: Konfiguracja

W funkcji setup() zdefiniujemy tryb zachowania WiFi naszego urządzenia. W takim przypadku, ponieważ celem jest wyszukanie dostępnych sieci, skonfigurujemy nasze urządzenie do pracy jako „stacja”.

void setup(){ // Zainicjuj Serial, aby zalogować się do Serial Monitor Serial.begin(115200);

//konfiguracja trybu pracy WiFi jako stacji WiFi.mode(WIFI_STA);//WIFI_STA to stała wskazująca tryb stacji

// odłącz się od punktu dostępowego, jeśli jest już podłączony WiFi.disconnect(); opóźnienie (100);

// Serial.println("Konfiguracja zakończona");}

Krok 9: Pętla

W funkcji loop() wyszukamy dostępne sieci, a następnie wydrukujemy dziennik znalezionych sieci. Dla każdej z tych sieci dokonamy porównania, aby znaleźć tę o najwyższej sile sygnału.

void loop(){ // Serial.println("rozpoczęcie skanowania"); // wykonuje skanowanie dostępnych sieci

int n = WiFi.scanNetworks();

Serial.println("Wykonano skanowanie");

//sprawdź, czy znalazłeś jakąkolwiek sieć if (n == 0) { Serial.println("Nie znaleziono sieci"); } else { identyfikator SSID = ""; siłaSygnał= -9999; druk.seryjny(n); Serial.println(" znalezione sieci\n"); for (int i = 0; i < n; ++i) { //drukuj na monitorze szeregowym każdą ze znalezionych sieci Serial.print("SSID:"); Serial.println(WiFi. SSID(i)); //nazwa sieci (ssid) Serial.print("SYGNAŁ:"); Serial.print(WiFi. RSSI(i)); //siła sygnału Serial.print("\t\tCHANNEL: "); Serial.print((int)WiFi.channel(i)); Serial.print("\t\tMAC: "); Serial.print(WiFi. BSSIDstr(i)); Serial.println("\n\n"); if(abs(WiFi. RSSI(i)) < abs(siłySygnał)) { SiłaSygnału = WiFi. RSSI(i); SSID sieci = WiFi. SSID(i); Serial.print("SIEĆ Z NAJLEPSZYM ZNALEZIONYM SYGNAŁEM: ("); Serial.print(networkSSID); Serial.print() - SIGNAL: ("); Serial.print(silthSignal); Serial.println(")"); } opóźnienie(10); } } Serial.println("\n------------------------------------------------------- -------------------------------------------\n");

// interwał 5 sekund na wykonanie nowego opóźnienia skanowania(5000); }

„Jeśli (abs (WiFi. RSSI (i))”

Zauważ, że w powyższym zdaniu używamy abs(), ta funkcja przyjmuje wartość bezwzględną (tj. nie ujemną) liczby. W naszym przypadku zrobiliśmy to, aby znaleźć najmniejszą z wartości w porównaniu, ponieważ intensywność sygnału jest podawana jako liczba ujemna, a im bliżej zera, tym lepszy sygnał.

Krok 10: Pliki

Pobierz wszystkie moje pliki na: www.fernandok.com

Zalecana: