Koffie timer en radio, Arduino, Logitech Harmonie en openHAB (2 / 3 stap)

Stap 2: Arduino code

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 box, 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 formatint nodeID; // node identifierint devID; // device identifierint cmd; // read or write long intVal; // integer payloadfloat fltVal; // floating payloadchar payLoad[32]; // string payload} Message; 

De knoppen werden niet rechtstreeks is gekoppeld aan de 3.3V, maar aan de Arduino gegevens pinnen zodat zij kunnen worden ontstoken en als gewenst.
Er zijn ook veel variabelen voor het opslaan van tijdstempels, status en eerdere-status van knoppen.

Setup

Uiteraard zijn de pin-modi "out" voor macht en 'in' voor de knop-drukt. Het knipperen van de knoppen te tonen dat de installatiefase voltooid, dan zij overgaan tot hun normale toestand.

Loop

De Arduino controleert eerst als het een opdracht van de OH-server ontvangen. De opdracht wordt geparseerd buiten de lus-code.
Dan de status van de knoppen worden gelezen als de status is gewijzigd sinds de vorige iteratie. Opmerking dat niets tot nu toe is verzonden.
Afhankelijk van de status van de knoppen, de estafette wordt geopend of gesloten om over te schakelen van de koffiemachine in- of uitschakelen.
Daarna de knop kleuren wijzigen naar gelang van hun staat. Maakte het meer gevoel voor mij om er op die manier in plaats van direct tijdens de knop-lezen-status te wijzigen.
In de buurt van het einde van de lus van de status van de estafette wordt teruggestuurd naar de OH-server, evenals de status van de blauwe knop. Rode en groene status worden niet verzonden terug als ze zijn gecontroleerd door de status van de estafette
De signaalsterkte (RSSI) worden teruggestuurd naar de OH-server om te weten van de sterkte van het signaal voor beide manieren: van en naar de RFM-gateway.
Merk op dat er een buffertijd "StateChangeInterv" in de code. Dit is geschreven voor de grappige jongens die bij u thuis om te zien komen na hoeveel keer aan/uit schakelen van de zekering zal blazen, of de koffiemachine omhoog gaan in rook... De variabele (hier ingesteld op 2,5 sec) voorkomt dat een wijziging van de status voor 2,5 seconden. De machine kan daarom schakelen alleen na die variabele tijd; en mensen zal verliezen interesse zeer snel...

De BlueBlink wordt geïnitieerd alleen door de OH-server 30 minuten voordat de machine wordt verondersteld om uit te schakelen. Door de blauwe knipperende knop in te drukken, het verandert in een muf blauw en de switch off tijd wordt verondersteld om naar de volgende 00 of 30 minuten over het hele uur. Natuurlijk 30 minuten vóór het uitschakelen van de knipperen zal terugkeren.

Gerelateerde Artikelen

Dubbele koffie Timer: OLED & Arduino

Dubbele koffie Timer: OLED & Arduino

Trekken van een perfect kopje koffie vereist strak in de hand van een aantal variabelen. De molen opleidingscyclus een vaste dosis voor de juiste grind in een mand portafilter. De portafilter past in de koffiemachine en de machine wordt uitgevoerd. A
HackerBoxes 0003: Amateur Radio, Arduino Nano, satellieten, Packet, APRS

HackerBoxes 0003: Amateur Radio, Arduino Nano, satellieten, Packet, APRS

Bent u klaar om Radio actief? Deze maand, verkennen radiocommunicatie met een krachtige handheld VHF/UHF-transceiver, zoeken naar Amateur satellieten overhead en prototype eigen Morse Code of Digital Packet Radio project gebaseerd op het kleine compa
555 timer emulator voor Arduino

555 timer emulator voor Arduino

Dit is een emulatie van een 555 timer chip die op een Arduino draait. Het kan meest elementaire 555 schakelingen met geen verandering uitgevoerd naar het programma of de bedrading van de emulator. De foto toont de emulator installatie toe een astable
Hoe Intelligent Time-Lapse fotografie Arduino-gecontroleerde

Hoe Intelligent Time-Lapse fotografie Arduino-gecontroleerde

Project: lichtgevoelige en verstelbare dynamische Time-Lapse fotografieDoor Holden Leslie-BoleGeschatte kosten: $70 zonder de cameraIk heb sommige time-lapse fotografie met mijn GoPro HERO3 voor een tijdje nu gedaan, en ik heb enkele geweldige beelde
Controle op Radio Arduino auto via Web scherm

