Stap 1: Arduino codes en openHAB integratie
Initialisatie
Alleen de WDT (WatchDogTimer) en de RFM bibliotheken inbegrepen zijn. De WDT wordt gebruikt in het geval de Arduino hang ergens en met de WDT op beginstand vanzelf zetten zou. Echter met deze opstelling, de Arduino verloor nooit zelf tot nu.
De code is gekoppeld en moet vrij rechttoe-rechtaan. Er wordt verondersteld dat u weet dat spul ten minste tot halverwege het lezen. De Arduino code uitzien vertrouwd zoals het is gekopieerd uit verschillende bronnen, bewerkt en samen te stellen.
Snap het niet al te kieskeurig op de NodeID; Houd het 2 cijfers aangezien u waarschijnlijk niet meer dan 90 knooppunten in uw huis hoeft. Het aantal cijfers niet wijzigen, of u zult moeten veranderen vrijwel overal later.
Definieer de frequentieband zoals gegeven door de module die u hebt gekocht.
De ChannelFreq moet mogelijk worden aangepast aan de normen waar u woont; het nummer is in Hertz.
// RFM69#define NODEID 21 //unique for each node on same network Floor&Room&Node#=X&XX&X#define NETWORKID 666 //the same on all nodes that talk to each other #define GATEWAYID 1#define FREQUENCY RF69_433MHZ#define ENCRYPTKEY "1234567890ABCDEF" //exactly the same 16 characters/bytes on all nodes!#define ChannelFreq 434520000
De berichtenstructuur heeft hetzelfde in het hele netwerk
typedef struct { // Radio packet format int nodeID; // node identifier int devID; // device identifier int cmd; // read or write long intVal; // integer payload float fltVal; // floating payload char payLoad[32]; // string payload} Message;
Er zijn heel wat variabelen voor het bijhouden van de status en de vorige status van de Relais.
Setup
Niets speciaals te markeren. Alle pin modi moeten worden ingesteld op "out".
Loop
De Arduino controleert eerst als het een opdracht van de OH-server ontvangen. De opdracht wordt geparseerd buiten de lus-code.
Vervolgens de status van elk relais wordt vergeleken met de vorige status en als er een verschil, de nieuwe status wordt teruggestuurd naar de OH-server.
Pas daarna worden de echte status gelezen en opgeslagen als variabelen.
Afhankelijk van het interval, de status worden teruggestuurd naar de OH-server.
De laatste als in de lus stuurt gewoon terug de signaalsterkte van de RFM-toegangspoort tot het knooppunt en vice versa. Deze volgorde leek een goede logica omdat soms de Relais niet correct, overschakelen zodat de juiste status wordt teruggestuurd en het kan worden overgeschakeld opnieuw vanaf de tablet/telefoon (de OH-server).
BTW: de relais zijn alleen ingeschakeld op een signaal van de OH-server (telefoon/tablet/regels). Er is geen mogelijkheid om knoppen.
Zodat het hele ding kan worden ingeschakeld met regels (aanwezigheid regels, lichtsensor, tijd van de dag, etc.) en het is perfect als u hebt kerst binnenverlichting, elektrische Kerst kaarsen of zomaar een andere spullen die u niet wilt 24u/dag uitvoeren en waar je te trots bent om het kopen van meerdere tijdschakelaars.