Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Detekcja położenia rygla w drzwiach z użyciem taniego magnetometru QMC5883L

Infrat 07 Gru 2017 22:18 8664 26
  • Na wstępie pragnę zaznaczyć, że opisane przeze mnie zastosowanie magnetometru, tylko pośrednio odnosi się do pomiarów pola magnetycznego (czyli de facto wartości fizycznej), więc jeśli Organizator Konkursu uzna ten projekt za niespełniający kryteriów, to proszę o przeniesienie go do innego działu.

    Wprowadzenie
    Na rynku istnieją gotowe rozwiązania (zamki) pozwalające na monitorowanie stanu zamknięcia poprzez zintegrowane styki, których wyprowadzenia, można łatwo wykorzystać w tym celu. Bez wątpienia, rozwiązania tego typu są najmniej zawodne. Jednak w sytuacji, gdy chcemy ugryźć temat w sposób możliwie najmniej inwazyjny, warto rozważyć inne opcje. Podobne rozważania skłoniły mnie do przygotowania prototypu urządzenia bazującego na wspomnianym, tanim magnetometrze, który wykrywa zaburzenia pola magnetycznego ziemi, wprowadzanie przez rygiel zamka.

    Zasada działania
    QMC5883l (którego pierwowzorem jest niemalże bliźniaczy HMC5883L) jest tanim magnetometrem, dostępnym za symboliczne "2$" na wielu popularnych serwisach z towarami pochodzącymi z Dalekiego Wschodu. Jest to magnetometr trójosiowy rejestrujący pola magnetyczne w trzech osiach z interfejsem I2C. Jego głównym zastosowaniem są wszelkiego rodzaju kompasy (bywa np. wykorzystywany w kontrolerach lotu dla rozmaitych *copterów), w których dokładność pomiaru i jego odporność na zakłócenia nie jest najistotniejszą cechą.
    W opisywanym projekcie wykorzystałem właśnie możliwość "zakłócenia" pomiaru, przez umieszczenie w pobliżu czujnika źródła pola magnetycznego - w moim przypadku, magnesu neodymowego przyklejonego do rygla w zamku.
    W przypadku mojej aplikacji, pomiar jest dokonywany w zdefiniowanym interwale czasowym, a następnie porównywany z jednym z dwóch uprzednio zachowanych pomiarów, z uwzględnieniem również zdefiniowanej tolerancji (zakłócenia, "szum"). Zachowane pomiary odzwierciedlają "sygnaturę" magnetyczną określonego położenia rygla.

    Konstrukcja
    Jako bazę dla prototypu użyłem ESP8266 (docelowo dane na temat położenia rygla, mogłyby iść w świat), z wgranym prostym oprogramowaniem w C++ działającym pod Mongoose OS. Bieżące, "surowe" dane pomiarowe prezentowane są na wyświetlaczu OLED na SSD1306. Całość została zmontowana na płytce stykowej.

    Możliwe problemy
    Wszelkie zakłócenia pochodzące od przedmiotów emitujących pole magnetyczne. Pomiar pola w trzech osiach uniemożliwa łatwe "podrobienie" pola magnetycznego odpowiadającego danemu stanowi zamka (wszelkie odchylenia, są w aktualnej wersji oprogramowania interpretowane jako stan "otwarty"). Nie mniej, zdecydowanie konstrukcja tego typu nie mogłaby mieć zastosowania we wrażliwym środowisku, w systemach od których wymagana jest duża niezawodność i wiarygodność (np. element systemu alarmowego).
    Również jednym z możliwych problemów (jak dotąd niezaobserwowanym, ale teoretycznie możliwym), jest zmiana "sygnatury" magnetycznej położenia zamka, wskutek magnesowania się metalowych elementów zamka.






    Link


    Detekcja położenia rygla w drzwiach z użyciem taniego magnetometru QMC5883L

    Detekcja położenia rygla w drzwiach z użyciem taniego magnetometru QMC5883L

    Detekcja położenia rygla w drzwiach z użyciem taniego magnetometru QMC5883L

    Źródła
    Kod źródłowy: Github
    Datasheet QMC5883L: Link


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • #2 07 Gru 2017 22:54
    eurotips
    Poziom 35  

    Gdzie i jak dołożyłeś ten magnes ?
    Robiłem coś podobnego i wybrałem transoptor odbiciowy do czego wystarczyło wywiercenie otworu o średnicy 5 mm w futrynie. Żadnego magnesu nie dało się nigdzie dołożyć stąd moje pytanie.

  • #3 07 Gru 2017 23:30
    Infrat
    Poziom 10  

    Na trzecim zdjęciu z kolei widać neodym przyczepiony do rygla. Mam to szczęście, że w ościeżnicy było jeszcze na tyle dużo miejsca, że mały magnesik się mieści. Nie wiem na ile Twoje drzwi są spasowane z ościeżnicą, ale magnesy neodymowe robią w bardzo różnych rozmiarach, a przy tym magnetometrze, wystarczy nieduży magnes.

  • #4 08 Gru 2017 08:20
    Bonifacy
    Poziom 23  

    Dalej jestem za zakazem DIY na płytkach prototypówch - jeśli urządzenie to powinno być wykonane na gotowości.

    Bardzo ładny opis tylko szkoda że z większą dokładnością zrobiony niż cały projekt :(

    uC do czytnika zamknięcia? Szkoda mi się już dalej rozpisywać. Wiem że jako projekt poznawczy i wiedzę się zdobywa - ale DIY jak dla mnie to nie faza poznawcza tylko już budowanie czegoś z wiedzy jaka się posiada (zdobywanie praktyki)

  • #5 08 Gru 2017 08:56
    Infrat
    Poziom 10  

    Bonifacy, abstrahując od samego wykonania projektu, uznałem że w jego przypadku wartość wynika z nietypowego zastosowania nietypowego modułu, a niekoniecznie z formy. I tym się chciałem "pochwalić". Niepodważalnie, aplikacje DIY robione na płytkach stykowych nie prezentują kunsztu elektronika hobbysty, który z laminatu i kilogramów elementów dyskretnych potrafi wyczarować cuda, niemniej w zdobywaniu wiedzy nie chodzi tylko i wyłącznie o to, by zrobić coś co będzie przez lata mogło stać na półce i ładnie wyglądać. Śmiem twierdzić, że moje zabawki, które składałem na "pająka" dały mi więcej wiedzy, niż te, w których musiałem dopracowywać każdy najmniej i najbardziej istotny detal konstrukcyjny.

    Napisałeś że opis "ładny", to zapoznaj się z nim, proszę, raz jeszcze i uzyskasz odpowiedź na pytanie czemu uC do czytnika. Jeśli po przeczytaniu nadal nie będziesz wiedział czemu tak, to przeczytaj jeszcze kilka razy i jeśli w dalszym ciągu będziesz twierdził, że można to zrobić bez uC, to napisz merytorycznie i oświeć nas, nędznych hobbystów - jak.

  • #6 08 Gru 2017 09:28
    Bonifacy
    Poziom 23  

    1. Tylko trzeba rozróżniać DIY od prototypów. Czasami na stole w ciągu godziny łączę różne układy (czasami z dobrym skutkiem czasami nie) ale nie nazwę tego czegoś DIY. Wyobrażasz sobie jakbym codziennie wrzucał po 4-5 takich układów?

    Co do DIY to jak coś takiego buduje to staram się już robić od początku do końca przemyślane, a więc już nie prototypowo a z wytycznym projektem.

    2. Zapoznałem się i rozumiem - tylko ty jeszcze raz przeczytaj mój wpis bo o ile pisanie ci pisanie ładnie wychodzi tak czytanie niekoniecznie. Ale nie ma co się wymieniać uprzejmościami bo bardziej chodzi tu o punkt widzenia niż samą istotę. Dla mnie DIY to głównie urządzenie które ma służyć a nie prototyp do nauki a zastosowanie takiego rozwiązania jak twoje to nie dość że strzał z armaty do wróbla to wykonanie raczej nie pozwala na ciągłą niezawodną pracę.

  • #7 08 Gru 2017 10:02
    SylwekK
    Poziom 29  

    Wiedza wiedzą, nauka nauką, ale wg mnie już na starcie rozmyślanie o zastosowaniu uC i ogólnie stosunkowo drogiej jak na efekt końcowy elektroniki mija się z celem. To tylko rygiel... Jeśli już jest tam wykorzystany magnes to nie taniej było hallotron wstawić?? Jako DIY ja rozumiem urządzenie/rozwiązanie, ktore można zastosować w praktyce z uwzględnieniem jakiejś szczątkowej ekonomi. Czy chciałby ktoś to urządzenie robić seryjnie? :-)

  • #8 08 Gru 2017 10:19
    Infrat
    Poziom 10  

    Ale gdzie Wy tu widzicie drogą elektronikę? Mówimy o całościowym koszcie podzespołów, rzędu kilku dolarów! Porównajcie sobie to z cenami gotowych rozwiązań oferujących detekcję położenia rygla. Że o kosztach montażu nie wspomnę. A gdzie jeszcze warstwa prezentacji tej informacji? Chcąc np. stworzyć aplikację na telefon informującą o statusie zamka i tak nie unikniemy zaprzęgnięcia do tego jakiegoś SoC. My tu mówimy o zabawce, którą się przykleja do ościeżnicy, przeprowadza prostą kalibrację i używa.

  • #9 08 Gru 2017 12:11
    SylwekK
    Poziom 29  

    @Infrat nie zrozum mnie źle, o ile można przymknąć oko na ESP (być może to kontrola rygla to jedyna rzecz jaką chcesz kontrolować w inteligentnym domu) o tyle użycie trójosiowego magnetometru jest zdecydowanie na wyrost. Wolałbym poczytać jak robisz na nim coś w stylu "lustra" ruchów ręki niż wykorzystanie jako krańcówka on/off. Jak wspomniałem zwykły czujnik halla za ułamek ceny magnetometru (jakieś pojedyncze centy/szt.) by się tu sprawdził idealnie nie tylko pod względem ekonomicznym ale i samej obsługi programowej. Ile trzeba kodu naklikać aby obsłużyć Twój czujnik, a ile do obsługi czujnika halla? Jak dla mnie, człowieka, który upraszcza co się da (być może wpływ na to miało programowanie procesorów 6502 w starusieńkich commodore gdzie każdy bajt się liczył) jest to po prostu marnotrawstwo.

  • #10 08 Gru 2017 13:42
    eurotips
    Poziom 35  

    SylwekK napisał:
    Jeśli już jest tam wykorzystany magnes to nie taniej było hallotron wstawić?


    Jeszcze prościej zwykły kontaktron ale niestety nie da się. Przerabiałem temat.
    Co do zastosowania uC to już DS18B20 przetarł szlaki że bez uC zwykłego termometru już nie zrobisz. A ostatnio w komplecie do jakiegoś Arduino widziałem zwykły mikroswitch na I2C.
    Także podziwiam kolegę za konsekwencję i zrobienie działającego prototypu.
    W moim zamku nawet tak mały magnesik nie wchodzi, szczelinę mam na grubość 2 kartek papieru, wielki szacun dla człowieka który je wymieniał.

  • #11 08 Gru 2017 13:54
    Infrat
    Poziom 10  

    W pierwszym podejściu próbowałem zastosować czujnik halla, ale metalowa ościeżnica okazała się tłumić pole magnetyczne na tyle, że akurat ten hallotron, który miałem w szufladzie nie dawał sobie rady - był zbyt mało czuły. Przy przetworniku AC, z którego korzystałem do prób, sygnał był na granicy szumu.
    Co do uC to wciąż nie rozumiem, czemu z niego nie korzystać? W tej aplikacji, akurat nic nie robię z informacją o statusie zamka, poza wyświetleniem jej na wyświetlaczu, jednak sprawy mają się nieco inaczej gdyby chcieć publikować to np. przez MQTT.

    Inna sprawa, że nastały takie czasy, w których krzem jest śmiesznie tani. Łatwiej i szybciej jest kupić uC i naklepać kilka linijek kodu niż projektować mniej lub bardziej skomplikowany układ pod konkretne zastosowanie. To samo przekłada się na branżę IT - taniej jest pisać nieoptymalny kod i dokładać zasoby sprzętowe, niż inwestować w wydajny kod, działający na maszynach z gorszą specyfikacją. Takie czasy. Też pamiętam czasy zabaw w kodzie maszynowym 6502 i Z80 i też pamiętam walkę o każdy wolny zasób. Miało to swój niepowtarzalny urok, ale jednak dziś jest to już anachronizm.

  • #12 08 Gru 2017 16:56
    kot mirmur
    Poziom 30  

    Nie prościej bu było zamontować czujnik indukcyjny lub mikro-wyłącznik z dzwignią, albo transoptor odpowiednio przerobiony- każdy z tych elementów można zamontować w futrynie. Kwestja wyobrażni montera.

  • #13 08 Gru 2017 17:21
    Bonifacy
    Poziom 23  

    Infrat napisał:
    My tu mówimy o zabawce, którą się przykleja do ościeżnicy, przeprowadza prostą kalibrację i używa.


    No ja tego szpetnego czegoś nie powiesił bym sobie na drzwiach - no chyba że w szopie - ale tam nie przejmował bym się modyfikacją ościeżnicy i montażem w środku czujnika zbliżeniowego

  • #14 08 Gru 2017 18:26
    Infrat
    Poziom 10  

    kot mirmur napisał:
    Nie prościej bu było zamontować czujnik indukcyjny lub mikro-wyłącznik z dzwignią, albo transoptor odpowiednio przerobiony- każdy z tych elementów można zamontować w futrynie. Kwestja wyobrażni montera.

    Nie byłoby prościej. Każda z opcji, którą wymieniasz zakłada ingerencję w ościeżnicę. W przypadku zaproponowanego przeze mnie rozwiązania, to jest kwestia przyklejenia do futryny sensora.

    Bonifacy napisał:
    Infrat napisał:
    My tu mówimy o zabawce, którą się przykleja do ościeżnicy, przeprowadza prostą kalibrację i używa.


    No ja tego szpetnego czegoś nie powiesił bym sobie na drzwiach - no chyba że w szopie - ale tam nie przejmował bym się modyfikacją ościeżnicy i montażem w środku czujnika zbliżeniowego

    Ja też.

  • #15 08 Gru 2017 18:44
    kot mirmur
    Poziom 30  

    To jak chyba cokolwiek na nią przyczepisz z zewnątrz, to będzie to widać.

  • #16 08 Gru 2017 18:53
    Infrat
    Poziom 10  

    No zdecydowanie, ale zakładając, że udałoby się całość upakować w estetyczną obudowę to mogłoby to mieć sens. Zgadzam się, że takie rozwiązanie nie ma sensu, w momencie gdy na etapie instalacji drzwi założysz, że chcesz integrować się z systemem automatyki domowej i po prostu zakupisz fabryczne rozwiązanie umożliwiające detekcję położenia rygla. Bardziej myślałem o sytuacji, gdy ktoś z różnych względów nie ma ochoty na mechaniczną ingerencję w drzwi, co może mieć miejsce dość często.

  • #17 08 Gru 2017 21:46
    szczodros
    Poziom 18  

    Infrat napisał:
    Na trzecim zdjęciu z kolei widać neodym przyczepiony do rygla. Mam to szczęście, że w ościeżnicy było jeszcze na tyle dużo miejsca, że mały magnesik się mieści. Nie wiem na ile Twoje drzwi są spasowane z ościeżnicą, ale magnesy neodymowe robią w bardzo różnych rozmiarach, a przy tym magnetometrze, wystarczy nieduży magnes.


    Jak nie musi być duży (i mocny) to na alledrogo widziałem arkusze magnes samoprzylepny 0,4 mm (coś jak magnesy na lodówkę)

  • #18 09 Gru 2017 10:38
    Art.B
    Specjalista Automatyk

    Przedstawione rozwiązanie jest chyba jednym z najbardziej pogmatwanych, jakie można sobie wyobrazić. Można przecież wyjąć kasetę zamka, zabudować w środku urządzonko zbudowane choćby w oparciu o bezprzewodowy czujnik kontaktronowy otwarcia drzwi z np. Elmes ctx4h, z własnym zasilaniem, który wysyła sygnał do centralki tylko wtedy, gdy wykryje zmianę stanu, więc bateria wystarcza na długo. Sama płytka jest mała, da się to upchnąć wewnątrz drzwi bez zabawy w stolarza/ ślusarza. Wystarczy wszczepić magnes na końcu rygla. Mam coś takiego zamontowane i działa bez zarzutu. Nic nie wystaje na zewnątrz.

  • #19 09 Gru 2017 11:58
    metalMANiu
    Poziom 16  

    Autorze, co dalej dzieje się z informacją o położeniu rygla? Jest tylko wyświetlana na OLED, czy wykorzystujesz ją jeszcze w jakiś inny sposób - wysłanie powiadomienia na żądanie, na przykład.

  • #20 09 Gru 2017 12:25
    Infrat
    Poziom 10  

    szczodros napisał:
    Jak nie musi być duży (i mocny) to na alledrogo widziałem arkusze magnes samoprzylepny 0,4 mm (coś jak magnesy na lodówkę)

    Od biedy można obyć się bez magnesu - robiłem też takie próby, jednak wahania pola magnetycznego są na granicy "szumu". Możliwe, że udałoby się dopracować to rozwiązanie na tyle, by zmiany pola magnetycznego generowane przez sam żelazny rygiel były wystarczające.

    Art.B napisał:
    Przedstawione rozwiązanie jest chyba jednym z najbardziej pogmatwanych, jakie można sobie wyobrazić. Można przecież wyjąć kasetę zamka, zabudować w środku urządzonko zbudowane choćby w oparciu o bezprzewodowy czujnik kontaktronowy otwarcia drzwi z np. Elmes ctx4h, z własnym zasilaniem, który wysyła sygnał do centralki tylko wtedy, gdy wykryje zmianę stanu, więc bateria wystarcza na długo. Sama płytka jest mała, da się to upchnąć wewnątrz drzwi bez zabawy w stolarza/ ślusarza. Wystarczy wszczepić magnes na końcu rygla. Mam coś takiego zamontowane i działa bez zarzutu. Nic nie wystaje na zewnątrz.

    Nie wiem o jakiej komplikacji i zagmatwaniu mówisz - opisałem rozwiązanie, które wymaga jedynie przyklejenia magnetometru do ościeżnicy. Ty mówisz o wykręcaniu kasety zamka i zabudowaniu w środku kontaktronu (nie mówiąc już o tym, że u mnie w drzwiach już się nic nie zmieści).
    Ponad to, w przypadku mojego gadżetu mamy rozpoznawanie pozycji zamka (zamknięte "na raz", zamknięte "na dwa") - jednym kontaktronem tego nie ograsz.

    metalMANiu napisał:
    Autorze, co dalej dzieje się z informacją o położeniu rygla? Jest tylko wyświetlana na OLED, czy wykorzystujesz ją jeszcze w jakiś inny sposób - wysłanie powiadomienia na żądanie, na przykład.

    Testowałem to rozwiązanie z domowym OpenHABem, w którym mam widget prezentujący stan rygla.

  • #21 09 Gru 2017 20:26
    kot mirmur
    Poziom 30  

    Kolega chce mieć info o ryglach. Jest to wykonalne, ale tylko w zasadzie na poziomie ingerencji w budowę zamka. Biała farba, dwa transoptory. Są takie specjalne pola stykowe służące do połączenia drzwi-ościeżnica.

  • #22 09 Gru 2017 21:44
    Rysio4001
    Specjalista - systemy grzewcze

    Witam.
    Jako zabawka, albo do celów dydaktycznych, to ta konstrukcja owszem.
    Ale jako urządzenie użyteczne, już nie, bo bardzo łatwo je zakłócić. Wystarczy przyłożyć od zewnątrz do drzwi w okolicach magnetometru silny magnes, i pozamiatane. :D
    Pozdrawiam.

  • #23 10 Gru 2017 10:26
    cooltygrysek
    Warunkowo odblokowany

    Witam. Jak dla mnie to przerost formy nad treścią. Do kontroli rygla można by śmiało zastosować najzwyklejszy na świecie kontaktron. Można też za pomocą transoptorów odbiciowych, mikrostyków, czy czujnika hala wytarganego z wentylatora. Po kiego czorta magnetometr ? Jaki w tym sens ? Swego czasu przerobiłem u siebie w warsztacie zamek wierzchni dodając do niego mały napęd z przekładnią ślimakową z jakiegoś magnetowidu i mikrostyki wychyłowe wraz z regulacją do kontroli skrajnego położenia zasuwy. Raptem 5 przewodów poprzez styki sprężynowe na obrzeżu drzwi. Do tego zamek szyfrowy oparty na układzie UA3730 wstawiony do starej podświetlanej klawiatury satela i tak to działa już ponad 26 lat. W razie czego można otwierać kluczem tradycyjnie ale oczywiście zasilanie awaryjne z akumulatora też jest. W górnej części obudowy widać dwie śruby regulacyjne położenia mikrostyków wychyłowych.

  • #24 10 Gru 2017 11:55
    kot mirmur
    Poziom 30  

    I tu właśnie widać prawdziwą inwencje twórczą> prostota wykonania, równa się niezawodności działania.
    Brawo kolego Cooltygrysek.

  • #25 10 Gru 2017 15:14
    RafalB

    Poziom 26  

    cooltygrysek napisał:
    Witam. Jak dla mnie to przerost formy nad treścią.


    Naszczęście tylko dla Ciebie, dla mnie bardzo ciekawe rozwiązanie, wykorzystanie uC z wifi pozwala bez problemu wpiąć taki czujnik w system inteligentnego domu typu Domoticz etc.
    Najlepsze w tym jest to, że nie trzeba nic przerabiać w drzwiach, prostota montażu to ogromny plus w drodze do komercjalizacji produktu.

  • #26 17 Gru 2017 13:08
    Flaman11
    Poziom 17  

    W pracy też montowaliśmy czujnik otwarcia drzwi na halotronie, ale magnesowanie ościeżnicy zawieszało go i nie zawsze działał. Wtedy wymieniliśmy na transoptor szczelinowy. Teraz działa bezproblemowo.

  • #27 05 Lis 2018 16:31
    Nerin
    Poziom 8  

    Bardzo podoba mi się nietypowe zastosowanie magnetometru i opis, który jest daleko ważniejszy niż wykonanie własnego PCB. Projekt zawiera skrótową ocenę przydatności magnetometru w detekcji zamknięcia rygla, która dla mnie jest dalece przydatniejsza niż PCB i schematy. Szkoda słów na część społeczności elektrody.