Controle op Radio Arduino auto via Web scherm

Dit is mijn eerste Arduino prototyping. Ik zou willen maken van een bewegend object, die kan worden gecontroleerd via de radio. De auto bestaat uit Tamiya Kits en XBee.De webpagina voor het beheersen van de auto is geschreven met Node.js en Socket.IO
Uitzetten van real-time gegevens van Arduino met behulp van Python (matplotlib)

Uitzetten van real-time gegevens van Arduino met behulp van Python (matplotlib)

Arduino is fantastisch als tussenpersoon tussen uw computer en een ruwe elektronische schakeling. Via de seriële interface, kunt u informatie ophalen uit sensoren bevestigd aan je Arduino. (U kunt ook informatie verzenden via de seriële interface te
Arduino Nano en Visuino: 7 Segment Display klok met MAX7219 en DS1307 Real Time Clock(RTC)

Arduino Nano en Visuino: 7 Segment Display klok met MAX7219 en DS1307 Real Time Clock(RTC)

DS1307 Real timerklok zijn wijd-beschikbaar low-cost I2C RTC modules. Ze komen met een klok en een kleine batterij, en wanneer aangesloten op de Arduino, annuleerteken vieren voetspoor van real-time zelfs wanneer de Arduino board is niet aangedreven.
Arduino Nano: DS1307 real-time Clock(RTC) met Visuino

Arduino Nano: DS1307 real-time Clock(RTC) met Visuino

DS1307 Real timerklok zijn wijd-beschikbaar low-cost I2C RTC modules. Ze komen met een klok en een kleine batterij, en wanneer aangesloten op de Arduino, annuleerteken vieren voetspoor van real-time zelfs wanneer de Arduino board is niet aangedreven.
Arduino Timer onderbreekt

Arduino Timer onderbreekt

Timer interrupts kunnen u een taak met zeer specifiek bepaalde tussenpozen ongeacht wat is in uw code gaande er. In dit instructable ik zal uitleggen hoe te installeren en uitvoeren van een interrupt in duidelijke Timer op vergelijk Match of CTC modu
Arduino Nano: DS1302 real-time Clock(RTC) met Visuino

Arduino Nano: DS1302 real-time Clock(RTC) met Visuino

DS1302 Real timerklok zijn wijd-beschikbaar low-cost RTC modules. Ze komen met een klok en een kleine batterij, en wanneer aangesloten op de Arduino, annuleerteken vieren voetspoor van real-time zelfs wanneer de Arduino board is niet aangedreven.In d
Het gebruik van de Watchdog-Timer op Arduino

Het gebruik van de Watchdog-Timer op Arduino

In dit Instructable nemen wij een blik bij de Watchdog-Timer op de Arduino en de drie verschillende manieren om deze te configureren. Laten we een eenvoudig voorbeeld van het gebruik van de Watchdog-Timer en kunt u de code uit het voorbeeld op de For
Uber Home Automation w / Arduino & Pi

Uber Home Automation w / Arduino & Pi

[BEWERKEN] Ik heb een forum om samen te werken op gateway code.http://homeautomation.proboards.com/Board/2/openha...Een paar jaar geleden, werd ik de hondeigenaar van een voor de eerste keer. Ik hield niet van Cody in de kennel alleen hele dag verlat
Raspberry Pi en Arduino: betrouwbare bouwsystemen met WatchDog Timers

Raspberry Pi en Arduino: betrouwbare bouwsystemen met WatchDog Timers

Samenvatting: In dit Instructable kijken we hoe het bouwen van meer betrouwbare computersystemen die gebruikmaken van de WatchDog timers. Laten we zien hoe u kunt instellen en gebruiken van de Raspberry Pi en Arduino interne watchdog timers. Ook legg
Arduino LED-Strip wieg/Bed nachtlampje

Arduino LED-Strip wieg/Bed nachtlampje

Dit project is gemaakt, want ik iets die ik maken in een weekend dat zou eenvoudig genoeg om te begrijpen wilde kon en sleutelen aan, maar ook kijken cool als je klaar bent. Een Arduino + LED-Strip was de perfecte combo, als je kunt krijgen uw inleid