Spisu treści:

Czujnik obecności: 12 kroków
Czujnik obecności: 12 kroków

Wideo: Czujnik obecności: 12 kroków

Wideo: Czujnik obecności: 12 kroków
Wideo: Czujniki obecności porównanie i testy (MIR-HE200-TY_fall / TS0601 presence sensor) 2024, Listopad
Anonim
Czujnik obecności
Czujnik obecności

Urządzenia do noszenia to zazwyczaj urządzenia obsługujące technologię BLE. Często zdarza się, że okresowo rozgłaszają niektóre dane pod swoim adresem MAC. Używamy ESP do skanowania tych danych i wyzwalania zdarzenia przez Internet, gdy znajdzie określony adres MAC. Ta konkretna implementacja jest przeznaczona dla jednego użytkownika na inteligentnej wtyczce podłączonej do lampy. Ale może być również używany z zestawem zarejestrowanych urządzeń z dowolnymi urządzeniami obsługującymi IOT.

Kieszonkowe dzieci

  1. ESP32
  2. (opcjonalnie) TECKIN WiFi Wall Plug S10
  3. Urządzenie obsługujące BLE dowolnego rodzaju

Krok 1: Zdefiniuj swój scenariusz

Zdefiniuj swój scenariusz
Zdefiniuj swój scenariusz

Jako spust możesz użyć większości nowoczesnych urządzeń do noszenia. Może to być zegarek Apple Watch, opaska mi fit, telefon, a nawet własne urządzenie do noszenia DIY oparte na ESP32.

Prawdopodobnie jeden z najważniejszych kroków. Musisz myśleć z wyprzedzeniem w 3 rzeczach:

1. Które urządzenie do noszenia lub urządzenie będzie wyzwalaczem czujnika zbliżeniowego.

2. Co uruchomi czujnik (odbywa się to poprzez IFTTT).

3. Kiedy czujnik się uruchomi

W tym przykładzie użyję mojego zegarka Apple Watch, aby uruchomić inteligentną wtyczkę, aby włączyć lampę, gdy siedzę przy biurku.

W tym samouczku przyjrzymy się inteligentnej wtyczce firmy TECKIN. Możesz go znaleźć w amazon w dobrej cenie. Jest również kompatybilny z Alexą i Google Home. Świetna cena!

Krok 2: (wstęp) Ustaw wyzwalacz - wielu użytkowników

Jeśli chcesz skonfigurować tak, aby działała każda osoba z urządzeniem obsługującym BLE wystarczająco blisko czujnika, pomiń następny krok. To bardzo przydatne ustawienie, którego osobiście używam. Należy pamiętać, że ten czujnik można łatwo zhakować lub wykorzystać do uruchomienia, więc nie ufałem zbytnio w kufel stoiska bezpieczeństwa; tylko dla praktycznego (tzn. nie chcę, aby był uruchamiany przez mój komputer, ponieważ będzie zawsze obok czujnika).

Krok 3: (wstęp) Ustaw wyzwalacz - ograniczona liczba użytkowników

Ten krok różni się znacznie w Twojej konfiguracji. Aby ograniczyć, które urządzenia mogą wyzwalać czujnik, masz wiele tras do ograniczenia:

- Adres MAC BLE (odpowiednik adresu IP w sieci Wi-Fi. Powód, dla którego nie gwarantuje bezpieczeństwa, ponieważ nie jest to prawdziwy adres MAC modułu. Na urządzeniach z systemem iOS zmienia się przy każdym ponownym uruchomieniu bluetooth, nie jest to takie zabawne)

- Kod producenta (lepsza opcja, ale bez możliwości ograniczenia konkretnych urządzeń tego samego producenta/modelu)

- Nazwa, UIDD usługi (rzadka, ale najlepsza opcja, głównie urządzenia do noszenia DIY lub aplikacja na Androida)

Niektóre notatki:

1. Jeśli jest to urządzenie z systemem iOS:

- Masz kilka ważnych zalet i wad. Pro, przekazują poziom mocy, na którym są dane reklamowe. Jest to pomocne na etapie kalibracji, przekonasz się, że korzystanie z zegarka Apple Watch jest pomocne, ponieważ nadaje on z prędkością 24 db, iPhone'y i większość urządzeń transmituje z prędkością 12 db.

CON, będziesz musiał znaleźć obejścia. Reklamowany adres MAC (główna metoda identyfikacji) zmienia się za każdym razem, gdy sygnał bluetooth jest restartowany, co oznacza, że za każdym razem będziesz musiał wgrywać kod… nie jest to zabawne. Możesz użyć danych producenta, które mogą się różnić w zależności od modelu. Oznacza to, że możesz ograniczyć, aby wyczuł „cały iPhone 8”.

2. Jeśli jest to urządzenie z systemem Android:

- Osobiście nie mam urządzenia z Androidem. Ale prawdopodobnie istnieje wiele aplikacji, które mogą naprawić adres MAC, a nawet dodać spersonalizowaną nazwę (jeśli tak chcesz). Na urządzeniach z systemem iOS istnieje aplikacja „nrf connect”, która może to zrobić. Ale nie jest trwały, co oznacza, że jeśli zablokujesz ekran lub przełączysz aplikacje… konfiguracja wyłączy się w ciągu kilku sekund.

3. Kolejny ESP32. (Twój najlepszy zakład)

- Prosty kod, taki jak ten, można zaimplementować w urządzeniu takim jak to; inteligentna opaska z zasilaniem esp32. Kod jest właściwie przykładem z biblioteki ESP BLE BLE_IBeacon.ino. Nie testowałem jej zbyt wiele, ponieważ moja inteligentna opaska jest w sprzedaży, prawdopodobnie wkrótce opublikuję aktualizacje.

Krok 4: (Konfiguracja) - IFTTT

(Konfiguracja) - IFTTT
(Konfiguracja) - IFTTT

Ok, więc na tym etapie prawdopodobnie powinieneś podjąć wszystkie decyzje dotyczące swojego przepływu pracy. Masz swoje urządzenie wyzwalające, masz miejsce na umieszczenie ESP z bezprzewodowym połączeniem z Internetem i masz na myśli akcję, którą IFTTT może zautomatyzować.

IFTTT jest potężny; czy chcesz wysłać proste powiadomienie na urządzenie, chcesz wysłać tweeta, czy włączyć żarówkę za pomocą inteligentnej wtyczki. W tym samouczku zaimplementujemy ten ostatni z inteligentnymi wtyczkami TECKIN kompatybilnymi z IFTTT. Tak czy inaczej, pobierz aplikację IFTTT lub przejdź do strony internetowej IFTTT.com i utwórz konto.

Na razie to wszystko!

Jeśli chcesz tylko wysłać powiadomienie lub coś innego niż wtyczka Smart Life, możesz pominąć następny krok.

Krok 5: (Konfiguracja) Urządzenie IOT *opcjonalne*

Pobierz aplikację „Smart Life” z PlayStore (Android) lub AppStore (iOS). Instrukcje są dość proste, chociaż proces jest nieco skomplikowany. Dowiedziałem się na etapie skanowania (kiedy niebieski przycisk mrugał), że w pewnym momencie się zatrzymał, po czym kilka razy ręcznie nacisnąłem go, aby włączyć i wyłączyć. To mi pomogło. W każdym razie; konfiguracja tej wtyczki nie różni się niczym od naszej aplikacji, więc jeśli już ją posiadasz i masz ją podłączoną do swojej aplikacji, powinieneś być gotowy do pracy.

UWAGA: Musisz mieć możliwość włączania i wyłączania przełącznika z poziomu aplikacji, zanim przejdziesz od tego kroku. Oznacza to, że prawidłowo skonfigurowałeś inteligentną wtyczkę.

Aplikacja IFTTT powinna bezproblemowo zsynchronizować się z aplikacją „Smart Life”, prawdopodobnie monitując o uwierzytelnienie podczas tworzenia zdarzenia w następnym kroku.

Krok 6: (Konfiguracja) IFTTT Webhook Api *Doświadczeni użytkownicy*

(Konfiguracja) IFTTT Webhook Api *Doświadczeni użytkownicy*
(Konfiguracja) IFTTT Webhook Api *Doświadczeni użytkownicy*

Jeśli nie korzystałeś wcześniej z aplikacji IFTTT i nie czujesz się dobrze z niektórymi terminami technicznymi, pomiń ten krok, aby przejść do szczegółowego przewodnika (ze zdjęciami) w następnym kroku.

1. Utwórz nowe wydarzenie.

2. Ustaw „this” na webhook api. Zapisz nazwę nadaną wydarzeniu.

3. Ustaw "to" na pożądane zachowanie. W przypadku inteligentnej wtyczki wyszukaj inteligentne życie i wybierz „włącz”.

4. Wybierz inteligentną wtyczkę i naciśnij Zakończ.

5. Na ekranie głównym poszukaj karty „webhooks”. Po wciśnięciu, naciśnij "get more" na dole.

6. Dokumentacja prasowa. Spowoduje to wyświetlenie klucza API wraz z konstruktorem i testerem adresów URL.

7. Użyj narzędzia do tworzenia adresów URL o nazwie, którą napisałeś w punkcie 2. Skopiuj to i zapisz.

8. Powtórz, jeśli chcesz, aby zachowanie było wyzwalane, gdy czujnik obecności nie jest już aktywny. W naszym przypadku powtórz #3, ale wybierz „wyłącz”. Również w punkcie 2 nazwa powinna być tym razem inna.

Jeśli skończysz, pomiń następny krok.

Krok 7: (Konfiguracja) IFTTT Webhook Api *Dla początkujących ze zdjęciami*

(Konfiguracja) IFTTT Webhook Api *Dla początkujących ze zdjęciami*
(Konfiguracja) IFTTT Webhook Api *Dla początkujących ze zdjęciami*
(Konfiguracja) IFTTT Webhook Api *Dla początkujących ze zdjęciami*
(Konfiguracja) IFTTT Webhook Api *Dla początkujących ze zdjęciami*
(Konfiguracja) IFTTT Webhook Api *Dla początkujących ze zdjęciami*
(Konfiguracja) IFTTT Webhook Api *Dla początkujących ze zdjęciami*

Szczegółowy przewodnik *poradnik ze zdjęciami powinien być podobny do Androida i w Internecie*

IFTTT to prosty przepływ pracy, jeśli „tak się dzieje”, to „tak się dzieje”. Musisz stworzyć nowy, 1. w aplikacji naciśnij „zdobądź więcej”, a pojawi się lista.

2. Tuż pod paskiem wyszukiwania napis "stwórz własne aplety od podstaw", naciśnij znak plus.

3. Naciśnij „ten” znak plus

W naszym przypadku „to” będzie połączeniem api przez internet. Wywołanie API to konsultacja z adresem URL, podobnie jak podczas wpisywania wyszukiwania google, a adres URL to google.com/(długi ciąg znaków). Aby utworzyć api: (po naciśnięciu "tego")

4. Wyszukaj „webhooki”

5. Wybierz jedyną opcję

6. Nazwij swoje wydarzenie (w tym przykładzie użyjemy „Sit”). Zapisz to imię, bardzo ważne.

7. Naciśnij Utwórz wyzwalacz

Ok! jesteśmy bliżej, teraz do „tamtej” części. W tym samouczku ustawimy „to”, aby włączyć inteligentną wtyczkę. Ale możesz wybrać cokolwiek z IFTTT. Dobrym sposobem na przetestowanie konfiguracji jest wybranie „powiadomień”, które wyślą powiadomienie na telefon za każdym razem, gdy czujnik się uruchomi (lub wywołanie interfejsu API, nawet z przeglądarki internetowej: przydatne do testowania!)

8. Naciśnij „ten” znak plus

9. Wyszukaj „Smart Life” (lub „powiadomienia”)

10. Naciśnij „włącz” (musisz powtórzyć te kroki, aby utworzyć kolejne wydarzenie, które zostanie wyłączone, gdy wyjdziesz)

11. Jeśli masz poprawnie skonfigurowane obie aplikacje i wtyczkę, powinieneś zobaczyć swoją wtyczkę na liście rozwijanej „które urządzenie/grupa”.

12. Wybierz opcję Utwórz akcję, a następnie zakończ.

Teraz powinieneś zobaczyć, że wydarzenie jest połączone. Teraz musimy uzyskać adres URL interfejsu API. Dla tego:

13. Przejdź do ekranu głównego IFTTT

14. Znajdź kartę webhooków

15. Wybierz „Zdobądź więcej”

16. Stuknij w przycisk Dokumentacja. Powinieneś zobaczyć stronę internetową z twoim kluczem.

17. W polach „{event}” wpisz nazwę wydarzenia (pamiętaj o punkcie 6)

18. Przejdź na dół strony i wybierz „Przetestuj”

To, co prawdopodobnie powinieneś zobaczyć, to zielony baner „wydarzenie zostało wywołane” i powinieneś sprawdzić, czy zadziałało, czy nie. W naszym przypadku wtyczka powinna się włączyć. Lub powinieneś zobaczyć powiadomienie, jeśli zdecydujesz się pójść tą ścieżką. Może to trochę potrwać, ale nie więcej niż minutę, zanim sprawdzisz, czy ci się udało. Pamiętaj, że prawdopodobnie rozróżniana jest wielkość liter.

19. Wreszcie. Skopiuj adres URL, pod którym zastąpiłeś nazwę wydarzenia (w wieku 17 lat) i zapisz go w bezpiecznym miejscu. Niedługo będziesz tego potrzebować.

20. Powtórz 1-12. O szóstej tym razem użyjemy „Stand”. O 10 zamiast tego wybierz „wyłącz”.

21. Powtórz 13-18, jeśli chcesz, ale możesz uciec z adresem URL skopiowanym w 19, ale teraz zmień miejsce, w którym napisałeś "Sit" i zastąp "Stój". Możesz to przetestować w przeglądarce internetowej. Powinien powiedzieć „Gratulacje! Odpaliłeś wydarzenie Stand”. Wtedy wtyczka powinna się wyłączyć.

Krok 8: (Kod) Programowanie ESP32

(Kod) Programowanie ESP32
(Kod) Programowanie ESP32

Możesz pominąć ten krok, jeśli czujesz się komfortowo, przesyłając szkice z Arduino IDE na płytę ESP32. Pamiętaj tylko, aby ustawić partycję 2 MB dla aplikacji, przynajmniej ponieważ szkic waży nieco więcej niż zwykły limit 1,2 MB.

Istnieje wiele świetnych samouczków, oto kilka z nich, które polecam:

circuitdigest.com/microcontroller-projects…

Ale nadal, aby nie być tak zagubionym, podzielę kilka ważnych kluczowych punktów.

- ESP32 nie jest płytą Arduino, ale nadal może być programowany przez Arduino IDE. Z prostym kodem Arduino. Ale nadal będziesz musiał skonfigurować IDE do pracy z ESP32.

- Będziesz musiał zainstalować niektóre biblioteki za pomocą "Additional board manager" zgodnie z preferencjami. To jest adres URL, który należy wkleić:

- (opcjonalnie, może pomóc) W Narzędzia->Zarządzaj bibliotekami… -> (znajdź bibliotekę esp BLE)

- w Tools powinieneś mieć teraz długą listę urządzeń ESP, polecam moduł deweloperski ESP32

- (WAŻNE) Wybierz (bez aplikacji Ota 2mb/2mb spifów) w menedżerze partycji. Ten krok jest ważny, ponieważ aplikacja staje się dość ciężka, ponieważ wykorzystuje zarówno połączenia Wi-Fi/http, jak i skaner BLE.

Jeśli zrobiłeś wszystko dobrze, powinieneś być w stanie zaprogramować ESP32. Teraz proces robienia tego jest podobny do arduino w niektórych płytach. Podłącz go, wybierz pasującą płytkę, port USB i gotowe. Ale w wielu innych przypadkach będziesz musiał kontynuować

Krok 9: (Kod) Prześlij kod do ESP32

(Kod) Prześlij kod do ESP32
(Kod) Prześlij kod do ESP32

Ok, jeśli tu jesteś, to znaczy, że pomyślnie wgrałeś szkic na płytkę ESP32, najlepiej szkic blink.ino.

Oto główny kod dołączony, można go również znaleźć w repozytorium GitHub. Musisz wymienić następujące elementy:

SSID - Twoja nazwa Wi-Fi

PSK - Twoje hasło do Wi-Fi

sit – URL z napisem „Sit” z interfejsu IFTTT, który napisałeś wcześniej

stand - URL z napisem „Stand” z interfejsu IFTTT, który napisałeś wcześniej

Teraz zbliż urządzenie wyzwalające do tablicy, a następnie prześlij kod. Następnie otwórz Serial Monitor (baud 115200) po pomyślnym załadowaniu kodu.

Jeśli planujesz używać tego z dowolnym urządzeniem obsługującym BLE, pomiń następny krok.

UWAGA: jeśli otrzymasz komunikat o błędzie pamięci, to dlatego, że ustawienia domyślne pozostawiają tylko 1mB pamięci (z obecnych 4mB) dla surowego kodu ESP. Pozostawia część na kilka rzeczy jako opcję programowania bezprzewodowo. Zwykle wykonuję następujące czynności:

- w Tools powinieneś mieć teraz długą listę urządzeń ESP, polecam ESP32 dev module - wybierz 'no Ota 2mb app/2mb spifs' w menedżerze partycji.

Daje mi to podwójną ilość pamięci, potrzebną do tej aplikacji.

Krok 10: (Kod) Prześlij kod do ESP32 *opcjonalnie*

(Kod) Prześlij kod do ESP32 *opcjonalnie*
(Kod) Prześlij kod do ESP32 *opcjonalnie*

Oto trudna część wspomniana w kroku „Ustaw wyzwalacz”. Monitor wyświetli adres MAC (powinien wyglądać tak: ##:##:##:##:## gdzie # to liczba lub litera od a do f), kod producenta i RSSI (liczba ujemna). Tutaj musisz się trochę pobawić, aby znaleźć swoje urządzenie. Zwykle kładę go obok planszy, aby wyraźnie zobaczyć, która liczba jest najmniejsza. Odznaczam pole „automatyczne przewijanie”, aby móc skopiować wartości.

  • Jeśli jest to adres Mac, wypełnij nim „myDevice”. Następnie odkomentuj linię #96 i linię komentarza #95
  • Jeśli jest to nazwa, wpisz ją w 'mojeUrządzenie'. Następnie odkomentuj linię #97 i linię komentarza #95
  • Jeśli jest to MaufactureData, na razie nie masz szczęścia, wciąż rozwijam tę część.

Aby dodać obsługę wielu urządzeń, powinieneś być w stanie skopiować instrukcję warunkową pod numerem #96 lub #97 i umieścić je obok siebie w tej składni:

if((warunek1) ||(warunek2) ||(warunek3)){

Dodaj odpowiednio więcej zmiennych (mojeUrządzenie1, mojeUrządzenie2, mojeUrządzenie3).

Krok 11: Umieść ESP i skalibruj

Umieść ESP i skalibruj
Umieść ESP i skalibruj

To najważniejsza część konfiguracji. Uważne przechodzenie przez ten proces spowoduje, że będzie działać jak magia lub po prostu wywołać silne bóle głowy.

W tym momencie przesłany przez Ciebie kod działa z parametrami, które osobiście przetestowałem i używam codziennie z moim telefonem na biurku; nie oznacza to, że będzie działać również dla Ciebie. Więc musisz sam wykonać kalibrację.

1. Umieść płytkę ESP32 w jej ostatecznej, STAŁYM miejscu. Jeśli z jakiegoś powodu zmienisz pozycję swojego ESP32, prawdopodobnie powinieneś to zrobić ponownie. Zapewni to ogólne dobre wrażenia.

1. (dodatkowo) pamiętaj, że podczas wykonywania tej czynności musisz mieć możliwość połączenia się z komputerem. Jeśli nie możesz, ponieważ pracujesz na komputerze, będziesz musiał przeprowadzić próby i błędy, pamiętając, że każda próba musi być prawie identyczna pod względem pozycjonowania, wyzwalacza i innych czynników, które mogą się liczyć.

2. Otwórz Serial Monitor z uruchomionym kodem.

Kod domyślnie opublikuje za pośrednictwem monitora szeregowego RSSI (wskazanie siły odbieranego sygnału) każdego znalezionego urządzenia Bluetooth (lub tylko urządzeń pasujących do twoich parametrów). Pobaw się trochę swoim głównym urządzeniem działania (urządzeniem wyzwalającym). Musisz określić, jakich progów chcesz użyć. Dokładne dostosowanie tej konfiguracji spowoduje

3. Po ustaleniu progów zastąp je tutaj:

  • near_thrsh
  • far_thrsh

4. Ponownie prześlij kod, testuj i powtarzaj, aż znajdziesz optymalną wydajność.

Kilka rzeczy do rozważenia:

1. Chcesz około 20db różnicy między progami. Jeśli near_thrsh jest ustawione na 50, to pożądane jest, aby far_thrsh wynosiło 70 lub więcej. Jeśli różnica jest zbyt mała, możesz znaleźć odległości lub miejsca, w których deska włącza się i wyłącza bez przerwy. Zwiększenie tej różnicy zapewni uniknięcie tego niepożądanego zachowania. Osobiście stwierdziłem, że 20db marży jest wystarczająco dobre.

2. Przy testach kalibracyjnych w rzeczywistych scenariuszach, na ile to możliwe, pomoże to określić najlepszą wydajność.

3. Przestudiuj klasę w wierszu 82 kodu; tutaj odbywa się cała logika. Kod jest jednak dobrze skomentowany. Zapraszam do zapytania na GitHub!

Krok 12: Gratulacje! Gotowe

Daj mi znać w komentarzach do wszelkich sugestii lub jeśli masz problemy. Pamiętaj, aby sprawdzić GitHub, jeśli Twój problem został już rozwiązany!

Zalecana: