INHOUDSOPGAWE:

Aanwesigheidsensor: 12 stappe
Aanwesigheidsensor: 12 stappe

Video: Aanwesigheidsensor: 12 stappe

Video: Aanwesigheidsensor: 12 stappe
Video: Sensoren 2024, November
Anonim
Aanwesigheidsensor
Aanwesigheidsensor

Wearables is gewoonlik BLE -toestelle. Dit is algemeen dat hulle gereeld data op sy MAC -adres adverteer. Ons gebruik 'n ESP om hierdie data te skandeer en 'n gebeurtenis via die internet te veroorsaak wanneer dit 'n spesifieke MAC -adres vind. Hierdie spesifieke implementering is vir 'n enkele gebruiker op 'n slimprop wat aan 'n lamp gekoppel is. Maar dit kan ook gebruik word met 'n stel geregistreerde toestelle met enige soort IOT -toestelle.

Voorrade

  1. ESP32
  2. (opsioneel) TECKIN WiFi -muurprop S10
  3. BLE -toestel van enige aard

Stap 1: Definieer u scenario

Definieer u scenario
Definieer u scenario

Vir die sneller kan u die meeste moderne draagbare materiaal gebruik. Dit kan 'n Apple Watch, 'n mi fit band, 'n telefoon of selfs 'n eie selfoon -draagbare toestel wees wat gebaseer is op 'n ESP32.

Waarskynlik een van die belangrikste stappe. U moet in drie dinge vooruit dink:

1. Watter draagbare toestel of toestel is die sneller van die nabyheidssensor?

2. Wat gaan die sensor aktiveer (dit word gedoen deur middel van IFTTT).

3. Wanneer die sensor gaan aktiveer

In hierdie voorbeeld gebruik ek my Apple Watch om 'n slimprop aan te skakel om 'n lamp aan te sit as ek by my lessenaar sit.

In hierdie handleiding kyk ons na 'n slimstekker van TECKIN. U kan dit teen 'n goeie prys by Amazon vind. Dit is ook versoenbaar met Alexa en Google Home. Goeie waarde!

Stap 2: (Intro) Stel Trigger in - veelvuldige gebruikers

As u wil instel dat iemand met 'n BLE -toestel naby genoeg aan u sensor kan werk, slaan dan die volgende stap oor. Dit is redelik handig, is die omgewing wat ek persoonlik gebruik. Hou in gedagte dat hierdie sensor maklik gehack of uitgebuit kan word om dit te aktiveer, sodat ek nie veel van 'n sekuriteitspint kan vertrou nie; net vir 'n praktiese (dit wil sê, ek wil nie hê dat dit deur my rekenaar veroorsaak word nie, want dit sal altyd langs die sensor wees).

Stap 3: (Intro) Stel Trigger in - beperkte gebruikers

Hierdie stap wissel baie van u opstelling. Om te beperk watter toestelle die sensor kan aktiveer, moet u baie roetes beperk:

- BLE MAC -adres (gelykstaande aan die IP -adres op 'n wifi -netwerk. Die rede waarom dit nie sekuriteit waarborg nie, is nie die regte MAC -adres van die module nie. Op iOS -toestelle verander dit elke keer as u die Bluetooth herlaai, nie so lekker nie)

- Vervaardigingskode (beter opsie, maar geen manier om spesifieke toestelle van dieselfde vervaardiger/model te beperk nie)

- Naam, diens -UIDD (skaars, maar die beste opsie, meestal DIY -draagbare materiaal of miskien 'n Android -app)

Enkele aantekeninge:

1. As dit 'n iOS -toestel is:

- U het 'n paar belangrike voor- en nadele. Pro, hulle stuur die kragvlak waarop dit advertensiedata is, oor. Dit is handig in die kalibrasie -stadium; u sal vind dat die gebruik van 'n Apple Watch nuttig is, aangesien dit op 24db uitsaai, iPhones en die meeste toestelle teen 12db.

CON, u sal oplossings moet vind. Die geadverteerde MAC -adres (die belangrikste identifikasiemetode) verander elke keer as die Bluetooth -sein herlaai word, wat beteken dat u elke keer die kode moet oplaai … nie lekker nie. U kan die vervaardigerdata gebruik wat tussen die modelle kan wissel. Dit beteken dat u dit kan beperk sodat dit 'alle iPhone 8' kan voel.

2. As dit 'n Android -toestel is:

- Ek het persoonlik nie 'n Android -toestel nie. Maar daar is waarskynlik baie toepassings wat die MAC -adres kan regstel of selfs 'n persoonlike naam kan byvoeg (as dit die manier is waarop u wil gaan). Op iOS -toestelle is daar 'n app "nrf connect" wat dit kan doen. Maar dit is nie aanhoudend nie, wat beteken dat as u die skerm sluit of van program verander.. die konfigurasie gaan binne 'n paar sekondes uit.

3. Nog 'n ESP32. (jou beste weddenskap)

- 'n Eenvoudige kode soos hierdie kan geïmplementeer word in 'n toestel soos hierdie; 'n esp32 -aangedrewe slimband. Die kode is eintlik 'n voorbeeld uit die ESP BLE -biblioteek BLE_IBeacon.ino. Ek het dit nie veel getoets nie, aangesien my slimband gestuur word, sal waarskynlik binnekort opdaterings plaas.

Stap 4: (Opstel) - IFTTT

(Opstel) - IFTTT
(Opstel) - IFTTT

Oké, so in hierdie stadium moet u waarskynlik al die definisies van u werkstroom inneem. U het u sneller -toestel, u het 'n plek om die ESP met 'n draadlose verbinding met die internet te plaas, en u het 'n aksie in gedagte wat IFTTT kan outomatiseer.

IFTTT is kragtig; Of dit nou net is om 'n eenvoudige kennisgewing na u toestel te stuur, u wil hê dat 'n tweet gestuur moet word of 'n gloeilamp met 'n slimstekker aanskakel. In hierdie tutoriaal implementeer ons die laaste met TECKIN -slimproppe wat versoenbaar is met IFTTT. Laai in elk geval die IFTTT -app af of gaan na die internet IFTTT.com en skep 'n rekening.

Dit is dit vir eers!

As u net 'n kennisgewing wil stuur of iets anders as die Smart Life -prop, kan u die volgende stap oorslaan.

Stap 5: (Opstelling) IOT -toestel *opsioneel *

Laai die "Smart Life" -program af van die PlayStore (Android) of AppStore (iOS). Die instruksies is redelik eenvoudig, hoewel die proses 'n bietjie lastig is. Ek het op die stadium van die skandering uitgevind (toe die blou knoppie geknip het) het dit op 'n stadium opgehou, en ek het dit met die hand ingedruk om 'n paar keer aan en uit te skakel. Dit het my gehelp. In elk geval; die opstelling van hierdie prop is niks anders as ons toepassing nie, dus as u reeds een besit en dit aan u app gekoppel het, moet u gereed wees.

LET WEL: u moet die skakelaar aan en af kan skakel vanaf die app voordat u met hierdie stap verder kan gaan. Dit beteken dat u die slimprop korrek gekonfigureer het.

Die IFTTT -app moet naadloos met die 'Smart Life' -app gesinkroniseer word, wat waarskynlik 'n verifikasie vereis terwyl 'n gebeurtenis in die volgende stap geskep word.

Stap 6: (Opstel) IFTTT Webhook Api *Ervare gebruikers *

(Opstel) IFTTT Webhook Api *Ervare gebruikers *
(Opstel) IFTTT Webhook Api *Ervare gebruikers *

As u nog nie voor die IFTTT -app gebruik het nie en nie gemaklik is met 'n paar tegniese terme nie, slaan hierdie stap oor vir die gedetailleerde gids (met foto's) in die volgende stap.

1. Skep 'n nuwe geleentheid.

2. Stel "hierdie" as 'n webhook -API. Skryf die naam neer wat u vir die geleentheid gestel het.

3. Stel "dit" in op die gewenste gedrag. Soek die slim lewe vir die slimprop en kies 'aanskakel'.

4. Kies u slimprop en druk afwerking.

5. Kyk op die tuisskerm na 'webhooks' -kaart. Nadat u daarop gedruk het, druk op "kry meer" onderaan.

6. Persdokumentasie. Dit wys u u api -sleutel saam met 'n URL -bouer en -toetser.

7. Gebruik die URL -bouer met die naam wat u op nommer 2 geskryf het. Kopieer dit en skryf dit neer.

8. Herhaal as u wil hê dat 'n gedrag veroorsaak moet word wanneer die teenwoordigheidssensor nie meer aktief is nie. Herhaal in ons geval nommer 3, maar kies 'afskakel'. By nommer 2 moet die naam hierdie keer ook anders wees.

As u klaar is, slaan die volgende stap oor.

Stap 7: (Opstel) IFTTT Webhook Api *Vir beginners met foto's *

(Opstel) IFTTT Webhook Api *Vir beginners met foto's *
(Opstel) IFTTT Webhook Api *Vir beginners met foto's *
(Opstel) IFTTT Webhook Api *Vir beginners met foto's *
(Opstel) IFTTT Webhook Api *Vir beginners met foto's *
(Opstel) IFTTT Webhook Api *Vir beginners met foto's *
(Opstel) IFTTT Webhook Api *Vir beginners met foto's *

Gedetailleerde gids *die fotogids moet soortgelyk wees aan Android en op die internet *

IFTTT is 'n eenvoudige werkstroom, as 'dit gebeur' dan 'gebeur'. U moet 'n nuwe een skep, 1. Druk op die app "kry meer" en 'n lys sal verskyn.

2. Reg onder die soekbalk sê a "maak u eie applets van nuuts af", druk die plusteken.

3. Druk "hierdie" plusteken

In ons geval gaan 'hierdie' 'n api -oproep via die internet wees. 'N API -oproep is 'n raadpleging van 'n URL, soos wanneer u 'n Google -soektog tik en die URL is google.com/('n lang reeks karakters). Om die api te skep: (nadat u op "hierdie" gedruk het)

4. Soek "webhooks"

5. Kies die enigste opsie

6. Noem u geleentheid (in hierdie voorbeeld gebruik ons 'Sit'). Skryf hierdie naam neer, baie belangrik.

7. Druk Skep sneller

Ok! ons is nader, nou aan die 'daardie' deel. Vir hierdie tutoriaal stel ons 'dat' in om die Smart plug aan te skakel. Maar u kan enigiets uit IFTTT kies. 'N Goeie manier om die opstelling te toets, is om' kennisgewings 'te kies wat 'n kennisgewing na u telefoon sal stuur elke keer as die sensor aktiveer (of die api word gebel, selfs vanaf 'n webblaaier: nuttig om te toets!)

8. Druk "dat" plusteken

9. Soek "Slim lewe" (of "kennisgewings")

10. Druk op 'aanskakel' (u sal hierdie stappe moet herhaal om 'n ander geleentheid te skep om uit te skakel wanneer u vertrek)

11. As u albei programme en die prop korrek gekonfigureer het, moet u u prop in die vervolg keuselys 'watter toestel/groep' sien.

12. Kies Skep aksie en voltooi dan.

Nou moet u sien dat die gebeurtenis verbind is. Nou moet ons die api -URL kry. Vir dit:

13. Gaan na die IFTTT -tuisskerm

14. Soek Webhooks -kaart

15. Kies "Kry meer"

16. Tik op die knoppie Dokumentasie. U moet 'n webblad met u sleutel sien.

17. Vul by die plekhouers "{event}" die naam van u geleentheid in (onthou punt 6)

18. Gaan onderaan die bladsy en tik op "Toets dit"

Wat u waarskynlik moet sien, is 'n groen vaandel 'gebeurtenis is geaktiveer', en u moet sien of dit gewerk het of nie. In ons geval moet die prop aangeskakel word. Of u moet 'n kennisgewing sien as u besluit om die pad te volg. Dit kan 'n rukkie neem, maar nie meer as 'n minuut om te sien of u dit reggekry het nie. Onthou dat dit waarskynlik hooflettergevoelig is.

19. Laastens. Kopieer die url waar u die naam van u gebeurtenis vervang het (op 17) en stoor dit veilig. U sal dit binnekort nodig hê.

20. Herhaal 1-12. Op 6 sal ons hierdie keer 'Stand' gebruik. Kies om 10 teen '10' eerder 'afskakel'.

21. Herhaal 13-18 as u wil, maar u kan wegkom met die url wat u op 19 gekopieer het, maar verander nou die plek waar u 'Sit' geskryf het en vervang met 'Stand'. U kan dit in 'n webblaaier toets. Dit moet sê 'Baie geluk! U het die Stand -geleentheid afgeskuur '. Dan moes die prop afgeskakel gewees het.

Stap 8: (Kode) Programmering van die ESP32

(Kode) Programmering van die ESP32
(Kode) Programmering van die ESP32

U kan hierdie stap oorslaan as u gemaklik voel om sketse van die Arduino IDE na u ESP32 -bord op te laai. Onthou net om 'n partisie van 2 mb vir die app in te stel ten minste, aangesien die skets 'n bietjie meer as 1,2 mb normale gewig weeg.

Daar is baie wonderlike tutoriale, hier is 'n paar wat ek aanbeveel:

circuitdigest.com/microcontroller-projects…

Maar tog, sodat u nie so verlore is nie, sal ek 'n paar belangrike sleutelpunte uiteensit.

- ESP32 is nie 'n Arduino -bord nie, maar dit kan nog steeds deur die Arduino IDE geprogrammeer word. Met 'n eenvoudige Arduino -kode. Maar u sal steeds die IDE moet instel om met die ESP32 te werk.

- U moet 'n paar biblioteke by voorkeur by die 'Bykomende direksiebestuurder' installeer. Dit is die URL wat u moet plak:

-(opsioneel, kan help) By Tools-> Bestuur biblioteke … -> (vind veral BLE -biblioteek)

- by Tools behoort u nou 'n lang lys ESP -toestelle te hê; ek beveel die ESP32 dev -module aan

- (BELANGRIK) Kies (geen Ota 2mb -app/2mb spifs) by die partisiebestuurder. Hierdie stap is belangrik, aangesien die app baie swaar word as gevolg van die gebruik van wifi/http -verbindings sowel as 'n BLE -skandeerder.

As u alles reg gedoen het, moet u die ESP32 kan programmeer. Die proses om dit te doen, is soortgelyk aan die arduino in sommige borde. Koppel dit aan, kies die ooreenstemmende bord, die USB -poort en u is klaar. Maar in baie ander gevalle sal u moet voortgaan

Stap 9: (Kode) Laai die kode op na die ESP32

(Kode) Laai die kode op na die ESP32
(Kode) Laai die kode op na die ESP32

Ok, as u hier is, beteken dit dat u 'n skets suksesvol opgelaai het na die ESP32 -bord, verkieslik die blink.ino -skets.

Hier is die hoofkode aangeheg; u kan dit ook vind by die GitHub -repo. U moet die volgende vervang:

SSID - u wifi -naam

PSK - u wifi -wagwoord

sit - Die URL met 'Sit' van die IFTTT -api wat u vroeër geskryf het

stand - Die URL met 'Stand' van die IFTTT -api wat u vroeër geskryf het

Kry nou u snellerapparaat naby die bord en laai dan die kode op. Maak dan die Serial Monitor (baud 115200) oop nadat die kode suksesvol gelaai is.

Slaan die volgende stap oor as u van plan is om dit met enige BLE -toestel te gebruik.

LET WEL: as u geheue -foutboodskappe kry, is dit omdat die standaardinstellings slegs 1 MB geheue (uit die 4 mB teenwoordig) vir die ESP -roukode oorlaat. Dit laat 'n gedeelte oor vir 'n paar dinge as 'n opsie om oor die lug te programmeer. Ek doen gewoonlik die volgende:

- by Tools behoort u nou 'n lang lys ESP-toestelle te hê; ek beveel ESP32 dev module aan- Kies 'no Ota 2mb app/2mb spifs' by partisiebestuurder.

Dit gee my dubbele geheue ruimte wat nodig is vir hierdie toepassing.

Stap 10: (Kode) Laai die kode op na die ESP32 *opsioneel *

(Kode) Laai die kode op na die ESP32 *opsioneel *
(Kode) Laai die kode op na die ESP32 *opsioneel *

Hier is die moeilike deel wat genoem word tydens die stap "Stel die sneller in". Die monitor sal die MAC -adres weergee (moet soos ##: ##: ##: ##: ## lyk, waar#óf 'n getal óf 'n letter van a tot f is), die kode van die vervaardiger en die RSSI ('n negatiewe getal). Hier moet u 'n bietjie rondspeel om te sien watter toestel u is. Ek sit dit gewoonlik langs die bord sodat ek duidelik kan sien watter die kleinste getal is. Ek merk die kassie 'outoscroll' uit sodat ek die waardes kan kopieer.

  • As dit die Mac -adres is, vul 'myDevice' daarmee. Los dan reël 96 en kommentaarreël 95 op
  • As dit die naam is, vul 'myDevice' daarmee. Los dan reël #97 en kommentaar reël #95 op
  • As dit tans die MaufactureData is wat u nie gelukkig het nie, ontwikkel ek nog steeds die deel.

As u ondersteuning vir toestelle wil byvoeg, moet u die konditiële verklaring kan kopieer op #96 of #97 en dit langs mekaar in hierdie sintaksis kan plaas:

as ((voorwaarde1) || (voorwaarde2) || (voorwaarde3)) {

Voeg meer veranderlikes (myDevice1, myDevice2, myDevice3) dienooreenkomstig by.

Stap 11: Plaas die ESP en kalibreer

Plaas die ESP en kalibreer
Plaas die ESP en kalibreer

Dit is die belangrikste deel van die opset. As u hierdie proses versigtig deurloop, sal dit 'n groot verskil wees: dit werk soos 'n magie of gee u net 'n sterk hoofpyn.

Op hierdie stadium werk die kode wat u opgelaai het met die parameters wat ek persoonlik getoets het en daagliks met my telefoon op my lessenaar gebruik; dit beteken nie dat dit ook vir u sal werk nie. U moet dus self die kalibrasie doen.

1. Plaas die ESP32 -bord op sy finale VASTE plek. As u die posisie van u ESP32 om een of ander rede verskuif, moet u dit waarskynlik weer doen. Dit verseker u 'n goeie ervaring in die algemeen.

1. (ekstra), moet u in staat wees om aan te sluit op u rekenaar terwyl u dit doen. As u dit nie kan doen nie, omdat u op 'n lessenaar is, moet u probeer en foute doen, met in gedagte dat elke proefneming byna identies moet wees in posisionering, snellerapparaat en ander faktore wat kan tel.

2. Maak Serial Monitor oop terwyl die kode loop.

Die kode sal standaard die RSSI (aanduiding van ontvangde seinsterkte) via die seriële monitor plaas van elke Bluetooth -toestel wat gevind word (of net die toestelle wat by u parameters pas). Speel 'n bietjie met u belangrikste aksie -toestel ('n trigger -toestel). U moet bepaal wat die drempels is wat u wil gebruik. Hierdie konfigurasie sal sorgvuldig aangepas word

3. As u die drempels bepaal, vervang dit hier:

  • naby_thrsh
  • ver_thrsh

4. Laai die kode weer op, toets en herhaal totdat u die optimale prestasie kry.

Paar dinge om in ag te neem:

1. U wil ongeveer 20db verskil tussen die drempels hê. As near_thrsh op 50 gestel is, is dit wenslik dat far_thrsh 70 of meer is. As die verskil te kort is, vind u moontlik afstande of plekke waar die bord ononderbroke aan- en afskakel. Deur hierdie verskil te verhoog, sal u verseker dat u hierdie ongewenste gedrag vermy. Ek het persoonlik gevind dat 20db marge goed genoeg is.

2. By kalibrasietoets soveel moontlik moontlike werklike scenario's, sal dit help om die beste prestasie te bepaal.

3. Bestudeer die klas op reël 82 van die kode; hier is waar al die logika gedoen word. Die kode is egter goed kommentaar gelewer. Vra gerus by die GitHub!

Stap 12: Geluk! Jy is klaar

Laat weet my in die kommentaar van enige voorstelle of as u probleme ondervind. Onthou om die GitHub na te gaan as u probleem reeds opgelos is!

Aanbeveel: