Läsnäolotunnistin: 12 vaihetta
Läsnäolotunnistin: 12 vaihetta
Anonim
Läsnäolotunnistin
Läsnäolotunnistin

Puettavat ovat yleensä BLE -yhteensopivia laitteita. On tavallista, että he mainostavat määräajoin tietoja MAC -osoitteessaan. Käytämme ESP: tä skannaamaan nämä tiedot ja käynnistämään tapahtuma Internetin kautta, kun se löytää tietyn MAC -osoitteen. Tämä erityinen toteutus on tarkoitettu yhdelle käyttäjälle, joka käyttää lamppuun liitettyä älypistoketta. Sitä voidaan kuitenkin käyttää myös rekisteröityjen laitteiden kanssa, joissa on kaikenlaisia IOT -yhteensopivia laitteita.

Tarvikkeet

  1. ESP32
  2. (valinnainen) TECKIN WiFi -seinäpistoke S10
  3. Kaikenlainen BLE -yhteensopiva laite

Vaihe 1: Määritä skenaario

Määrittele skenaario
Määrittele skenaario

Liipaisimelle voit käyttää suurinta osaa nykyaikaisista vaatteista. Tämä voi olla Apple Watch, mi fit -nauha, puhelin tai jopa oma ESP32 -pohjainen puettava itse.

Luultavasti yksi tärkeimmistä vaiheista. Sinun on ajateltava etukäteen 3 asiaa:

1. Mikä puettava laite tai laite tulee olemaan läheisyysanturin laukaisija.

2. Mikä laukaisee anturin (tämä tapahtuu IFTTT: n kautta).

3. Kun anturi käynnistyy

Tässä esimerkissä käynnistän Apple Watchin avulla älypistokkeen lampun sytyttämiseksi, kun istun työpöytäni ääressä.

Tässä opetusohjelmassa tarkastelemme TECKINin älypistoketta. Löydät sen Amazonista hyvään hintaan. Se on myös yhteensopiva Alexan ja Google Homen kanssa. Suuri arvo!

Vaihe 2: (Esittely) Aseta liipaisin - useita käyttäjiä

Jos haluat määrittää sen toimimaan kenellä tahansa, jolla on BLE -yhteensopiva laite tarpeeksi lähellä anturia, ohita seuraava vaihe. Tämä on varsin hyödyllinen asetus, jota käytän henkilökohtaisesti. Muista, että tämä anturi voidaan helposti hakkeroida tai käyttää hyväkseen, joten en luottaisi paljon turvatelineen tuopiin; vain käytännön kannalta (eli en halua, että tietokone laukaisee sen, koska se on aina anturin vieressä).

Vaihe 3: (Johdanto) Aseta liipaisin - rajoitetut käyttäjät

Tämä vaihe vaihtelee suuresti asetusten mukaan. Voit rajoittaa, mitkä laitteet voivat laukaista anturin, rajoittamalla useita reittejä:

- BLE MAC -osoite (vastaa wifi -verkon IP -osoitetta. Syy ei takaa turvallisuutta, koska se ei ole moduulin todellinen MAC -osoite. IOS -laitteissa se muuttuu aina, kun käynnistät Bluetoothin uudelleen, ei niin hauskaa)

- Valmistajan koodi (parempi vaihtoehto, mutta ei tapa rajoittaa saman valmistajan/mallin tiettyjä laitteita)

- Nimi, palvelun UIDD (harvinainen, mutta paras vaihtoehto, enimmäkseen itse tehtyjä vaatteita tai ehkä Android -sovellus)

Jotkut huomautukset:

1. Jos se on iOS -laite:

- Sinulla on joitain tärkeitä etuja ja haittoja. Pro, ne välittävät tehotason, jolla se mainostaa dataa. Tämä on hyödyllistä kalibrointivaiheessa, huomaat, että Apple Watchin käyttäminen on hyödyllistä, koska se lähettää 24 dB: n taajuudella, iPhonet ja useimmat laitteet lähettävät 12 dB.

CON, sinun on löydettävä kiertotie. Mainostettu MAC -osoite (tärkein tunnistusmenetelmä) muuttuu aina, kun Bluetooth -signaali käynnistetään uudelleen, mikä tarkoittaa, että sinun on ladattava koodi joka kerta… ei hauskaa. Voit käyttää valmistajan tietoja, jotka voivat vaihdella malleittain. Tämä tarkoittaa, että voit rajoittaa niin, että se tunnistaa "kaikki iPhone 8".

2. Jos se on Android -laite:

- Minulla ei henkilökohtaisesti ole Android -laitetta. Mutta on todennäköisesti monia sovelluksia, jotka voivat korjata MAC -osoitteen tai jopa lisätä henkilökohtaisen nimen (jos haluat mennä näin). IOS -laitteissa on sovellus "nrf connect", joka voi tehdä tämän. Mutta ei ole jatkuva, eli jos lukitset näytön tai vaihdat sovelluksia.. kokoonpano sammuu muutamassa sekunnissa.

3. Toinen ESP32. (paras veto)

- Tällainen yksinkertainen koodi voidaan toteuttaa tällaisessa laitteessa; esp32 -käyttöinen älykaista. Koodi on itse asiassa esimerkki ESP BLE -kirjastosta BLE_IBeacon.ino. En ole testannut sitä kovinkaan paljon, koska älybändini on lähettämässä, luultavasti julkaisee päivitykset pian.

Vaihe 4: (Asennus) - IFTTT

(Asetus) - IFTTT
(Asetus) - IFTTT

Ok, joten tässä vaiheessa sinun on luultavasti otettava kaikki työnkulun halut. Sinulla on laukaisulaite, sinulla on paikka, johon voit liittää ESP: n langattomalla Internet -yhteydellä, ja sinulla on mielessä toiminto, jonka IFTTT voi automatisoida.

IFTTT on tehokas; olipa kyse vain yksinkertaisen ilmoituksen lähettämisestä laitteellesi, haluat lähettää tweetin tai kytkeä lampun päälle älypistokkeella. Tässä opetusohjelmassa toteutamme viimeisen IFTTT -yhteensopivilla TECKIN -älypistokkeilla. Joko niin, lataa IFTTT -sovellus tai siirry IFTTT.com -verkkoon ja luo tili.

Siinä se nyt on!

Jos haluat vain lähettää ilmoituksen tai jotain muuta kuin Smart Life -pistokkeen, voit ohittaa seuraavan vaiheen.

Vaihe 5: (Asennus) IOT -laite *valinnainen *

Lataa "Smart Life" -sovellus PlayStoresta (Android) tai AppStoresta (iOS). Ohjeet ovat melko suoraviivaisia, vaikka prosessi on hieman hankala. Huomasin skannausvaiheessa (kun sininen painike vilkkui) se pysähtyi jossain vaiheessa, sitten painin sitä manuaalisesti kytkeäksesi päälle ja pois päältä pari kertaa. Se auttoi minua. Kaikesta huolimatta; Tämän pistokkeen asennus ei ole erilainen sovelluksemme kanssa, joten jos sinulla on jo sellainen ja se on yhdistetty sovellukseesi, sinun pitäisi olla valmis.

HUOMAUTUS: Sinun on voitava kytkeä päälle ja pois päältä sovellus ennen kuin siirryt tästä vaiheesta. Tämä tarkoittaa, että olet määrittänyt älypistokkeen oikein.

IFTTT -sovelluksen pitäisi synkronoida "Smart Life" -sovelluksen kanssa saumattomasti, luultavasti pyytäen todennusta luodessaan tapahtuman seuraavassa vaiheessa.

Vaihe 6: (Asennus) IFTTT Webhook Api *Kokeneet käyttäjät *

(Asennus) IFTTT Webhook Api *Kokeneet käyttäjät *
(Asennus) IFTTT Webhook Api *Kokeneet käyttäjät *

Jos et ole käyttänyt ennen IFTTT -sovellusta etkä ole kovin tyytyväinen joihinkin teknisiin termeihin, ohita tämä vaihe, jotta saat yksityiskohtaisen oppaan (valokuvilla) seuraavassa vaiheessa.

1. Luo uusi tapahtuma.

2. Aseta "tämä" webhook -apiksi. Kirjoita tapahtumaan asettamasi nimi muistiin.

3. Aseta "se" haluamaasi käyttäytymiseen. Etsi älypistoke älykkäästä elämästä ja valitse 'päälle'.

4. Valitse älypistoke ja paina lopeta.

5. Etsi aloitusnäytöstä 'webhooks' -kortti. Kun olet painanut sitä, paina "hanki lisää" alareunassa.

6. Paina dokumentteja. Tämä näyttää api -avaimesi yhdessä URL -rakennustyökalun ja testaajan kanssa.

7. Käytä de URL -rakennustyökalua nimellä, jonka kirjoitit kohtaan 2. Kopioi se ja kirjoita.

8. Toista, jos haluat, että toiminta käynnistyy, kun läsnäolotunnistin ei ole enää aktiivinen. Meidän tapauksessamme toista numero 3, mutta valitse 'sammuta'. Myös numerolla 2 nimen pitäisi olla erilainen tällä kertaa.

Jos olet valmis, ohita seuraava vaihe.

Vaihe 7: (Asennus) IFTTT Webhook Api *Aloittelijoille, joilla on valokuvia *

(Asennus) IFTTT Webhook Api *Aloittelijoille, joilla on valokuvia *
(Asennus) IFTTT Webhook Api *Aloittelijoille, joilla on valokuvia *
(Asennus) IFTTT Webhook Api *Aloittelijoille, joilla on valokuvia *
(Asennus) IFTTT Webhook Api *Aloittelijoille, joilla on valokuvia *
(Asennus) IFTTT Webhook Api *Aloittelijoille, joilla on valokuvia *
(Asennus) IFTTT Webhook Api *Aloittelijoille, joilla on valokuvia *

Yksityiskohtainen opas *valokuvaoppaan on oltava samanlainen Androidin ja verkon kanssa *

IFTTT on yksinkertainen työnkulku, jos "tämä tapahtuu", niin "se tapahtuu". Sinun on luotava uusi, 1. Paina sovelluksessa "Hanki lisää" ja luettelo tulee näkyviin.

2. Paina hakupalkin a alla "tee omat appletit tyhjästä" ja paina plus -merkkiä.

3. Paina "tämä" plusmerkkiä

Meidän tapauksessamme "tämä" tulee olemaan api -puhelu Internetin kautta. API -puhelu on URL -osoitteeseen tutustuminen, kuten kun kirjoitat Google -haun ja URL -osoite on google.com/(pitkä merkkijono). Apin luominen: ("tämän" painamisen jälkeen)

4. Tee haku "webhooks"

5. Valitse ainoa vaihtoehto

6. Nimeä tapahtumasi (tässä esimerkissä käytämme "Sit"). Kirjoita tämä nimi muistiin, erittäin tärkeä.

7. Paina Luo liipaisin

Ok! Olemme lähempänä "nyt" osaa. Tässä opetusohjelmassa asetamme "että" ottamaan Smart -pistokkeen käyttöön. Mutta voit valita mitä tahansa IFTTT: stä. Hyvä tapa testata asetuksia on valita "ilmoitukset", jotka lähettävät ilmoituksen puhelimeesi joka kerta, kun anturi laukeaa (tai api kutsutaan, vaikka selaimelta: hyödyllinen testaamiseen!)

8. Paina plus -merkkiä "tuo"

9. Hae "Smart Life" (tai "ilmoitukset")

10. Paina 'päälle' (sinun on toistettava nämä vaiheet, jotta voit luoda toisen tapahtuman, jonka haluat sammuttaa lähdettäessä)

11. Jos molemmat sovellukset ja pistoke on määritetty oikein, sinun pitäisi nähdä pistokkeesi avattavasta valikosta, mikä laite/ryhmä.

12. Valitse Luo toiminto ja lopeta.

Nyt sinun pitäisi nähdä, että tapahtuma on yhdistetty. Nyt meidän on hankittava api -URL -osoite. Tätä varten:

13. Siirry IFTTT -aloitusnäyttöön

14. Etsi Webhooks -kortti

15. Valitse "Hanki lisää"

16. Napauta Dokumentaatio -painiketta. Sinun pitäisi nähdä verkkosivu avaimellasi.

17. Kirjoita paikkamerkeissä "{event}" tapahtumasi nimi (muista kohta 6)

18. Siirry sivun alareunaan ja napauta "Testaa"

Sinun pitäisi todennäköisesti nähdä vihreä banneri "tapahtuma on käynnistetty" ja sinun pitäisi nähdä toimiiko se vai ei. Meidän tapauksessamme pistokkeen pitäisi kytkeytyä päälle. Tai sinun pitäisi nähdä ilmoitus, jos päätit mennä kyseiselle tielle. Voi kestää hetken, mutta enintään minuutin nähdä, onnistuiko se. Muista, että se on todennäköisesti kirjainkoko.

19. Lopuksi. Kopioi URL -osoite, johon korvasit tapahtumasi nimen (17), ja tallenna se jonnekin turvalliseen paikkaan. Tarvitset tätä pian.

20. Toista 1-12. Klo 6 käytämme tällä kertaa "Standia". Klo 10 valitse sen sijaan "sammuta".

21. Toista 13-18, jos haluat, mutta voit päästä eroon kopioimasta URL-osoitteesta kello 19, mutta vaihda nyt paikka, jossa kirjoitit "Istu" ja korvaa se "Seis". Voit testata tätä verkkoselaimella. Sen pitäisi sanoa 'Onnittelut! Olet ampunut Stand -tapahtuman. Silloin pistokkeen olisi pitänyt sammua.

Vaihe 8: (Koodi) ESP32: n ohjelmointi

(Koodi) ESP32: n ohjelmointi
(Koodi) ESP32: n ohjelmointi

Voit ohittaa tämän vaiheen, jos haluat ladata luonnoksia Arduino IDE: stä ESP32 -kortillesi. Muista vain asettaa 2 Mt: n osio sovellukselle ainakin sen jälkeen, kun luonnos painaa hieman yli 1,2 Mt: n tavanomaisen rajan.

Siellä on monia hienoja opetusohjelmia, joita tässä suosittelen:

circuitdigest.com/microcontroller-projects…

Mutta silti, niin et ole niin eksynyt, erittelen muutamia tärkeitä avainkohtia.

- ESP32 ei ole Arduino -kortti, mutta Arduino IDE voi silti ohjelmoida sen. Yksinkertaisella Arduino -koodilla. Sinun on kuitenkin määritettävä IDE toimimaan ESP32: n kanssa.

- Sinun on asennettava joitain kirjastoja "Lisäkorttien hallinnan" kautta. Liitä tämä URL -osoite:

-(valinnainen, voi auttaa) Työkalut-> Hallitse kirjastoja… -> (etsi esp BLE -kirjasto)

- Työkaluissa sinulla pitäisi nyt olla pitkä luettelo ESP -laitteista, suosittelen ESP32 dev -moduulia

- (TÄRKEÄÄ) Valitse (ei Ota 2 Mt: n sovellusta/2 Mt: n spifs) osionhallinnasta. Tämä vaihe on tärkeä, koska sovelluksesta tulee melko raskas tuote, joka käyttää sekä wifi/http -yhteyksiä että BLE -skanneria.

Jos teit kaiken oikein, sinun pitäisi pystyä ohjelmoimaan ESP32. Nyt prosessi on samanlainen kuin arduino joissakin taulukoissa. Liitä se, valitse vastaava kortti, USB -portti ja olet valmis. Mutta monissa muissa tapauksissa sinun on jatkettava

Vaihe 9: (Koodi) Lataa koodi ESP32 -laitteeseen

(Koodi) Lataa koodi ESP32 -laitteeseen
(Koodi) Lataa koodi ESP32 -laitteeseen

Ok, jos olet täällä, se tarkoittaa, että olet lähettänyt luonnoksen ESP32 -levylle, mieluiten blink.ino -luonnoksen.

Tässä on nyt pääkoodi, joka löytyy myös GitHub -reposta. Sinun on vaihdettava seuraavat:

SSID - wifi -nimesi

PSK - WiFi -salasanasi

istua - URL -osoite, jossa on "Sit" IFTTT -apista, jonka kirjoitit aiemmin

stand - URL -osoite, jossa on "Stand" Aiemmin kirjoittamastasi IFTTT -apista

Vie nyt laukaisulaite lähelle taulua ja lataa sitten koodi. Avaa sitten Serial Monitor (baud 115200) koodin lataamisen jälkeen.

Jos aiot käyttää tätä minkä tahansa BLE -yhteensopivan laitteen kanssa, ohita seuraava vaihe.

HUOMAUTUS: jos saat muistivirheilmoituksia, se johtuu siitä, että oletusasetukset jättävät ESP -raakakoodille vain 1 Mt muistia (4 Mt: sta). Se jättää osan muutamille asioille vaihtoehtona ohjelmoida langattomasti. Teen yleensä seuraavaa:

- Työkaluissa sinulla pitäisi nyt olla pitkä luettelo ESP-laitteista, suosittelen ESP32 dev -moduulia- Valitse osionhallinnassa 'no Ota 2mb app/2mb spifs'.

Tämä antaa minulle kaksinkertaisen muistitilan, jota tarvitaan tähän sovellukseen.

Vaihe 10: (Koodi) Lataa koodi ESP32 -laitteeseen *valinnainen *

(Koodi) Lataa koodi ESP32 -laitteeseen *valinnainen *
(Koodi) Lataa koodi ESP32 -laitteeseen *valinnainen *

Tässä on "Aseta liipaisin" -vaiheessa mainittu hankala osa. Näyttö antaa MAC -osoitteen (pitäisi näyttää ##: ##: ##: ##: ## jossa#on joko numero tai kirjain a - f), valmistajan koodi ja RSSI (negatiivinen luku). Täällä sinun täytyy leikkiä hieman löytääksesi laitteesi. Yleensä laitan sen taulun viereen, jotta näen selvästi, mikä on pienin numero. Poistan automaattisen vieritysruudun valinnan, jotta voin kopioida arvot.

  • Jos se on Mac -osoite, täytä se 'myDevice'. Poista sitten kommenttirivi #96 ja kommentirivi #95
  • Jos se on nimi, täytä se 'myDevice'. Poista sitten kommenttirivi #97 ja kommentirivi #95
  • Jos se on MaufactureData, sinulla ei ole onnea tällä hetkellä, kehitän edelleen sitä osaa.

Jos haluat lisätä tukea May -laitteille, sinun on voitava kopioida ehdollinen lauseke joko numeroista 96 tai #97 ja sijoittaa ne vierekkäin tähän syntaksiin:

jos ((ehto1) || (ehto2) || (ehto3)) {

Lisää muuttujia (myDevice1, myDevice2, myDevice3) vastaavasti.

Vaihe 11: Aseta ESP ja kalibroi

Aseta ESP ja kalibroi
Aseta ESP ja kalibroi

Tämä on tärkein osa asennusta. Tämän prosessin huolellinen läpikäyminen on ero siinä, että se toimii kuin taika tai antaa sinulle vain voimakasta päänsärkyä.

Tässä vaiheessa lataamasi koodi toimii parametreilla, jotka olen itse testannut ja käytän päivittäin puhelimellani työpöydälläni. se ei tarkoita, että se toimii myös sinulle. Joten sinun on tehtävä kalibrointi itse.

1. Aseta ESP32 -kortti lopulliseen KIINTEÄNEEN paikkaansa. Jos siirrät jostain syystä ESP32 -laitteen sijaintia, sinun pitäisi todennäköisesti tehdä tämä uudelleen. Tämä takaa sinulle kaiken kaikkiaan hyvän kokemuksen.

1. (ylimääräinen) pitää mielessä, että sinun on voitava muodostaa yhteys tietokoneeseen tätä tehdessäsi. Jos et voi, koska olet työpöydällä, sinun on tehtävä kokeilu- ja erehdystoiminta pitäen mielessä, että jokaisen kokeilun on oltava lähes identtinen paikannuksessa, laukaisulaitteessa ja muissa tekijöissä, jotka voivat tulla huomioon.

2. Avaa Serial Monitor ja koodi on käynnissä.

Oletuksena koodi lähettää sarjamonitorin kautta jokaisen löydetyn Bluetooth -laitteen (tai vain parametrejasi vastaavan laitteen) RSSI -signaalin (vastaanotetun signaalin voimakkuuden osoitus). Pelaa vähän päätoimintalaitteellasi (laukaisulaite). Sinun on määritettävä, mitä raja -arvoja haluat käyttää. Tämän kokoonpanon säätäminen huolellisesti

3. Kun määrität kynnysarvot, korvaa ne täällä:

  • lähellä_thrsh
  • far_thrsh

4. Lataa koodi uudelleen, testaa ja toista, kunnes löydät optimaalisen suorituskyvyn.

Muutama huomioitava asia:

1. Haluat noin 20 dB eroa kynnysarvojen välillä. Jos near_thrsh on 50, on toivottavaa, että far_thrsh on 70 tai enemmän. Jos ero on liian lyhyt, saatat löytää joitakin etäisyyksiä tai paikkoja, joissa lauta käynnistyy jatkuvasti ja jatkuvasti. Tämän eron lisääminen varmistaa, että vältät tämän ei -toivotun käyttäytymisen. Huomasin henkilökohtaisesti, että 20db marginaali on tarpeeksi hyvä.

2. Kalibrointitestissä tosielämän skenaarioissa niin paljon kuin mahdollista, tämä auttaa määrittämään parhaan suorituskyvyn.

3. Tutki koodia rivin 82 kohdalla; tässä tehdään kaikki logiikka. Koodi on kuitenkin hyvin kommentoitu. Kysy rohkeasti GitHubista!

Vaihe 12: Onnittelut! Olet valmis

Kerro minulle ehdotuksista tai jos sinulla on ongelmia. Muista tarkistaa GitHub, jos ongelmasi on jo ratkaistu!