We hebben infrarood-vloerverwarming geïnstalleerd. De verwarming is, bij gebrek aan themostaat, nog niet aangesloten. Vanaf het begin was mijn idee om een Arduino of vergelijkbaar te gebruiken om zelf een thermostaat te bouwen. Het was niet alleen goedkoper en flexibeler, maar ook een uitstekende reden om met Arduino aan de slag te gaan.
De onderdelen zijn ondertussen aangekomen:
- ESP32, het brein van elke thermostaat
- Relais, voor het daadwerkelijke aan/uitschakelen van de verwarmingsfilm
- 10k NTC’s liggen al onder de vloer, samen met de film zelf
De afzonderlijke functies die ik nodig heb/wil integreren zijn makkelijk online te vinden, en het samenvoegen ervan ging aanvankelijk best vlot. Het resultaat was bijna wat ik nodig had, enkel de sensor voor omgevingstemperatuur en het instellen van een variabele doeltemperatuur ontbraken. En alles werkte in de verkeerde volgorde. Welke functies allemaal, en wat ging er mis in de eerste iteratie?
- Temperatuur meten
- Thermostaat instellen
- Aan de ene kant de omgevingstemperatuur: de gewenste temperatuur in de kamer
- Aan de andere kant de vloertemperatuur: de vloer mag niet warmer dan 29 graden Celsius worden
- Relays aan- of uitschakelen afhankelijk van de gemeten temperatuur en de instelling van de thermostaat
- Toegankelijk via WiFi op het interne domotica-netwerk
Zoals gezegd, van iedere afzonderlijke functie zijn er voorbeelden voor Arduino en, in mindere mate, voor ESP32 te vinden. Ik had uiteindelijk een programma dat:
- Verbinding zoekt via WiFi
- Een web-interface toont om het relais aan of uit te schakelen
- De temperatuur meet als je een button op de webinterface indrukt
- Het relais schakelt gebaseerd op de gemeten temperatuur
De thermostaad deed dus niets met het relais totdat je er zelf wat mee deed. Niet zo nuttig. Het moet juist andersom werken:
- Bekijk de huidige staat van het relais
- Staat ‘ie uit? Dan de omgevingstemperatuur vergelijken met de ingestelde thermostaatwaarde
- Staat ‘ie aan? Dan de vloertemperatuur vergelijken met de ingestelde maximumwaarde
- Afhankelijk van de uitkomst hierboven, het relais schakelen of in de huidige staat laten
- Verbind gedurende een minuut met WiFi
- Toon in die tijd de web-interface
- Geef de mogelijkheid de thermostaat in te stellen
- Begin van boven af aan
De volgende stap is om een domoticaserver een interface voor de thermostaat te laten serveren, en dat de ESP32 de domoticaserver zo nu en dan vraagt wat de gewenste temperatuur is. Op die manier toont de ESP32 niet zo lang een web-interface via WiFi, met zodoende minder energieverbruik en hogere veiligheidsgraad. Maar dat komt later