Maak je eigen Licht Sensor (LDR + Homeyduino)

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.

Xiaomi  bewegings- en lichtsensor met ZigBee | gevonden op Aliexpress | thuisbezorgd en al voor nog géén € 15,-

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:

Geen tijd of geduld om op levering uit China te wachten? Conrad heeft het ook en levert direct vanuit Nederland!

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 https://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 9600 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.

Homeyduino sensoren koppelen in Homey 2.0? Hoe je dat doet lees je hier!

Onderstaande manier geldt enkel voor Homey 1.0
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.

Mike | Huisvanvandaag

4 reacties op “Maak je eigen Licht Sensor (LDR + Homeyduino)

Geef een reactie

Aanbevolen
Dit keer een combinatie van enkele eerder gemaakte sensoren, namelijk de DHT11 luchtvochtigheid en temperatuur…
Translate »