Presensya Sensor: 12 Hakbang
Presensya Sensor: 12 Hakbang
Anonim
Presensya Sensor
Presensya Sensor

Ang mga naisusuot ay karaniwang mga aparato na pinagana ng BLE. Karaniwan para sa kanila na pana-panahong mag-advertise ng ilang data kasama ang MAC address nito. Gumagamit kami ng isang ESP upang i-scan ang data na ito at mag-uudyok ng isang kaganapan sa pamamagitan ng internet kapag nakakita ito ng isang tukoy na MAC address. Ang partikular na pagpapatupad na ito ay para sa isang solong gumagamit sa isang smart plug na konektado sa isang lampara. Ngunit maaari rin itong magamit sa isang hanay ng mga nakarehistrong aparato na may anumang uri ng mga aparatong pinagana ng IOT.

Mga gamit

  1. ESP32
  2. (opsyonal) TOCKIN WiFi Wall Plug S10
  3. BLE pinagana ang aparato ng anumang uri

Hakbang 1: Tukuyin ang Iyong Scenario

Tukuyin ang Iyong Scenario
Tukuyin ang Iyong Scenario

Para sa gatilyo, maaari mong gamitin ang karamihan sa mga modernong naisusuot. Maaari itong maging isang Apple Watch, isang mi fit band, isang telepono o kahit na ang iyong sariling DIY na naisusuot batay sa isang ESP32.

Marahil isa sa pinakamahalagang hakbang. Kailangan mong mag-isip nang maaga sa 3 bagay:

1. Aling naisusuot o aparato ang magiging gatilyo ng proximity sensor.

2. Ano ang magti-trigger ng sensor (ginagawa ito sa pamamagitan ng IFTTT).

3. Kapag mag-uudyok ang sensor

Para sa halimbawang ito, gagamitin ko ang aking Apple Watch upang magpalitaw ng isang smart plug upang buksan ang isang lampara kapag umupo ako sa aking mesa.

Sa tutorial na ito titingnan namin ang isang matalinong plug sa pamamagitan ng TECKIN. Mahahanap mo ito sa amazon sa isang mabuting presyo. Tugma din ito sa Alexa at google Home. Mahusay na halaga!

Hakbang 2: (Intro) Itakda ang Trigger - Maramihang Mga Gumagamit

Kung nais mong i-configure upang gumana ang sinumang tao na may isang aparato na pinagana ng BLE na malapit na malapit sa iyong sensor, pagkatapos ay laktawan ang susunod na hakbang. Ito ay medyo kapaki-pakinabang, ay ang setting na personal kong ginagamit. Tandaan na ang sensor na ito ay maaaring madaling ma-hack o mapagsamantalahan upang ma-trigger upang hindi ako magtiwala ng malaki mula sa isang security stand pint; para lamang sa isang praktikal (ibig sabihin, hindi ko nais na ma-trigger ito ng aking PC dahil palagi itong susunod sa sensor).

Hakbang 3: (Intro) Itakda ang Trigger - Limitadong Mga Gumagamit

Malaki ang pagkakaiba-iba ng hakbang na ito sa iyong pag-set up. Upang limitahan kung aling mga aparato ang maaaring magpalitaw ng sensor na mayroon kang maraming mga ruta upang limitahan:

- BLE MAC address (katumbas ng IP address sa isang wifi network. Ang dahilan na hindi nito ginagarantiyahan ang seguridad dahil hindi ito ang tunay na MAC address ng module. Sa mga aparato ng iOS nagbabago ito sa tuwing i-restart mo ang bluetooth, hindi gaanong masaya)

- Code ng Tagagawa (mas mahusay na pagpipilian, ngunit walang paraan upang limitahan ang mga tukoy na aparato mula sa parehong tagagawa / modelo)

- Pangalan, Serbisyo UIDD (bihirang ngunit ang pinakamahusay na pagpipilian, karamihan sa mga naisusuot na DIY o marahil isang android app)

Ilang Tala:

1. Kung ito ay isang aparato ng iOS:

- Mayroon kang ilang mahahalagang kalamangan at kahinaan. Pro, ipinapadala nila ang antas ng kuryente kung saan ito ay data ng advertising. Nakatutulong iyon sa yugto ng pagkakalibrate, malalaman mo na ang paggamit ng isang Apple Watch ay kapaki-pakinabang dahil nag-broadcast ito sa 24db, mga iPhone at karamihan sa mga aparato ay nagpapadala sa 12db.

CON, kakailanganin mong maghanap ng mga workaround. Ang na-advertise na MAC address (ang pangunahing paraan ng pagkakakilanlan) ay nagbabago sa bawat oras na ang Bluetooth signal ay naka-restart, nangangahulugang kailangan mong i-upload ang code sa bawat oras … hindi masaya. Maaari mong gamitin ang data ng tagagawa na maaaring mag-iba sa pagitan ng mga modelo. Nangangahulugan ito na maaari mong limitahan upang ang pakiramdam ng "lahat ng iPhone 8".

2. Kung ito ay isang Android device:

- Ako ay personal na walang isang android aparato. Ngunit marahil maraming mga application na maaaring ayusin ang MAC address o kahit na magdagdag ng isang isinapersonal na pangalan (kung iyon ang paraan na nais mong puntahan). Sa mga iOS device mayroong isang app na "nrf connect" na magagawa ito. Ngunit hindi paulit-ulit, ibig sabihin kung i-lock mo ang screen o lumipat ng apps.. ang pagsasaayos ay papatay sa loob ng ilang segundo.

3. Isa pang ESP32. (ang iyong pinakamahusay na mapagpipilian)

- Ang isang simpleng code na tulad nito ay maaaring ipatupad sa isang aparato tulad nito; isang esp32 na pinapatakbo ng smart band. Ang code ay talagang isang halimbawa mula sa library ng ESP BLE BLE_IBeacon.ino. Hindi ko pa ito nasusubukan dahil ang aking smart band ay nasa pagpapadala na, marahil ay mag-post ng mga update sa lalong madaling panahon.

Hakbang 4: (Pag-setup) - IFTTT

(Pag-setup) - IFTTT
(Pag-setup) - IFTTT

Ok, kaya sa yugtong ito marahil ay dapat mong gawin ang lahat ng mga paghingi ng iyong daloy ng trabaho. Mayroon kang iyong nagti-trigger na aparato, mayroon kang isang lugar upang ilagay ang ESP na may isang wireless na koneksyon sa internet at mayroon kang isang aksyon sa isip na ang IFTTT ay maaaring awtomatiko.

Ang IFTTT ay malakas; kung magpapadala lamang ito ng isang simpleng notification sa iyong aparato, nais mong maipadala ang isang tweet o i-on ang isang bombilya gamit ang isang smart plug. Sa tutorial na ito ipapatupad namin ang huling may mga TOCKIN smart plug na katugma sa IFTTT. Alinmang paraan, i-download ang IFTTT app o pumunta sa web IFTTT.com at lumikha ng isang account.

Iyon lang ito para sa ngayon!

Kung nais mo lamang magpadala ng isang abiso o iba pa kaysa sa Smart Life plug maaari mong laktawan ang susunod na hakbang.

Hakbang 5: (Pag-setup) IOT Device * opsyonal *

I-download ang "Smart Life" na app mula sa PlayStore (android) o AppStore (iOS). Ang mga tagubilin ay medyo tuwid pasulong, bagaman ang proseso ay medyo nakakalito. Nalaman ko sa yugto ng pag-scan (kapag kumikislap ang asul na pindutan) tumigil ito sa ilang oras, pagkatapos ay manu-mano kong pinindot ito upang i-on at i-off nang maraming beses. Nakatulong iyon sa akin. Anyways; ang pag-set up ng plug na ito ay walang pagkakaiba sa aming application kaya kung nagmamay-ari ka na ng isa at konektado ito sa iyong app dapat handa ka nang pumunta.

TANDAAN: Kailangan mong i-on at i-off ang switch mula sa app bago ka lumipat mula sa hakbang na ito. Mangangahulugan iyon na na-configure mo nang tama ang smart plug.

Ang IFTTT app ay dapat na sumabay sa "Smart Life" na app nang walang putol, marahil ay hinihimok ang isang pagpapatotoo habang lumilikha ng isang kaganapan sa susunod na hakbang.

Hakbang 6: (Pag-setup) IFTTT Webhook Api * Mga Karanasang Gumagamit *

(Pag-setup) IFTTT Webhook Api * Mga Karanasang Gumagamit *
(Pag-setup) IFTTT Webhook Api * Mga Karanasang Gumagamit *

Kung hindi mo pa nagamit bago ang IFTTT app at hindi gaanong komportable sa ilang mga teknikal na termino laktawan ang hakbang na ito para sa Detalyadong Gabay (na may mga larawan) sa susunod na hakbang.

1. Lumikha ng isang bagong kaganapan.

2. Itakda ang "ito" upang maging isang webhook api. Isulat ang pangalang itinakda mo sa kaganapan.

3. Itakda ang "iyon" sa iyong ninanais na pag-uugali. Para sa matalinong buhay na paghahanap sa matalinong plug at piliin ang 'i-on'.

4. Piliin ang iyong smart plug at pindutin ang tapusin.

5. Sa home screen hanapin ang card na 'webhooks'. Matapos mo itong pindutin, pindutin ang "kumuha ng higit pa" sa ibaba.

6. Pindutin ang dokumentasyon. Ipapakita nito sa iyo ang iyong api key kasama ang isang tagabuo at tester ng URL.

7. Gumamit ng tagabuo ng de URL na may pangalang isinulat mo sa # 2. Kopyahin iyon at isulat.

8. Ulitin kung nais mo ang isang pag-uugali na ma-trigger kapag ang presensya ng sensor ay hindi na aktibo. Sa aming kaso ulitin ang # 3 ngunit piliin ang 'patayin'. Gayundin, sa # 2 ang pangalan ay dapat ding magkakaiba sa oras na ito.

Kung tapos ka na laktawan ang susunod na hakbang.

Hakbang 7: (Pag-setup) IFTTT Webhook Api * Para sa Mga Nagsisimula Sa Mga Larawan *

(Pag-setup) IFTTT Webhook Api * Para sa Mga Nagsisimula Sa Mga Larawan *
(Pag-setup) IFTTT Webhook Api * Para sa Mga Nagsisimula Sa Mga Larawan *
(Pag-setup) IFTTT Webhook Api * Para sa Mga Nagsisimula Sa Mga Larawan *
(Pag-setup) IFTTT Webhook Api * Para sa Mga Nagsisimula Sa Mga Larawan *
(Pag-setup) IFTTT Webhook Api * Para sa Mga Nagsisimula Sa Mga Larawan *
(Pag-setup) IFTTT Webhook Api * Para sa Mga Nagsisimula Sa Mga Larawan *

Detalyadong Gabay * ang gabay sa larawan ay dapat na magkatulad sa android at sa web *

Ang IFTTT ay isang simpleng daloy ng trabaho, kung "nangyari ito" kung gayon "nangyari iyon". Dapat kang lumikha ng bago, 1. sa app pindutin ang "makakuha ng higit pa" at isang listahan ay lilitaw.

2. Sa ibaba mismo ng search bar a nagsasabing "gumawa ng iyong sariling mga applet mula sa simula", pindutin ang Plus sign.

3. Pindutin ang "ito" plus sign

Sa aming kaso ang "ito" ay magiging isang tawag sa pamamagitan ng internet. Ang isang tawag sa api ay isang pagkonsulta sa isang URL, uri ng kagaya ng nag-type ka ng isang paghahanap sa google at ang url ay google.com/(isang mahabang string ng mga character). Upang likhain ang api: (pagkatapos ng pagpindot sa "ito")

4. Maghanap sa "webhooks"

5. Piliin ang tanging pagpipilian

6. Pangalanan ang iyong kaganapan (sa halimbawang ito gagamitin namin ang "Umupo"). Isulat ang pangalang ito, napakahalaga.

7. Pindutin ang Lumikha ng Trigger

Ok! mas malapit kami, Ngayon sa "bahaging" iyon. Para sa tutorial na ito itatakda namin ang "iyon" upang i-on ang Smart plug. Ngunit maaari kang pumili ng anumang bagay mula sa IFTTT. Ang isang mahusay na paraan ng pagsubok sa pag-set up ay upang piliin ang "mga abiso" na magpapadala ng isang abiso sa iyong telepono sa tuwing mag-trigger ang sensor (o tatawagin ang api, kahit mula sa isang web browser: kapaki-pakinabang para sa pagsubok!)

8. Pindutin ang "na" plus sign

9. Maghanap sa "Smart Life" (o "mga abiso")

10. Pindutin ang 'turn on' (kakailanganin mong ulitin ang mga hakbang na ito upang lumikha ng isa pang kaganapan upang i-off para kapag umalis ka)

11. Kung mayroon kang parehong mga app at ang plug ay wastong na-configure, dapat mong makita ang iyong plug sa drop down 'aling aparato / pangkat.

12. Piliin ang Lumikha ng Aksyon at pagkatapos ay tapusin.

Ngayon ay dapat mong makita na ang kaganapan ay konektado. Ngayon kailangan naming makuha ang api URL. Para dito:

13. Pumunta sa IFTTT Homescreen

14. Maghanap ng Webhooks card

15. Piliin ang "Kumuha Pa"

16. Tapikin ang pindutan ng Dokumentasyon. Dapat mong makita ang isang web page kasama ang iyong susi.

17. Sa mga placeholder na "{event}" punan ang pangalan ng iyong kaganapan (tandaan ang Point 6)

18. Pumunta sa ilalim ng pahina at i-tap ang "Subukan Ito"

Ang dapat mong malamang na makita ay isang berdeng banner na "na-trigger ang kaganapan" at dapat mong makita kung gumana ito o hindi. Sa aming kaso ang plug ay dapat na i-on. O dapat kang makakita ng isang abiso kung nagpasya kang pumunta sa daang iyon. Maaari itong tumagal ng kaunting habang, ngunit hindi hihigit sa isang minuto upang makita kung nagawa mo ito. Tandaan na marahil ito ay sensitibo sa kaso.

19. Panghuli. Kopyahin ang url kung saan mo pinalitan ang pangalan ng iyong kaganapan (sa 17) at i-save ito sa isang lugar na ligtas. Kakailanganin mo ito sa lalong madaling panahon.

20. Ulitin ang 1-12. Sa 6 gagamitin namin ang "Stand" sa oras na ito. Sa 10 piliin ang 'patayin' sa halip.

21. Ulitin ang 13-18 kung nais mo, ngunit maaari kang makawala sa url na nakopya mo sa 19, ngunit baguhin ngayon ang lugar kung saan mo sinulat ang "Umupo" at palitan ng "Tumayo". Maaari mo itong subukan sa isang web browser. Dapat sabihin na 'Binabati kita! Na-fired mo na ang Stand event '. Pagkatapos ang plug ay dapat na naka-patay.

Hakbang 8: (Code) Programing ang ESP32

(Code) Programing ang ESP32
(Code) Programing ang ESP32

Maaari mong laktawan ang hakbang na ito kung sa tingin mo ay komportable ka sa pag-upload ng mga sketch mula sa Arduino IDE sa iyong Lupon ng ESP32. Tandaan lamang na magtakda ng isang pagkahati ng 2mb para sa app ng hindi bababa sa dahil ang bigat ng sketch ay medyo higit sa 1.2mb na karaniwang limitasyon.

Maraming magagaling na mga tutorial doon, narito ang ilan sa kung saan inirerekumenda ko:

circuitdigest.com/microcontroller-projects…

Ngunit pa rin, kaya't hindi ka masyadong nawala ay masisira ko ang ilang mahahalagang pangunahing punto.

- Ang ESP32 ay hindi isang Arduino board ngunit maaari pa rin itong mai-program ng Arduino IDE. Gamit ang simpleng Arduino code. Ngunit, kakailanganin mo pa ring i-configure ang IDE upang gumana sa ESP32.

- Kakailanganin mong i-install ang ilang mga aklatan sa pamamagitan ng 'Karagdagang mga board manager' sa mga kagustuhan. Ito ang URL na dapat mong i-paste:

- (opsyonal, maaaring makatulong) Sa Tools-> Pamahalaan ang Mga Aklatan … -> (hanapin esp BLE library)

- sa Mga Tool, dapat mayroon ka na ngayong isang mahabang listahan ng mga aparatong ESP, inirerekumenda ko ang module na dev32 ng ESP32

- (MAHALAGA) Piliin (walang Ota 2mb app / 2mb spifs) sa manager ng pagkahati. Mahalaga ang hakbang na ito dahil ang app ay naging mabigat bilang isang produkto ng paggamit ng parehong mga koneksyon sa wifi / http pati na rin isang BLE scanner.

Kung nagawa mo ang lahat ng tama dapat mong ma-program ang ESP32. Ngayon ang proseso ng paggawa nito ay katulad ng arduino sa ilang mga board. I-plug in ito, piliin ang katugmang board, ang USB port at tapos ka na. Ngunit, sa maraming iba pang mga kaso kakailanganin mong magpatuloy

Hakbang 9: (Code) I-upload ang Code sa ESP32

(Code) I-upload ang Code sa ESP32
(Code) I-upload ang Code sa ESP32

Ok, kung nandito ka, nangangahulugang matagumpay kang na-upload ang isang sketch sa board ng ESP32, mas mabuti ang blink.ino sketch.

Ngayon, narito ang pangunahing code na nakalakip, maaari mo rin itong mahanap sa GitHub repo. Kailangan mong palitan ang sumusunod:

SSID - Ang iyong Pangalan sa wifi

PSK - Ang iyong wifi Password

umupo - Ang URL na may "Umupo" mula sa IFTTT api na isinulat mo kanina

stand - Ang URL na may "Stand" Mula sa IFTTT api na isinulat mo kanina

Ilapit ang iyong aparatong nag-trigger sa pisara at pagkatapos ay i-upload ang code. Pagkatapos buksan ang Serial Monitor (baud 115200) pagkatapos matagumpay na na-load ang code.

Kung balak mong gamitin ito sa anumang uri ng BLE aparato na pinagana ang laktawan ang susunod na hakbang.

TANDAAN: kung nakakuha ka ng mga mensahe ng error sa memorya nito dahil ang mga default na setting ay nag-iiwan lamang ng 1mB ng memorya (wala sa kasalukuyan na 4mB) para sa hilaw na code ng ESP. Nag-iiwan ito ng isang bahagi para sa ilang mga bagay bilang isang pagpipilian upang magprograma sa paglipas ng hangin. Karaniwan kong ginagawa ang sumusunod:

- sa Mga Tool, dapat mayroon ka na ngayong isang mahabang listahan ng mga aparatong ESP, inirerekumenda ko ang ESP32 dev module-Piliin ang 'no Ota 2mb app / 2mb spifs' sa partition manager.

Binibigyan ako nito ng puwang ng memorya ng doble, kinakailangan para sa application na ito.

Hakbang 10: (Code) I-upload ang Code sa ESP32 * opsyonal *

(Code) I-upload ang Code sa ESP32 * opsyonal *
(Code) I-upload ang Code sa ESP32 * opsyonal *

Narito ang nakakalito na bahagi na nabanggit sa Hakbang na "Itakda ang gatilyo." Ang monitor ay maglalabas ng MAC address (dapat magmukhang ##: ##: ##: ##: ## kung saan ang # ay alinman sa isang numero o isang liham mula sa a hanggang f), Ang Code ng gumawa at ang RSSI (isang negatibong numero). Narito kailangan mong maglaro nang kaunti upang malaman kung alin ang iyong aparato. Karaniwan kong inilalagay ito sa tabi ng pisara upang malinaw kong nakikita kung alin ang pinakamaliit na numero. Inaalis ko ang check sa kahon na 'autoscroll' upang makopya ko ang mga halaga.

  • Kung ito ang Mac Address punan ang 'myDevice' dito. Pagkatapos ang linya ng hindi pagkakapreso # 96 at linya ng komento # 95
  • Kung ito ang Pangalan punan ang 'myDevice' dito. Pagkatapos ay linya ng hindi pagkakapreso # 97 at linya ng komento # 95
  • Kung ito ang MaufactureData na wala ka ng swerte sa ngayon, binubuo ko pa rin ang bahaging iyon.

Para sa pagdaragdag ng suporta para sa mga maaaring aparato dapat mong kopyahin ang pahayag na conditianal alinman sa # 96 o # 97 at ilagay ang mga ito sa tabi ng bawat isa sa syntax na ito:

kung ((kondisyon1) || (kondisyon2) || (kondisyon3)) {

Magdagdag ng higit pang mga variable (myDevice1, myDevice2, myDevice3) nang naaayon.

Hakbang 11: Ilagay ang ESP at Calibrate

Ilagay ang ESP at I-calibrate
Ilagay ang ESP at I-calibrate

Ito ang pinakamahalagang bahagi ng pag-setup. Maingat na dumaan sa prosesong ito ay magiging de pagkakaiba dito sa pagtatrabaho tulad ng mahika o pagbibigay lang sa iyo ng malalakas na sakit ng ulo.

Sa puntong ito ang code na iyong na-upload ay gumagana sa mga parameter na personal kong nasubukan at ginagamit araw-araw sa aking telepono sa aking mesa; hindi ito nangangahulugang gagana ito para sa iyo. Kaya kailangan mong gawin ang pagkakalibrate sa iyong sarili.

1. Ilagay ang Lupon ng ESP32 sa huling lokasyon na naayos na. Kung lumipat ka para sa ilang kadahilanan ang posisyon ng iyong ESP32, marahil ay dapat mong gawin ito muli. Sisiguraduhin ka nitong isang mahusay na karanasan sa pangkalahatan.

1. (dagdag) tandaan na kakailanganin mong makakonekta sa iyong pc habang ginagawa ito. Kung hindi mo magawa dahil nasa isang desktop ka dapat gawin ang pagsubok at pag-iingat ng error na ang bawat pagsubok ay dapat na malapit sa magkapareho sa pagpoposisyon, mag-trigger ng aparato at iba pang mga kadahilanan na maaaring dumating upang mabilang.

2. Buksan ang Serial Monitor sa pagpapatakbo ng code.

Ang code sa pamamagitan ng default ay magpo-post sa pamamagitan ng Serial Monitor ang RSSI (Nakatanggap na pahiwatig ng lakas ng signal) ng bawat nahanap na aparato na Bluetooth (o ang (mga) aparato lamang na tumutugma sa iyong mga parameter). Maglaro nang kaunti sa iyong pangunahing aparato ng aksyon (nagti-trigger ng aparato). Dapat mong matukoy kung ano ang mga threshold na nais mong gamitin. Maingat na ayusin ang pagsasaayos na ito

3. Kapag natukoy mo ang mga threshold na pinalitan ang mga ito dito:

  • malapit sa_thrsh
  • far_thrsh

4. I-upload muli ang code, subukan at ulitin hanggang sa makita mo ang pinakamainam na pagganap.

Ilang bagay na isasaalang-alang:

1. Nais mo tungkol sa 20db ng pagkakaiba sa pagitan ng mga threshold. Kung ang near_thrsh ay nakatakda sa 50 pagkatapos ito ay ninanais na ang far_thrsh ay 70 o higit pa. Kung ang pagkakaiba ay masyadong maikli, pagkatapos ay maaari kang makahanap ng ilang mga distansya o lugar kung saan ang board ay nag-uudyok sa at off non stop. Ang pagpapalaki ng pagkakaiba na ito ay makatiyak na maiwasan mo ang hindi kanais-nais na pag-uugali. Personal kong nahanap na ang 20db ng margin ay sapat na mabuti.

2. Sa pagsubok sa pagkakalibrate ng mga totoong sitwasyon sa buhay hangga't posible, makakatulong ito na matukoy ang pinakamahusay na pagganap.

3. Pag-aralan ang klase sa linya 82 ng code; narito kung saan ang lahat ng lohika ay tapos na. Ang code ay mahusay na nagkomento kahit na. Huwag mag-atubiling magtanong sa GitHub!

Hakbang 12: Congrats! Tapos ka na

Ipaalam sa akin sa mga komento ng anumang mga mungkahi o kung nakakaranas ka ng mga problema. Tandaan na suriin ang GitHub kung nalutas na ang iyong isyu!