logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Detektor przełożonego z ESP8266 i OLED SSD1306

szdom 05 Lut 2024 13:09 7275 47

TL;DR

  • Detektor przełożonego opiera się na ESP8266 i wyświetlaczu OLED SSD1306 do wykrywania wybranych telefonów w zasięgu Wi‑Fi.
  • Układ nasłuchuje pakietów wysyłanych przez telefony szukające znanej sieci, porównuje adresy MAC z tablicą i zapala LED oraz pokazuje nazwę na OLED.
  • W zanieczyszczonym radiowo środowisku przemysłowym łapie ramki z odległości około 80 m.
  • Rozwiązanie działa skutecznie w pracy, ale algorytm sygnalizuje tylko jedno aktywne urządzenie naraz i korzysta z biblioteki Friend Detector.
Wygenerowane przez model językowy.
REKLAMA
📢 Słuchaj (AI):
  • Detektor przełożonego z zieloną diodą LED i wyświetlaczem OLED z napisem Słucham....
    Chciałbym zaprezentować ustrojstwo ostatnio stworzone.
    Nazwałem roboczo Detektor przełożonego.
    Wykorzystany został tutaj układ ESP8266 oraz wyświetlacz OLED SSD1306.
    Już śpieszę z wyjaśnieniem zasady działania.
    Sieć WIFI jest powszechnie używana, korzystamy z niej w domu, w pracy, w kawiarni.
    Bardzo często jak zauważyłem, ludzie nie wyłączają WIFI w telefonie, czy to z powodu lenistwa, czy niewiedzy.
    A telefony, jak stracą połączenie z siecią, to robią się dosyć "gadatliwe" i cyklicznie rozpoczynają rozpaczliwe próby znalezienia znanej sieci WIFI, aby się do niej podłączyć.
    Robią to wysyłając pakiety zawierające m.in. ich adres MAC i w prezentowanym urządzeniu została wykorzystana ta cecha.
    Posiadamy w tablicy zdefiniowaną listę adresów MAC, które chcemy monitorować i w momencie pojawienia się takiego w zasięgu naszego ESP,
    mamy sygnalizację w postaci zapalenia diody LED przez kilka sekund oraz wyświetlenia nazwy na wyświetlaczu przypisanej do danego adresu MAC.
    Algorytm jest dosyć prymitywny, w danej chwili sygnalizuje nam 1 aktywne urządzenie w pobliżu, ale do założonych celów sprawdza się znakomicie.
    Biblioteka nasłuchująca nie jest mojego autorstwa, został wykorzystany tutaj projekt Ricardo Oliveira o nazwie Friend Detector.
    https://github.com/RicardoOliveira/FriendDetector
    Wprowadziłem zmiany dostosowujące kod do moich wymagań.
    Co prawda w założeniach aplikacja ma być częścią projektu automatyki budynkowej i służyć do innych celów, tzn. po wykryciu adresu MAC, na którym nam zależy, ma za pomocą diody IR włączyć klimatyzator w funkcji grzania, zanim użytkownik zdąży wejść do domu.
    Ale na chwilę obecną testuję układ w pracy i w roli Detektora przełożonego sprawdza się znakomicie ;)
    W trakcie pisania posta zapaliła się dioda LED i mogłem przygotować się na wizytę przełożonego ;-)) (przywitać po imieniu, nawet go jeszcze nie widząc).
    Zauważyłem, że układ potrafi złapać ramki w odległości ok. 80 m i to w dosyć zanieczyszczonym radiowo środowisku przemysłowym, gdzie pracuje dużo maszyn.
    Obudowa nie grzeszy urodą, ale była robiona na szybko, na zasadzie zabezpieczenia urządzenia, aby osoby postronne nie zrobiły przypadkowego zwarcia.
    Schematu nie posiadam, gdyż jest to książkowe podłączenie wyświetlacza OLED i diody LED do ESP.
    Poniżej jeszcze filmik z działania urządzenia.



    W załączeniu kody źródłowe.
    Załączniki:
    • esppl_functions.h (9.35 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • main.cpp (3.98 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • esppl_struct.h (4.62 KB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    O autorze
    szdom
    Poziom 12  
    Offline 
    szdom napisał 37 postów o ocenie 43. Mieszka w mieście Suwałki. Jest z nami od 2004 roku.
  • REKLAMA
  • #2 20946555
    gulson
    Administrator Systemowy
    Posty: 29320
    Pomógł: 148
    Ocena: 6018
    Niesamowite! Powiem Ci, że jest zadatek na urządzenie, które mogłoby zostać normalnie sprzedawane, do analizy obecności osób, wykrywanie, powiadamianie.
    Oczywiście jakby obsługiwało pewną ilość MAC adresów, z możliwością łatwego wprowadzenia przez użytkownika.
    MAC oczywiście to nie jest dana jakaś zaszyfrowana i jak widać jest publicznie dostępna, stąd nei mogłaby służyć do jakiś zabezpieczeń.
    Ale prosta detekcja obecności osób...
    Gdyby dodać również bluetooth równolegle? Do przemyślenia!
    Odezwij się do mnie z Paczkomatem i wyślę mały upominek, przyda się do kolejnych projektów ;)
  • #3 20946670
    Kkuba79
    Poziom 13  
    Posty: 49
    Ocena: 4
    Bardzo ciekawe i sprytne urządzenie. Z tego co widzę w moim telefonie adres MAC jest generowany losowo co może utrudniać indentyfikację użytkownika.
  • #4 20946935
    analog_6
    Poziom 16  
    Posty: 319
    Pomógł: 6
    Ocena: 144
    Jakiś czas temu, tak z 15 lat, mój krewny z kolegą w USA mieli firmę, która oferowała billbordy i inne marketingowe przywoływacze uwagi skanujące otoczenie pod kątem urządzeń przenośnych z włączonym BT. Miało to przypominać trochę funkcjonalność znaną z filmu "Raport mniejszości", czyli aktywną dedykowaną reklamę. Jakiś czas się tym zajmowali i mieli nawet jakieś kontrakty bodaj z J&J, ale nie rozwinęło im się to. Nie wiem dlaczego odpuścili. Może z powodu prawa, które zaczęło nadążać za nowinkami i zasadniczo nie zezwala na takie praktyki. Chyba że osoba śledzona wyrazi zgodę. Nie bez powodu różne firmy oferują różne usługi i aplikacje za darmo, wciskając przy okazji do podpisania cyrograf na profilowanie, śledzenie itp. Ludzie świadomi takich zgód nie wyrażają i przynajmniej w Europie legalnie nie wolno zbierać, przetwarzać informacji o takich osobach.
  • REKLAMA
  • #5 20946939
    gulson
    Administrator Systemowy
    Posty: 29320
    Pomógł: 148
    Ocena: 6018
    Dużo mogłoby być problemów, między innymi najgorsze - zastrzeżenia, co do prywatności i koniecznego uzyskania wcześniej zgody.
    Chociaż 15 lat temu nikt się nie przejmował, więc może polegli na jakichś technikaliach.
  • #6 20946944
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #7 20947126
    krzbor
    Poziom 29  
    Posty: 1752
    Pomógł: 40
    Ocena: 1059
    szdom napisał:
    Bardzo często jak zauważyłem, ludzie nie wyłączają WIFI w telefonie, czy to z powodu lenistwa, czy niewiedzy.
    A telefony, jak stracą połączenie z siecią, to robią się dosyć "gadatliwe" i cyklicznie rozpoczynają rozpaczliwe próby znalezienia znanej sieci WIFI, aby się do niej podłączyć.
    Robią to wysyłając pakiety zawierające m.in. ich adres MAC i w prezentowanym urządzeniu została wykorzystana ta cecha.

    Wydawało mi się, że urządzenie skanuje w poszukiwaniu sieci. Dopiero, gdy znajdzie zapisaną u siebie sieć z prawem nawiązania połączenia robi się "gadatliwe". Innymi słowy, jeśli w danej sieci WiFi urządzenie nie jest zarejestrowane, to nie powinno się komunikować.
  • #8 20947190
    Sam Sung
    Poziom 33  
    Posty: 2010
    Pomógł: 227
    Ocena: 582
    krzbor napisał:
    szdom napisał:
    Bardzo często jak zauważyłem, ludzie nie wyłączają WIFI w telefonie, czy to z powodu lenistwa, czy niewiedzy.
    A telefony, jak stracą połączenie z siecią, to robią się dosyć "gadatliwe" i cyklicznie rozpoczynają rozpaczliwe próby znalezienia znanej sieci WIFI, aby się do niej podłączyć.
    Robią to wysyłając pakiety zawierające m.in. ich adres MAC i w prezentowanym urządzeniu została wykorzystana ta cecha.

    Wydawało mi się, że urządzenie skanuje w poszukiwaniu sieci. Dopiero, gdy znajdzie zapisaną u siebie sieć z prawem nawiązania połączenia robi się "gadatliwe". Innymi słowy, jeśli w danej sieci WiFi urządzenie nie jest zarejestrowane, to nie powinno się komunikować.
    To, co opisałeś, to skanowanie pasywne. Smartfony wykonują skanowanie aktywne, wysyłając cyklicznie ramkę probe request, w której - oprócz własnego identyfikatora - jest też miejsce na listę SSID-ów sieci, z którymi smartfon już wcześniej się łączył.
    https://www.rfwireless-world.com/Terminology/WLAN-probe-request-and-response-frame.html
    https://blog.spacehuhn.com/probe-request
    https://niebezpiecznik.pl/post/kamery-w-zabce...lientow-nie-tylko-w-zabce-i-nie-tylko-twarze/
  • #9 20947204
    analog_6
    Poziom 16  
    Posty: 319
    Pomógł: 6
    Ocena: 144
    W przeciwnym razie połączenie z siecią która ma wyłączone rozgłaszanie nie byłoby możliwe.
  • #11 20947299
    szdom
    Poziom 12  
    Posty: 37
    Ocena: 43
    Cytat:
    Jak jest włączona funkcja "Randomized MAC", to może być problem z "namierzaniem". W moim jest włączona ;)

    Z moich obserwacji wynika, że losowy MAC jest dla różnych sieci WiFi, jeżeli połączyłeś się z jedną siecią, np w domu, to telefon będzie zgłaszał się z tym samym "randomizowanym" adresem MAC do konkretnej sieci. Nie wiem czy to jest w standardzie, ale zwróciłem na to uwagę w mojej sieci, że telefony, które mają włączoną randomizację to i tak zawsze dostają ten sam adres IP i w logach są widoczne pod tym samym adresem MAC.

    Cytat:
    Warto dodać buzzer do układu. Teraz trzeba ciągle obserwować wyświetlacz lub diodę.

    Jest to jakiś pomysł. Chociaż na chwilę obecną jak leży na biurku przy monitorze, to nie ma opcji, żebym tego nie zauważył ;)
  • #12 20947345
    pixel7
    Poziom 24  
    Posty: 656
    Pomógł: 53
    Ocena: 160
    szdom napisał:
    i tak zawsze dostają ten sam adres IP i w logach są widoczne pod tym samym adresem MAC.


    W sumie słuszne, inaczej rosła by pula adresów zarezerwowanych na routerze. I przy słabym zasięgu gdy telefon by gubił i odnajdywał (nowy MAC) sieć, kolejny IP by się blokował. Ciekawe jak routery na to reagują?
  • #13 20947469
    szdom
    Poziom 12  
    Posty: 37
    Ocena: 43
    Jeżeli telefon zgubi zasięg to zaczyna rozsyłać ramki probe request i w momencie znalezienia się ponownie w zasięgu sieci, następuje renegocjacja na serwerze DHCP i przyznawany jest na nowy okres ten sam adres IP(bo przecież MAC się nie zmienił).
  • #14 20947496
    Konto nie istnieje
    Poziom 1  
  • #15 20947614
    pixel7
    Poziom 24  
    Posty: 656
    Pomógł: 53
    Ocena: 160
    khoam napisał:
    W sieciach firmowych nie stosuje się zwykle długiego DHCP lease time,


    Mogę ustawić dowolny czas, wiem. Ale miałem na myśli 20 prób/sek.

    khoam napisał:
    Przełożony może z tego skorzystać przed dokonaniem inspekcji biura


    Chyba że znamy lokalne MACi, a każdy obcy to on.
  • #16 20947632
    szdom
    Poziom 12  
    Posty: 37
    Ocena: 43
    khoam napisał:
    Przełożony może z tego skorzystać przed dokonaniem inspekcji biura

    Aż takim optymistą odnośnie umiejętności przełożonego to bym nie był ;-)))
    Zależnie od wieku, to czasem dobrze jak wie gdzie można znaleźć suwak do włączenia/wyłaczenia WiFi.
  • #17 20947921
    analog_6
    Poziom 16  
    Posty: 319
    Pomógł: 6
    Ocena: 144
    Większość przełożonych na którymś szczeblu dość dokładnie wie ile czasu realnie pracują pracownicy a ile spędzają na pogaduchach, grzebaniu w sieci albo załatwianiu prywaty. Tylko tolerują z różnych powodów.
    I tak płacą adekwatnie do wartości wykonanej pracy i użyteczności, niezależnie jak bardzo się pracownikowi wydaje, że jest cwany :)
  • #18 20947991
    krzbor
    Poziom 29  
    Posty: 1752
    Pomógł: 40
    Ocena: 1059
    Sam Sung napisał:
    To, co opisałeś, to skanowanie pasywne. Smartfony wykonują skanowanie aktywne, wysyłając cyklicznie ramkę probe request, w której - oprócz własnego identyfikatora - jest też miejsce na listę SSID-ów sieci, z którymi smartfon już wcześniej się łączył.

    Dziękuję za wyjaśnienie. Wcześniej czytałem, że domyślnym trybem dla WiFi jest tryb pasywny i myślałem, że taki jest stosowany na smartfonach.
    Zgłębiając temat trafiłem na stronę Link, w którym użytkownik "heddha" (druga odpowiedź) dosyć dobrze to wyjaśnił.
  • #19 20948385
    TechEkspert
    Redaktor
    Posty: 7139
    Pomógł: 16
    Ocena: 5519
    Czy opaski i zegarki z BT mają randomizację MAC? Nasłuchiwanie BT może też dostarczać sporo informacji, np. słuchawki BT a nawet samochody.
  • #20 20948514
    jarekgol
    Poziom 40  
    Posty: 5145
    Pomógł: 642
    Ocena: 1137
    Piękny klocek :)
    Ja jakiś czas temu zaglądałem w logi serwera DHCP żeby stwierdzić czy prezesostwo dotarło do zakładu.
    Swoją drogą zakładając bycie w tym samym wi-fi co prezes, pewnie by się dało napisać coś podobnego na Androida i mieć od razu powiadomienie w kieszeni.
  • #21 20948517
    krzbor
    Poziom 29  
    Posty: 1752
    Pomógł: 40
    Ocena: 1059
    Trafiłem na ciekawą stronę: Link, a w niej obrazek:
    Schemat osi czasu wprowadzania losowych adresów MAC przez systemy iOS i Android
    Wynika z niego, że iOS8 i Android 8 już posiadały losowe MAC w probe request. W 2019 roku (Android 10) losowe adresy MAC były domyślnie załączone także podczas łączenia z siecią. Powstaje zatem pytanie - jak działa "detektor" - szef chyba ma bardzo stary telefon :)
  • #22 20948530
    jarekgol
    Poziom 40  
    Posty: 5145
    Pomógł: 642
    Ocena: 1137
    A jak to jest z tym że dany producent ma przydzieloną jakąś pulę mac'ów? I ciekawe jaka jest szansa w większych sieciach że się mac'i zderzą po losowaniu?
  • #23 20948673
    analog_6
    Poziom 16  
    Posty: 319
    Pomógł: 6
    Ocena: 144
    Konflikty w sieci, to nic nadzwyczajnego i różne mogą być powody. Wystarczy że chińskie tandetne switche i router nie implementują poprawnie podstawowych protokołów sieciowych (bo kto to sprawdzi, zauważy) i przy nieco rozbudowanej opartej na takich " klockach" infrastrukturze może dojść do konfliktów IP, szczególnie przy jakiejś nieszczęśliwej kolejności przyłączenia portów.
    Najbezpieczniejsze jest nieużywanie DHCP w ogóle, po prostu. Przy okazji wydatnie rośnie poziom bezpieczeństwa i jednocześnie wzrasta przepustowość sieci.
  • #24 20948734
    jarekgol
    Poziom 40  
    Posty: 5145
    Pomógł: 642
    Ocena: 1137
    analog_6 napisał:
    jednocześnie wzrasta przepustowość sieci
    a czemu tak? że DHCP taki duży ruch generuje? Zakładam że w domowych sieciach nie ma to odczuwalnego znaczenia?
  • REKLAMA
  • #25 20948736
    Konto nie istnieje
    Poziom 1  
  • #26 20948816
    analog_6
    Poziom 16  
    Posty: 319
    Pomógł: 6
    Ocena: 144
    Jak najbardziej. Protokoły sieciowe są pisane przez bystrzaków, którzy wiedzą jak zminimalizować obciążenie sieci protokołem.
    Jednak niewątpliwie każdy zbędny mechanizm sieciowy powoduje obciążenie routera zawsze a samej sieci zazwyczaj. Jeśli sieci, to także wszystkich podłączonych do niej fizycznie odbiorników. Każdy pojedynczy pakiet, nawet najkrótszy, to czas na łączach, i zużycie prądu zarówno nadajnika jak i odbiorników (na przetworzenie danych w najniższych warstwach przynajmniej). Po do więc aktywować niepotrzebne protokoły? Odpowiedź jest oczywista - po nic. Nie robić tego. DHCP jest niezwykle użyteczny, jak każdy plug&play. Ale często nie jest konieczny. A kiedy nie jest konieczny nie należy go używać. Sieć to nie worek bez dna. Każda ma ograniczenia przepustowości i przetwarzania danych. Należy ich oszczędzać w miarę możliwości. Bo wcale nie tak trudno je wyczerpać przy dzisiejszych oczekiwaniach użytkowników.

    P.S. Na marginesie, przeciętny email tekstowy, taki zwykły, nie obciążony żadnymi modnymi śmieciami html, generuje do atmosfery ok. 5g CO2 w postaci zużytego prądu. Warto o tym pomyśleć.
  • #27 20948833
    krzbor
    Poziom 29  
    Posty: 1752
    Pomógł: 40
    Ocena: 1059
    khoam napisał:
    Niekoniecznie. W moim służbowym smartfonie, po pierwszym uruchomieniu randomizacja MAC była domyślnie wyłączona. Wyprodukowany w 2020

    Być może Android (GOOGLE) swoje, a producent swoje.
  • #28 20948980
    szdom
    Poziom 12  
    Posty: 37
    Ocena: 43
    krzbor napisał:
    Powstaje zatem pytanie - jak działa "detektor" - szef chyba ma bardzo stary telefon :)

    Najnowszy Iphone ;) Także standardy sobie, życie sobie.

    jarekgol napisał:
    Piękny klocek :)
    Ja jakiś czas temu zaglądałem w logi serwera DHCP żeby stwierdzić czy prezesostwo dotarło do zakładu.

    Dzięki.
    Ja to mam rozwiązane troszkę inaczej - jako, że zakład mamy trochę rozrzucony, kilka budynków w pewnej odległości od siebie a posiadamy sieci WiFi MESH na Ubiquiti to załatwiłem temat skryptem.
    Czasem potrzebuję spotkać się osobiście z pewną osobą, to żeby nie "zawracać gitary" rozmową telefoniczną przygotowałem skrypt, który odpytuje kontroler do której fizycznie anteny podłączony był użytkownik w ciągu ostatnich kilku minut. Na podstawie tych danych generuje stronkę html, na której mam listę osób wraz z fizyczną lokalizacją ;) Oczywiście trzeba pamiętać, że ta informacja nie jest w 100% aktualna, bo użytkownik mógł już się przemieścić. Ale w większości przypadków pozwala dosyć dokładnie namierzyć delikwenta.

    jarekgol napisał:
    A jak to jest z tym że dany producent ma przydzieloną jakąś pulę mac'ów? I ciekawe jaka jest szansa w większych sieciach że się mac'i zderzą po losowaniu?

    Producenta można zidentyfikować po 6 pierwszych znakach w adresie MAC, pozostałe 6 mogą być randomizowane, myślę, że wystarczy tego na całkiem sporą sieć.
  • #30 20949167
    krzbor
    Poziom 29  
    Posty: 1752
    Pomógł: 40
    Ocena: 1059
    Myślę o zastosowaniu tego urządzenia do monitoringu. W przypadku wydzielonego i ogrodzonego budynku można wykryć, że ktoś się kręci w pobliżu (oczywiście jeśli ma telefon :). Zauważyłem, że przekazywana jest informacja o mocy sygnału - można zatem określić w przybliżeniu w jakiej odległości ktoś jest. Myślę o pracy w dwóch trybach - zbieranie danych, a następnie ich wysyłka przez klasyczne WiFi. Wymaga to ciągłej zmiany ustawień ESP. Obecnie w trybie nasłuchu mamy:
    Kod: Arduino
    Zaloguj się, aby zobaczyć kod

    Tu mam pytanie do osób, które dobrze znają ESP - jak przestawić to w tryb nadawania (STA)? Czy ponowne wywołanie powyższego kodu przestawi znowu na tryb nasłuchu?
📢 Słuchaj (AI):

Podsumowanie tematu

✨ Użytkownik zaprezentował projekt "Detektor przełożonego", wykorzystujący moduł ESP8266 oraz wyświetlacz OLED SSD1306 do monitorowania obecności urządzeń z włączonym WiFi. Urządzenie identyfikuje telefony, które wysyłają pakiety z adresami MAC, co pozwala na sygnalizację ich obecności. W dyskusji poruszono kwestie związane z randomizacją adresów MAC, prywatnością, a także możliwościami rozbudowy detektora o dodatkowe funkcje, takie jak Bluetooth. Uczestnicy wymienili doświadczenia związane z detekcją, problemami z identyfikacją użytkowników oraz zastosowaniem technologii w różnych scenariuszach, w tym w marketingu i monitoringu.
Wygenerowane przez model językowy.
REKLAMA