Innholdsfortegnelse:

Tilstedeværelsessensor: 12 trinn
Tilstedeværelsessensor: 12 trinn

Video: Tilstedeværelsessensor: 12 trinn

Video: Tilstedeværelsessensor: 12 trinn
Video: So bestimmst Du das Metrum im Gedicht I musstewissen Deutsch 2024, November
Anonim
Tilstedeværelsessensor
Tilstedeværelsessensor

Slitasje er vanligvis BLE -aktiverte enheter. Det er vanlig at de periodisk annonserer noen data langs MAC -adressen. Vi bruker en ESP til å skanne disse dataene og utløse en hendelse via internett når den finner en bestemt MAC -adresse. Denne spesielle implementeringen er for en enkelt bruker på en smart plugg koblet til en lampe. Men den kan også brukes med et sett med registrerte enheter med alle slags IOT -aktiverte enheter.

Rekvisita

  1. ESP32
  2. (valgfritt) TECKIN WiFi Wall Plug S10
  3. BLE -aktivert enhet av noe slag

Trinn 1: Definer scenariet ditt

Definer scenariet ditt
Definer scenariet ditt

For utløseren kan du bruke de fleste moderne wearables. Dette kan være en Apple Watch, et mi fit band, en telefon eller til og med din egen DIY bærbare basert på en ESP32.

Sannsynligvis et av de viktigste trinnene. Du må tenke fremover i tre ting:

1. Hvilken bærbar enhet eller enhet som skal være utløseren til nærhetssensoren.

2. Hva skal utløse sensoren (dette gjøres gjennom IFTTT).

3. Når sensoren skal utløse

I dette eksempelet bruker jeg Apple Watch for å utløse en smart plugg for å slå på en lampe når jeg sitter ved skrivebordet.

I denne opplæringen ser vi på en smart plugg fra TECKIN. Du finner den på amazon til en god pris. Den er også kompatibel med Alexa og google Home. Stor verdi!

Trinn 2: (Intro) Sett utløser - flere brukere

Hvis du vil konfigurere slik at den fungerer for alle personer med en BLE -aktivert enhet nær nok sensoren din, kan du hoppe over neste trinn. Dette er ganske nyttig, er innstillingen jeg personlig bruker. Husk at denne sensoren lett kan hackes eller utnyttes til å utløse, slik at jeg ikke ville stole så mye på en halvliter med sikkerhetsstativ; bare for en praktisk (dvs. jeg vil ikke at den skal utløses av PC -en min siden den alltid vil være ved siden av sensoren).

Trinn 3: (Intro) Set Trigger - Limited Users

Dette trinnet varierer sterkt på oppsettet ditt. For å begrense hvilke enheter som kan utløse sensoren, har du mange ruter å begrense:

- BLE MAC -adresse (tilsvarer IP -adressen på et wifi -nettverk. Grunnen til at den ikke garanterer sikkerhet siden er ikke den virkelige MAC -adressen til modulen. På iOS -enheter endres den hver gang du starter bluetooth på nytt, ikke så gøy)

- Produsentkode (bedre alternativ, men ingen måte å begrense spesifikke enheter fra samme produsent/modell)

- Navn, Service UIDD (sjeldent, men det beste alternativet, for det meste DIY -wearables eller kanskje en Android -app)

Noen notater:

1. Hvis det er en iOS -enhet:

- Du har noen viktige fordeler og ulemper. Pro, de overfører effektnivået som det er reklamedata på. Det er nyttig i kalibreringsfasen. Du vil finne at bruk av en Apple Watch er nyttig siden den sender på 24db, iPhones og de fleste enheter sender på 12db.

CON, du må finne løsninger. Den annonserte MAC -adressen (hovedmetoden for identifikasjon) endres hver gang bluetooth -signalet startes på nytt, noe som betyr at du må laste opp koden hver gang … ikke morsomt. Du kan bruke produsentdata som kan variere mellom modellene. Dette betyr at du kan begrense slik at den registrerer "all iPhone 8".

2. Hvis det er en Android -enhet:

- Jeg personlig har ikke en Android -enhet. Men det er sannsynligvis mange applikasjoner som kan fikse MAC -adressen eller til og med legge til et personlig navn (hvis det er veien du vil gå). På iOS -enheter er det en app "nrf connect" som kan gjøre dette. Men er ikke vedvarende, noe som betyr at hvis du låser skjermen eller bytter apper.. konfigurasjonen går av i løpet av et par sekunder.

3. En annen ESP32. (din beste innsats)

- En enkel kode som denne kan implementeres i en enhet som denne; et esp32 drevet smartband. Koden er faktisk et eksempel fra ESP BLE -biblioteket BLE_IBeacon.ino. Jeg har ikke testet det så mye siden mitt smarte band er på forsendelse, vil sannsynligvis legge ut oppdateringer snart.

Trinn 4: (Oppsett) - IFTTT

(Oppsett) - IFTTT
(Oppsett) - IFTTT

Ok, så på dette stadiet bør du sannsynligvis ta alle desisions av arbeidsflyten din. Du har din utløsende enhet, du har et sted å sette ESP med en trådløs tilkobling til internett, og du har en handling i tankene som IFTTT kan automatisere.

IFTTT er kraftig; enten det er bare å sende et enkelt varsel til enheten din, vil du at en tweet skal sendes eller slå på en lyspære med en smart plugg. I denne opplæringen vil vi implementere den siste med TECKIN smarte plugger som er kompatible med IFTTT. Uansett, last ned IFTTT -appen eller gå til Internett IFTTT.com og opprett en konto.

Det er det for nå!

Hvis du bare vil sende et varsel eller noe annet enn Smart Life -pluggen, kan du hoppe over neste trinn.

Trinn 5: (Oppsett) IOT -enhet *valgfritt *

Last ned "Smart Life" -appen fra PlayStore (android) eller AppStore (iOS). Instruksjonene er ganske enkle, selv om prosessen er litt vanskelig. Jeg fant ut på scanningsstadiet (da den blå knappen blinket) den stoppet på et tidspunkt, så trykket jeg den manuelt for å slå den på og av et par ganger. Det hjalp meg. Uansett; Oppsettet av denne pluggen er ikke annerledes med applikasjonen vår, så hvis du allerede eier en og har den koblet til appen din, bør du være klar til å gå.

MERK: Du må kunne slå bryteren på og av fra appen før du går videre fra dette trinnet. Det vil bety at du har konfigurert smartpluggen riktig.

IFTTT -appen bør synkronisere sømløst med "Smart Life" -appen, sannsynligvis be om en autentisering mens du oppretter en hendelse i neste trinn.

Trinn 6: (Oppsett) IFTTT Webhook Api *Erfarne brukere *

(Oppsett) IFTTT Webhook Api *Erfarne brukere *
(Oppsett) IFTTT Webhook Api *Erfarne brukere *

Hvis du ikke har brukt før IFTTT -appen og ikke er så komfortabel med noen tekniske termer, hopper du over dette trinnet for detaljert guide (med bilder) i neste trinn.

1. Opprett en ny hendelse.

2. Sett "dette" til å være en webhook -api. Skriv ned navnet du angav for arrangementet.

3. Sett "det" til ønsket oppførsel. For smart plugg, søk smart life og velg 'slå på'.

4. Velg smartpluggen og trykk på Finish.

5. Se etter "webhooks" -kortet på startskjermen. Etter at du har trykket på den, trykker du på "få mer" nederst.

6. Pressedokumentasjon. Dette viser deg api -nøkkelen din sammen med en URL -byggherre og tester.

7. Bruk URL -byggherren med navnet du skrev på #2. Kopier det og skriv det ned.

8. Gjenta hvis du vil at en atferd skal utløses når tilstedeværelsessensoren ikke lenger er aktiv. Gjenta nummer 3 i vårt tilfelle, men velg 'slå av'. Også på #2 bør navnet også være annerledes denne gangen.

Hvis du er ferdig, hopp over neste trinn.

Trinn 7: (Oppsett) IFTTT Webhook Api *For nybegynnere med bilder *

(Oppsett) IFTTT Webhook Api *For nybegynnere med bilder *
(Oppsett) IFTTT Webhook Api *For nybegynnere med bilder *
(Oppsett) IFTTT Webhook Api *For nybegynnere med bilder *
(Oppsett) IFTTT Webhook Api *For nybegynnere med bilder *
(Oppsett) IFTTT Webhook Api *For nybegynnere med bilder *
(Oppsett) IFTTT Webhook Api *For nybegynnere med bilder *

Detaljert guide *fotoguiden skal være lik for Android og på nettet *

IFTTT er en enkel arbeidsflyt, hvis "dette skjer" så "som skjer". Du må opprette en ny, 1. Trykk på "få mer" i appen, og en liste vil vises.

2. Rett under søkefeltet a sier "lag dine egne appleter fra bunnen av", trykk på pluss -tegnet.

3. Trykk på "dette" pluss -tegnet

I vårt tilfelle kommer "dette" til å bli en api -samtale gjennom internett. Et api -anrop er en konsultasjon til en URL, omtrent som når du skriver et Google -søk og nettadressen er google.com/(en lang rekke tegn). For å lage api: (etter å ha trykket "dette")

4. Søk i "webhooks"

5. Velg det eneste alternativet

6. Gi navn til arrangementet ditt (i dette eksemplet vil vi bruke "Sit"). Skriv ned dette navnet, veldig viktig.

7. Trykk på Opprett utløser

