blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
Programátor
deadawp



ESP-IDF v simulátore Wokwi - ESP32
pridal deadawp 26.9. 2022 o 14:34



Simulátor Wokwi som v predchádzajúcom článku opísal. Nespomenul som však možnosť premenovania Arduino Core .ino projektu na príponu .c, čo umožní využitie paradigmy frameworku ESP-IDF a jeho použitie, i keď s určitými rezervami, ktoré tu spomeniem. Rozhodol som sa do simulátora Wokwi integrovať pre používateľov jednoduché príklady na pripojenie k WiFi sieti a pre senzorový uzol, ktorý funguje v režime webclienta a odosiela dáta na vzdialené webové rozhranie (PHP backend).

Všetky vstavané príklady vo frameworku ESP-IDF, ktoré využívajú WiFi obsahujú integrované menu v Menuconfigu, ktoré slúži pre konfiguráciu WiFi adaptéra t.j. SSID a heslo WiFi siete, prípadne navolenie prenosovej technológie na PHY / SPI Ethernet. Menuconfig však v simulátore Wokwi nie je dostupný a taktiež ani súbor Kconfig (pre definíciu WiFi menu), či sdkconfig, ktorý obsahuje zadané SSID a heslo WiFi siete z konfiguračného menu.

Z toho dôvodu som musel spojiť niekoľko starších príkladov frameworku ESP-IDF, ktoré umožnili nastavenie SSID a hesla WiFi siete priamo do programovej implementácie. Funkcie, ktoré slúžia na pripojenie k WiFi sieti sú iné, nakoľko tu nie je možné využiť komponenty napr. protocols_common, ani automatizovanú funkciu example_connect(), ktorá berie údaje o SSID a hesle priamo zo súboru sdkconfig.

Simulátor Wokwi má integrovanú otvorenú WiFi sieť Wokwi-GUEST bez hesla pre používateľov bez klubu. Používatelia klubu (predplatitelia) služby majú k dispozícii aj uzavretú WiFi sieť štandardu WPA/WPA2-PSK, ku ktorej je možné pripojiť sa s identickým zdrojovým kódom po nastavení SSID a hesla. Otvorená WiFi sieť využíva prázdny string pre makro hesla. Do zdrojového kódu som pridal aj výpis aktuálnej verzie frameworku ESP-IDF. Po spustení simulácie sa mikrokontróler ESP32 úspešne pripojil k WiFi sieti Wokwi-GUEST, z DHCP služby bola mikrokontroléru priradená privátna adresa 10.0.0.2. Hlavný vývojár simulátora Wokwi môj program zaradil na požiadanie medzi ukážkové implementácie pre príklady frameworku ESP-IDF.

Doteraz sa v službe príklad ESP-IDF s využitím WiFi nevytvoril a nebol dostupný. Dostupné implementácie boli výhradne na ovládanie GPIO pre výstup, vstup, Blink s využitím FreeRTOS, či binárne LED počítadlo. Program pre WiFi pripojenie je dostupný v simulátore Wokwi: 
https://wokwi.com/projects/343629632022512211

Zaujímalo ma, či bude pod ESP-IDF fungovať validne aj operačný systém reálneho času FreeRTOS a taktiež aj Queue pre inter-task komunikáciu. Program bolo veľmi jednoduché integrovať, nakoľko som mal k dispozícii už existujúci program pre senzorový uzol, ktorý štandardne používam. Uzol je tvorený mikrokontrolérom ESP32, ultrazvukovým senzorom vzdialenosti JSN-SR04T, prípadne HC-SR04 (dostupný vo Wokwi). V pravidelných intervaloch (raz za 5 minút) sa vykoná 10 priemerovaných meraní ultrazvukovým senzorom. Následne sa výsledná hodnota odošle na webserver, kde je zapísaná do MySQL databázy a vizualizovaná používateľovi v dashboarde.

Program fungoval bez problému vrátane WiFi pripojenia. Queue fungovala taktiež bez problému, HTTP task sa spúšťal po nameraní dát (tak ako mal). Bohužiaľ rovnako ako v prípade Arduino Core implementácií, ani tu nefungoval HTTP / HTTPS POST request. Po prepísaní programu na metódu GET sa request podarilo zrealizovať a webserver zapísal dáta do MySQL databázy. Obe programové implementácie by mali fungovať aj pod novšími ESP32 modulmi ESP32-S2, ESP32-S3, prípadne ESP32-C3. Testované boli programové implementácie pod ESP32 Devkit V1, čo je modul ESP32-WROOM-32. 

Po spustení simulácie bolo možné ovládať vzdialenosť predmetu od senzora pre voliteľné meranie vzdialenosti. Program pre senzorový uzol je taktiež dostupný v simulátore Wokwi verejne: 
https://wokwi.com/projects/343630893376602707

Ukážkové dáta senzorový uzol posiela na testovacie webové rozhranie projektu Hladinomer: 
http://arduino.clanweb.eu/studna_s_prekladom/

Nevýhody ESP-IDF implementácii v prostredí simulátora Wokwi:
Nakoľko v simulátore absentuje použitie konfiguračného menu - menuconfig, stáva sa programovanie zložitejšie, nakoľko sa neskompilujú ani základné programy a je ich nutné pretvárať, keďže takmer všetky využívajú špecifické menu s ktorým už program pracuje. Taktiež nie je možné využiť nástroje pre prácu s flash pamäťou (esptool.py), kryptografické nástroje (espsecure.py) a pre prácu s eFuses (espefuse.py). Z dôvodu absencie menuconfigu nie je možné vyskúšať ani systémové funkcionality typu Secure Boot V1, resp. V2 u novších verzií ESP32 a taktiež ani Flash Encryption.



Prístupov 5816
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
Oplatí sa teplovodivá pasta z Aliexpress...
[ 4.4.2024] (príspevkov 0)
Recenzia 3D podznačky BEZ KOMPRESE
[ 4.4.2024] (príspevkov 0)
GTA IV fix spustenia na Windowse 10 N
[ 24.3.2024] (príspevkov 0)
RFID DOMINATOR licencia na predaj
[ 4.1.2024] (príspevkov 0)
ATtiny85 Digispark - programovanie, použ...
[ 28.12.2023] (príspevkov 0)
Prečo by som si už nekúpil ESPD-35 2.0 /...
[ 26.12.2023] (príspevkov 0)
ATtiny85 - programovanie Arduino as ISP
[ 19.12.2023] (príspevkov 0)
MasterTherm - webscraper ESP32
[ 25.11.2023] (príspevkov 0)
RFID DOMINATOR 2.0 - rozdiely s 1.0
[ 15.11.2023] (príspevkov 0)
Rozšírená realita (AR) - IoT dashboard
[ 29.10.2023] (príspevkov 0)