{"id":14963498,"url":"https://github.com/hypfer/esp8266-vindriktning-particle-sensor","last_synced_at":"2025-05-16T08:07:03.540Z","repository":{"id":45198944,"uuid":"385972151","full_name":"Hypfer/esp8266-vindriktning-particle-sensor","owner":"Hypfer","description":"Wifi MQTT Data Logging via an esp8266 for the Ikea VINDRIKTNING PM2.5 air quality sensor","archived":false,"fork":false,"pushed_at":"2023-09-30T14:35:13.000Z","size":363,"stargazers_count":1213,"open_issues_count":37,"forks_count":130,"subscribers_count":40,"default_branch":"master","last_synced_at":"2025-05-16T08:06:56.334Z","etag":null,"topics":["ikea","mqtt","smarthome"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hypfer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":"hypfer","ko_fi":"hypfer"}},"created_at":"2021-07-14T14:37:31.000Z","updated_at":"2025-05-07T02:31:35.000Z","dependencies_parsed_at":"2024-03-17T05:42:24.026Z","dependency_job_id":"ec8e2aa3-fd0b-4ce5-ad91-540fd38b2bf6","html_url":"https://github.com/Hypfer/esp8266-vindriktning-particle-sensor","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hypfer%2Fesp8266-vindriktning-particle-sensor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hypfer%2Fesp8266-vindriktning-particle-sensor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hypfer%2Fesp8266-vindriktning-particle-sensor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hypfer%2Fesp8266-vindriktning-particle-sensor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hypfer","download_url":"https://codeload.github.com/Hypfer/esp8266-vindriktning-particle-sensor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493385,"owners_count":22080127,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ikea","mqtt","smarthome"],"created_at":"2024-09-24T13:31:42.075Z","updated_at":"2025-05-16T08:06:58.530Z","avatar_url":"https://github.com/Hypfer.png","language":"C++","funding_links":["https://github.com/sponsors/hypfer","https://ko-fi.com/hypfer"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ch2\u003eMQTT connectivity for the Ikea VINDRIKTNING\u003c/h2\u003e\u003c/p\u003e\n\n\nThis repository contains an ESP8266 firmware, which adds MQTT to the Ikea VINDRIKTNING PM2.5 air quality sensor.\nThe modification  doesn't interfere with normal operation of the device in any way.\nThe ESP8266 just adds another data sink beside the colored LEDs.\n\n![half_assembled](./img/half-assembled.jpg)\n\nHome Assistant Autodiscovery is supported.\nFurthermore, the WifiManager library is used for on-the-fly configuration.\nAlso, ArduinoOTA is used, so that firmware updates are possible even with a reassembled device.\n\nAs the ESP8266 is 5V-tolerant, this should there shouldn't be any issues, however I haven't had time to test this for longer periods of time.\nTherefore, if the ESP burns out after a while, just add a voltage divider or something.\n\n## Prerequisites\n\nTo extend your air quality sensor, you will need\n\n- An ESP8266 with a 5v voltage regulator (e.g. a Wemos D1 Mini)\n- Some short dupont cables\n- A soldering iron\n- A long PH0 Screwdriver (e.g. Wera 118022)\n\nFortunately, there is a lot of unused space in the enclosure, which is perfect for our ESP8266.\nAlso, everything we need is accessible via easy to solder testpoints.\n\n## Hardware\n\nTo install the ESP8266, you need to unscrew the four visible screws in the back of the enclosure.\n\nThen, there are also three screws holding the tiny PCB in place. These aren't necessary to remove since you can solder\nin-place, however personally, I'd recommend taking the board out of there since it will be easier to solder without fear\nof accidentally melting some plastic.\n\n![board](./img/board.jpg)\n\nAs you can see in this image, you'll need to solder wires to GND, 5V and the Testpoint that is connected to TX of the\nParticle Sensor.\n\nThen just connect these Wires to GND, VIN (5V) and D2 (if you're using a Wemos D1 Mini).\n\nDone.\n\n## Software\n\nThe firmware can be built and flashed using the Arduino IDE.\n\nFor this, you will need to add ESP8266 support to it by [using the Boards Manager](https://github.com/esp8266/Arduino#installing-with-boards-manager).\n\nFurthermore, you will also need to install the following libraries using the Library Manager:\n\n* ArduinoOTA 1.0.3\n* ArduinoJSON 6.10.1\n* PubSubClient 2.8.0\n* WiFiManager 0.15.0\n\n\nJust build, flash, and you're done.\n\nWhen connecting everything up, you should see an open Wi-Fi Access Point to configure your Wi-Fi and MQTT credentials.\n\n## Low-Noise Mod\n\n**Note:** The intent of this section is only to document that this is possible. I don't \"recommend\" doing this nor do I advise against it. \n\nAs you might've noticed, there's a fan in there, which is audible even multiple meters away.\n\nFor some reason, the Ikea uC firmware decides to toggle the fan on and off every minute \nor so causing the noise it makes to change and therefore it constantly stays noticeable.\n\nGood thing is that the Fan does spin up fine with just 3.3V, which means that we can run it constantly from the\nvoltage regulator of the D1 Mini.\n\nAt 3.3V its noise is barely noticeable from 50 cm away.\n\n![3.3v](./img/3.3v.jpg)\n\nHaving the Fan not connected at all was also tried but proved to mess up all readings completely.\n\n\nThis is of course a more invasive modification than just adding Wi-Fi data logging.\nThough, given that it is just a €10 device, I'm fine with that.\n\nTo make soldering a bit easier, note that the whole outer metal part of the Micro USB connector of the D1 Mini is\nconnected to GND.\n\n## Misc\n\nThe VINDRIKTNING consists of a custom(?) Cubic PM1006-like Sensor + another uC that does all that LED stuff, which talk\nvia UART. The uC simply regularly polls the sensor and displays the results.\n\nTherefore, to add Wi-Fi connectivity, we just need to also listen to the TX of the Sensor and decode those messages.\nThe Ikea uC will do all that polling stuff for us.\n\nAs reported in #16, the transitions from Green to Yellow and Yellow to Red in the Ikea firmware are at around 30 and 100μg/m³.\n\n## ToDo\n\nReconfiguration of a provisioned device without having to OTAU a firmware that clears the settings would be nice.\n\n\n## References and sources\n\n- [@haxfleisch](https://twitter.com/haxfleisch) for their teardown of the device.\n- [Gabriel Valky](https://github.com/gabonator) for the incredibly useful [LA104 custom firmware + tools](https://github.com/gabonator/LA104)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypfer%2Fesp8266-vindriktning-particle-sensor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhypfer%2Fesp8266-vindriktning-particle-sensor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypfer%2Fesp8266-vindriktning-particle-sensor/lists"}