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 komt, kost hij toch bijna € 60 per stuk. Ons Doe-Het-Zelf hobby project is voor een fractie van deze kosten zelf te maken is.
Hieronder vind je een overzicht van de benodigdheden voor dit project, de code en een aansluitschema.
De benodigdheden:
- Microcontroller met WiFi, bijvoorbeeld: ESP8266 NodeMcu of D1 Mini NodeMcu
- Micro USB Oplader
- Passive Infrared Sensor (PIR)
- DHT11 Luchtvochtigheid en temperatuursensor
- LDR Sensor of kant en klare LDR sensor met weerstand en potentiometer
- Breadboard
- LED’s en diverse weerstanden
- Homey Smart Home HUB met Homeyduino app geinstalleerd
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
Passive Infrared Sensor – Gevonden op AliExpress.com | Thuisbezorgd en al voor €0,70

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:
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.

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.
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).
Sketch uploaden
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.
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.

Homeyduino sensoren koppelen in Homey 2.0? Hoe je dat doet lees je hier!
Onderstaande manier geldt enkel voor Homey 1.0:
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.
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.
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.
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.


Wat voor slimme toepassingen kun jij nog bedenken met een dergelijke sensor? Of heb je deze ook gemaakt maar dan met een fraaiere afwerking? Laat het me weten.
Super omschrijving, ik heb alles aangesloten en aangepast om te kunnen schrijven. Ik helaas de board niet vinden zoals je het omschreven hebt. Kan je me daarmee op weg helpen?
Hey Bob, mooi dat het (bijna) allemaal goed gelukt is.
Kijk even dit filmpje op Youtube: https://www.youtube.com/watch?v=mBaS3YnqDaU
En de links die je moet plakken kun je hier kopiëren:
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
Hopelijk lukt het nu, laat het even weten.
Mvg,
Mike
Mike!
Super happy, dat was de oplossing. File geschreven en gekoppeld aan Homey!
Luchtvochtigheid, temperatuur en helderheid werken perfect. Alleen het bewegingsalarm blijft in Homey (en ook in de monitor van Arduino) continu beweging detecteren. Ook als er geen beweging is en ook na het loskoppelen van de bewegingssensor.
Mooi dat het zover al gelukt is. Die PIR sensor is een kwestie van even goed afstellen, dat kan op de sensor zelf.
Let er wel op dat het ongeveer een 30-60 seconden duurt voordat de sensor echt naar behoren werkt, in die tijd kun je het. Zie dit als een soort calibratie, in deze tijd kun je het beste zorgen dat er weinig tot geen beweging gedetecteerd word.
Hopelijk kun je hier wat mee.
Hoi Aaron,
Uit de foutcode denk ik op te maken dat, zoals code zelf aangeeft, je meerdere bibliotheken hebt met dezelfde naam.
Navigeer even naar de volgende mappen op je computer:
– /Users/mijnnaam/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/libraries/ESP8266WiFi
– /Users/mijnnaam/Documents/Arduino/libraries/Homeyduino
– /Users/mijnnaam/Documents/Arduino/libraries/SimpleDHT
En kijk of hier inderdaad meerdere bestanden eindigend op .h met dezelfde naam staan.
Indien dit het geval is kun je deze even knippen en opslaan in een aparte map, zodat je overal nog maar één bestand van hebt staan.
Probeer nu even opnieuw te uploaden.
Succes en laat even weten of het gelukt is.
Mvg,
Mike | Huisvanvandaag.nl
Hoi Mike wat is de waarde van de gebruikte weerstand ? of lees ik ergens overheen ?
Hoi Henk, de weerstand is overbodig. Hier in huis functioneert het al bijna twee jaar zonder, denk dat deze erin is geslopen tijdens het betere kopieer en plakwerk.
Hi, mooie tutorial. Ik gan denk ik binnenkort de bedrade sensoren van mij defecte alarmsysteem maar eens nieuw leven in blazen. Derhalve een vraag over ‘capabilities’. Is het zo dat je mbv de Homeyduino library per ‘capability’ maar een enkele sensor kunt gebruiken (zie: “Homey.addCapability(“alarm_motion”);”)? Ik stel deze vraag omdat ik 10+ sensoren van de capability “Tamper Alarm” heb en ik deze het liefst allen met een enkele Arduino Mega wil enablen voor de Homey. Op de developer website van Athom zie ik dat “Tamper Alarm” de property “title” heeft. Is deze zelf te zetten in de Arduino code? Dit zou betekenen dat het mogelijke probleem welke ik beschrijf er niet is.
Hey Robert,
Mooi project om je bestaande installatie zo een tweede leven te geven.
Zolang je de sensoren naast de ID naam: alarm_tamper allemaal een unieke naam geeft (bijvoorbeeld: alarm sensor 1, alarm sensor 2, etc.) zou dit moeten werken. Je Arduino Mega weet dan welke input langs welke sensor binnen komt en de naam die je eraan hangt is vervolgens de sensor naam zoals Homey deze leest en dus uniek per alarm sensor. Mocht je er niet aan uit komen wil ik graag een keer meekijken naar je code.
Succes en laat met weten hoe het gaat!
What does the finished sensor look like?
Have you ever been able to to have more than one of the same sensors in a HomeyDuino?
Hey Konrad,
You can have a multitude of the same sensors in Homeyduino, as long as you give them all different names. but you have to change the name beforehand in the Arduino sketch, before you upload.
If you try to change the name on Homey itself it probably won’t work.
I will update the article with a picture of my completed sensor, just don’t expect to much of it, since I still don’t have a 3D printer.