Ok! vi er nærmere, nå til "den" delen. For denne opplæringen setter vi "det" for å slå på Smart pluggen. Men du kan velge alt fra IFTTT. En god måte å teste oppsettet på er å velge "varsler" som sender et varsel til telefonen hver gang sensoren utløser (eller api -en blir ringt opp, selv fra en nettleser: nyttig for testing!)

8. Trykk på "det" pluss -tegnet

9. Søk etter "Smart Life" (eller "varsler")

10. Trykk på "slå på" (du må gjenta disse trinnene for å opprette en annen hendelse du kan slå av når du drar)

11. Hvis du har begge appene og pluggen riktig konfigurert, bør du se pluggen på rullegardinmenyen for hvilken enhet/gruppe.

12. Velg Opprett handling og avslutt deretter.

Nå bør du se at hendelsen er koblet til. Nå må vi få api URL. For dette:

13. Gå til IFTTT -startskjermen

14. Finn Webhooks -kortet

15. Velg "Få mer"

16. Trykk på knappen Dokumentasjon. Du bør se en webside med nøkkelen din.

17. På plassholderne "{event}" fyller du inn navnet på arrangementet ditt (husk punkt 6)

18. Gå til bunnen av siden og trykk på "Test den"

Det du sannsynligvis bør se er et grønt banner "hendelsen har blitt utløst", og du bør se om det fungerte eller ikke. I vårt tilfelle bør pluggen slås på. Eller du bør se et varsel hvis du bestemte deg for å gå den veien. Det kan ta litt tid, men ikke mer enn et minutt å se om du klarte det. Husk det er sannsynligvis store og små bokstaver.

19. Til slutt. Kopier nettadressen der du erstattet navnet på arrangementet ditt (klokken 17) og lagre det et trygt sted. Du trenger dette snart.

20. Gjenta 1-12. Klokken 6 bruker vi "Stand" denne gangen. Ved 10 velger du "slå av" i stedet.

21. Gjenta 13-18 hvis du vil, men du kan slippe unna med nettadressen du kopierte klokken 19, men nå kan du endre stedet der du skrev "Sit" og erstatte med "Stand". Du kan teste dette i en nettleser. Det skal stå 'Gratulerer! Du har sparket Stand -arrangementet '. Da skulle pluggen ha slått av.

Trinn 8: (Kode) Programmering av ESP32

(Kode) Programmering av ESP32
(Kode) Programmering av ESP32

Du kan hoppe over dette trinnet hvis du føler deg komfortabel med å laste opp skisser fra Arduino IDE til ESP32 -kortet. Husk bare å angi en partisjon på 2 mb for appen i det minste siden skissen veier litt mer enn 1,2 mb vanlig grense.

Det er mange flotte opplæringsprogrammer der ute, her er noen som jeg anbefaler:

circuitdigest.com/microcontroller-projects…

Men likevel, så du er ikke så tapt at jeg vil bryte ned noen viktige viktige punkter.

- ESP32 er ikke et Arduino -kort, men det kan fortsatt programmeres av Arduino IDE. Med enkel Arduino -kode. Men du må fortsatt konfigurere IDE til å fungere med ESP32.

- Du må installere noen biblioteker gjennom 'Tilleggsstyringsleder' etter preferanser. Dette er nettadressen du bør lime inn:

-(valgfritt, kan hjelpe) På Verktøy-> Administrer biblioteker … -> (finn esp BLE -bibliotek)

- på Tools bør du nå ha en lang liste med ESP -enheter, jeg anbefaler ESP32 dev -modul

- (VIKTIG) Velg (ingen Ota 2mb app/2mb spifs) på partisjonsbehandling. Dette trinnet er viktig siden appen blir ganske tung som et produkt av å bruke både wifi/http -tilkoblinger og en BLE -skanner.

Hvis du gjorde alt riktig, burde du kunne programmere ESP32. Nå er prosessen med å gjøre det lik arduinoen i noen brett. Koble den til, velg det matchende kortet, USB -porten, og du er ferdig. Men i mange andre tilfeller må du fortsette

Trinn 9: (Kode) Last opp koden til ESP32

(Kode) Last opp koden til ESP32
(Kode) Last opp koden til ESP32

Ok, hvis du er her, betyr det at du har lastet opp en skisse til ESP32 -kortet, fortrinnsvis blink.ino -skissen.

Nå, her er hovedkoden vedlagt, du kan også finne den på GitHub -repoen. Du må erstatte følgende:

SSID - Ditt wifi -navn

PSK - Ditt wifi -passord

sit - URL -en med "Sit" fra IFTTT -api -en du skrev tidligere

stand - URL -en med "Stand" Fra IFTTT -api -en du skrev tidligere

Få nå utløserenheten nær brettet og last deretter opp koden. Åpne deretter Serial Monitor (baud 115200) etter at du har lastet inn koden.

Hvis du planlegger å bruke dette med noen form for BLE -aktivert enhet, hopper du over neste trinn.

MERK: hvis du får feilmeldinger om minne, skyldes det at standardinnstillingene bare gir 1 MB minne (ut av 4 MB) til rådighet for ESP -råkoden. Det etterlater en del for et par ting som et alternativ for å programmere over air. Jeg gjør vanligvis følgende:

- på Tools bør du nå ha en lang liste med ESP-enheter, jeg anbefaler ESP32 dev module-Velg 'no Ota 2mb app/2mb spifs' i partisjonsbehandling.

Dette gir meg dobbelt lagringsplass, nødvendig for denne applikasjonen.

Trinn 10: (Kode) Last opp koden til ESP32 *valgfritt *

(Kode) Last opp koden til ESP32 *valgfritt *
(Kode) Last opp koden til ESP32 *valgfritt *

Her er den vanskelige delen som er nevnt under trinnet "Sett utløseren". Skjermen sender ut MAC -adressen (skal se ut som ##: ##: ##: ##: ## hvor#enten er et tall eller en bokstav fra a til f), Produsentkoden og RSSI (et negativt tall). Her må du leke litt for å finne hvilken som er enheten din. Jeg legger det vanligvis ved siden av brettet, slik at jeg tydelig kan se hvilket som er det minste tallet. Jeg fjerner merket for "autoscroll" -boksen slik at jeg kan kopiere verdiene.

  • Hvis det er Mac -adressen, fyller du 'myDevice' med den. Avmerk deretter linje #96 og kommentarlinje #95
  • Hvis det er navnet, fyll 'myDevice' med det. Avmerk deretter linje #97 og kommentarlinje #95
  • Hvis det er MaufactureData du har lykke til nå, utvikler jeg fremdeles den delen.

For å legge til støtte for enheter kan du kunne kopiere betingelseserklæringen enten på #96 eller #97 og plassere dem ved siden av hverandre i denne syntaksen:

hvis ((betingelse1) || (betingelse2) || (betingelse3)) {

Legg til flere variabler (myDevice1, myDevice2, myDevice3) tilsvarende.

Trinn 11: Plasser ESP og kalibrer

Plasser ESP og kalibrer
Plasser ESP og kalibrer

Dette er den viktigste delen av oppsettet. Å gå nøye gjennom denne prosessen vil være forskjellen på at det fungerer som magi eller bare gir deg sterk hodepine.

På dette tidspunktet jobber koden du lastet opp med parametrene jeg personlig har testet og bruker daglig med telefonen på skrivebordet mitt; det betyr ikke at det vil fungere for deg også. Så du må gjøre kalibreringen selv.

1. Plasser ESP32 -kortet på det siste FESTE stedet. Hvis du av en eller annen grunn flytter posisjonen til ESP32, bør du sannsynligvis gjøre dette igjen. Dette vil sikre deg en god opplevelse totalt sett.

1. (ekstra) Husk at du må kunne koble deg til PCen mens du gjør dette. Hvis du ikke kan fordi du er på et skrivebord, må du prøve og feile, og husk at hver prøveperiode må være nær identisk i posisjonering, utløserenhet og andre faktorer som kan komme til å telle.

2. Åpne Serial Monitor med koden kjørende.

Koden vil som standard legge ut RSSI (indikasjon på mottatt signalstyrke) på seriell monitor på hver funnet Bluetooth -enhet (eller bare enheten (e) som samsvarer med parametrene dine). Lek litt med din viktigste virkemiddel (utløsende enhet). Du må bestemme hvilke terskler du vil bruke. Omhyggelig justering av denne konfigurasjonen vil

3. Når du bestemmer tersklene, erstatt dem her:

  • near_thrsh
  • far_thrsh

4. Last opp koden på nytt, test og gjenta til du finner optimal ytelse.

Noen ting å vurdere:

1. Du vil ha omtrent 20db forskjell mellom tersklene. Hvis near_thrsh er satt til 50, er det ønsket at far_thrsh er 70 eller mer. Hvis forskjellen er for kort, kan du finne noen avstander eller steder hvor brettet utløser av og på uten stopp. Å øke denne forskjellen vil sikre at du unngår denne uønskede oppførselen. Jeg fant personlig at 20db margin er bra nok.

2. Ved kalibreringstest av virkelige scenarier så mye som mulig, vil dette bidra til å bestemme den beste ytelsen.

3. Studer klassen på linje 82 i koden; her er all logikken gjort. Koden er imidlertid godt kommentert. Spør gjerne på GitHub!

Trinn 12: Gratulerer! Du er ferdig

Gi meg beskjed i kommentarene til forslag eller hvis du opplever problemer. Husk å sjekke GitHub hvis problemet ditt allerede er løst!

Anbefalt: