Waarde mede-CO-ers,
In dit topic dacht ik wat verslag te doen van hoe ik met bluetooth aan het prutsen ben, ter lering ende vermaak en ook in de hoop dat u allen af en toe een duwtje de goeie kant op geeft en dat dat weer kan leiden tot lering en vermaak bij mijzelf anderen die met hetzelfde (of vergelijkbaar) bijltje willen hakken.
Bluetooth
Bluetooth lijkt me iets dat niet meer te bitbangen valt en sowiso met een-of-andere library moet. En waarbij je sowiso van fabrikantspecifieke hardware afhankelijk bent. Verder zijn zoekmachines een beetje stuk en krijg ik van alles over een Noorse koning, maar deze tutorial van sparkfun vond ik een aardig overzicht geven (de tekst, niet zo zeer het filmpje): https://learn.sparkfun.com/tutorials/bluetooth-basics/all
Ik wil gewoon een-of-ander hello-world iets. Een seriële terminal over bluetooth lijkt me wel aardig, dat ik met een terminalprogramma op de computer kan verbinden met een MCU en dan 'Hello World' zie.
Later lijkt het me ook leuk eventueel iets met bluetooth audio te doen, een mcu waar je bluetooth koptelefoon mee kan pairen en dat je dan een 1 kHz sinus hoort. Niet nuttig, maar lijkt me een aardige hello world.
MCU: ESP-32 Wrover
Als hardware ga ik een ESP-32 gebruiken, omdat ik die heb liggen (ooit een bordje gekregen met een ESP32-Wrover, druktoetsjes en een RGB-LED, en TTL-serial interface)
Ontwikkelomgeving: ESP-IDF op PlatformIO op VScode op Debian
Als ontwikkelomgeving wil ik PlatformIO gebruiken (dat ook nieuw is voor me). PlatformIO dan als extensie op Microsoft Visual Studio (VScode). En als extentie op platformio dan weer ESP-EDF als ontwikkelframework voor de ESP-32. (het wordt een hele ui aan softwarelagen. Maar platformIO is vast ook handig als ik eens wat met een RP2040 wil gaan doen, en het kan ook PIC en AVR en ... - het lijkt me dus handig/leuk daar eens wat mee te doen. Als ik het in kleinere stapjes wil knippen zou ik zelfs nog eerst iets met een AVR in platformio kunnen doen)
VScode draait prima op mijn mac, Platformio ook. ESP-IDF vereist echter dependencies via brew en brew vind mijn macOS te oud. Dus om niet teveel te yakshaven heb ik het nu op mijn Linux (debian) laptop geinstalleerd. Meelezers kunnen op Mac/Linux en windows meelezen, Vscode en PlatformIO zijn platformonafhankelijk.
Stap één is dus VScode te installeren, dan binnen VScode Platformio, en als PlatformIO binnen is, dan ESP-IDF. ESP-EDF heeft ook onder debian wat dependencies nodig: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-starte…. En in aanvulling op wat daar genoemd wordt, python3-pip (sudo apt-get install python3-pip)
Dan binnen Platformio een example project starten, gebaseerd op een wrover-board. Daarna dacht ik eens wat bluetooth examples te gaan bekijken en te kijken of die willen compilen en eventueel runnen op het bordje dat ik heb. En daarna eens eigen software proberen te schrijven.
Goed. Bovenstaande zal wel enigszins ongestructureerd opgeschreven zijn, maar u allen kunt daar wel tegen. Shoot@it zou blackdog zeggen. (maar wel een beetje liev graag )
Alle linkjes nog eens op een overzichtelijk rijtje
(ik ben van plan de startpost af en toe te editten en toe te voegen wat jullie aandragen en wat ik zelf tegenkomen)
Bluetooth
Overzichtje/starter: https://learn.sparkfun.com/tutorials/bluetooth-basics/all
Bluetooth architectuur in een ESP32:
https://www.espressif.com/sites/default/files/documentation/esp32_blue…
ESP-IDF:
dependencies: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-starte… (De rest van de installatie gaat via VScode, maar dingen als ninja en Cmake en python enzo moeten er eerst zijn.)
API reference: https://docs.espressif.com/projects/esp-idf/en/v5.0.1/esp32/api-refere…
Examples op github: https://github.com/espressif/esp-idf/tree/master/examples/bluetooth
Example projecten bekijken of gebruiken als startpunt:
https://github.com/espressif/vscode-esp-idf-extension/blob/4c3336bea97…
(Want via pio home lijkt niet te werken?)
PlatformIO, VScode, etc:
Hier visual studio downloaden:https://code.visualstudio.com/
Dan in Visual studio de plaformIO extensie installeren: https://docs.platformio.org/en/latest//integration/ide/vscode.html#ins…
Dan de ESP-IDF extentie installeren: https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs…