Sinds 2021 heeft IKEA luchtkwaliteit sensors in het assortiment. Ze waren een tijd lang slecht leverbaar, maar zijn nu volop verkrijgbaar. Ik wilde al een tijdje een PM2.5 sensor in Home Assistant hebben dus heb ik vorige week een VINDRIKTNING gehaald en aangepast zodat de sensor werkt met Home Assistant. Dat heb ik gedaan met behulp van een Wemos D1 mini en ESPHome.
De VINDRIKTNING luchtkwaliteitsensor meet fijnstof in de ruimte waar hij staat. Fijnstof zijn zeer kleine (schadelijke) deeltjes in de lucht. Fijnstof wordt gemeten aan de hand van de diameter van de deeltjes en uitgedrukt op de PM (particulate matter) schaal. PM10 zijn de grootste deeltjes fijnstof van 10 micrometer groot, dan komt PM2.5 met deeltjes van 2.5 micrometer en als laatste is er ultra-fijnstof met een diameter van 0.1 micrometer.
De luchtkwaliteitssensor van de IKEA meet PM2.5 fijnstof en is dus zeer bruikbaar in huis. We integreren de sensor in Home Assistant en kunnen dus direct de mechanische ventilatie of een luchtreiniger aanzetten zodra er te veel fijnstof in huis aanwezig is. Dan moeten we er wel eerst voor zorgen dat Home Assistant de PM2.5 waarden kan ontvangen. Dat doen we door de VINDRIKTNING sensor te ‘modden’ met een Wemos D1 mini.
Benodigde tijd: 1 uur
Het stappenplan voor het maken van een PM2.5 luchtkwaliteitssensor op basis van een Wemos D1 mini in cominatie met ESPHome en Home Assistant in het kort:
- Flash ESPHome
We gaan ESPHome op een Wemos D1 mini flashen met code die de sensor uitleest.
- Modificatie van de VINDRIKTNING
Schroef de VINDRIKTNING open en soldeer draden tussen de Wemos D1 mini en de prints in de VINDRIKTNING
- Verbinden met Home Assistant
Schroef de VINDRIKTNING weer dicht nadat je de Wemos in de behuizing geplaatst hebt. De ESPHome integratie ontdekt een nieuwe sensor. Voeg de PM25 sensor toe aan je lovelace dashboards.
ESPHome PM25 sensor maken
Op de Wemos D1 mini gaan we ESPHome flashen. Dit doen we vóór de aanpassing van de VINDRIKTNING sensor, zodat we straks de Wemos in de VINDRIKTNING kunnen plaatsen en daarna weer direct dicht kunnen schroeven.
Maak om te beginnen in ESPHome een New Device aan door rechtsonderin op New Device te klikken.
Geef het apparaat een naam. Ik heb gewoon gekozen voor VINDRIKTNING. Sluit de Wemos met de USB kabel aan op je PC.
Vervolgens gaat ESPHome de firmware voorbereiden en vraagt het op welke COM-poort je de Wemos D1 mini aangesloten hebt. De installatie wordt voorbereid, dit kan best een paar minuten duren.
Wanneer het voorbereiden klaar is, kun je de code die nodig is om de sensor uit te lezen plakken in het code venster.
esphome: name: vindriktning esp8266: board: d1_mini # Enable logging logger: # Enable Home Assistant API api: ota: password: "5bdf647f04f7dc47baf234629a4daa28" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Vindriktning Fallback Hotspot" password: "S4oy3YqnjIa5" captive_portal: # Example configuration entry uart: rx_pin: D2 baud_rate: 9600 sensor: - platform: pm1006 pm_2_5: name: "Ikea Vindriktning PM25"
De code maakt gebruik van het secrets bestand voor het veilig opslaan van je Wifi gegevens. Sla de code op en zorg ervoor dat je wifi gegevens juist zijn in het secrets bestand voordat je op INSTALL klikt. Het secrets bestand kun je in ESPHome aanpassen door te klikken op Secrets rechtsboven in het hoofdscherm van ESPHome. Zodra je op INSTALL hebt geklikt wordt de code gecompileerd en op de Wemos D1 mini geflashed.
ESPHome PM2.5 sensor in Home Assistant
Na het installeren start de Wemos opnieuw op en maakt hij verbinding met Home Assistant. In je integratiesoverzicht zie je nu dat de Wemos met de naam vindriktning is ontdekt. Klik op configureer en pas de gewenste instellingen toe. Aangezien de werkelijke sensor nog niet is aangesloten komen er nog geen waarden door. In de volgende stap sluiten we de sensor aan op de Wemos. Je weet nu dat de Wemos werkt en klaar is om aan te sluiten.
Aanpassen van luchtkwaliteitssensor
Deze ‘mod’ is heel makkelijk te realiseren. Aan de achterkant van de VINDRIKTNING zitten 4 schroefjes. Wanneer je deze losdraait met een kleine schroevendraaier zie je binnenin een pcb’jte met daarop twee aangesloten stekkers.
Haal de stekkertjes los en schroef het printplaatje uit de behuizing. Bovenaan de print zie je 5 soldeereilandjes. Met onder andere de teksten 5V, GND en REST.
Soldeer aan de soldeereilandjes met de tekst 5V, GND en REST een draad. Ik gebruik voor dit soort klusjes de aders van een oude UTP kabel. Pak vervolgens de zojuist voorbereidde Wemos D1 mini erbij.
Wemos D1 mini in luchtkwaliteitssensor
Soldeer de draden van de VINDRIKTNING aan de Wemos D1 mini. 5V gaat 5V, GND gaat naar G en de draad aan REST gaat naar D2 van de Wemos D1 mini.
Wanneer je tijdens het luisteren het geluid van de fan hinderlijk vond, kun je nu de rode draad naar het kleine stekkertje doorknippen. Het uiteinde naar de fan soldeer je vast aan de 3.3v aansluiting van de Wemos. Dit heb ik later pas gedaan, dus staat het niet op de foto’s.
Nu kun je de printplaat van de VINDRIKTNING weer vastschroeven op de behuizing en de stekkers weer aansluiten. De Wemos D1 mini past precies tussen de USB-C aansluiting en de fan van de sensor. Plaats de Wemos wel over de breedte van de behuizing, anders krijg je de behuizing niet meer dichtgeschroefd.
Sluit de USB-C kabel aan op de VINDRIKTNING en de sensor moet weer werken zoals voor de ‘mod’. Als je nu naar Home Assistant gaat en je de sensor bekijkt, zie je dat er PM2.5 waarden binnenkomen.
Schroef de behuizing weer dicht en plaats de sensor op de plek waar je fijnstof wilt meten. Bijvoorbeeld in de keuken of woonkamer zodat je Home Assistant je mechanische ventilatie kunt schakelen op basis van de luchtkwaliteit.
Het werkt!
Je kunt nu voor minder dan € 20 de luchtkwaliteit in je huis meten. Je kunt hiermee serieuze gezondheidsrisico’s voorkomen door meer te ventileren bijvoorbeeld. Meten is weten, wellicht kom je er zo wel achter dat de luchtkwaliteit in je huis niet zo goed is als je dacht. Als dat het geval is kun je de lucht in je ruimte filteren met een luchtreiniger.
Inspiratie voor dit artikel komt van deze blogpost.
UPDATE: Afwijking in meetwaarden
Het is mij nu al een aantal keer opgevallen dat na een langere tijd de VINDRIKTNING te hoge waarden doorgeeft. Er lijkt een offset naar boven in te zitten. Op onderstaande screenshot zie je wat ik bedoel.
Om 6:00 heb ik handmatig de VINDRIKTNING van de stroom gehaald en weer spanning gegeven. Je ziet de grafiek direct met circa 20ug/m3 inzakken. Hoe dit ontstaat, geen idee.
Een mogelijke workaround kan zijn eens per week de sensor met een slimme stekker even resetten. Een reboot lost het probleem helaas niet op.
Hoi, je post kwam precies op de dag dat ik zo’n sensor bij IKEA had opgehaald. Met wat solderen is het snel gelukt. Je soldeerwerk zou je wat kunnen verbeteren door na het strippen van de isolatie van de draadjes de aders te twisten en dan de uiteinden te vertinnen. (heet maken en een beetje soldeer, dan kunnen de koperdraadjes niet alle kanten op gaan staan) Dan een vertinde einde door het gaatje van de WEMOS doen en vast solderen. De isolatie van de draad komt dan helemaal tot aan de print van de WEMOS. Na solderen uitstekende draad afknippen. (gebruik als het even kan zwart voor ground, rood voor 5 volt)
bedankt voor je post en groeten van Pino
Hey Pino,
Bedankt voor je reactie en je tips!
Groet Wouter
Wat een geweldige post !
Net als al je ander posts, zeer informatief maar ook heel duidelijk en begrijpbaar.
Onze oude meter heeft net de geest gegeven, dus ik ben op zoek naar een alternatief.
Ik heb er net 2 bij Ikea gehaald en gelijk de schroevendraaier er in ?
Weet je dat het binnenwerk niet vast zit, en je dat er dus (voorzichtig) compleet met Fan eenvoudig uit kunt halen en weer terug kunt plaatsen.
Verder heb ik een vraagje.
Ik ben nogal nieuw met ESP’s maar aangezien er nogal wat ruimte aan de bovenkant beschikbaar is zou ik daar graag een DHT22 oid willen plaatsen.
Is dat realistisch?
Alvast dank voor de reactie.
Beste Flanders,
Bedankt voor je complimenten en leuke reactie. Ik wist niet dat het binnenwerk er compleet uit kon. Goed dat je het zegt, wellicht helpt het andere lezers hier.
Je kunt eenvoudig een DHT22 bijplaatsen op dezelfde Wemos D1 mni. In esphome even de juiste code en de juiste pin configureren. Via de esphome docs kom je daar wel uit. Ik twijfel wel aan de accuraatheid van de DHT22 sensor in de behuizing van de VINDRIKTNING. Ik zou ‘m er altijd buiten plaatsen.
Groet Wouter
Top,
Leuk om eens in te duiken.
Mijn belangrijkste vraag is inderdaad of het aansluiten op dezelfde Wemos gaat lukken.
Ik zal mijn bevindingen hier zeker plaatsen.
Ik heb deze hack ook uitgevoerd, het werkt helemaal goed, tnx!
Ik had nog een BME280 liggen (temp, luchtvochtigheid en barometer via i2c) ik heb deze in het bovenste stuk van de behuizing, in de luchtaanvoer gehangen. Ik verwacht eigenlijk dat deze door de fan nog beter werkt dan in de open lucht.
De fan heb ik met zowel rood als zwart op de esp aangesloten, daardoor draait ‘ie nu permanent maar wel zachtjes. Ik vond het continu stoppen en starten van de fan misschien nog wel vervelender dan het geluid van de fan zelf.
Hey Pelle,
Bedankt voor je leuke toevoeging! Leuk ook voor andere lezers om te overwegen een BME280 toe te voegen.
Groet Wouter
Deze toepassing ook gebouwd en een BME280 en een MHZ19 (CO2) in het Ikea kastje weggewerkt. (is “priegelen”, maar lukt goed).
Bij mij blijft de stofmeting vrij constant, maar aan de lage kant.
De eigen warmte van de BME is via een offset in Tasmota mee te geven erg nauwkeurig te compenseren.
Hoi Wouter,
Het naar beneden “vallen” van de waarde die je aan het einde beschrijft is te verklaren door het kalibreren van de sensor. Waarschijnlijk heeft de sensor een standaard waarde als deze aan wordt gezet en past deze, gedurende de metingen, zichzelf aan.
Stel: schone lucht is 20. Bij het aanzetten zal de sensor uitgaan van schone lucht en de gemeten waarde op 20 zetten. Zou de sensor nu gedurende de dag bijvoorbeeld ineens 15 meten, dan kan deze zichzelf aanpassen en de gemeten waarde van dat moment zetten op 20 (waardoor alle andere metingen hoger uitvallen). Op die manier past de sensor zich gedurende de dag aan.
Ditzelfde kan je doen bij bijvoorbeeld de CCS811 sensor: https://esphome.io/components/sensor/ccs811.html (met ook een stuk uitleg hierover in het Engels.
Hoi Ap,
Dat is interessant! Bedankt voor je toevoeging!
Zo te zien heeft de pm1006 sensor in de VRINDRIKTING geen ondersteuning voor deze kalibratie helaas. Maar ik begrijp nu wel meer waarom de sensor dit gedrag vertoont.
Groet Wouter