Sadržaj:

Senzor prisutnosti: 12 koraka
Senzor prisutnosti: 12 koraka

Video: Senzor prisutnosti: 12 koraka

Video: Senzor prisutnosti: 12 koraka
Video: Aqara FP2 RTCZCQ12LM - мультизонный микроволновый датчик присутствия с сенсором освещенности 2024, Studeni
Anonim
Senzor prisutnosti
Senzor prisutnosti

Nosivi su obično uređaji s omogućenim BLE -om. Uobičajeno je da povremeno oglašavaju neke podatke uz njegovu MAC adresu. Koristimo ESP za skeniranje ovih podataka i pokretanje događaja putem interneta kada pronađe određenu MAC adresu. Ova posebna implementacija je za jednog korisnika na pametnom utikaču spojenom na svjetiljku. No, također se može koristiti sa skupom registriranih uređaja sa bilo kojom vrstom IOT uređaja.

Pribor

  1. ESP32
  2. (opcionalno) TECKIN WiFi zidni utikač S10
  3. BLE omogućen uređaj bilo koje vrste

Korak 1: Definirajte svoj scenarij

Definirajte svoj scenarij
Definirajte svoj scenarij

Za okidač biste mogli koristiti većinu modernih nosive opreme. To može biti Apple Watch, mi fit bend, telefon ili čak vaš vlastiti DIY nosivi uređaj temeljen na ESP32.

Vjerojatno jedan od najvažnijih koraka. Morate razmišljati unaprijed u 3 stvari:

1. Koji će nosivi uređaj ili uređaj biti okidač senzora blizine.

2. Što će pokrenuti senzor (to se radi putem IFTTT -a).

3. Kad će se senzor aktivirati

U ovom primjeru koristit ću svoj Apple Watch za aktiviranje pametnog utikača za uključivanje lampe kad sjednem za svoj stol.

U ovom ćemo vodiču gledati pametni utikač tvrtke TECKIN. Na Amazonu ga možete pronaći po povoljnoj cijeni. Također je kompatibilan s Alexa i google Home. Velika vrijednost!

Korak 2: (Uvod) Postavite okidač - više korisnika

Ako želite konfigurirati tako da radi bilo koja osoba s BLE omogućenim uređajem dovoljno blizu vašeg senzora, preskočite sljedeći korak. Ovo je prilično korisno, osobno koristim postavku. Imajte na umu da se ovaj senzor može lako hakirati ili iskoristiti za aktiviranje, tako da se ne bih pouzdao u pintu sa sigurnosnog postolja; samo zbog praktičnog (tj. ne želim da ga pokreće moje računalo jer će uvijek biti pored senzora).

Korak 3: (Uvod) Postavite okidač - ograničeni korisnici

Ovaj korak uvelike varira u vašim postavkama. Da biste ograničili koji uređaji mogu pokrenuti senzor, morate ograničiti mnoge rute:

- BLE MAC adresa (ekvivalentna IP adresi na WiFi mreži. Razlog zašto ne jamči sigurnost budući da nije prava MAC adresa modula. Na iOS uređajima mijenja se svaki put kada ponovno pokrenete bluetooth, nije tako zabavno)

- Kôd proizvođača (bolja opcija, ali nema načina da ograničite određene uređaje istog proizvođača/modela)

- Ime, UIDD usluge (rijetka, ali najbolja opcija, uglavnom nosivi uređaji "uradi sam" ili možda aplikacija za Android)

Neke napomene:

1. Ako se radi o iOS uređaju:

- Imate neke važne prednosti i nedostatke. Profesionalno, oni prenose razinu snage na kojoj se nalaze podaci o oglašavanju. To je korisno u fazi kalibracije, vidjet ćete da je korištenje Apple Watcha korisno jer emitira na 24 db, iPhone i većina uređaja emitiraju na 12 db.

CON, morat ćete pronaći zaobilazna rješenja. Oglašena MAC adresa (glavna metoda identifikacije) mijenja se svaki put kada se bluetooth signal ponovo pokrene, što znači da ćete morati učitati kôd svaki put … nije zabavno. Možete koristiti podatke proizvođača koji se mogu razlikovati među modelima. To znači da možete ograničiti tako da osjeti "sav iPhone 8".

2. Ako se radi o Android uređaju:

- Ja osobno nemam android uređaj. No, vjerojatno postoji mnogo aplikacija koje mogu popraviti MAC adresu ili čak dodati prilagođeno ime (ako to želite učiniti). Na iOS uređajima postoji aplikacija "nrf connect" koja to može učiniti. Ali nije trajan, što znači da ako zaključate zaslon ili promijenite aplikaciju.. konfiguracija se isključuje za nekoliko sekundi.

3. Još jedan ESP32. (najbolje je)

- Ovakav jednostavan kod može se implementirati u uređaj poput ovog; pametni pojas s pogonom esp32. Kôd je zapravo primjer iz ESP BLE knjižnice BLE_IBeacon.ino. Nisam ga isprobao previše jer je moj pametni bend u dostavi, vjerojatno ću uskoro objaviti ažuriranja.

Korak 4: (Postavljanje) - IFTTT

(Postavljanje) - IFTTT
(Postavljanje) - IFTTT

U redu, u ovoj biste fazi vjerojatno trebali uzeti sve odluke o svom tijeku rada. Imate svoj pokretački uređaj, imate mjesto za postavljanje ESP -a s bežičnom vezom na internet i imate na umu radnju koju IFTTT može automatizirati.

IFTTT je moćan; bez obzira radi li se samo o jednostavnoj obavijesti na vaš uređaj, želite da se pošalje tweet ili uključite žarulju s pametnim utikačem. U ovom ćemo vodiču posljednju implementirati s pametnim utičnicama TECKIN kompatibilnim s IFTTT. U svakom slučaju, preuzmite aplikaciju IFTTT ili idite na web stranicu IFTTT.com i stvorite račun.

To je to za sada!

Ako samo želite poslati obavijest ili nešto drugo osim priključka Smart Life, možete preskočiti sljedeći korak.

Korak 5: (Postavljanje) IOT uređaj *izborno *

Preuzmite aplikaciju "Smart Life" s PlayStore -a (android) ili AppStore -a (iOS). Upute su prilično jasne, iako je postupak pomalo zeznut. Otkrio sam u fazi skeniranja (kad je plavi gumb trepnuo) da je u jednom trenutku prestalo, a zatim sam ga ručno pritisnuo da se uključi i isključi nekoliko puta. To mi je pomoglo. U svakom slučaju; postavljanje ovog priključka ne razlikuje se ništa s našom aplikacijom pa ako već imate jedan i imate ga spojenog na svoju aplikaciju, trebali biste biti spremni za korištenje.

NAPOMENA: Prije nego što nastavite s ovog koraka, morate omogućiti uključivanje i isključivanje prekidača u aplikaciji. To će značiti da ste pravilno konfigurirali pametni utikač.

Aplikacija IFTTT trebala bi se besprijekorno sinkronizirati s aplikacijom "Smart Life", što će vjerojatno potaknuti autentifikaciju prilikom stvaranja događaja u sljedećem koraku.

Korak 6: (Postavljanje) IFTTT Webhook Api *Iskusni korisnici *

(Postavljanje) IFTTT Webhook Api *Iskusni korisnici *
(Postavljanje) IFTTT Webhook Api *Iskusni korisnici *

Ako niste koristili aplikaciju IFTTT prije i niste zadovoljni s nekim tehničkim izrazima, preskočite ovaj korak za Detaljan vodič (sa fotografijama) u sljedećem koraku.

1. Izradite novi događaj.

2. Postavite "this" na API webhook. Zapišite naziv koji ste postavili za događaj.

3. Postavite "to" na željeno ponašanje. Za pametan utikač tražite pametni život i odaberite "uključi".

4. Odaberite svoj pametni utikač i pritisnite završi.

5. Na početnom zaslonu potražite karticu 'webhooks'. Nakon što ste ga pritisnuli, pritisnite "get more" pri dnu.

6. Dokumentacija za tisak. Ovo će vam pokazati vaš api ključ zajedno s graditeljem URL -a i testerom.

7. Upotrijebite de URL builder s imenom koje ste napisali na #2. Kopirajte to i zapišite.

8. Ponovite ako želite da se aktivira ponašanje kada senzor prisutnosti više nije aktivan. U našem slučaju ponovite #3, ali odaberite 'isključi'. Također, na #2 ime bi ovaj put također trebalo biti drugačije.

Ako ste završili, preskočite sljedeći korak.

Korak 7: (Postavljanje) IFTTT Webhook Api *Za početnike sa fotografijama *

(Postavljanje) IFTTT Webhook Api *Za početnike sa fotografijama *
(Postavljanje) IFTTT Webhook Api *Za početnike sa fotografijama *
(Postavljanje) IFTTT Webhook Api *Za početnike sa fotografijama *
(Postavljanje) IFTTT Webhook Api *Za početnike sa fotografijama *
(Postavljanje) IFTTT Webhook Api *Za početnike sa fotografijama *
(Postavljanje) IFTTT Webhook Api *Za početnike sa fotografijama *

Detaljan vodič *vodič za fotografije trebao bi biti sličan za android i na webu *

IFTTT je jednostavan tijek rada, ako se "ovo dogodi" onda "to se dogodi". Morate stvoriti novu, 1. u aplikaciji pritisnite "get more" i prikazat će se popis.

2. Točno ispod trake za pretraživanje a kaže "sami napravite svoje aplete od nule", pritisnite znak Plus.

3. Pritisnite "ovo" znak plus

U našem slučaju "ovo" će biti api poziv putem interneta. Api poziv je konzultacija s URL -om, na primjer kad upišete google pretraživanje, a url je google.com/ (dugačak niz znakova). Da biste stvorili api: (nakon pritiska na "ovo")

4. Pretražite "webhooks"

5. Odaberite jedinu opciju

6. Imenujte svoj događaj (u ovom primjeru koristit ćemo "Sjedni"). Zapišite ovo ime, vrlo važno.

7. Pritisnite Kreiraj okidač

U redu! mi smo bliže, sada "onaj" dio. Za ovaj vodič ćemo postaviti "to" za uključivanje pametnog utikača. Ali možete odabrati bilo što od IFTTT -a. Dobar način testiranja postavljanja je odabir "obavijesti" koje će slati obavijest na vaš telefon svaki put kada se senzor pokrene (ili se pozove API, čak i iz web preglednika: korisno za testiranje!)

8. Pritisnite znak "taj" plus

9. Pretražite "Pametni život" (ili "obavijesti")

10. Pritisnite 'uključi' (morat ćete ponoviti ove korake da biste stvorili još jedan događaj za isključivanje pri odlasku)

11. Ako imate obje aplikacije i utikač ispravno konfiguriran, trebali biste vidjeti svoj utikač na padajućem izborniku 'koji uređaj/grupa.

12. Odaberite Stvori radnju, a zatim dovršite.

Sada biste trebali vidjeti da je događaj povezan. Sada moramo dobiti URL api. Za ovo:

13. Idite na početni zaslon IFTTT

14. Pronađite karticu Webhooks

15. Odaberite "Dobijte više"

16. Dodirnite gumb Dokumentacija. Trebali biste vidjeti web stranicu s ključem.

17. Na oznakama mjesta "{event}" unesite naziv svog događaja (zapamtite točku 6)

18. Idite na dno stranice i dodirnite "Testiraj"

Ono što biste vjerojatno trebali vidjeti je zeleni transparent "događaj je pokrenut" i trebali biste vidjeti je li uspio ili ne. U našem slučaju utikač bi se trebao uključiti. Ili biste trebali vidjeti obavijest ako ste odlučili ići tim putem. Može potrajati malo, ali ne više od minute da vidite jeste li uspjeli. Upamtite da je vjerojatno osjetljivo na velika i mala slova.

19. Konačno. Kopirajte url gdje ste zamijenili naziv svog događaja (na 17) i spremite ga na sigurno mjesto. Ovo će vam uskoro trebati.

20. Ponovite 1-12. U 6 ćemo ovaj put koristiti "Stand". U 10 umjesto toga odaberite 'isključi'.

21. Ponovite 13-18 ako želite, ali možete pobjeći s URL-om koji ste kopirali u 19, ali sada promijenite mjesto na kojem ste napisali "Sjedi" i zamijenite sa "Stani". To možete testirati u web pregledniku. Trebalo bi pisati 'Čestitamo! Otpustili ste događaj na štandu '. Tada je utikač trebao biti isključen.

Korak 8: (Kôd) Programiranje ESP32

(Kôd) Programiranje ESP32
(Kôd) Programiranje ESP32

Ovaj korak možete preskočiti ako se osjećate ugodno učitavati skice iz Arduino IDE -a na svoju ESP32 ploču. Ne zaboravite samo postaviti particiju od 2 MB za aplikaciju barem budući da skica teži nešto više od uobičajenog ograničenja od 1,2 MB.

Postoji mnogo sjajnih vodiča, a neke od njih preporučujem:

circuitdigest.com/microcontroller-projects…

Ali ipak, da niste toliko izgubljeni, razložit ću nekoliko važnih ključnih točaka.

- ESP32 nije Arduino ploča, ali ga još uvijek može programirati Arduino IDE. S jednostavnim Arduino kodom. No, ipak ćete morati konfigurirati IDE za rad s ESP32.

- Morat ćete instalirati neke knjižnice putem "Upravitelja dodatnih ploča" prema željama. Ovo je URL koji trebate zalijepiti:

-(izborno, može pomoći) Na Alati-> Upravljanje knjižnicama… -> (pronađite esp BLE knjižnicu)

- u Alatima biste sada trebali imati dugačak popis ESP uređaja, preporučujem ESP32 dev modul

- (VAŽNO) Odaberite (nema Ota 2mb aplikacije/2mb uvlačenja) u upravitelju particija. Ovaj korak je važan jer aplikacija postaje prilično teška kao proizvod korištenja i wifi/http veza, kao i BLE skenera.

Ako ste sve učinili kako treba, mogli biste programirati ESP32. Sada je postupak na sličan način sličan arduinu na nekim pločama. Uključite ga u utičnicu, odaberite odgovarajuću ploču, USB priključak i gotovi ste. No, u mnogim drugim slučajevima morat ćete nastaviti

Korak 9: (Kôd) Prenesite kôd na ESP32

(Kôd) Prenesite kôd na ESP32
(Kôd) Prenesite kôd na ESP32

U redu, ako ste ovdje, to znači da ste uspješno prenijeli skicu na ploču ESP32, po mogućnosti skicu blink.ino.

Ovdje je glavni priloženi kod, možete ga pronaći i na GitHub repo -u. Morate zamijeniti sljedeće:

SSID - Ime vašeg WiFi -ja

PSK - Vaša lozinka za WiFi

sit - URL sa "Sit" iz IFTTT API -ja koji ste napisali ranije

stand - URL s "Stand" iz IFTTT API -ja koji ste ranije napisali

Sada približite svoj okidač uređaju ploči, a zatim prenesite kôd. Zatim otvorite Serijski monitor (baud 115200) nakon uspješno učitanog koda.

Ako ovo namjeravate koristiti s bilo kojom vrstom BLE uređaja, preskočite sljedeći korak.

NAPOMENA: ako dobijete poruke o pogrešci u memoriji, zadane postavke ostavljaju samo 1 MB memorije (od prisutnih 4 MB) za ESP sirovi kod. Ostavlja dio za nekoliko stvari kao opciju za programiranje putem zraka. Obično radim sljedeće:

- u Alatima biste sada trebali imati dugačak popis ESP uređaja, preporučujem ESP32 dev modul- Odaberite 'no Ota 2mb app/2mb spifs' u upravitelju particija.

To mi daje dvostruki memorijski prostor, potreban za ovu aplikaciju.

Korak 10: (Kôd) Prenesite kôd na ESP32 *izborno *

(Kôd) Prenesite kôd na ESP32 *izborno *
(Kôd) Prenesite kôd na ESP32 *izborno *

