Comunicația SPI între două plăci ESP32 – trimiterea valorii unui potențiometru
Scopul proiectului
Scopul acestui proiect este de a trimite valoare unui potențiometru prin intermediul interfeței de comunicație SPI între două plăci ESP32.
Descriere
- Proiectul utilizează două plăci ESP32, una configurată ca master și cealaltă ca slave, pentru a permite comunicarea între ele prin intermediul interfeței SPI (Serial Peripheral Interface).
- Pe placa master, un potențiometru este conectat la pinul D34. Acest potențiometru este utilizat pentru a regla o valoare analogică (de exemplu, tensiunea) care va fi trimisă plăcii slave prin SPI.
- Placa slave primește valoarea de la placa master prin SPI și o interpretează ca o valoare analogică relevantă pentru aplicație (de exemplu, în cazul programului va aprinde LED-ul pentru testare).
- Datele trimise și primite între cele două plăci ESP32 pot fi utilizate pentru a controla sau monitoriza o aplicație specifică, cum ar fi un robot, o platformă de automatizare sau un sistem de feedback.
Funcționalitatea
- Placa master citește valoarea potențiometrului la pinul analogic D34 și o trimite plăcii slave prin intermediul SPI.
- Placa slave primește valoarea și o interpretează în funcție de necesitățile aplicației.
- Datele pot fi folosite pentru a controla sau monitoriza dispozitive sau procese în funcție de distanță sau poziționare.
ESP32
Plăcile ESP32 sunt platforme de dezvoltare hardware bazate pe cipuri ESP32, care sunt microcontrolere cu WiFi și Bluetooth integrate produse de Espressif Systems. Aceste plăci oferă o serie de caracteristici cheie care le fac foarte populare în dezvoltarea de proiecte IoT (Internet of Things) și în alte aplicații integrate. Iată câteva dintre caracteristicile principale ale unei plăci ESP32:
- Procesor puternic: ESP32 este echipat cu un procesor dual-core Xtensa LX6, care rulează la frecvențe de până la 240 MHz. Aceasta oferă o putere de calcul semnificativă pentru gestionarea unor sarcini complexe.
- WiFi integrat: ESP32 vine cu un modul WiFi 802.11 b/g/n incorporat, care permite conectarea la rețelele WiFi. Acest lucru deschide posibilități pentru conectivitatea la internet și comunicarea cu alte dispozitive și servicii online.
- Bluetooth Low Energy (BLE): ESP32 suportă Bluetooth Classic și Bluetooth Low Energy (BLE). Acest lucru permite comunicarea cu dispozitivele Bluetooth, precum și crearea de aplicații IoT cu consum redus de energie.
- Conectivitate duală: ESP32 poate funcționa simultan pe WiFi și Bluetooth, ceea ce face posibilă dezvoltarea de aplicații care implică atât comunicația locală cât și cea pe internet.
- GPIO (General-Purpose Input/Output) versatil: ESP32 dispune de o serie de pini GPIO care pot fi configurați pentru diferite funcții, cum ar fi citirea și scrierea semnalelor digitale, comunicarea serială, PWM (modularea lățimii pulsului), etc.
- Interfață serială (UART, SPI, I2C): ESP32 oferă multiple porturi UART, SPI și I2C, permițând comunicarea cu o varietate de dispozitive și senzori.
- Memorie generoasă: ESP32 are o memorie flash integrată pentru stocarea programelor și a datelor. Există, de asemenea, o memorie RAM suficientă pentru a gestiona sarcinile și datele în timpul execuției.
- Securitate îmbunătățită: ESP32 oferă funcționalități de securitate îmbunătățite, inclusiv suport pentru SSL/TLS pentru comunicarea securizată și opțiuni de criptare a datelor.
- Capabilități de sleep și consum redus de energie: ESP32 are moduri de somn eficiente care permit reducerea consumului de energie, ceea ce îl face potrivit pentru aplicații alimentate cu baterii.
- Suport pentru dezvoltarea de software: Există o varietate de medii de dezvoltare software pentru ESP32, inclusiv Arduino IDE, PlatformIO, și ESP-IDF (ESP32 IoT Development Framework) dezvoltat de Espressif Systems.
- Ecosistem vast de biblioteci și comunitate activă: Datorită popularității sale, ESP32 beneficiază de o comunitate activă de dezvoltatori, care a creat o serie de biblioteci și resurse disponibile pentru a facilita dezvoltarea de proiecte.
- Preț accesibil: ESP32 este o platformă de dezvoltare relativ accesibilă, ceea ce o face atractivă pentru proiecte de buget sau pentru prototipuri.
Aceste caracteristici fac din plăcile ESP32 o opțiune populară pentru dezvoltatorii care doresc să creeze aplicații IoT și proiecte integrate, datorită capacității lor de a oferi conectivitate, putere de calcul și versatilitate la un cost rezonabil.
Potențiometrul
Un
potențiometru este un dispozitiv electronic pasiv utilizat pentru a
regla nivelul unei tensiuni sau a unei rezistențe într-un circuit
electric. Acesta funcționează pe baza principiului variației rezistenței
electrice atunci când un contact mișcător este deplasat pe o suprafață
rezistivă. Iată cum funcționează un potențiometru:
- Construcția potențiometrului:
- Un potențiometru constă în mod obișnuit dintr-un corp cilindric sau
rectangular din material izolator (cum ar fi plasticul sau ceramica) cu o
suprafață exterioară sau un element rezistiv. - Pe suprafața
exterioară a potențiometrului este aplicat un strat subțire de material
rezistiv, cum ar fi carbon, nichrom sau alte materiale rezistive. - Între
acest strat rezistiv și un contact mișcător (adesea sub formă de
“sârmă” sau “cursor”) există un punct de contact care poate fi deplasat
în sus sau în jos pe suprafața rezistivă.
- Un potențiometru constă în mod obișnuit dintr-un corp cilindric sau
- Varierea rezistenței:
- Mutația
cursorului de-a lungul suprafeței rezistive modifică lungimea totală a
rezistorului utilizat în circuitul asociat potențiometrului. - Cu
cât cursorul este mai aproape de un capăt al rezistivului, cu atât
rezistența dintre cursor și acel capăt este mai mică, iar cu cât este
mai aproape de celălalt capăt, cu atât rezistența este mai mare. - Prin urmare, mișcarea cursorului modifică valoarea rezistenței efective între cele două capete ai potențiometrului.
- Mutația
- Utilizări:
- Potențiometrele
sunt folosite pentru a controla și ajusta o varietate de parametrii
într-un circuit electric, cum ar fi volumul unui difuzor, luminozitatea
unui ecran sau temperatura unui termostat. - Ele sunt folosite în multe aplicații în care trebuie să se facă ajustări manuale ale nivelurilor de tensiune sau curent.
- Potențiometrele
- Tipuri de potențiometre:
- Există
două tipuri principale de potențiometre: potențiometre rotative (de
tipul “knob”) și potențiometre liniare (de tipul “slide”). - Potențiometrele
pot fi simple sau pot avea mai multe benzi (de obicei, trei) pentru a
oferi multiple căi de acces la variabilele de control.
- Există
- Conexiuni:
- Potențiometrele
pot fi conectate într-o varietate de moduri în circuitele electrice, în
funcție de modul în care trebuie să influențeze circuitul. Cele mai
comune conexiuni includ utilizarea a trei terminale: unul pentru
terminalul de intrare, unul pentru terminalul de ieșire și unul pentru
terminalul cursorului.
- Potențiometrele
În esență, potențiometrul
este un instrument simplu, dar eficient, care oferă o modalitate de a
regla sau controla nivelurile de tensiune sau rezistență într-un circuit
electric prin ajustarea poziției unui cursor pe o suprafață rezistivă.
Conectarea
Conectare pinilor SPI între cele două module ESP32. Conexiunile tipice includ:
- MOSI (Master Out Slave In) de la un ESP32 la pinul MOSI al celuilalt ESP32.
- MISO (Master In Slave Out) de la un ESP32 la pinul MISO al celuilalt ESP32.
- SCK (Serial Clock) de la un ESP32 la pinul SCK al celuilalt ESP32.
- SS/CS (Slave Select/Chip Select) – Aceasta este linia de selectare a slave-ului. Puteți folosi oricare dintre pinii disponibili, dar asigurați-vă ca setați pinii corect in codul dvs.
- D23 de la ESP32 se conectează la borna din mijloc a potențiometrului.
- Borna 1 a potențiometrului se conectează la 5V iar borna 3 la GND
Componente
- Placa ESP32, Elektroweb, WiFi + Bluetooth, 5 V
- Aliexpress ESP-32S ESP-WROOM-32 ESP32 WIFI Dual Core CPU Development Board 802.11b/g Wi Fi BT Module Ultra-Low Power Consumption
- Potentiometru rotativ liniar de 10k Ohm cu buton, Elektroweb, Multicolor
- Aliexpress – Potentiometer Kit 1K 2K 5K 10K 20K 50K 100K 250K 500K 1M 15mm Linear Taper Rotary Potentiometer Set 3Pin With Knob Cap
- Set de 40 de cabluri mama, Elektroweb, 30 cm
- Aliexpress 40Pin Jumper Wire Pins Male to Male Female to Female Cable Kit DIY Electron Line 2.54mm for PCB Arduino 10cm 21cm 30cm 40cm
Schema electronică/sistem
Cod de test
Master
Slave
Rezultat
Documentație proiect
- https://microcontrollerslab.com/esp32-spi-communication-tutorial-arduino/
- https://randomnerdtutorials.com/esp32-spi-communication-arduino/
Afiliere eMag:
Linkurile de la secțiunea “Componente” conțin adresa mea de afiliere la eMag.ro, iar dacă cumperi folosind aceste linkuri vei susține blogul meu. Mulțumesc!
eMag Genius:
Hai și tu în Genius! Abonează-te la Genius 12 luni și primești beneficii premium și 20 lei card cadou eMAG. Profită acum! eMag Genius
Mulțumesc pentru atenție!
Pentru întrebări și/sau consultanță tehnică vă stau la dispozitie pe blog mai jos în secțiunea de comentarii sau pe email simedruflorin@automatic-house.ro.
O zi plăcută tuturor !