Buvimo jutiklis: 12 žingsnių
Buvimo jutiklis: 12 žingsnių
Anonim
Buvimo jutiklis
Buvimo jutiklis

Nešiojamieji paprastai yra BLE palaikantys įrenginiai. Paprastai jie periodiškai reklamuoja kai kuriuos duomenis pagal savo MAC adresą. Mes naudojame ESP, kad nuskaitytume šiuos duomenis ir suaktyvintume įvykį internetu, kai jis randa konkretų MAC adresą. Šis konkretus įgyvendinimas skirtas vienam išmaniojo kištuko, prijungto prie lempos, vartotojui. Tačiau jis taip pat gali būti naudojamas su registruotų įrenginių rinkiniu su bet kokio tipo IOT palaikančiais įrenginiais.

Prekės

  1. ESP32
  2. (pasirinktinai) „TECKIN WiFi“sieninis kištukas S10
  3. Bet kokio tipo BLE palaikantis įrenginys

1 žingsnis: apibrėžkite savo scenarijų

Apibrėžkite savo scenarijų
Apibrėžkite savo scenarijų

Norėdami suaktyvinti, galite naudoti daugumą šiuolaikinių nešiojamųjų daiktų. Tai gali būti „Apple Watch“, „mi fit“juosta, telefonas ar net „pasidaryk pats“, nešiojamas pagal ESP32.

Turbūt vienas svarbiausių žingsnių. Turite galvoti iš anksto dėl 3 dalykų:

1. Kuris nešiojamas ar prietaisas bus artumo jutiklio trigeris.

2. Kas suaktyvins jutiklį (tai daroma naudojant IFTTT).

3. Kai jutiklis ims suveikti

Šiame pavyzdyje aš naudosiu „Apple Watch“, kad suaktyvinčiau išmanųjį kištuką, kad įjungčiau lempą, kai sėdžiu prie savo stalo.

Šioje pamokoje apžvelgsime TECKIN išmanųjį kištuką. Jį galite rasti „Amazon“už gerą kainą. Jis taip pat suderinamas su „Alexa“ir „Google Home“. Gera vertė!

2 veiksmas: (įvadas) Nustatykite aktyviklį - keli vartotojai

Jei norite sukonfigūruoti taip, kad jis veiktų bet kuriam asmeniui, turinčiam BLE įgalintą įrenginį pakankamai arti jūsų jutiklio, praleiskite kitą veiksmą. Tai labai naudinga, tai yra nustatymas, kurį aš asmeniškai naudoju. Turėkite omenyje, kad šį jutiklį galima lengvai nulaužti arba panaudoti, kad jis suaktyvintų, todėl nelabai pasitikėčiau saugos stendo pinti; tik praktiniam (ty nenoriu, kad jį suaktyvintų mano kompiuteris, nes jis visada bus šalia jutiklio).

3 veiksmas: (įvadas) Nustatykite aktyviklį - riboti naudotojai

Šis žingsnis labai skiriasi priklausomai nuo jūsų sąrankos. Norėdami apriboti, kurie įrenginiai gali suaktyvinti jutiklį, turite apriboti daugybę maršrutų:

- BLE MAC adresas (atitinka IP adresą „wifi“tinkle. Priežastis, dėl kurios jis negarantuoja saugumo, nes nėra tikrasis modulio MAC adresas. „IOS“įrenginiuose jis keičiasi kiekvieną kartą, kai iš naujo paleidžiate „Bluetooth“, o ne taip smagu)

- Gamintojo kodas (geresnis pasirinkimas, bet jokiu būdu negalima apriboti konkrečių to paties gamintojo/modelio įrenginių)

- Vardas, paslaugos UIDD (retas, bet geriausias pasirinkimas, dažniausiai „pasidaryk pats“nešiojami drabužiai arba galbūt „Android“programa)

Kai kurios pastabos:

1. Jei tai „iOS“įrenginys:

- Jūs turite keletą svarbių privalumų ir trūkumų. Pro, jie perduoda galios lygį, kuriuo reklamuojami duomenys. Tai naudinga kalibravimo etape, pamatysite, kad „Apple Watch“naudojimas yra naudingas, nes jis transliuoja 24 dB, „iPhone“ir dauguma įrenginių perduoda 12 dB.

CON, turėsite rasti sprendimo būdų. Reklamuojamas MAC adresas (pagrindinis identifikavimo metodas) keičiasi kiekvieną kartą, kai „Bluetooth“signalas paleidžiamas iš naujo, o tai reiškia, kad turėsite įkelti kodą kiekvieną kartą … nesmagu. Galite naudoti gamintojo duomenis, kurie gali skirtis priklausomai nuo modelio. Tai reiškia, kad galite apriboti, kad jis jaustų „visus„ iPhone 8 “.

2. Jei tai „Android“įrenginys:

- Aš asmeniškai neturiu „Android“įrenginio. Tačiau tikriausiai yra daug programų, kurios gali pataisyti MAC adresą ar net pridėti asmeninį vardą (jei taip norite eiti). „IOS“įrenginiuose yra programa „nrf connect“, kuri tai gali padaryti. Bet nėra patvarus, tai reiškia, jei užrakinsite ekraną arba perjungsite programas.. konfigūracija išnyks per kelias sekundes.

3. Kitas ESP32. (geriausias pasirinkimas)

- Tokį paprastą kodą galima įdiegti tokiame įrenginyje kaip šis; esp32 maitinama išmanioji juosta. Kodas iš tikrųjų yra pavyzdys iš ESP BLE bibliotekos BLE_IBeacon.ino. Nelabai išbandžiau, nes mano išmanioji grupė siunčiama, greičiausiai netrukus paskelbsiu atnaujinimus.

4 žingsnis: [Sąranka] - IFTTT

(Sąranka) - IFTTT
(Sąranka) - IFTTT

Gerai, todėl šiame etape tikriausiai turėtumėte imtis visų savo darbo eigos veiksmų. Turite savo įjungimo įrenginį, turite vietą, kur prijungti ESP belaidžiu ryšiu prie interneto, ir turite omenyje veiksmą, kurį IFTTT gali automatizuoti.

IFTTT yra galingas; nesvarbu, ar tai paprasčiausias pranešimas į jūsų įrenginį, ar norite, kad būtų išsiųstas „tweet“, ar įjungtumėte lemputę su išmaniuoju kištuku. Šioje pamokoje mes įgyvendinsime paskutinįjį su TECKIN išmaniaisiais kištukais, suderinamais su IFTTT. Bet kuriuo atveju atsisiųskite IFTTT programą arba eikite į IFTTT.com žiniatinklį ir susikurkite paskyrą.

Kol kas tiek!

Jei norite tiesiog išsiųsti pranešimą ar ką nors kita, nei „Smart Life“kištukas, galite praleisti kitą veiksmą.

5 veiksmas: [sąranka] IOT įrenginys *neprivaloma *

Atsisiųskite „Smart Life“programą iš „PlayStore“(„Android“) arba „AppStore“(„iOS“). Instrukcijos yra gana paprastos, nors procesas yra šiek tiek sudėtingas. Aš sužinojau nuskaitymo etape (kai mirksėjo mėlynas mygtukas), jis tam tikru momentu sustojo, tada rankiniu būdu paspaudžiau, kad porą kartų įjungčiau ir išjungčiau. Tai man padėjo. Šiaip ar taip; šio kištuko sąranka niekuo nesiskiria nuo mūsų programos, todėl jei jau turite ir esate prijungę jį prie savo programos, turėtumėte būti pasiruošę.

PASTABA: prieš pradėdami nuo šio veiksmo, turite sugebėti įjungti ir išjungti programą. Tai reiškia, kad teisingai sukonfigūravote išmanųjį kištuką.

„IFTTT“programa turėtų sklandžiai sinchronizuotis su „Smart Life“programa, tikriausiai paraginus autentifikuoti kuriant įvykį kitame etape.

6 veiksmas: [sąranka] IFTTT Webhook Api *Patyrę vartotojai *

[Sąranka] IFTTT Webhook Api *Patyrę vartotojai *
[Sąranka] IFTTT Webhook Api *Patyrę vartotojai *

Jei prieš IFTTT programą nenaudojote ir jums nepatinka kai kurie techniniai terminai, kitame žingsnyje praleiskite šį veiksmą, kad gautumėte Išsamų vadovą (su nuotraukomis).

1. Sukurkite naują įvykį.

2. Nustatykite „this“kaip webhook api. Užsirašykite įvykio pavadinimą.

3. Nustatykite „tą“norimam elgesiui. Jei norite išmaniojo kištuko, ieškokite išmaniojo gyvenimo ir pasirinkite „įjungti“.

4. Pasirinkite išmanųjį kištuką ir paspauskite baigti.

5. Pradiniame ekrane ieškokite „webhooks“kortelės. Kai paspausite, apačioje paspauskite „gauti daugiau“.

6. Spaudos dokumentacija. Tai parodys jūsų API raktą kartu su URL kūrimo ir testavimo priemone.

7. Naudokite URL kūrimo priemonę pavadinimu, kurį parašėte #2. Nukopijuokite ir užrašykite.

8. Pakartokite, jei norite, kad buvimo jutiklis nebeveiktų. Mūsų atveju pakartokite #3, bet pasirinkite „išjungti“. Be to, šiuo metu pavadinimas #2 taip pat turėtų būti kitoks.

Jei baigsite, praleiskite kitą veiksmą.

7 veiksmas: [sąranka] IFTTT Webhook Api *pradedantiesiems su nuotraukomis *

(Sąranka) „IFTTT Webhook Api“*pradedantiesiems su nuotraukomis *
(Sąranka) „IFTTT Webhook Api“*pradedantiesiems su nuotraukomis *
(Sąranka) „IFTTT Webhook Api“*pradedantiesiems su nuotraukomis *
(Sąranka) „IFTTT Webhook Api“*pradedantiesiems su nuotraukomis *
(Sąranka) „IFTTT Webhook Api“*pradedantiesiems su nuotraukomis *
(Sąranka) „IFTTT Webhook Api“*pradedantiesiems su nuotraukomis *

Išsamus vadovas *nuotraukų vadovas turėtų būti panašus naudojant „Android“ir žiniatinklyje *

IFTTT yra paprasta darbo eiga, jei „taip atsitinka“, tada „taip atsitinka“. Turite sukurti naują, 1. programėlėje paspauskite „gauti daugiau“ir bus parodytas sąrašas.

2. Tiesiai po paieškos juosta a sakoma: „Sukurkite savo programėles nuo nulio“, paspauskite pliuso ženklą.

3. Paspauskite „šis“pliuso ženklą

Mūsų atveju „tai“bus api skambutis internetu. API skambutis - tai URL adresas, panašus įvedant „Google“paiešką, o URL yra google.com/(ilga simbolių eilutė). Norėdami sukurti API: (paspaudę „tai“)

4. Ieškokite „webhooks“

5. Pasirinkite vienintelę parinktį

6. Pavadinkite savo įvykį (šiame pavyzdyje naudosime „Sit“). Užsirašykite šį vardą, labai svarbu.

7. Paspauskite Sukurti trigerį

Gerai! mes arčiau, dabar prie „tos“dalies. Šioje pamokoje mes nustatysime „tai“, kad įjungtumėte išmanųjį kištuką. Bet jūs galite pasirinkti bet ką iš IFTTT. Geras būdas išbandyti sąranką yra pasirinkti „pranešimus“, kurie kiekvieną kartą, kai jutiklis suveiks (arba iškviečiamas API, net iš žiniatinklio naršyklės: naudingas bandymams) išsiųs pranešimą į jūsų telefoną.

8. Paspauskite „tą“pliuso ženklą

9. Ieškokite „Smart Life“(arba „pranešimai“)

10. Paspauskite „įjungti“(turėsite pakartoti šiuos veiksmus, kad sukurtumėte kitą įvykį, kurį išjungti išvykus)

11. Jei abi programos ir kištukas tinkamai sukonfigūruoti, turėtumėte matyti kištuką išskleidžiamajame meniu „kuris įrenginys/grupė“.

12. Pasirinkite Sukurti veiksmą ir baikite.

Dabar turėtumėte pamatyti, kad įvykis yra prijungtas. Dabar turime gauti API URL. Tam:

13. Eikite į IFTTT pagrindinį ekraną

14. Raskite „Webhooks“kortelę

15. Pasirinkite „Gauti daugiau“

16. Bakstelėkite dokumentavimo mygtuką. Turėtumėte pamatyti tinklalapį su savo raktu.

17. Vietos žymekliuose „{event}“įveskite įvykio pavadinimą (prisiminkite 6 punktą)

18. Eikite į puslapio apačią ir bakstelėkite „Išbandyti“

Turbūt turėtumėte pamatyti žalią reklamjuostę „įvykis buvo suaktyvintas“ir turėtumėte pamatyti, ar ji veikė, ar ne. Mūsų atveju kištukas turėtų įsijungti. Arba turėtumėte pamatyti pranešimą, jei nusprendėte eiti tuo keliu. Gali užtrukti šiek tiek laiko, bet ne ilgiau kaip minutę, kad pamatytumėte, ar jums pavyko. Atminkite, kad tikriausiai yra didžiosios ir mažosios raidės.

19. Pagaliau. Nukopijuokite URL, kuriame pakeitėte įvykio pavadinimą (17 m.), Ir išsaugokite jį saugioje vietoje. Greitai jums to prireiks.

20. Pakartokite 1-12. 6 valandą šį kartą naudosime „Stovą“. Vietoje 10 pasirinkite „išjungti“.

21. Jei norite, pakartokite 13–18, bet jūs galite išsisukti nuo URL, kurį nukopijavote 19, bet dabar pakeiskite vietą, kurioje parašėte „Sėdėti“, ir pakeiskite „Stovėkite“. Tai galite išbandyti žiniatinklio naršyklėje. Turėtų būti pasakyta: „Sveikinu! Jūs įjungėte „Stand“renginį “. Tada kištukas turėjo būti išjungtas.

8 veiksmas: (kodas) ESP32 programavimas

(Kodas) ESP32 programavimas
(Kodas) ESP32 programavimas

Galite praleisti šį veiksmą, jei jums patogu įkelti eskizus iš „Arduino IDE“į savo ESP32 plokštę. Tik nepamirškite programai nustatyti 2 MB skaidinio, nes eskizas sveria šiek tiek daugiau nei 1,2 MB.

Yra daug puikių vadovėlių, čia yra keletas, kuriuos rekomenduoju:

circuitdigest.com/microcontroller-projects…

Bet vis tiek, kad nesate toks pasimetęs, aš suskirstysiu kelis svarbius pagrindinius dalykus.

- ESP32 nėra „Arduino“plokštė, tačiau ją vis tiek gali užprogramuoti „Arduino IDE“. Su paprastu „Arduino“kodu. Tačiau vis tiek turėsite sukonfigūruoti IDE, kad jis veiktų su ESP32.

- Kai kurias bibliotekas turėsite įdiegti per „Papildomų lentų tvarkyklę“. Tai URL, kurį turėtumėte įklijuoti:

-(neprivaloma, gali padėti) Įrankiai-> Tvarkyti bibliotekas … -> (rasti esp BLE biblioteką)

- „Tools“dabar turėtumėte turėti ilgą ESP įrenginių sąrašą, rekomenduoju ESP32 dev modulį

- (SVARBU) skaidinių tvarkytuvėje pasirinkite (nėra „Ota 2mb“programos/2mb spifs). Šis žingsnis yra svarbus, nes programa tampa gana sunki, nes ji naudoja tiek „Wi -Fi“/„http“ryšius, tiek „BLE“skaitytuvą.

Jei viską padarėte teisingai, turėtumėte turėti galimybę užprogramuoti ESP32. Dabar to darymo procesas yra panašus į arduino kai kuriose lentose. Prijunkite jį, pasirinkite atitinkamą plokštę, USB prievadą ir baigsite. Tačiau daugeliu kitų atvejų turėsite tęsti

9 veiksmas: (kodas) Įkelkite kodą į ESP32

(Kodas) Įkelkite kodą į ESP32
(Kodas) Įkelkite kodą į ESP32

Gerai, jei esate čia, tai reiškia, kad sėkmingai įkėlėte eskizą į ESP32 plokštę, pageidautina „blink.ino“eskizą.

Dabar čia yra pridėtas pagrindinis kodas, kurį taip pat galite rasti „GitHub“atpirkimo parduotuvėje. Turite pakeisti šiuos dalykus:

SSID - jūsų „wifi“pavadinimas

PSK - jūsų „wifi“slaptažodis

sit - URL su „Sit“iš anksčiau parašyto IFTTT API

stendas - URL su „Stovu“Iš IFTTT API, kurią parašėte anksčiau

Dabar prijunkite trigerį prie lentos ir įkelkite kodą. Tada sėkmingai įkėlę kodą atidarykite serijinį monitorių (baudas 115200).

Jei planuojate tai naudoti su bet kokiu BLE palaikančiu įrenginiu, praleiskite kitą veiksmą.

PASTABA: jei gausite atminties klaidų pranešimus, tai dėl to, kad pagal numatytuosius nustatymus ESP neapdorotam kodui paliekama tik 1 MB atminties (iš 4 MB). Ji palieka porą dalykų, kaip galimybę programuoti per orą. Aš paprastai darau taip:

- „Tools“dabar turėtumėte turėti ilgą ESP įrenginių sąrašą, rekomenduoju ESP32 dev modulį- skaidinių tvarkytuvėje pasirinkite „no Ota 2mb app/2mb spifs“.

Tai suteikia man dvigubos atminties vietos, reikalingos šiai programai.

10 veiksmas: [kodas] Įkelkite kodą į ESP32 *neprivaloma *

[Kodas] Įkelkite kodą į ESP32 *neprivaloma *
[Kodas] Įkelkite kodą į ESP32 *neprivaloma *

Čia yra sudėtinga dalis, paminėta žingsnyje „Nustatyti trigerį“. Monitorius išves MAC adresą (turėtų atrodyti kaip ##: ##: ##: ##: ## kur#yra skaičius arba raidė nuo a iki f), gamintojo kodas ir RSSI (neigiamas skaičius). Čia jūs turite šiek tiek pažaisti, kad sužinotumėte, kuris yra jūsų įrenginys. Paprastai jį dedu prie lentos, kad aiškiai matyčiau, kuris yra mažiausias skaičius. Panaikinu laukelį „automatinis slinkimas“, kad galėčiau nukopijuoti reikšmes.

  • Jei tai „Mac“adresas, užpildykite jį „myDevice“. Tada atšaukite 96 eilutę ir 95 komentaro eilutę
  • Jei tai pavadinimas, užpildykite jį „myDevice“. Tada atšaukite eilutę Nr. 97 ir komentaro eilutę #95
  • Jei jums dabar nesiseka „MaufactureData“, aš vis dar kuriu tą dalį.

Jei norite pridėti „May“įrenginių palaikymą, turėtumėte galėti nukopijuoti sąlyginį teiginį #96 arba #97 ir sudėti juos vienas šalia kito šioje sintaksėje:

jei ((sąlyga1) || (sąlyga2) || (sąlyga3)) {

Atitinkamai pridėkite daugiau kintamųjų (myDevice1, myDevice2, myDevice3).

11 veiksmas: padėkite ESP ir kalibruokite

Įdėkite ESP ir kalibruokite
Įdėkite ESP ir kalibruokite

Tai yra svarbiausia sąrankos dalis. Kruopščiai atlikdami šį procesą bus skirtumas, ar jis veiks kaip magija, ar tiesiog sukels stiprų galvos skausmą.

Šiuo metu jūsų įkeltas kodas veikia su parametrais, kuriuos aš asmeniškai išbandžiau ir naudoju kasdien su telefonu ant stalo; tai nereiškia, kad jis jums taip pat veiks. Taigi kalibravimą reikia atlikti patiems.

1. Įdėkite ESP32 plokštę į galutinę FIKSUOTĄ vietą. Jei dėl kokių nors priežasčių perkelsite savo ESP32 padėtį, tikriausiai turėtumėte tai padaryti dar kartą. Tai užtikrins jums gerą patirtį apskritai.

1. (papildomai) atminkite, kad tai atlikdami turėsite turėti galimybę prisijungti prie savo kompiuterio. Jei negalite, nes naudojate darbalaukį, turėsite atlikti bandymus ir klaidas, turėdami omenyje, kad kiekvienas bandymas turi būti beveik identiškas padėties nustatymo, paleidimo įrenginio ir kitų veiksnių, kurie gali būti svarbūs, atžvilgiu.

2. Atidarykite „Serial Monitor“, kai kodas veikia.

Pagal numatytuosius nustatymus kodas per serijinį monitorių paskelbs kiekvieno rasto „Bluetooth“įrenginio (arba tik jūsų parametrus atitinkančio (-ų) įrenginio (-ų) RSSI (gauto signalo stiprumo indikaciją)). Šiek tiek pažaiskite naudodami pagrindinį veiksmo įrenginį (paleidimo įrenginį). Turite nustatyti, kokias ribas norite naudoti. Atidžiai sureguliuokite šią konfigūraciją

3. Kai nustatote slenksčius, pakeiskite juos čia:

  • netoli_thrsh
  • far_thrsh

4. Iš naujo įkelkite kodą, išbandykite ir kartokite, kol rasite optimalų našumą.

Keletas dalykų, kuriuos reikia apsvarstyti:

1. Norite apie 20 dB skirtumo tarp slenksčių. Jei arti_thrsh nustatytas 50, tada pageidautina, kad far_thrsh būtų 70 ar daugiau. Jei skirtumas yra per trumpas, galite rasti tam tikrų atstumų ar vietų, kur lenta nuolatos įjungiama ir išjungiama. Padidinus šį skirtumą, išvengsite šio nepageidaujamo elgesio. Aš asmeniškai pastebėjau, kad 20 dB marža yra pakankamai gera.

2. Atliekant kalibravimo bandymus realiame gyvenime, kiek tai įmanoma, tai padės nustatyti geriausią našumą.

3. Išstudijuokite klasę 82 kodo eilutėje; čia yra visa logika. Nors kodas yra gerai pakomentuotas. Nesivaržykite paklausti „GitHub“!

12 žingsnis: Sveikiname! Su tavimi baigta

Praneškite man komentaruose apie bet kokius pasiūlymus arba jei kyla problemų. Nepamirškite patikrinti „GitHub“, jei jūsų problema jau išspręsta!