Evo lukavog dijela spomenutog u koraku "Postavi okidač". Monitor će prikazati MAC adresu (trebala bi izgledati kao ##: ##: ##: ##: ## gdje je#broj ili slovo od a do f), proizvođačev kod i RSSI (negativan broj). Ovdje se morate malo poigrati da pronađete koji je vaš uređaj. Obično ga stavljam uz ploču tako da jasno vidim koji je najmanji broj. Poništio sam okvir 'autoscroll' kako bih mogao kopirati vrijednosti.

  • Ako se radi o Mac adresi, ispunite 'myDevice' s njom. Zatim raskomentirajte redak #96 i komentar redak #95
  • Ako se radi o imenu, ispunite 'myDevice' s njim. Zatim raskomentirajte redak #97 i komentar #95
  • Ako je riječ o MaufactureData, za sada nemate sreće, ja još uvijek razvijam taj dio.

Za dodavanje podrške za uređaje svibanj trebali biste moći kopirati uvjetnu izjavu na #96 ili #97 i postaviti ih jedno pored drugog u ovoj sintaksi:

if ((uvjet1) || (uvjet2) || (uvjet3)) {

U skladu s tim dodajte još varijabli (myDevice1, myDevice2, myDevice3).

Korak 11: Postavite ESP i kalibrirajte

Postavite ESP i kalibrirajte
Postavite ESP i kalibrirajte

Ovo je najvažniji dio postavljanja. Pažljiv prolazak kroz ovaj proces bit će razlika u tome što će djelovati poput magije ili će vam samo zadati jake glavobolje.

U ovom trenutku kôd koji ste učitali radi s parametrima koje sam osobno testirao i svakodnevno koristim sa telefonom na stolu; to ne znači da će i vama uspjeti. Dakle, kalibraciju morate obaviti sami.

1. Postavite ploču ESP32 na njezino konačno FIKSNO mjesto. Ako iz nekog razloga pomaknete položaj vašeg ESP32, vjerojatno biste to trebali ponoviti. To će vam osigurati općenito dobro iskustvo.

1. (dodatno) imajte na umu da ćete se za to morati povezati s računalom. Ako ne možete jer ste na radnoj površini, morat ćete izvršiti pokušaje i pogreške imajući na umu da svako ispitivanje mora biti gotovo identično u položaju, uređaju za pokretanje i drugim faktorima koji se mogu računati.

2. Otvorite Serial Monitor sa kodom koji radi.

Kôd će prema zadanim postavkama putem serijskog monitora objaviti RSSI (prikaz primljene jačine signala) svakog pronađenog Bluetooth uređaja (ili samo uređaja koji odgovaraju vašim parametrima). Malo se poigrajte sa svojim glavnim uređajem za radnju (uređajem za aktiviranje). Morate odrediti koje pragove želite koristiti. Pažljivo podešavanje ove konfiguracije će

3. Kad odredite pragove, zamijenite ih ovdje:

  • blizu_thrsh
  • far_thrsh

4. Ponovno učitajte kôd, testirajte i ponavljajte dok ne pronađete optimalne performanse.

Nekoliko stvari koje treba uzeti u obzir:

1. Želite oko 20db razlike između pragova. Ako je near_thrsh postavljeno na 50, tada je poželjno da je far_thrsh 70 ili više. Ako je razlika prekratka, možda ćete pronaći neke udaljenosti ili mjesta na kojima se ploča non -stop uključuje i isključuje. Povećanjem ove razlike izbjeći ćete ovo neželjeno ponašanje. Osobno sam otkrio da je marža od 20 db dovoljno dobra.

2. Na kalibracijskim testovima, koliko je to moguće, to će pomoći u određivanju najboljih performansi.

3. Proučite razred u retku 82 koda; ovdje se radi sva logika. Kôd je ipak dobro komentiran. Slobodno pitajte na GitHubu!

Korak 12: Čestitamo! Ti si gotov

Javite mi u komentarima sve prijedloge ili ako imate problema. Ne zaboravite provjeriti GitHub je li vaš problem već riješen!

Preporučeni: