
Privacy en domotica - compromissen vereist?
Meer en meer apparaten zijn verbonden met internet - inclusief allerlei huishoudelijke apparaten. Het bedienen van die apparaten met apps is de nieuwe standaard die mensen verwachten. En stembesturing wint snel aan populariteit - met slimme assistenten zoals Google Assistant, Amazon Alexa, Apple Siri en Microsoft Cortana om er maar een paar te noemen. Mensen maken zich echter ook meer zorgen over hun privacy, vooral omdat sommige schandalen zijn ontdekt waar cloudproviders luisterden naar de gesprekken van mensen. Het lijkt erop dat we gewoon moeten accepteren dat we een deel van onze privacy moeten opgeven in ruil voor gebruiksgemak - of toch niet?
Niet-cloud domotica
Candle Smart Home is een initiatief dat wordt gefinancierd door de Europese Unie en onderzoekt of het haalbaar is om een smart home te hebben - inclusief spraakbesturing - zonder de privacy op te offeren. Het behandelt veel aspecten van privacy. We wilden zien hoe gemakkelijk (of moeilijk) het is om onze slimme bio-ethanolbrander compatibel te maken met Candle Smart Home.
Spoiler alert: het bleek heel eenvoudig, terwijl we een domotica-oplossing hebben die werkt zonder gegevens naar de cloud te sturen (inclusief spraakbesturing die lokaal wordt verwerkt en daarom nooit het huis verlaat)! Het wordt compleet geleverd met een smartphone-app en spraakbesturing.
Benodigde componenten

De vereiste componenten voor deze installatie zijn:
- Voor de Candle Smart Home-controller:
- Een Raspberry Pi 4 (Eur. 60, -)
- Een SD-geheugenkaart (Eur. 10, -)
- Een RF Nano-microprocessor met een ingebouwde radiozendontvangermodule (Eur. 2, -)
- Voor de module die wordt toegevoegd aan onze slimme bio-ethanolbrander:
- Een RF Nano-microprocessor met een ingebouwde radiozendontvangermodule (Eur. 2, -)
- Een spanningsregelaar (om de spanning van de RF Nano (5V) te veranderen in de spanning van de bio-ethanolbrander (3,3V) en vice versa) (Eur. 0,50)
Gevolgde stappen
Stap 1: Maak de controller
De eerste stap is het maken van de controller. Dit is vrij eenvoudig en een gedetailleerde stapsgewijze handleiding is beschikbaar op de Candle Smart Home-website. Het gaat om het schrijven van een afbeelding op de SD-kaart en het verbinden van de Raspberry PI met uw WiFi. Sluit vervolgens de RF Nano aan op een USB-poort van de Raspberry PI wanneer u de ontvangermodule toevoegt. Voeg ten slotte de spraakassistent (Snips) toe en deze stap is voltooid. Het kan nog niets nuttigs doen (behalve dingen zoals de tijd vertellen) omdat onze bio-ethanolbrander nog niet is aangesloten.
Aandachtspunten:
- De eerste USB-kabel die we gebruikten, bleek alleen voor opladen te zijn, d.w.z. er kon geen dataverbinding tot stand worden gebracht en de RF Nano werd niet herkend. Dit probleem is opgelost door de USB-kabel te vervangen door een kabel die volledig was bedraad.
- Een van de eerste stappen is om een externe domeinnaam in te voeren, zodat uw Raspberry PI ook zichtbaar is op internet. Hierdoor bleek de stemassistent niet meer te werken, dus we hebben deze stap overgeslagen. Aan een oplossing wordt gewerkt.
Stap 2: Raak vertrouwd met de RF Nano

Met de controller in bedrijf, moeten we onze bio-ethanolbrander via een draadloze (radio) verbinding verbinden. Voordat we dat wilden doen, wilden we vertrouwd raken met de Candle Smart Home-software, de RF Nano en de MySensors-bibliotheek. Daarom hebben we het weerstation gemaakt door de instructies op de Candle Smart Home-site te volgen. Tijdens het proces wordt de benodigde code (door de Candle Manager) naar de RF Nano weggeschreven. Je kunt daar de daadwerkelijke code zien, die uitlegt hoe dingen werken, inclusief hoe de controller en het apparaat met elkaar communiceren (door een wachtwoord te delen, dat is ingesteld in de configuratie van de Candle Manager add-on). Nadat we hebben begrepen hoe dit werkt, kunnen we nu onze eigen code voor de bio-ethanolbrander schrijven.
Stap 3: De code voor de bio-ethanolbrander maken

Met behulp van de Arduino-interface maken we onze aangepaste code. We selecteren het bordtype "Arduino Nano" en de juiste COM-poort. Vervolgens kopiëren we de basiscode van de voorbeeldplugin (die alles heeft om draadloos verbinding te maken met de controller). We implementeren de functie "Ontvangen" om te reageren op commando's (aan / uit / omhoog / omlaag) die we van de controller krijgen (omdat een gebruiker op een knop heeft gedrukt, of omdat de spraakassistent werd gevraagd om bijvoorbeeld de open haard in te schakelen). Wanneer een opdracht wordt ontvangen, geven we die opdracht door aan de seriële interface om de brander te bedienen.
De bio-ethanolbrander geeft ook statusinformatie op de seriële lijn, zoals de status (inactief, opwarmen, aan, afkoelen, fout, enz.) en vlamniveau (1 tot 5) (meer informatie wordt verstrekt, zoals bijv. CO2-niveau, brandstoftank leeg / vol, enz.). We lezen die informatie van de seriële lijn en sturen bij wijziging van de status van de brander een bericht naar de controller (met behulp van de functie "verzenden") om de controller de nieuwe status te laten weten. Op deze manier, als de gebruiker de brander bedient door op 1 van de fysieke knoppen op de brander te drukken, geeft de Candle Smart Home-controller goed weer dat de brander aan of uit is - zelfs als het schakelen niet gebeurt via Candle Smart Home controller.
Aandachtspunten:
- Hoewel de code vrij eenvoudig te kopiëren en uit te breiden is, werkt de RF Nano op 5V. De bio-ethanolbrander werkt op 3,3V. Daarom is er een spanningsregelaar tussen geplaatst om ervoor te zorgen dat we de bio-ethanolbrander niet opblazen.
Onze student bereidt de spanningsdeler voor:
Op dit moment werken we aan de testconfiguratie:
Stap 4: De volledige installatie testen
Nu alle componenten zijn geassembleerd en code is geschreven en geüpload naar de RF Nano, is het tijd om te testen of het echt werkt - zelfs met spraakbesturing en zonder internet. Dus hebben we de uitgaande internetkabel losgekoppeld en onze stem gebruikt om de open haard in- en uit te schakelen (we noemden het apparaat 'fireplace'). Bekijk onze film om de resultaten te zien: