Category: Homeyduino

Hier vindt je een overzicht van zelfbouw sensoren, gebruikmakend van Arduino, ESP8266 of Demos D1 Mini WiFi boards, gecombineerd met eenvoudige sensoren om zo je eigen Domotica producten te maken.

Op deze manier bouw je snel en voor weinig geld  een groot aanbod aan aanpasbare sensoren. Enkele voorbeelden: Hygrometer (luchtvochtigheid/temperatuur, Schemersensor (LDR), Waterthermomter (DS18B20), RFID lezer (NFC) en nog veel meer.

Maak je eigen Licht Sensor (LDR + Homeyduino)

Een licht- of schemersensor meet de hoeveelheid licht in een bepaalde ruimte en door dit te koppelen aan Homey kan deze sensor apparaten of flows aansturen. Op deze manier kun je dus bijvoorbeeld automatisch je verlichting aan laten gaan wanneer het (te) donker word of juist andersom,  je buitenverlichting uitschakelen wanneer de zon opkomt.

Nadat het vorige week eindelijk lukte om een WiFi (water)thermometer voor in de vijver te maken. En deze door middel van zelf gefabriceerde  Arduino/ESP8266 code, het betere kopieer en plakwerk, met Homey te laten communiceren, heb ik de smaak te pakken gekregen. Dit keer heb ik dan ook een andere sensor van het verlanglijstje afgevinkt, de licht sensor (LDR).

Door het gebruik van dergelijke sensoren kun je eenvoudig elektriciteit besparen, je lampen gaan namelijk niet onnodig aan wanneer het nog licht is en schakelen desgewenst automatisch uit wanneer het juist wel weer licht genoeg word. En anderzijds heb je er juist gebruiksgemak van omdat op druilerige donkere dagen de verlichting juist wat eerder aanspringt, waardoor je niet onnodig in het donker hoeft te zitten.

Kant en klare oplossing

Uiteraard zijn hier tal van kant en klare oplossingen voor te krijgen, echter zijn deze vaak op batterijen en aangezien het batterij verbruik hier momenteel al buitenproportioneel is heb ik liever zo veel mogelijk sensoren op netspanning. Zo heeft KaKu er één voor € 23,- maar zoals aangegeven werkt deze dus op batterijen. Een ander alternatief is een schemerschakelaar die bedraad is, nadeel hiervan is echter dat je maar één apparaat of hooguit één contactdoos met meerdere stopcontacten kan schakelen.

Zelfbouw licht sensor (LDR)

Vandaar dat ik als hobbyist zijnde voor het zelfbouw alternatief heb gekozen,namelijk met een LDR, Light Dependent Resistor sensor, oftewel een licht gevoelige sensor.  Op deze manier leer je meteen hoe een dergelijke sensor werkt.

Het voordeel van Arduino/ESP8266 is, dat deze sinds de release van Homeyduino eenvoudig aan Homey te koppelen is. Dit vergt nog het nodige puzzelwerk van mijn kant, want ik heb zoals aangegeven weinig tot geen kennis van programmeren. Echter met de interesse om wat bij te leren, gecombineerd met een gezonde uitzoekdrang kom je gelukkig een heel eind. Wanneer dit echter lukt heb je dus voor weinig geld een sensor waarvan je de gegevens kunt kijken via Homey Inzichten. Ook kun je je zelfbouw sensoren gebruiken als trigger voor je flows.

De benodigdheden:

 

Ook nodig maar enkel op de boel eenmalig te configureren, een computer of laptop met daarop geïnstalleerd:

 

 

ESP8266 ESP-12 NodeMCU Lua WiFi

 

AliExpress.com Product – WeMos D1 mini , WiFi board  met ESP8266 intergratie  + 32Mb flash

 

10  stuks  Light Dependent Resistor LDR 5MM Photoresistor gevonden op AliExpress.com | Thuisbezorgd en al voor € 0,73

 

5 stuks Soldeerloze Prototype Breadboard 170 Tie-points PCB Test Board – Gevonden op AliExpress.com | Thuis bezorgd en al voor €1,60 

 

100PCS 1/4W Watt 10K ohm 10K Metal Film Resistor 0.25W 1% ROHS High Quality  – Gevonden op AliExpress.com | Gratis thuisbezorgd voor nog geen € 0,63 

 

Aansluitschema

Volg onderstaand schema op de sensor aan te sluiten aan je board. Onderstaand plaatje ie een Arduino Uno maar aansluiten op een ESP8266 NodeMCU  of D1 Mini is nagenoeg hetzelfde, voltage werkt ook op 3.3V.

 

Aansluitschema LDR sensor op Arduino board, op een ESP8266 of D1 Mini werkt nagenoeg hetzelfde | Huisvanvandaag.nl

Aansluitschema LDR sensor op Arduino board, op een ESP8266 of D1 Mini werkt nagenoeg hetzelfde, echter heeft de ESP8266 geen 5v, gebruik dan de 3v.

 

LDR sensor aangesloten op ESP8266 | Huisvanvandaag.nl

LDR sensor aangesloten op ESP8266, klaar om de code erop te zetten.

Code 

Onderstaand de code, net als de WiFi Waterthermometer, zelf samengesteld uit reeds beschikbare code voor Arduino en Homeyduino. Het werkt naar behoren maar aangezien ik, als leek, zelf weinig tot geen ervaring met coderen heb kan dit hoogstwaarschijnlijk efficiënter.

Mocht je deze kennis wel hebben en suggesties hebben, laat het me dan weten!  Uploaden gaat via Arduino IDE, mocht je hier niet bekend mee zijn lees dan hier voor een uitgebreide handleiding. Zorg dat je bij instellingen in Arduino IDE het juiste board hebt geselecteerd en dat je op 9600 baud de code upload.  Mocht je ESP8266 board niet werken dan kun je proberen deze eerste te flashen met de NodeMcu Flasher.

 


// Code aangepast voor Homeyduino door Domoticablog http://huisvanvandaag.nl. 
// Kijk op de site voor meer Homeyduino en andere Smart Home gerelateerde posts.


#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>

int LDRsensor = A0;
// configureer hier de LDRsensor pin, deze sluiten we hier
// aan op de analoge poort A0 van de arduino: A0

void wifi() {
  if (WiFi.status() != WL_CONNECTED) {
    WiFi.begin("<SSID>", "<PASSWORD>");
    uint8_t timeout = 30;
    while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
      if (timeout<1) break;
    }
    if (WiFi.status() == WL_CONNECTED) {
      //Print IP address
      Serial.print("Verbonden met WiFi! (");
      Serial.print(WiFi.localIP());
      Serial.println(")");
    }
  }
}
 
void setup() {                
  Serial.begin(9600); // zet seriele poort aan op 115200 baud.
  Homey.begin("SENSOR NAAM");
  Homey.setClass("sensor");
  Homey.addCapability("measure_luminance");
}
 
// deze loop wordt continu herhaald
void loop() {
  // print LDR waarde via seriele monitor
   wifi();
  Homey.loop();
 // Serial.print("LDR waarde: ");
  Serial.print(analogRead( LDRsensor));
  Serial.println("");
  Homey.setCapabilityValue("measure_luminance", analogRead( LDRsensor));
  delay(1000); // wacht 1 minuut 60000 ms
}
LDR sensor voor Homeyduino

 

Testen

Nu het je gelukt is om de code te uploaden gaan we deze meteen testen. Dit doen we  door de Seriële Monitor in Arduino IDE te openen, klik hiervoor op Hulpmiddelen en dan Seriële Monitor of gebruik de sneltoets CTRL+SHIFT+M.

Vervolgens opent er een scherm waarop je de waardes van de sensor uit kunt lezen. Waardes kunnen variëren ergens tussen de 0 en 999. Met 0 als de uiterste staat van duisternis en 999 zijnde een zeer goed (over?)belichte ruimte. Het kan zijn dat de keuze van weerstand die je gebruikt invloed heeft op de gemeten gegevens.  In onderstaande afbeelding heb ik de sensor namelijk op een half bewolkte dag buiten getest, mijn inziens zou de gemeten hoeveelheid licht dan ook hoger uit moeten vallen.  Dit heeft verder weinig invloed op het gebruik van de sensor an sich, behalve dat een nauwkeurige sensor ook nauwkeuriger kan schakelen.

 

LDR sensor uitlezen via de seriële monitor van Arduino IDE. Waardes variëren tussen 0 en 999. Tevens via Homeyduino te koppelen aan Homey om de sensor zo uit te lezen of als trigger voor je flows te gebruiken. | Huisvanvandaag.nl

LDR sensor uitlezen via de seriële monitor van Arduino IDE. Waardes variëren tussen 0 en 999.

 

Klik op de + en vervolgens op Homeyduino om een nieuwe sensor toe te voegen | Huisvanvandaag.nl

Klik op de + en vervolgens op Homeyduino om een nieuwe sensor toe te voegen.

 

Bouw je eigen schemer- of lichtsensor, eenvoudig met ESP8266 of Wemos D1 Mini, goedkope sensoren en Homeyduino | Huisvanvandaag.nl

Licht sensor toevoegen aan Homey, kies de juiste sensor.

 

Zelfbouw licht- of schemersensor bestaande uit ESP8266 of Wemos D1 Mini icm LDR sensor en Homeyduino. Nu kun je via Homey de licht sensor uitlezen. Deze waardes kun je vervolgens gebruiken als trigger voor je flow | Huisvanvandaag.nl

Nu kun je via Homey de licht sensor uitlezen. Deze waardes kun je vervolgens gebruiken als trigger voor je flows.

 

Stel je flow goed in in Homey. Je wilt natuurlijk niet dat je lampen verkeerd of onnodig aanspringen. Zelf gebruik ik twee flows, één die enkel tussen bepaalde tijden de sensor uitleest. En één waar de lampen daadwerkelijk geschakeld worden.

Stel je flow goed in in Homey. Je wilt natuurlijk niet dat je lampen verkeerd of onnodig aanspringen. Zelf gebruik ik twee flows, één die enkel tussen bepaalde tijden de sensor uitleest. En één waar de lampen daadwerkelijk geschakeld worden.

 

Schakel je verlichting automatisch aan of uit door middel van een licht- of schemersensor. Deze bouw je eenvoudig en voor heel weinig zelf. ESP8266 of Wemos D1 Mini, LDR sensor en metl Homeyduino koppel je het eenvoudig aan Homey | Huisvanvandaag.nl

Deze flow is nu getriggert. Zoals je kunt lezen varieert de flow op even en oneven weken. Dit is omdat nooit alle lampen beneden tegelijk aan moeten. De ene week schakelt de ene helft en de andere week de andere, zodat alle lampen gelijktijdig slijten.

 

Afwerking en bescherming

De sensor stoppen we ook nog in een enigszins net doosje, dan is de boel net wat beter beschermd en het oogt ook net wat minder rommelig. Op het verlanglijstje staat ooit nog een 3D printer, zodat eventuele cases zelf op maat gemaakt kunnen worden. Maar zolang die er nog niet is lossen we het anders op.  Zoals je bij de WiFi waterthermometer al kon zien heb ik toen gebruik gemaakt van een eenvoudig doosje van de Karwei.  Dit beviel eigenlijk prima, dus gebruiken we die nu weer. Doosje ligt in de elektra hoek en kost ongeveer € 3,-.

 

LDR sensor aangesloten op ESP8266 | Huisvanvandaag.nl

De sensor in zijn geheel in het doosje. De ronde aansluitingen aan de zijkant zijn voorzien van een soort rubber. Hierdoor kun je zowel de sensoren als de voeding bevestigen maar het geheel wel straks en netjes af.

 

LDR sensor aangesloten op ESP8266 | Huisvanvandaag.nl

De licht- of schemersensor netjes weggewerkt in een doosje. De sensor zelf valt amper op maar het geheel is zo wel beschermd tegen vuil en stof en het oogt best goed.

 

Conclusie

Al met al bouw je op deze manier, met beperkte middelen, een goed werkende licht- of schemersensor. Enkele problemen waar ik aanvankelijk tegen aan liep hadden vooral te maken met het instellen van je flows. Dit let erg nauw en soms maak je een flow die door Homey anders geïnterpreteerd word als dat je hem voor ogen had.

Afhankelijk van de nauwkeurigheid van de sensor moet je voor jezelf bepalen op welke lichtintensiteit je wilt dat je lampen geactiveerd worden. Ook moet je de flow op gezette tijden actief hebben, maar niet 24 uur per dag. Je wilt uiteraard niet dat je lampen midden in de nacht aangaan.  Dit is alles bij elkaar een proces wat even wat even wat aandacht vergt, maar heb je het eenmaal goed werkend, dan heb je er helemaal geen omkijken meer naar.

De volgende stap: Multi Sensor Homeyduino

Eenvoudige sensoren zijn vaak genoeg, maar soms is het gewoon handig om meerdere sensoren in één te hebben. Zo kun je wat complexere triggers maken bijvoorbeeld door een lichtsensor te combineren met een bewegingssensor. Dit word dan ook het volgende project, momenteel zijn er diverse sensoren besteld en onderweg.

De sensoren zijn ondertussen binnen, gebouwd en getest. Je leest het hier!

Mocht je op- aanmerkingen, ideeën of suggesties hebben, laat het me dan weten en neem even contact op.

 

 

Multi sensor Homeyduino

Dit keer een combinatie van enkele eerder gemaakte sensoren, namelijk de DHT11 luchtvochtigheid en temperatuur sensor, de LDR (Light Dependent Resistor) Sensor en de PIR (Passive InfraRed) Sensor. Deze multi-sensor meet dus de hoeveelheid licht, de luchtvochtigheid, temperatuur en detecteert eventuele beweging in een ruimte. 

Een dergelijke sensor kun je gebruiken om simpelweg meerdere sensoren aan één WiFi board te koppelen en dus als afzonderlijke triggers te gebruiken. Of je gebruikt het om juist complexere triggers te maken door een combinatie van de sensoren te gebruiken.

Enkele voorbeelden:

  • Beweging gedetecteerd en lage lichtintensiteit? Schakel verlichting in.
  • Beweging gedetecteerd, hoge luchtvochtigheid en lage lichtintensiteit? Schakel ventilator en verlichting in.
  • Snelle en abnormale veranderingen in temperatuur en luchtvochtigheid? Ontvang dan een waarschuwing per telefoon of spraak.

Kant en klaar alternatief

Kant en klaar alternatieven zijn ook in dit geval weer verkrijgbaar,  bijvoorbeeld de Fibaro Z-Wave Multi-Sensor, deze registreert ook beweging, meet de temperatuur en lichtintensiteit. En hoewel deze sensor er erg strak en futuristisch uitziet en met een handige app geleverd word, je toch bijna € 60 per stuk kost en ons Doe-Het-Zelf hobby project weer voor een fractie van de kosten zelf te maken is.

 

Hieronder vind je een overzicht van de benodigdheden voor dit project, de code en een aansluitschema.

De benodigdheden:

 

Ook nodig maar enkel op de boel eenmalig te configureren, een computer of laptop met daarop geïnstalleerd:

 

 

ESP8266 ESP-12 NodeMCU Lua WiFi

 

AliExpress.com Product – WeMos D1 mini , WiFi board  met ESP8266 intergratie  + 32Mb flash

 

Passive Infrared Sensor – Gevonden op AliExpress.com  | Thuisbezorgd en al voor €0,70 

 

10  stuks  Light Dependent Resistor LDR 5MM Photoresistor gevonden op AliExpress.com | Thuisbezorgd en al voor € 0,73

 

AliExpress.com Product – Single Bus DHT11 Digital Temperature and Humidity Sensor

 

5 stuks Soldeerloze Prototype Breadboard 170 Tie-points PCB Test Board – Gevonden op AliExpress.com | Thuis bezorgd en al voor €1,60 

10 stuke LED en 40 stuks diverse weerstanden  – Gevonden op AliExpress.com | Gratis thuisbezorgd voor nog geen € 0,63 

 

Aansluitschema

Volg onderstaand schema op de sensoren aan te sluiten op je board. Voor de volledigheid:

Sensor NodeMCU pin
DHT11 D5
LDR A0
PIR D7

Mocht één en ander toch nog onduidelijk zijn lees dan eerste aandachtig hoe je de sensoren afzonderlijk aansluit. Klik hiervoor op bovenstaande sensor naam om de uitgebreide beschrijving te lezen.

 

Aansluitschema voor de Homeyduino Multi-Sensor met bewegings-, licht-, temperatuur en luchtvochtigheidsdetectie | Huisvanvandaag.nl

Aansluitschema voor de Homeyduino Multi-Sensor met bewegings-, licht-, temperatuur en luchtvochtigheidsdetectie

 

Arduino IDE

Installeer Arduino IDE, dit is de software die nodig is om de code op je ESP8266 board te kunnen zetten. Eerst moeten we hiervoor de Homeyduino Library installeren.

Open een nieuw venster, klik op de bovenste balk op Schets > Bibliotheek gebruiken > Bibliotheken beheren.

 

Arduino IDE, eerst de Homeyduino library installeren | Huisvanvandaag.nl

Arduino IDE, eerst de Homeyduino library installeren

In het scherm dat nu opent zoek je op Homeyduino en vervolgens installeer je deze.

Hetzelfde doe je ook met de volgende termen: ESP8266 en SimpleDHT, deze zoek en installeer je ook.

 

Homeyduino Code

Wanneer je de bovenstaande stappen hebt gevolgd open je een nieuw scherm van Arduino IDE en vervang je de tekst door onderstaande code. Let er even op dat je hier de juiste netwerk gegevens invult (zie rode tekst)

Wanneer je van plan bent meerdere Multi sensoren in je huis te plaatsen is het belangrijk dat je ze allemaal een unieke naam geeft (zie tweede rode tekst).

// Code aangepast voor Homeyduino door Domoticablog http://huisvanvandaag.nl. 
// Kijk op de site voor meer Homeyduino en andere Smart Home gerelateerde posts.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>
#include <SimpleDHT.h>
#define PIN_DHT D5 // DHT11
SimpleDHT11 dht11; // DHT11
int sensor = 13; //D7 // PIR
unsigned long previousMillis = 0; // DHT11
const unsigned long interval = 10000; //Interval in milliseconds // DHT11
int LDRsensor = A0; // LDR
void wifi() {
if (WiFi.status() != WL_CONNECTED) {
WiFi.begin("SSID”, "PASSWORD");
uint8_t timeout = 30;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (timeout<1) break;
}
if (WiFi.status() == WL_CONNECTED) {
//Print IP address
Serial.print("Connected to WiFi! (");
Serial.print(WiFi.localIP());
Serial.println(")");
}
}
}
void setup() { // DHT11
Serial.begin(9600);
Homey.begin("Multi-sensor"); // Indien je meerdere sensoren wilt plaatsen, geef ze dan ieder een unieke naam
Homey.setClass("sensor");
Homey.addCapability("measure_humidity"); // DHT11
Homey.addCapability("measure_temperature");// DHT11
Homey.addCapability("alarm_motion"); // PIR
pinMode(sensor, INPUT); // declare sensor as input   PIR
Homey.addCapability("measure_luminance"); // LDR
}
void  pirloop() { // void voor PIR
wifi(); // Beide
Homey.loop(); // Beide
long state = digitalRead(sensor); // PIR
delay(5000); // was 1000  // PIR
if(state == HIGH){ // PIR
//  digitalWrite (Status, HIGH); // PIR
Homey.setCapabilityValue("alarm_motion", (true)); // PIR
Serial.println("Motion detected!"); // PIR
}
else { // PIR
//   digitalWrite (Status, LOW); // PIR
Homey.setCapabilityValue("alarm_motion", (false)); // PIR
Serial.println("Motion absent!"); // PIR
}
} 
void dhtloop() { // void voor DHT11
wifi(); // Beide
Homey.loop(); // Beide
unsigned long currentMillis = millis(); // DHT11
if(currentMillis - previousMillis > interval) { // DHT11
previousMillis = currentMillis; // DHT11
updateSensor(); // DHT11
}
}
void updateSensor() { // DHT11
byte temperature = 0; // DHT11
byte humidity = 0; // DHT11
int err = SimpleDHTErrSuccess; // DHT11
if ((err = dht11.read(PIN_DHT, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) { // DHT11
Serial.print("Read DHT11 failed, err="); Serial.println(err); // DHT11
return; // DHT11
}
Serial.print((int)temperature); Serial.print(" *C, "); // DHT11
Serial.print((int)humidity); Serial.println(" H"); // DHT11
Homey.setCapabilityValue("measure_temperature", (int) temperature); // DHT11
Homey.setCapabilityValue("measure_humidity", (int) humidity); // DHT11
}
void ldrloop() {
// print LDR waarde via seriele monitor
wifi();
Homey.loop();
// Serial.print("LDR waarde: ");
Serial.print(analogRead( LDRsensor));
Serial.println("");
Homey.setCapabilityValue("measure_luminance", analogRead( LDRsensor));
delay(1000); // wacht 1 minuut 60000 ms
}
void loop(){ // Beide
// wifi(); // Beide
//Homey.loop(); // Beide
dhtloop();    //maakt er twee aparte voids aan, één per originele code
pirloop();      //maakt er twee aparte voids aan, één per originele code
ldrloop();      //maakt er twee aparte voids aan, één per originele code
} 
Multi Sensor ESP8266: DHT11, LDR en PIR

 

Voordat we de code naar het board gaan schrijven moeten we kijken of we het goede board geselecteerd hebben in Arduino IDE, anders krijg je het niet aan de praat. In ons geval is dat de “NodeMCU 1.0 (ESP-12E Module)”

Wanneer dit allemaal goed staat klikken we op het pijltje in de iconen balk (tweede icoontje van links) > Upload.

 

Het juiste NodeMCU board selecteren in Arduino IDE | Huisvanvandaag,nl

Het juiste NodeMCU board selecteren in Arduino IDE

 

Testen

Nu het je gelukt is om de code te uploaden gaan we deze meteen testen. Dit doen we  door de Seriële Monitor in Arduino IDE te openen, klik hiervoor op Hulpmiddelen en dan Seriële Monitor of gebruik de sneltoets CTRL+SHIFT+M.

Vervolgens opent er een scherm waarop je de waardes van de sensor uit kunt lezen. Omdat we in dit geval meerdere sensoren gekoppeld hebben via de resultaten van de sensoren elkaar opvolgen. Zolang je van ieder sensor resultaat krijgt is het in orde.

 

Via de seriële monitor kun je de waardes van de sensoren uitlezen | Huisvanvandaag.nl

Via de seriële monitor kun je de waardes van de sensoren uitlezen.

Koppelen aan Homey

Nadat je de software naar het board geschreven hebt gaan we het board koppelen aan Homey. Klik hiervoor op de + > Apparaat toevoegen > Homeyduino

Nu zie je een lijst met Homeyduino apparaten op jouw netwerk, kies degene met de de naam die je zojuist hebt opgegeven.

 

Voeg de Sensor toe aan Homey via de Homeyduino app | Huisvanvandaag.nl

Voeg de Sensor toe aan Homey via de Homeyduino app

Nu zie je een lijst met Homeyduino apparaten op jouw netwerk, kies degene met de de naam die je zojuist hebt opgegeven. Zoals je kunt zien heb ik meerdere sensoren, ook van dezelfde soort. Zolang je deze allemaal van een unieke naam voorziet werkt dit prima.

 

Overzicht van de Homeyduino sensoren | Huisvanvandaag.nl

Kies de juiste sensor en klik op volgende.

 

Nadat je de sensor hebt toegevoegd kun je nu de waardes uitlezen via Homey en deze vervolgens als ‘trigger’ gebruiken in een ‘flow’. Een voorbeeld hiervan lees je zo.

 

Hier kun je waardes van je verschillende sensoren uitlezen | Huisvanvandaag.nl

Hier kun je waardes van je verschillende sensoren uitlezen.

 

Sensoren uitlezen

Zoals op bovenstaande afbeelding te zien is heb je nu een sensor die dus vier verschillende zaken meet, namelijk: temperatuur, luchtvochtigheid, lichtsterkte en beweging. Zelf kun je waarschijnlijk ook voldoende toepassingen hiervoor bedenken.

Voorbeelden van flows

Een voorbeeld van hoe ik het gebruik is in de badkamer, waar de sensor werkt als schakelaar voor zowel de verlichting als voor de ventilator. Waarbij het licht getriggerd word een bepaalde ondergrens in de gemeten lichtintensiteit in combinatie met beweging.

En  de ventilator automatisch aangaat wanneer de gemeten luchtvochtigheid een bepaalde waarde overschrijdt.

 

DHT11 sensor 'flow' die de badkamer ventilator 'triggert' wanneer de luchtvochtigheid te hoog word | Huisvanvandaag.nl

DHT11 sensor ‘flow’ die de badkamer ventilator ‘triggert’ wanneer de luchtvochtigheid te hoog word

 

Homey flow van de multi-sensor die de verlichting schakelt aan hand van gemeten lichtintensiteit en beweging | Huisvanvandaag.nl

Homey flow van de multi-sensor die de verlichting schakelt aan hand van gemeten lichtintensiteit en beweging.

Wat voor slimme toepassingen kun jij nog bedenken met een dergelijke sensor? Laat het me weten.

Bouw je eigen Bewegingssensor (PIR + Arduino)

Na lang wachten zijn dan van de maand eindelijk m’n nieuwe sensoren en ESP boards binnen gekomen. Hier zaten onder andere PIR sensoren bij, dit staat voor Passive InfraRed sensor oftewel bewegingssensoren. In deze tutorial beginnen we met de basis een Passive InfraRed of kortweg PIR sensor maar dan met WiFi.

De PIR ofwel de Passive Infrared Sensor is een sensor die je in zeer veel producten tegenkomt.  Zo vind je bijvoorbeeld in alarminstallaties, worden ze veel gebruikt in bedrijfspanden om de verlichting te schakelen, maar ook zitten ze sommige van die chemische luchtverfrissers voor in huis.

Deze sensoren kun je eventueel rechtstreeks op een relais aansluiten om op deze wijze een eenvoudige bewegingssensor te maken die rechtstreeks een apparaat of lamp kan schakelen.

Uiteraard kun je genoeg kant en klare alternatieven krijgen zoals bijvoorbeeld de Klikaanklikuit AWST-6000 welke via Radio Frequentie communiceert met je Smart Home.  Of de eenvoudigere PIR sensor welke direct je apparaat aanstuurt zoals onderstaande PIR sensor welke op de plaats van je wandschakelaar kunt toepassen of een plafond PIR sensor mocht je wat rigoureuzer aan de slag willen.

 

PIR Sensor met WiFi

Maar vandaag bouwen wij een wat complexere PIR, namelijk eentje die via WiFi verbinding maakt met Homey. Nu had ik eigenlijk de verwachting dat een dergelijke sensor vrij eenvoudig zou zijn om te maken, dit viel echter behoorlijk tegen.

Allereerst was het een heel gepuzzel om de status van de sensor op Homey tevoorschijn te krijgen, nadat dit eindelijk gelukt was bleken de meeste voorbeeld codes die ik op internet had gevonden vast te lopen binnen een paar minuten tot paar uur.

Na veel proberen heb ik echter een stuk code gevonden op Instructables.com en dit lijkt vooralsnog de gouden formule, eenvoudige code die doet wat het doen moet en nog belangrijker, ook blijft doen.Totale kosten van dit alles bedragen nog geen € 5,- en een paar minuten van je tijd.

 

De benodigdheden:

 

Ook nodig maar enkel op de boel eenmalig te configureren, een computer of laptop met daarop geïnstalleerd:

 

 

ESP8266 ESP-12 NodeMCU Lua WiFi

 

AliExpress.com Product – WeMos D1 mini , WiFi board  met ESP8266 intergratie  + 32Mb flash

 

Passive Infrared Sensor – Gevonden op AliExpress.com  | Thuisbezorgd en al voor €0,70 

 

5 stuks Soldeerloze Prototype Breadboard 170 Tie-points PCB Test Board – Gevonden op AliExpress.com | Thuis bezorgd en al voor €1,60 

10 stuke LED en 40 stuks diverse weerstanden  – Gevonden op AliExpress.com | Gratis thuisbezorgd voor nog geen € 0,63 

 

Aansluitschema

Volg onderstaand schema op de sensor aan te sluiten aan je board. Onderstaand plaatje ie een Arduino Uno maar aansluiten op een ESP8266 NodeMCU  of D1 Mini is nagenoeg hetzelfde, voltage werkt ook op 3.3V.

 

PIR aansluitschema zoals gebruikt bij de oorsponkelijke code op Intstructables.com | Huisvanvandaag.nl

Aansluitschema zoals gebruikt bij de oorsponkelijke code op  https://www.instructables.com/id/Interface-PIR-Sensor-With-NodeMCU/

Code 

Uploaden gaat via Arduino IDE, mocht je hier niet bekend mee zijn lees dan hier voor een uitgebreide handleiding.

Zorg dat je bij instellingen in Arduino IDE het juiste board hebt geselecteerd en dat je op 9600 baud de code upload.  Mocht je ESP8266 board niet werken dan kun je proberen deze eerste te flashen met de NodeMcu Flasher.

Vul in de code uiteraard weer je eigen netwerk naam en wachtwoord in en de gewenste naam voor je PIR sensor.

 

// Code aangepast voor Homeyduino door Domoticablog http://huisvanvandaag.nl. 
// Kijk op de site voor meer Homeyduino en andere Smart Home gerelateerde posts.
// Originele code zie: https://www.instructables.com/id/Interface-PIR-Sensor-With-NodeMCU/
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>
int Status = 12; //D6
int sensor = 13; //D7
void wifi() {
if (WiFi.status() != WL_CONNECTED) {
WiFi.begin("SSID", "PASSWORD");
uint8_t timeout = 30;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (timeout<1) break;
}
if (WiFi.status() == WL_CONNECTED) {
//Print IP address
Serial.print("Verbonden met WiFi! (");
Serial.print(WiFi.localIP());
Serial.println(")");
}
}
}
void setup() {
Serial.begin(9600);
Homey.begin("PIR sensor");
Homey.setClass("sensor");
Homey.addCapability("alarm_motion");
pinMode(sensor, INPUT); // declare sensor as input
pinMode(Status, OUTPUT);  // declare LED as output
}
void loop(){
wifi();
Homey.loop();  
long state = digitalRead(sensor);
delay(5000); // was 1000
if(state == HIGH){
digitalWrite (Status, HIGH);
Homey.setCapabilityValue("alarm_motion", (true));
Serial.println("Motion detected!");
}
else {
digitalWrite (Status, LOW);
Homey.setCapabilityValue("alarm_motion", (false));
Serial.println("Motion absent!");
}
}
PIR sensor Homeyduino met LED

 

Heb je liever de de bewegingssensor zonder LED lampje, gebruik dan onderstaande code:

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>
int sensor = 13; //D7
void wifi() {
if (WiFi.status() != WL_CONNECTED) {
WiFi.begin("Newstreet_TuinWIFI", "@nk@13j@@r");
uint8_t timeout = 30;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (timeout<1) break;
}
if (WiFi.status() == WL_CONNECTED) {
//Print IP address
Serial.print("Verbonden met WiFi! (");
Serial.print(WiFi.localIP());
Serial.println(")");
}
}
}
void setup() {
Serial.begin(9600);
Homey.begin("PIR sensor");
Homey.setClass("sensor");
Homey.addCapability("alarm_motion");
pinMode(sensor, INPUT); // declare sensor as input
}
void loop(){
wifi();
Homey.loop();  
long state = digitalRead(sensor);
delay(5000); // was 1000
if(state == HIGH){
Homey.setCapabilityValue("alarm_motion", (true));
Serial.println("Motion detected!");
}
else {
Homey.setCapabilityValue("alarm_motion", (false));
Serial.println("Motion absent!");
}
}
PIR code zonder LED lampje

Testen

Nu het je gelukt is om de code te uploaden gaan we deze meteen testen. Dit doen we  door de Seriële Monitor in Arduino IDE te openen, klik hiervoor op Hulpmiddelen en dan Seriële Monitor of gebruik de sneltoets CTRL+SHIFT+M.

Via de seriële monitor krijg je nu dus de mededeling: Motion detected! wanneer beweging word gedetecteerd of de mededeling: Motion absent! wanneer dit niet het geval is. In onze huidige setup zit er ook een LED lampje welke gaat branden wanneer er beweging is en uitschakelt wanneer dit niet het geval is.

 

We testen de PIR sensor via de seriële monitor. Hier kun je zien of er al dan niet beweging is gedetecteerd | Huisvanvandaag.nl

We testen de PIR sensor via de seriële monitor. Hier kun je zien of er al dan niet beweging is gedetecteerd.

 

Wanneer dit goed werkt kun je door naar de volgende stap, namelijk het koppelen aan Homey. Mocht je niet weten hoe, volg dan onderstaande stappen.

 

Klik op de + en vervolgens op Homeyduino om een nieuwe sensor toe te voegen | Huisvanvandaag.nl

Klik op de + en vervolgens op Homeyduino om een nieuwe sensor toe te voegen.

 

Met Homeyduino maak je eenvoudig en goedkoop je eigen Smart Home sensoren, bijvoorbeeld bewegingssensoren, hygrometer, thermometers en nog veel meer | Huisvanvandaag.n,

Hier vind je een overzicht van je Homeyduino sesnoren. Kies de PIR sensor

 

Met Homeyduino maak je eenvoudig en goedkoop je eigen Smart Home sensoren, bijvoorbeeld bewegingssensoren, hygrometer, thermometers en nog veel meer | Huisvanvandaag.n,

Hier zie je de PIR sensor, deze heeft twee standen: Ja, beweging en Nee, geen beweging

 

Met Homeyduino maak je eenvoudig en goedkoop je eigen Smart Home sensoren, bijvoorbeeld bewegingssensoren, hygrometer, thermometers en nog veel meer | Huisvanvandaag.n,

VIa Homey Inzichten kun je controleren of dat je bewegingssensor inderdaad goed werkt. Hier vind je een inzichtelijk wanneer de sensor beweging heeft waargenomen.

 

Nu heb je een werkende bewegingssensor voor een fractie van de prijs, waarmee je veel meer kunt. Bouw op goedkope wijze je eigen alarminstallatie.

Of bespaar eenvoudig op je energiekosten door alle lampen in je huis uit te schakelen wanneer er niemand in de kamer is. Nog mooier is het echter wanneer je meerdere sensoren in één propt waardoor je een multi-sensor maakt.

De volgende stap: Multi-sensor voor Homeyduino

Deze Multi-sensor word dan ook de volgende stap, in een toekomstige post zullen we deze sensor combineren met de reeds eerder gemaakte Homeyduino sensoren om zo een multi-sensor te bouwen.

Eén die naast beweging ook temperatuur en de luchtvochtigheid kan meten of een combi tussen de bewegingssensor en de schemersensor.

De mogelijkheden zijn vrijwel eindeloos maar voor een paar euro bouw je je eigen sensor die je huis automatiseert, energiekosten bespaard, je huis beveiligd wanneer je er niet bent en je binnenklimaat monitort.

Heb je zelf nog bijzondere doeleinden of ideeën voor dergelijke sensoren? Laat het me dan weten. Neem eenvoudig contact met me op. 

 

Maak je eigen WiFi Waterthermometer (DS18B20 + Homeyduino)

 Bouw je eigen watertemperatuur of gewone thermometer die je via WiFi uit kunt lezen en zelfs als trigger kunt gebruiken voor Homey. 

Na lang proberen en experimenteren is het vandaag eindelijk gelukt om een zelfbouw WiFi Waterthermometer te maken. Vandaag is dit zelfbouw project eindelijk tot voltooiing gekomen, ruim twee maanden geleden was ik hier al aan begonnen maar toentertijd liep ik tegen wat problemen aan,  vooral met coderen.  Vandaag vanwege het druilige weer dit project toch maar weer opgepikt en tot mijn grote verbazing lukte het zowaar ineens.

Via Homey Insights laat Homey  straks hopelijk een mooi temperatuur verloop te zien met fluctuaties gedurende het jaar. Ook kun je op deze manier gemakkelijk bij  houden wanneer de watertemperatuur hoog genoeg is zodat de Koi eventueel gaan paaien. Deze temperatuur kun je bijvoorbeeld ook als trigger instellen in Homey zodat je een berichtje ontvang op mijn telefoon wanneer het zo ver is.

Dit project na te maken kost je hooguit 15 minuten van je tijd en met totale kosten van amper € 5,- inclusief bezorging, slaat het ook geen deuk in je budget.

Hieronder lees je wat je nodig hebt en hoe je het aansluit.

Normale thermometer of thermometer met hygrometer

Met onderstaande code kun je ook een normale thermometer maken, volg dan alle stappen zoals hieronder beschreven, op het in het water gooien na dan. Mocht je liever een thermometer en luchtvochtigheidssensor (hygrometer) in één bouwen? Lees dan hier verder. 

De WiFi Waterthermometer hangt in de plantenbak en is op Homey of telefoon uit te lezen. | Huisvanvandaag.nl

Vijver WiFI waterthermometer die via Homey uit te lezen is

Een overzicht van alle Homeyduino projecten, vind je hier.

De benodigdheden:

 

Ook nodig maar enkel op de boel eenmalig te configureren, een computer of laptop met daarop geïnstalleerd:

 

 

ESP8266 ESP-12 NodeMCU Lua WiFi

 

AliExpress.com Product – WeMos D1 mini , WiFi board  met ESP8266 intergratie  + 32Mb flash

 

DS18b20 Waterbestendige DS18b20  temperatuur sensor gevonden opAliExpress.com Product  | Thuisbezrogd en al voor nog geen € 1,-

 

5 stuks Soldeerloze Prototype Breadboard 170 Tie-points PCB Test Board – Gevonden op AliExpress.com | Thuis bezorgd en al voor €1,60 

 

100PCS 1/4W Watt 10K ohm 10K Metal Film Resistor 0.25W 1% ROHS High Quality  – Gevonden op AliExpress.com | Gratis thuisbezorgd voor nog geen € 0,63 

 

 

Aansluiten

Volg onderstaand schema op de sensor aan te sluiten aan je board. Onderstaand plaatje ie een Arduino Uno maar aansluiten op een ESP8266 NodeMCU  of D1 Mini is nagenoeg hetzelfde, voltage werkt ook op 3.3V.

 

Aansluitschema DS18B20 sensor op Arduino board | Huisvanvandaag.nl

Aansluitschema DS18B20 sensor op Arduino board gaat nagenoeg hetzelfde op een ESP8266

 

DS18B20 sensor aangesloten en getest | Huisvanvandaag.nl

DS18B20 sensor aangesloten en klaar om te testen

Code 

Onderstaand de code zoals ik deze zelf heb samengesteld uit reeds beschikbare code voor Arduino en Homeyduino. Het werkt naar behoren maar aangezien ik, als leek, zelf weinig tot geen ervaring met coderen heb kan dit hoogstwaarschijnlijk efficiënter.

Mocht je deze kennis wel hebben en suggesties hebben, laat het me dan weten!  Uploaden gaat via Arduino IDE, mocht je hier niet bekend mee zijn lees dan hier voor een uitgebreide handleiding. Zorg dat je bij instellingen in Arduino IDE het juiste board hebt geselecteerd en dat je op 115200 baud de code upload.  Mocht je ESP8266 board niet werken dan kun je proberen deze eerste te flashen met de NodeMcu Flasher.

 

// Code aangepast voor Homeyduino door Domoticablog http://huisvanvandaag.nl. 
// Kijk op de site voor meer Homeyduino en andere Smart Home gerelateerde posts.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS D3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float Celcius=0;
float Fahrenheit=0;
void wifi() {
if (WiFi.status() != WL_CONNECTED) {
WiFi.begin("<SSID>", "<PASSWORD>");
uint8_t timeout = 30;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (timeout<1) break;
}
if (WiFi.status() == WL_CONNECTED) {
//Print IP address
Serial.print("Verbonden met WiFi! (");
Serial.print(WiFi.localIP());
Serial.println(")");
}
}
}
void setup(void){
Serial.begin(115200); //verandrt van 115200 in 9600
Homey.begin("SENSOR NAAM");
Homey.setClass("sensor");
Homey.addCapability("measure_temperature");
}
void loop(void)
{ 
wifi();
Homey.loop();
// unsigned long currentMillis = millis();
sensors.requestTemperatures(); 
Celcius=sensors.getTempCByIndex(0);
Fahrenheit=sensors.toFahrenheit(Celcius);
Serial.print(Celcius);
Serial.print (" C ");
Homey.setCapabilityValue("measure_temperature", (int) Celcius); 
delay(1000);
}
WiFi (Water)Thermometer

 

Testen

Nadat het je gelukt is om de code te uploaden gaan we deze meteen testen. Hang de sensor in een glas water en open de Seriële Monitor in Arduino IDE, klik op Hulpmiddelen en dan Seriële Monitor of sneltoets CTRL+SHIFT+M.

Vervolgens opent er een scherm waarop je de waardes van de sensor uit kunt lezen. Zie je waardes die niet lijken te kloppen zoals bijvoorbeeld -126 of iets dergelijks dan moet de code even opnieuw uploaden.

 

Hier lees je de waardes van je zojuist gemaakte sensor uit. | Huisvanvandaag.nl

Hier lees je de waardes van je zojuist gemaakte sensor uit.

 

 

Klik op de + en vervolgens op Homeyduino om een nieuwe sensor toe te voegen | Huisvanvandaag.nl

Klik op de + en vervolgens op Homeyduino om een nieuwe sensor toe te voegen.

 

Kies de juiste sensor | Huisvanvandaag.nl

Kies de juiste sensor en klik op volgende

 

Als alles goed is gegaan verschijnt nu de sensor en kun je deze dus ook via Homey uitlezen | Huisvanvandaag.nl

Als alles goed is gegaan verschijnt nu de sensor en kun je deze dus ook via Homey uitlezen

 

DS18B20 sensor in doos bij de vijver | Huisvanvandaag.nl

Nu de boel binnen is getest en werkt, word het tijd om de boel buiten te bevestigen.

 

DS18B20 sensor in dichte doos | Huisvanvandaag.nl

DS18B20 sensor in (spatwater?)dichte doos bij vijver met de voeler in het water van de plantenbak.

 

En Voilà 

Je zelf gemaakte Wifi Waterthermometer is nu klaar en kan overal ter wereld via internet uitgelezen worden of desgewenst zelfs als trigger gebruikt worden in je Homey flows. Zoals hierboven al aangegeven gebruik ik hem voor het uitlezen van de vijver. Wat voor toepassingen kan jij bedenken voor deze handige WiFi thermometer, laat het me weten.

 

De WiFi Waterthermometer hangt in de plantenbak en is op Homey of telefoon uit te lezen. | Huisvanvandaag.nl

De WiFi Waterthermometer hangt links achter in de plantenbak en is via Homey of  telefoon uit te lezen.

 

© 2018 Huisvanvandaag.nl

Theme by Anders NorenUp ↑

Translate »