Indholdsfortegnelse:

Tilstedeværelsessensor: 12 trin
Tilstedeværelsessensor: 12 trin

Video: Tilstedeværelsessensor: 12 trin

Video: Tilstedeværelsessensor: 12 trin
Video: Servodan med ny tilstedeværelsessensor på EL & TEKNIK 2024, November
Anonim
Tilstedeværelsessensor
Tilstedeværelsessensor

Wearables er normalt BLE -aktiverede enheder. Det er almindeligt, at de periodisk reklamerer for nogle data langs dens MAC -adresse. Vi bruger en ESP til at scanne disse data og udløse en hændelse via internettet, når den finder en bestemt MAC -adresse. Denne særlige implementering er for en enkelt bruger på et smart stik forbundet til en lampe. Men det kan også bruges med et sæt registrerede enheder med enhver form for IOT -aktiverede enheder.

Forbrugsvarer

  1. ESP32
  2. (valgfrit) TECKIN WiFi vægstik S10
  3. BLE -aktiveret enhed af enhver art

Trin 1: Definer dit scenarie

Definer dit scenarie
Definer dit scenarie

Til udløseren kan du bruge de fleste af de moderne wearables. Dette kan være et Apple Watch, et mi fit band, en telefon eller endda din egen DIY bærbare baseret på en ESP32.

Nok et af de vigtigste trin. Du skal tænke fremad i 3 ting:

1. Hvilken bærbar eller hvilken enhed der skal være udløseren for nærhedsføleren.

2. Hvad kommer til at udløse sensoren (dette gøres gennem IFTTT).

3. Når sensoren kommer til at udløse

I dette eksempel vil jeg bruge mit Apple Watch til at udløse et smart stik til at tænde en lampe, når jeg sidder ved mit skrivebord.

I denne vejledning ser vi på et smart stik fra TECKIN. Du kan finde den på amazon til en god pris. Det er også kompatibelt med Alexa og google Home. Stor værdi!

Trin 2: (Intro) Indstil udløser - flere brugere

Hvis du vil konfigurere, så det fungerer enhver person med en BLE -aktiveret enhed tæt nok på din sensor, skal du springe det næste trin over. Dette er ret nyttigt, er indstillingen jeg personligt bruger. Husk, at denne sensor let kan hackes eller udnyttes til at udløse, så jeg ikke ville stole meget på en sikkerhedsstativpint; bare for en praktisk (dvs. jeg vil ikke have, at den skal udløses af min pc, da den altid vil være ved siden af sensoren).

Trin 3: (Intro) Indstil Trigger - begrænsede brugere

Dette trin varierer meget i dit setup. For at begrænse, hvilke enheder der kan udløse sensoren, har du mange ruter at begrænse:

- BLE MAC -adresse (svarer til IP -adressen på et wifi -netværk. Grunden til, at det ikke garanterer sikkerhed, da det ikke er modulets rigtige MAC -adresse. På iOS -enheder ændres det, hver gang du genstarter bluetooth, ikke så sjovt)

- Producentkode (bedre mulighed, men ingen måde at begrænse specifikke enheder fra samme producent/model)

- Navn, Service UIDD (sjælden, men den bedste mulighed, for det meste DIY wearables eller måske en Android -app)

Nogle noter:

1. Hvis det er en iOS -enhed:

- Du har nogle vigtige fordele og ulemper. Pro, de sender det effektniveau, hvormed det er reklamedata. Det er nyttigt i kalibreringsfasen, du vil opdage, at brug af et Apple Watch er nyttigt, da det sender ved 24db, iPhones og de fleste enheder sender ved 12db.

CON, du bliver nødt til at finde løsninger. Den annoncerede MAC -adresse (hovedmetoden til identifikation) ændres, hver gang bluetooth -signalet genstartes, hvilket betyder, at du bliver nødt til at uploade koden hver gang … ikke sjovt. Du kan bruge producentdata, som kan variere mellem modellerne. Det betyder, at du kan begrænse, så det fornemmer "alt iPhone 8".

2. Hvis det er en Android -enhed:

- Jeg har personligt ikke en Android -enhed. Men der er sandsynligvis mange applikationer, der kan rette MAC -adressen eller endda tilføje et personligt navn (hvis det er den vej, du vil gå). På iOS -enheder er der en app "nrf connect", der kan gøre dette. Men er ikke vedholdende, hvilket betyder, at hvis du låser skærmen eller skifter apps.. konfigurationen slukker om et par sekunder.

3. En anden ESP32. (dit bedste bud)

- En simpel kode som denne kan implementeres i en enhed som denne; et esp32 drevet smart band. Koden er faktisk et eksempel fra ESP BLE -biblioteket BLE_IBeacon.ino. Jeg har ikke testet det for meget, da mit smarte band er på forsendelse, vil sandsynligvis sende opdateringer snart.

Trin 4: (Opsætning) - IFTTT

(Opsætning) - IFTTT
(Opsætning) - IFTTT

Ok, så på dette stadium bør du sandsynligvis tage alle desicions af din arbejdsgang. Du har din udløsende enhed, du har et sted at sætte ESP'en med en trådløs forbindelse til internettet, og du har en handling i tankerne, som IFTTT kan automatisere.

IFTTT er kraftfuld; uanset om det bare er for at sende en simpel meddelelse til din enhed, vil du have en tweet sendt eller tænde en pære med et smart stik. I denne vejledning implementerer vi den sidste med TECKIN smart plugs, der er kompatible med IFTTT. Uanset hvad, download IFTTT -appen eller gå til internettet IFTTT.com og opret en konto.

Det er det for nu!

Hvis du bare vil sende en meddelelse eller andet end Smart Life -stikket, kan du springe det næste trin over.

Trin 5: (Opsætning) IOT -enhed *valgfri *

Download appen "Smart Life" fra PlayStore (android) eller AppStore (iOS). Instruktionerne er stort set ligetil, selvom processen er lidt vanskelig. Jeg fandt ud af på scanningsstadiet (da den blå knap blinkede) stoppede det på et tidspunkt, så jeg trykkede manuelt på det for at tænde og slukke et par gange. Det hjalp mig. Alligevel; opsætningen af dette stik er ikke anderledes med vores applikation, så hvis du allerede ejer et og har det forbundet til din app, skal du være klar til at gå.

BEMÆRK: Du skal være i stand til at tænde og slukke kontakten fra appen, før du går videre fra dette trin. Det vil betyde, at du har konfigureret det smarte stik korrekt.

IFTTT -appen skal synkronisere problemfrit med appen "Smart Life", hvilket sandsynligvis kræver en godkendelse, mens du opretter en begivenhed i det næste trin.

Trin 6: (Opsætning) IFTTT Webhook Api *Erfarne brugere *

(Opsætning) IFTTT Webhook Api *Erfarne brugere *
(Opsætning) IFTTT Webhook Api *Erfarne brugere *

Hvis du ikke har brugt før IFTTT -appen og ikke er så fortrolig med nogle tekniske termer, skal du springe dette trin over til den detaljerede vejledning (med fotos) i næste trin.

1. Opret en ny begivenhed.

2. Indstil "dette" til at være en webhook -api. Skriv det navn ned, du har angivet til begivenheden.

3. Indstil "det" til din ønskede adfærd. For det smarte stik skal du søge efter smart life og vælge 'tænd'.

4. Vælg dit smarte stik, og tryk på afslut.

5. På startskærmen skal du kigge efter 'webhooks' -kort. Når du har trykket på den, skal du trykke på "få mere" i bunden.

6. Pressedokumentation. Dette viser dig din api -nøgle sammen med en URL -bygger og tester.

7. Brug URL -byggeren med det navn, du skrev på #2. Kopier det og skriv det ned.

8. Gentag, hvis du vil have en adfærd, der skal udløses, når tilstedeværelsessensoren ikke længere er aktiv. I vores tilfælde gentag #3, men vælg 'sluk'. Også på #2 skulle navnet også være anderledes denne gang.

Hvis du er færdig, skal du springe det næste trin over.

Trin 7: (Opsætning) IFTTT Webhook Api *For begyndere med fotos *

(Opsætning) IFTTT Webhook Api *For begyndere med fotos *
(Opsætning) IFTTT Webhook Api *For begyndere med fotos *
(Opsætning) IFTTT Webhook Api *For begyndere med fotos *
(Opsætning) IFTTT Webhook Api *For begyndere med fotos *
(Opsætning) IFTTT Webhook Api *For begyndere med fotos *
(Opsætning) IFTTT Webhook Api *For begyndere med fotos *

Detaljeret vejledning *fotoguiden skal være ens med Android og på internettet *

IFTTT er en simpel arbejdsgang, hvis "dette sker" så "det sker". Du skal oprette en ny, 1. Tryk på "få mere" i appen, og der vises en liste.

2. Lige under søgelinjen a siger "lav dine egne applets fra bunden", tryk på plustegnet.

3. Tryk på "dette" plustegn

I vores tilfælde vil "dette" være et api -opkald via internettet. Et api -opkald er en konsultation til en URL, ligesom når du skriver en google -søgning, og url'en er google.com/(en lang række tegn). For at oprette api: (efter at have trykket på "dette")

4. Søg efter "webhooks"

5. Vælg den eneste mulighed

6. Navngiv din begivenhed (i dette eksempel vil vi bruge "Sit"). Skriv dette navn ned, meget vigtigt.

7. Tryk på Opret udløser

Okay! vi er tættere, Nu til "den" del. Til denne vejledning sætter vi "det" til at tænde for Smart -stikket. Men du kan vælge alt fra IFTTT. En god måde at teste opsætningen på er at vælge "meddelelser", som sender en meddelelse til din telefon, hver gang sensoren udløser (eller API'en kaldes, selv fra en webbrowser: nyttig til test!)

8. Tryk på "det" plustegn

9. Søg efter "Smart Life" (eller "notifikationer")

10. Tryk på 'tænd' (du bliver nødt til at gentage disse trin for at oprette en anden begivenhed til at slukke for, når du forlader)

11. Hvis du har begge apps og stikket korrekt konfigureret, skal du se dit stik i rullemenuen 'hvilken enhed/gruppe.

12. Vælg Opret handling, og afslut derefter.

Nu skal du se, at begivenheden er forbundet. Nu skal vi hente api -URL'en. For det:

13. Gå til IFTTT -startskærmen

14. Find Webhooks -kort

15. Vælg "Få mere"

16. Tryk på knappen Dokumentation. Du skulle se en webside med din nøgle.

17. Udfyld navnet på din begivenhed ved pladsholderne "{event}" (husk punkt 6)

18. Gå til bunden af siden, og tryk på "Test det"

Det, du sandsynligvis bør se, er et grønt banner "begivenhed er udløst", og du bør se, om det fungerede eller ej. I vores tilfælde skal stikket tænde. Eller du skal se en meddelelse, hvis du besluttede at gå den vej. Det kan tage lidt tid, men ikke mere end et minut at se, om du klarede det. Husk det er sandsynligvis store og små bogstaver.

19. Endelig. Kopiér webadressen, hvor du erstattede navnet på din begivenhed (kl. 17), og gem den et sikkert sted. Du får brug for dette snart.

20. Gentag 1-12. Klokken 6 vil vi bruge "Stand" denne gang. Ved 10 vælg 'sluk' i stedet.

21. Gentag 13-18, hvis du vil, men du kan slippe af sted med url'en, du kopierede kl. 19, men skift nu det sted, hvor du skrev "Sid" og erstat med "Stand". Du kan teste dette i en webbrowser. Der skulle stå 'Tillykke! Du har affyret Stand -arrangementet '. Så skulle stikket være slukket.

Trin 8: (Kode) Programmering af ESP32

(Kode) Programmering af ESP32
(Kode) Programmering af ESP32

Du kan springe dette trin over, hvis du føler dig tryg ved at uploade skitser fra Arduino IDE til dit ESP32 -kort. Husk kun at indstille en partition på 2mb til appen i det mindste, da skitsen vejer lidt mere end 1,2mb sædvanlig grænse.

Der er mange gode tutorials derude, her er nogle, som jeg anbefaler:

circuitdigest.com/microcontroller-projects…

Men alligevel, så du er ikke så tabt, jeg vil nedbryde nogle vigtige nøglepunkter.

- ESP32 er ikke et Arduino -kort, men det kan stadig programmeres af Arduino IDE. Med enkel Arduino -kode. Men du skal stadig konfigurere IDE'en til at fungere med ESP32.

- Du bliver nødt til at installere nogle biblioteker via 'Yderligere bestyrelsesmanager' efter præferencer. Dette er den webadresse, du skal indsætte:

-(valgfrit, kan hjælpe) På Værktøjer-> Administrer biblioteker … -> (find esp BLE -bibliotek)

- på Værktøjer skulle du nu have en lang liste over ESP -enheder, jeg anbefaler ESP32 dev -modul

- (VIGTIGT) Vælg (ingen Ota 2mb app/2mb spifs) på partitionsmanager. Dette trin er vigtigt, da appen bliver ret tung som et produkt af brug af både wifi/http -forbindelser samt en BLE -scanner.

Hvis du gjorde alt rigtigt, skulle du kunne programmere ESP32. Nu ligner processen med at gøre det på arduinoen i nogle brædder. Tilslut det, vælg det matchende bord, USB -porten, og du er færdig. Men i mange andre tilfælde skal du fortsætte med

Trin 9: (Kode) Upload koden til ESP32

(Kode) Upload koden til ESP32
(Kode) Upload koden til ESP32

Ok, hvis du er her, betyder det, at du har uploadet en skitse til ESP32 -kortet, gerne blink.ino -skitsen.

Nu er her vedhæftet hovedkoden, du kan også finde den på GitHub -repoen. Du skal udskifte følgende:

SSID - Dit wifi -navn

PSK - Din wifi -adgangskode

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å nu din triggerenhed tæt på brættet, og upload derefter koden. Åbn derefter Serial Monitor (baud 115200), efter at koden er indlæst.

Hvis du planlægger at bruge dette med nogen form for BLE -aktiveret enhed, skal du springe det næste trin over.

BEMÆRK: hvis du får hukommelsesfejlmeddelelser, skyldes det, at standardindstillingerne kun efterlader 1 mb hukommelse (ud af 4 mB til stede) til ESP -råkoden. Det efterlader en portion til et par ting som en mulighed for at programmere over luften. Jeg plejer at gøre følgende:

- på Værktøjer skal du nu have en lang liste over ESP-enheder, jeg anbefaler ESP32 dev-modul- Vælg 'ingen Ota 2mb app/2mb spifs' i partitionsmanager.

Dette giver mig dobbelt hukommelsesplads, der er nødvendig for denne applikation.

Trin 10: (Kode) Upload koden til ESP32 *valgfri *

(Kode) Upload koden til ESP32 *valgfri *
(Kode) Upload koden til ESP32 *valgfri *

Her er den vanskelige del, der er nævnt under trin "Indstil udløseren". Skærmen udsender MAC -adressen (skal se ud som ##: ##: ##: ##: ## hvor#enten er et tal eller et bogstav fra a til f), producentens kode og RSSI (et negativt tal). Her skal du lege lidt for at finde ud af, hvilken enhed der er. Jeg lægger det normalt ved siden af tavlen, så jeg tydeligt kan se, hvilket er det mindste tal. Jeg fjerner markeringen i feltet 'autoscroll', så jeg kan kopiere værdierne.

  • Hvis det er Mac -adressen, skal du fylde 'myDevice' med den. Fjern derefter kommentaren til linje #96 og kommentarlinje #95
  • Hvis det er navnet, skal du fylde 'myDevice' med det. Fjern derefter kommentaren til linje #97 og kommentarlinje #95
  • Hvis det er MaufactureData, du er ude af held for nu, udvikler jeg stadig den del.

For at tilføje support til enheder kan du være i stand til at kopiere betingelseserklæringen enten på #96 eller #97 og placere dem ved siden af hinanden i denne syntaks:

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

Tilføj flere variabler (myDevice1, myDevice2, myDevice3) i overensstemmelse hermed.

Trin 11: Placer ESP og kalibrer

Placer ESP og kalibrer
Placer ESP og kalibrer

Dette er den vigtigste del af opsætningen. Omhyggeligt at gennemgå denne proces vil være forskellen på, at det fungerer som magi eller bare giver dig stærk hovedpine.

På dette tidspunkt arbejder den kode, du uploadede, med de parametre, jeg personligt har testet og bruger dagligt med min telefon på mit skrivebord; det betyder ikke, at det også vil fungere for dig. Så du skal selv foretage kalibreringen.

1. Placer ESP32 -kortet på det endelige FIXED -sted. Hvis du af en eller anden grund flytter placeringen af din ESP32, skal du sandsynligvis gøre dette igen. Dette vil sikre dig en god oplevelse generelt.

1. (ekstra) husk på, at du skal kunne oprette forbindelse til din pc, mens du gør dette. Hvis du ikke kan, fordi du er på et skrivebord, bliver du nødt til at prøve og fejle, idet du skal huske på, at hver prøve skal være næsten identisk i positionering, triggerenhed og andre faktorer, der kan tælle ind.

2. Åbn Serial Monitor med koden kørende.

Koden sender som standard RSSI (indikation for modtaget signalstyrke) via den serielle skærm for hver fundet bluetooth -enhed (eller bare den (e) enhed, der matcher dine parametre). Leg lidt rundt med din vigtigste handlingsenhed (udløsende enhed). Du skal bestemme, hvilke tærskler du vil bruge. Omhyggelig justering af denne konfiguration vil

3. Når du bestemmer tærsklerne, skal du erstatte dem her:

  • nær_thrsh
  • far_thrsh

4. Upload koden igen, test og gentag, indtil du finder optimal ydelse.

Nogle ting at overveje:

1. Du vil have omkring 20db forskel mellem tærsklerne. Hvis near_thrsh er indstillet til 50, ønskes det, at far_thrsh er 70 eller mere. Hvis forskellen er for kort, kan du finde nogle afstande eller steder, hvor brættet udløser til og fra non stop. Forøgelse af denne forskel vil sikre, at du undgår denne uønskede adfærd. Jeg fandt personligt ud, at 20db margin er god nok.

2. Ved kalibreringstest af virkelige scenarier så meget som muligt vil dette hjælpe med at bestemme den bedste ydeevne.

3. Undersøg klassen på linje 82 i koden; her er al logikken færdig. Koden er dog godt kommenteret. Spørg gerne på GitHub!

Trin 12: Tillykke! Du er færdig

Lad mig vide i kommentarerne til eventuelle forslag, eller hvis du oplever problemer. Husk at tjekke GitHub, hvis dit problem allerede er løst!

Anbefalede: