Eindopstelling: ESP32

In dit hoofdstuk wordt de eindopstelling van het onderzoek besproken, waarbij gebruik wordt gemaakt van de ESP32-microcontroller en Platform IO-ontwikkelingsplatform.

We hebben beslist om hiermee verder te werken omdat de Arduino Nano 33 BLE enkel en alleen via Bluetooth verbinding kon maken. Normaal gezien is dit geen probleem, maar omdat we data willen verzamelen en in een Docker-omgeving willen steken om verdere analyse uit te voeren hebben we een microcontroller nodig die verbinding kan maken met het internet.

ESP32

De ESP32 is een veelzijdige microcontroller die veel wordt gebruikt voor IoT-toepassingen vanwege zijn ingebouwde Wi-Fi-functionaliteit waardoor het geschikt is voor het verzamelen en verzenden van sensordata naar een externe server. Verder biedt het ook Bluetooth-connectiviteit aan zodanig dat we naar de toekomst toe weer volledig lokaal kunnen werken. Naar programmatie toe is de ESP32 ook een stuk flexibeler dan de Arduino Nano 33 BLE.

Structuur opstelling

De eindopstelling bestaat uit de ESP32-microcontroller, de sensoren, en de vereiste bedrading. De sensoren worden verbonden met de juiste pinnen op de ESP32, zodat de microcontroller de sensordata kan lezen. Daarnaast is de ESP32 verbonden met het Wi-Fi-netwerk via de ingebouwde Wi-Fi-module.

Platform IO

Platform IO is een open-source ontwikkelingsplatform dat is ontworpen om het ontwikkelen, bouwen en uploaden van code naar verschillende microcontrollers eenvoudiger te maken. Het biedt een geïntegreerde ontwikkelomgeving (IDE) met ondersteuning voor meerdere platforms, waaronder de ESP32. Doordat dit als een extensie in Visual Studio Code werkt, kan er gebruik gemaakt worden van de vele features die VSCode, zoals ext completion, overzicht van bestanden en Github Copilot.

Voor de ESP32 kunnen we ook gebruik maken van het officiële ESP-IDF framework, wat in principe beter is voor een product. Maar om de overstap van Arduino naar ESP32 zo vlot mogelijk te laten verlopen werd er gebruik gemaakt van het Arduino-framework.

Wifi Provisioning

Voor het opzetten van de wifi-connectiviteit op de ESP32 is configuratie vereist. Dit omvat het instellen van de SSID en het wachtwoord van het draadloze netwerk waarmee de ESP32 verbinding moet maken. Omdat we werken met een apparaat dat overal gebruikt moet kunnen worden zal er wifi provisioning moeten voorzien worden zodat de gebruiker thuis zelf de wifi kan instellen. Hiervoor werd de ESPAsync_WifiManageropen in new window library gebruikt.

Wifi instellen

  1. Sluit de ESP aan op een voedingsbron met behulp van een USB-kabel, zoals een powerbank of een laptop.
  2. Stel de wifi in door twee keer snel op de resetknop te drukken. Deze knop bevindt zich aan de rechterkant wanneer het USB-poort aan de onderkant zit. Als dit correct wordt gedaan, gaat er een LED-lampje branden om aan te geven dat de ESP zich in de configuratiemodus bevindt.
  3. Zorg ervoor dat je de naam en het wachtwoord van je wifi-netwerk kent voordat je de wifi gaat instellen. Ga naar de wifi-instellingen van je mobiele telefoon en zoek naar een wifinetwerk met de naam "CONFIGURE BIOSENSOR" en het wachtwoord "configure". Als er geen webportaal wordt geopend, open dan een webbrowser zoals Safari en ga naar het adres 192.168.4.1. Hiermee kom je op een webpagina op de ESP waar je de wifi kunt configureren.
  4. Op de configuratiepagina kun je de naam en het wachtwoord van je wifi-netwerk invoeren. Als je van plan bent het systeem bijvoorbeeld buitenshuis te gebruiken, kun je ook het tweede veld SSID1 voor de naam en het wachtwoord van de mobiele hotspot van je telefoon invullen. De overige instellingen zoals AIO en IP mag met rust laten.
  5. Nadat je alle wifi-instellingen hebt ingevoerd, scrol je helemaal naar beneden op de pagina en klik je op "Save" (Opslaan). Het LED-lampje gaat uit en de ESP zal verbinding maken met jouw wifi-netwerk.
  6. Nadat de configuratie is voltooid, zal het systeem automatisch verbinding proberen te maken met een van de twee geconfigureerde wifi-netwerken totdat er verbinding is gemaakt. Je kunt ook opnieuw twee keer op de resetknop drukken om het systeem opnieuw in de configuratiemodus te zetten.

Sensordata opmeten

Net zoals bij de vorige opstelling zal de codeopen in new window afkomstig van het Arduino Forum opnieuw gebruikt worden.

Data versturen met MQTT

Als de ESP32 een actieve internetverbinding heeft zal deze onmiddelijk verbinding maken met een MQTT server en de opgemeten waarden in real-time versturen.

Broncode

De broncode is terug te vinden op Github.

Conclusie

In dit hoofdstuk hebben we de eindopstelling van het onderzoek besproken, waarbij gebruik wordt gemaakt van de ESP32-microcontroller en het Platform IO-platform. We hebben de functionaliteiten van de ESP32 en Platform IO toegelicht en de configuratie van de Wi-Fi-connectiviteit besproken. Daarnaast hebben we de benodigde softwarecomponenten en de structuur van de opstelling beschreven. Tot slot hebben we een voorbeeld gegeven van broncode die kan worden gebruikt om de functionaliteit van de eindopstelling te illustreren.