Hakowanie urządzeń IoT - czujnik stężenia cząstek stałych IKEA VINDRIKTNING

Hakowanie urządzeń IoT - czujnik stężenia cząstek stałych IKEA VINDRIKTNING

:warning: Zanim przejdziesz dalej

:stop_sign: Jeśli nie masz ochoty uczyć się i majsterkować a chciałbyś tylko “najtaniej podłączyć wszystko”… NIE CZYTAJ TEGO - w Internecie jest wiele ciekawszych rzeczy!.

Żeby zrozumieć dlaczego, opisuje jak zhakować dobrze działające urządzenie IKEA Vindriktning – przeczytaj proszę ten wpis:

Wprowadzenie

IKEA Vindriktning to niedrogi czujnik jakości powietrza z ładną obudową. Niestety wszytko co potrafi to wyświetlenie 3 kolorów - w stylu dobrze, średnio i źle:

Nie jest to miarodajne - nie znamy dokładnej wartości i nie da się na tej podstawie zrobić automatyzacji która uruchomi filtr powietrza w domu.

Ale dzięki temu projektowi:

https://github.com/Hypfer/esp8266-vindriktning-particle-sensors

Oraz dzięki temu, że Tasmota w najnowszym wydaniu, dodała sterownik do tego czujnika:

Możemy dodać odczyt danych czujnika za pomocą esp8266 do Asystenta domowego.

Budowanie binarki

Żeby dodać obsługę tego czujnika, trzeba dostosować ustawienia oprogramowania przed jego kompilacją - trzeba odkomentować te 3 linijki i zbudować kod który wgramy do urządzenia z esp8266.

Wg Tasmota, te 3 linijki pozwalają na dodanie obsługi czujnika stężenia cząstek stałych IKEA oraz na włączenie odczytu dodatkowych nieudokumentowanych/domniemanych wartości PM1.0 i PM10.

Wg specyfikacji sensora PM1006K, który jest w urządzeniu IKEA:

https://en.gassensor.com.cn/ParticulateMatterSensor/info_itemid_105.html

​​tylko PM2,5 jest w tym modelu rejestrowany prawidłowo, więc pozostałe wartości (te nieudokumentowane) mogą nie być odczytywane poprawnie.

Zbudowany firmware.bin w załączeniu:

firmware.bin (596,9 KB)

Oczywiśćie można samemu zbugować i eksperymentować, jest sporo opisów jak to zrobić, na tym forum.

Łączenie z esp8266 z sensorem

Można podłączyć czujnik do dowolnego urządzenia z esp8266 i wyprowadzonym wolnym portem GPIO. Ja podłączyłem go gniazda AIS-dom S26 bo będę automatycznie sterować filtrem jak czujnik zaraportuje, że trzeba.

GPIO 2 pochodzi z modułu ESP8266 umieszczonego w gnizdku AIS-dom S26. Tak jak opisałem tu:

Konfiguracja szablonu w Tasmota

Szablony zapewniają łatwy sposób tworzenia, modyfikowania i udostępniania konfiguracji dla różnych urządzeń, które mają funkcje obsługiwane w Tasmocie.

W szablonie możemy skonfigurować jakie urządzenie peryferyjne jest podłączone do danego GPIO, robimy kopię szablonu gniazdka w którym łączymy GPIO 2 z sterownikiem czujnika:

następnie wybieramy ten moduł w ustawieniach konfiguracji urządzenia:

Już mamy odczyty w aplikacji na gniazdku AIS dom S26:

Połącznie z Asystentem domowym

Jak tylko dodamy gniazdko do bramki (podając w ustawieniach mqtt na gniazdku, IP serwera mqtt działającego na bramce AIS dom):

to automatycznie pojawi nam się w urządzeniach WiFi AIS gniazdko z czujnikami:

Ładna karta w Asystencie domowym

Żeby ładnie wyświetlać status czujnika oraz łatwo sterować filtrem dodamy kartę z encjami przełącznika (gniazdka) i filtra, w nowym widoku.

:information_source: W kolejnej wersji pojawi się now karta “Obszar” w Asystencie domowym - będzie jeszcze ładniej i łatwiej, bo będzie można dodać obrazy do obszarów:

Dodajemy nowy widok:

Następnie do widoku dodajemy kartę, typu obszar i pojawią się ładnie encje na nowej karcie:

Sterowanie głosowe

Ustawiamy odpowiednie nazwy dla encji (czujnika i przełącznika):

I już działa sterowanie głosowe oczyszczaczem i pytanie o jakość powietrza:

Automatyzacja

Oczywiście celem głównym jest włączanie oczyszczacza gdy czujnik stężenia cząstek stałych osiągnie wartość …

TODO, muszę poczytać o tych wartościach z czujnika stężenia cząstek stałych


firmware.bin (596,9 KB)

8 polubień

Dzięki za gotową binarkę. Czujnik zamówiłem, raczej zrobię z zasilaniem wewnątrz… dla tych co boją się napięć powyżej 24V - C.D.N.

1 polubienie

