Het gebruik van Arduino_Secrets.h voor veilige credentials

Wanneer je met Arduino-projecten werkt, heb je vaak te maken met vertrouwelijke gegevens zoals WiFi-netwerknamen, wachtwoorden of MQTT-inloggegevens. Het is belangrijk om te voorkomen dat deze gegevens per ongeluk online gedeeld worden, bijvoorbeeld wanneer je je code publiceert op GitHub of deelt met anderen.

Om dit probleem te voorkomen, maak ik in mijn projecten gebruik van een apart bestand met de naam Arduino_Secrets.h.
In dit bestand staan alle gevoelige gegevens zoals WiFi- en MQTT-credentials opgeslagen. De hoofdcode verwijst naar deze waarden, maar bevat ze zelf niet. Hierdoor kan ik mijn Arduino-code veilig delen, zonder het risico dat mijn persoonlijke gegevens zichtbaar worden.

Een bijkomend voordeel is dat ik deze bibliotheek in meerdere projecten kan hergebruiken. Als ik ooit mijn wachtwoord of MQTT-configuratie wijzig, hoef ik dat slechts op één plek aan te passen.

In mijn Arduino_Secrets.h bestand zie je dat ik twee regels heb voor mijn MQTT server, één met de naam, de andere met het IP adres. Mijn Home Assistant server, die tevens MQTT broker is, heeft een vast IP adres waardoor ik zonder problemen kan verwijzen naar het IP adres. Verder heb ik vaak meerdere Home Assistant servers draaien, zeker op het moment dat ik video's maak om op die manier de video's vanuit een lege Home Assistant op kan nemen. Deze tijdelijke servers hebben vaak de standaard naam (en het kan dus gebeuren dat ik twee apparaten met dezelfde naam in mijn netwerk heb).
Hieronder zie je een voorbeeld van hoe mijn Arduino_Secrets.h bestand is opgebouwd:

Arduino logo

Neem deze code gerust over, pas aan naar eigen behoefte en gebruik in projecten. Mocht je deze code gebruiken als basis voor code die openbaar gepubliceerd wordt, vergeet dan niet een vermelding of link naar deze site te maken.
Kijk ook even naar de Disclaimer


// Use this file to store all of the private credentials 
// and connection details

#define YourSSID "[mijn WiFi netwerk naam]"
#define YourWiFiPassWord "[mijn WiFi wachtwoord]"
// #define YourMQTTserver "homeassistant.local"     // Home Assistant als naam
#define YourMQTTserver "192.168.10.113"               // IP adres van mijn Home Assistant
#define YourMQTTuser "[de MQTT gebruikersnaam]"
#define YourMQTTpassword "[het MQTT wachtwoord]"
#define OTAPassword "[Het wachtwoord voor OTA]"