ESP32 C3 super mini

Na het mislukken van mijn experiment met Wemos en het treintje (N-spoor deel 14) ben ik op zoek gegaan naar alternatieven. Zo stuitte ik op de ESP32 C3 super mini! Een RISC-V bordje op 160MHz, met o.a. WiFi en Bluetooth LE, inclusief een USB-C aansluiting. Bij Ali een viertal modules besteld (ca. €3,- per stuk incl. verzendkosten).

De ESP32 C3 super mini met afmetingen
De pin-out met functies

De module is via de Arduino-IDE te programmeren en al duurt het compileren behoorlijk lang, het lukt prima. Kies in de IDE het “LOLIN C3 Mini” board. Om de ESP in programmeermodus te krijgen moet je de BOOT-knop indrukken en ingedrukt houden, daarna de RESET-knop indrukken en weer loslaten, en dan de BOOT-knop loslaten.

Bluetooth leek me een goede kandidaat voor de aansturing vanuit de computer naar de loc. Maar … dat BLE is zo eenvoudig nog niet. Ik heb in het verleden wel wat gedaan Bluetooth Classic en dat kan bijvoorbeeld met HC-05 en HC-06 modules; dat ging prima. Maar met die modules wordt het hele Bluetooth-verhaal door de modules zelf opgezet en uitgevoerd. Je sluit een Arduino aan en hoeft alleen de gegevens over de seriële koppeling (“Serial.print” over Tx en Rx) naar de module te sturen. En dat werkt prima. Het enige probleem is dat het dus samen relatief groot is: twee modules met de benodigde aansluitingen en dat wilde ik nou juist niet.

De ESP32’s zijn daarentegen uitermate klein, namelijk ca. 22 x 18 mm en daarmee zelfs de helft van een Wemos D1! Maar om ze aan de praat te krijgen moet je dus dat hele Bluetooth-verhaal door en omdat zij niet werken met Bluetooth Classic, maar met Bluetooth LE (Low Energy) is het een stuk ingewikkelder! Een enorme zoektocht over het internet, maar een eenvoudig voorbeeld kan ik zo een-twee-drie niet vinden.

Wat moet er gebeuren? De opdrachten voor de loc’s worden vanaf de pc over Bluetooth verzonden via de BLE module in de pc. De ESP32 in de loc ontvangt die opdrachten via Bluetooth en voert de opdrachten uit. Dat ziet er als volgt uit.

De ESP moet als server ingericht worden, de pc kant als client. Er zijn veel voorbeelden te vinden om dit op te zetten, maar wanneer ik specifiek probeer uit te vinden hoe er data vanuit de pc, via Python, verzonden moet worden en vervolgens in de ESP32, via Arduino C, ontvangen en verwerkt moet worden …

Voor Arduino bestaat er een Bluetooth library: “ESP32 BLE Arduino” met de benodigde voorbeelden. Een server .ino is zonder problemen naar de ESP gestuurd (selecteer als board de “LOLIN C3 Mini”). Maar het voorbeeld laat niet zien hoe je gegevens vanuit een client (de pc) op de server (de ESP) kunt ontvangen!

Op de pc moet ik daarvoor bijvoorbeeld een Pythonprogramma zover krijgen via Bluetooth de opdrachten te versturen. Hiervoor heb ik de, blijkbaar standaard, de “bleak” library geïnstalleerd. Hiervan vind ik bitter weinig voorbeelden, en t.n.t. geen tutorial die me verder kan helpen. Dat schiet ook al niet op.
Hoe nu verder?

Ik heb nog een andere mogelijkheid gevonden. Een paar jaar geleden ben ik bezig geweest met App Inventor 2. Hiermee is het relatief eenvoudig om een app voor op de smartphone of tablet te maken. Voor het werk heb ik destijds een app gemaakt die een een HEX-nummer omvormt.
Met een soort LEGO-blokjes stel je het programma samen.

Besturing van de locomotiefjes gebeurt dan bijvoorbeeld vanaf de smartphone, vanuit de app (en via Bluetooth) en niet vanaf de pc. Dat kan dus ook …. misschien. Ik heb een voorbeeld gevonden: nu nog testen of het werkt!

Ook hier blijft de zaak steken! Een aantal pogingen mislukt omdat er een probleem ontstaat met de rechten onder Android. Wanneer ik dat probleem omzeild heb lukt het “builden” van de app niet!

Helaas.

Maar weer terug naar WiFi? Met deze ESP32-C3? Zie hiervoor N-spoor – deel 26 – ESP32 C3.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie gegevens worden verwerkt.