No to trzeba się zbierać do IKEA. @araczkowski świetny projekt - Dzięki.

Kupiłem 5zl drożej na aledrogo, jak się ma smart, to szkoda się fatygować. Łatwiej do paczkomatu podjechać.

1 polubienie

Już zamówione na Allegro - dzieki :slight_smile: będzie szybciej niż się wybiorę.

1 polubienie

No i gotowe - petarda

2 polubienia

Jak rozwiązałeś zasilanie?
Waham się pomiędzy stabilizatorem 3,3V a mini przetwornicą Step-Down…

Mam pod ładowarką telefoniczną. Myślisz pakować tam jakąś większą baterię? Chyba nie wypali. ESP dość dużo ciągnie + wentylatorek. Wymiana baterii będzie cię bardziej denerwowała niż kabelek od zasilania.

Nie w żadnym wypadku… tylko nie dodałem, że chcę tam dać do środka ESP12E

To i tak dużo ciągnie. Chyba, że pokombinujesz z usypianiem ESP na kilkadziesiąt sekund. Przy tym czujniku jest wentylatorek - podejrzewam, że sporo bierze.
PS. jakie wartości tych czujników to dobrze/średnio/źle?

Edit: zmierzyłem
Max 0,09A Min 0,04A i tak skacze, wiec można by przyjąć średnio 0,07A*5V= 0,35W


Dla pm1 nie ma normy

2 polubienia

@Cino111 - nic nie pisałem o bateriach… ESP muszę zasilić 3,3V a na płytce czujnika jest 5V.

Aaaaa to sorry. Źle zrozumiałem. Wsadziłem wemosa d1mini. Można go zasilić 5V. Jak chcesz samo ESP to musisz dać pomiędzy stabilizator 3.3V

https://allegro.pl/oferta/modul-regulatora-napiecia-3v3-ams1117-10930243803

Albo przetwornice

https://allegro.pl/oferta/przetwornica-ams1117-dc-dc-stepdown-4-5-7v-na-3-3v-8419527086

Wypij kawę :coffee: już mam, zobacz moje foto wyżej. Mam tylko dylemat co będzie lepsze…
Oba linki dałeś do stabilizatora AMS1117 :grinning_face_with_smiling_eyes:

Dobra to ja już dzisiaj może się nie udzielam. Idę się lepiej wyspać. :yawning_face:

Pięknie kolego - gratulacje :+1:

dzięki za tabelkę :+1:

Wg mnie czasami łatwiej jest hackować istniejące urządzenie i dodawać do niego urządzenie peryferyjne (czujnik), niż budować coś od początku, dodając do czujnika: esp, zasilacz, step down… może jeszcze obudowę.
Oczywiście wypada mieć też jakąś płytkę deweloperską do prototypownia i testów. Jak już wszystko działa, to do użytkowania wygodniej jest dodatkowy czujnik podłączyć do urządzenia które mamy w domu - tak będzie funkcjonalniej i ekonomiczniej. Zabawa też jest lepsza niż kodowanie płytki developerskiej (którą oczywiście do prototypownia trzeba mieć).

To jest ciekawe:

ale to już hard core, bo ta płytka nie ma gpio wyprowadzonych i żeby wyciągnąć gpio do czujnika, trzeba wlutować się w nóżki esp… brrrr

to z tego forum:

chyba kiedyś to zrobimy :wink:

1 polubienie

Też tak myślę, niepodpięcie przynajmniej czujnika temperatury to marnotrawstwo…
Ale z drugiej strony frajda z zbudowania czegoś samemu nie do opisania :slight_smile:
Twoje rozwiązanie z gniazdkiem AIS idealne :ok_hand:
Dobrym i prostym sposobem do podpięcia czujnika cząstek stałych IKEA VINDRIKTNING jest moduł H801 który ma wolne GPIO:

1 polubienie

Coś już się zhakowało… wpadło już kilka opisów na forum:

Ponad rok temu zhakowałem gniazdko dokładając 3szt. DS’ów - działa do dziś sterując pompką cyrkulacji CWU

]

Czujka PIR + sterownik LED na ESP8285

Kolejne moduły Magic Home zhakowane sterują poza taśmą RGBW dodatkowo napędem bramy i ryglem furtki.

3 polubienia

Mój czujnik VINDRIKTNING zhakowany. ESP-07 + dodatkowy BME280. Mało pamięci, bo to tylko 1M. Zasilanie z z płytki czujnika. Jednak wybrałem stabilizator AMS1117.
Dorzucam plik .bin z obsługą czujników Bosh’a

#define USE_BMP    // [I2cDriver10] Enable BMP085/BMP180/BMP280/BME280 sensors (I2C addresses 0x76 and 0x77) (+4k4 code)

VINDRIKTNING_BME.bin (601,4 KB)



7 polubień

Mam i ja :wink:
Zrobiłem na gniazdku AIS i dołożyłem jeszcze czujnik AM2301
@araczkowski i @Cezary.K dzięki za inspiracje :clap:
:tumbler_glass:

2 polubienia