Inhoudsopgave:

Inleiding tot ESP32: 10 stappen
Inleiding tot ESP32: 10 stappen

Video: Inleiding tot ESP32: 10 stappen

Video: Inleiding tot ESP32: 10 stappen
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Juli-
Anonim
Image
Image
Belangrijkste kenmerken
Belangrijkste kenmerken

In dit artikel gaan we het hebben over ESP32, die ik beschouw als een oudere broer van ESP8266. Ik hou echt van deze microcontroller omdat hij wifi heeft. Zodat je een idee hebt, voordat ESP bestaat, als je een Arduino nodig hebt om wifi te hebben, zou je tussen $ 200 en $ 300 moeten uitgeven om een wifi-adapter te kopen. De adapter voor netwerkkabel is niet zo duur, maar voor wifi is het altijd al duur geweest en is het nog steeds duur. Maar gelukkig heeft Espressif Systems ESP gelanceerd en lost het ons leven op.

Ik hou van ESP32 met dit formaat dat een USB-poort heeft. Dit NodeMCU-schema is gemakkelijk te manipuleren omdat het geen elektronica nodig heeft. Sluit gewoon de kabel aan, zet het apparaat aan en programmeer het. Het werkt net als een Arduino.

Hoe dan ook, vandaag zullen we het hebben over de algemene aspecten van ESP32 en hoe de Arduino IDE te configureren om meer apparaten van dit type te programmeren. We zullen ook een programma maken dat de netwerken doorzoekt en laat zien welke krachtiger is.

Stap 1: Belangrijkste kenmerken

Chip met ingebouwde WiFi: standaard 802.11 B / G / N, werkend in het bereik van 2,4 tot 2,5 GHz

Bedrijfsmodi: Client, Access Point, Station + Access Point

Dual core microprocessor Tensilica Xtensa 32-bit LX6

Instelbare klok van 80 MHz tot 240 MHz

Bedrijfsspanning: 3,3 VDC

Het heeft SRAM van 512KB

Functies 448KB ROM

Het heeft een extern flash-geheugen van 32Mb (4 megabytes)

Maximale stroom per pin is 12mA (het wordt aanbevolen om 6mA te gebruiken)

Het heeft 36 GPIO's

GPIO's met PWM / I2C- en SPI-functies

Het heeft Bluetooth v4.2 BR / EDR en BLE (Bluetooth Low Energy)

Stap 2: Vergelijking tussen ESP32, ESP8266 en Arduino R3

Vergelijking tussen ESP32, ESP8266 en Arduino R3
Vergelijking tussen ESP32, ESP8266 en Arduino R3

Stap 3: Soorten ESP32

Soorten ESP32
Soorten ESP32

ESP32 werd geboren met veel broers en zussen. Vandaag gebruik ik de eerste van links, Espressif, maar er zijn verschillende merken en typen, waaronder een Oled-display ingebouwd. De verschillen zijn echter allemaal dezelfde chip: de Tensilica LX6, 2 Core.

Stap 4: WiFi NodeMCU-32S ESP-WROOM-32

WiFi NodeMCU-32S ESP-WROOM-32
WiFi NodeMCU-32S ESP-WROOM-32

Dit is het diagram van ESP dat we in onze assemblage gebruiken. Het is een chip die veel aantrekkingskracht en kracht heeft. Het zijn verschillende pinnen die u kiest of ze willen werken als digitaal analoog, analoog digitaal of zelfs als dat de deur als digitaal werkt.

Stap 5: Arduino IDE configureren (Windows)

Arduino IDE configureren (Windows)
Arduino IDE configureren (Windows)
Arduino IDE configureren (Windows)
Arduino IDE configureren (Windows)

Hier leest u hoe u de Arduino IDE configureert, zodat we kunnen compileren voor ESP32:

1. Download de bestanden via de link:

2. Pak het bestand uit en kopieer de inhoud naar het volgende pad:

C: / Gebruikers / [YOUR_USER_NAME] / Documenten / Arduino / hardware / espressif / esp32

Opmerking: als er geen map "espressif" en "esp32" is, maakt u ze gewoon normaal aan.

3. Open de map

C: / Gebruikers / [YOUR_USER_NAME] / Documenten / Arduino / hardware / espressif / esp32 / tools

Voer het bestand "get.exe" uit.

4. Nadat de "get.exe" is voltooid, sluit u de ESP32 aan en wacht u tot de stuurprogramma's zijn geïnstalleerd (of installeer handmatig).

Klaar, kies nu gewoon het ESP32-bord in "tools >> board" en compileer je code.

Stap 6: WiFi-scan

Hier is een voorbeeld van hoe u kunt zoeken naar beschikbare WiFi-netwerken in de buurt van de ESP-32, evenals de signaalsterkte van elk van hen. Bij elke scan komen we er ook achter welk netwerk de beste signaalsterkte heeft.

Stap 7: Coderen

Laten we eerst de bibliotheek "WiFi.h" opnemen, het zal nodig zijn om ons in staat te stellen met de netwerkkaart van ons apparaat te werken.

#include "WiFi.h"

Hier zijn twee variabelen die worden gebruikt om de SSID (naam) en signaalsterkte van het netwerk op te slaan.

String networkSSID = "";int strengthSignal = -9999;

Stap 8: Instellen

In de setup-functie () zullen we de WiFi-gedragsmodus van ons apparaat definiëren. In dit geval, aangezien het doel is om naar beschikbare netwerken te zoeken, zullen we ons apparaat configureren om als een "station" te werken.

void setup () { // Initialiseer Serial om in te loggen op Serial Monitor Serial.begin (115200);

// configureren van de werkingsmodus van WiFi als station WiFi.mode(WIFI_STA);//WIFI_STA is een constante die de stationsmodus aangeeft

// verbreek de verbinding met het toegangspunt als het al is verbonden WiFi.disconnect(); vertraging (100);

// Serial.println ("Setup klaar");}

Stap 9: Loop

In de loop ()-functie zoeken we naar de beschikbare netwerken en printen vervolgens het logboek in de gevonden netwerken. Voor elk van deze netwerken zullen we de vergelijking maken om het netwerk met de hoogste signaalsterkte te vinden.

void loop () { // Serial.println ("scan start"); // voert het scannen van beschikbare netwerken uit

int n = WiFi.scanNetworks();

Serial.println("Scan uitgevoerd");

// controleer of je een netwerk hebt gevonden if (n == 0) { Serial.println ("Geen netwerk gevonden"); } else { networkSSID = ""; sterkteSignaal= -9999; Serieafdruk(n); Serial.println(" netwerken gevonden\n"); for (int i = 0; i < n; ++i) { // print op seriële monitor elk van de gevonden netwerken Serial.print ("SSID: "); Serial.println(WiFi. SSID(i)); // netwerknaam (ssid) Serial.print ("SIGNAAL: "); Serial.print(WiFi. RSSI(i)); //signaalsterkte Serial.print ("\t\tCHANNEL: "); Serial.print((int)WiFi.channel(i)); Serial.print("\t\tMAC: "); Serial.print(WiFi. BSSIDstr(i)); Serieel.println("\n\n"); if(abs(WiFi. RSSI(i)) <abs(strengthSignal)) { strengthSignal = WiFi. RSSI(i); netwerkSSID = WiFi. SSID(i); Serial.print("NETWERK MET HET BESTE SIGNAAL GEVONDEN: ("); Serial.print(networkSSID); Serial.print(") - SIGNAL: ("); Serial.print(strengthSignal); Serial.println(")"); } vertraging(10); } } Serial.println("\n----------------------------------------- -------------------------------------------\N");

// interval van 5 seconden om een nieuwe scanvertraging uit te voeren (5000); }

"Als (abs (WiFi. RSSI (i))"

Merk op dat we in het bovenstaande statement abs () gebruiken, deze functie neemt de absolute waarde (dus niet negatief) van het getal. In ons geval hebben we dit gedaan om de kleinste van de waarden in de vergelijking te vinden, omdat de signaalintensiteit wordt gegeven als een negatief getal en hoe dichter bij nul, hoe beter het signaal.

Stap 10: Bestanden

Download al mijn bestanden in: www.fernandok.com

Aanbevolen: