Mündəricat:

Varlıq sensoru: 12 addım
Varlıq sensoru: 12 addım

Video: Varlıq sensoru: 12 addım

Video: Varlıq sensoru: 12 addım
Video: Микроволновый датчик присутствия с сенсором освещения - обзор, работа в Tuya Smart и Home Assistant 2024, Noyabr
Anonim
Varlıq Sensoru
Varlıq Sensoru

Geyinilə bilən əşyalar ümumiyyətlə BLE effektiv cihazlardır. MAC ünvanı boyunca bəzi məlumatları vaxtaşırı reklam etmələri adi haldır. Bu məlumatları taramaq və müəyyən bir MAC ünvanı tapdıqda internet vasitəsilə bir hadisəni tetiklemek üçün bir ESP istifadə edirik. Bu xüsusi tətbiq lampaya qoşulmuş ağıllı fişdə tək bir istifadəçiyə aiddir. Ancaq eyni zamanda hər hansı bir IOT effektiv cihazı olan bir sıra qeydiyyatdan keçmiş qurğularla da istifadə edilə bilər.

Təchizat

  1. ESP32
  2. (isteğe bağlı) TECKIN WiFi Divar Fişi S10
  3. Hər cür BLE effektiv cihaz

Addım 1: Ssenarinizi müəyyənləşdirin

Ssenarinizi müəyyənləşdirin
Ssenarinizi müəyyənləşdirin

Tətik üçün, müasir geyilə bilən cihazların çoxundan istifadə edə bilərsiniz. Bu Apple Watch, mi fit bandı, telefon və ya hətta ESP32 əsasında öz DIY geyilə bilər.

Yəqin ki, ən vacib addımlardan biridir. 3 şeyi əvvəlcədən düşünmək lazımdır:

1. Hansı geyilə bilən və ya cihaz yaxınlıq sensörünün tetikleyicisi olacaq.

2. Sensoru nə işə salacaq (bu IFTTT vasitəsilə edilir).

3. Sensor işə düşəndə

Bu nümunə üçün, masamda oturduğumda lampanı yandırmaq üçün ağıllı bir fiş işə salmaq üçün Apple Watch -dan istifadə edəcəyəm.

Bu təlimatda TECKIN -in ağıllı bir fişinə baxacağıq. Amazonda yaxşı qiymətə tapa bilərsiniz. Alexa və Google Home ilə də uyğun gəlir. Böyük dəyər!

Addım 2: (Giriş) Tetikleyiciyi təyin edin - Birdən çox istifadəçi

Sensorunuza kifayət qədər yaxın bir BLE effektiv cihazı olan hər hansı bir şəxsin işləyəcəyi şəkildə konfiqurasiya etmək istəyirsinizsə, növbəti addımı atlayın. Bu olduqca faydalıdır, şəxsən istifadə etdiyim ayardır. Unutmayın ki, bu sensoru asanlıqla sındırmaq və ya tətik etmək üçün istismar etmək olar, buna görə də təhlükəsizlik stendinə çox güvənməzdim; yalnız praktik bir şey üçün (yəni, həmişə kompüterin yanında olmasını istəmirəm, çünki həmişə sensorun yanında olacaq).

Addım 3: (Giriş) Tetikleyiciyi təyin edin - Məhdud İstifadəçilər

Bu addım quruluşunuza görə çox dəyişir. Hansı cihazların sensoru işə sala biləcəyini məhdudlaşdırmaq üçün bir çox marşrutunuz var:

- BLE MAC ünvanı (wifi şəbəkəsindəki IP ünvanına bərabərdir. Modulun əsl MAC ünvanı olmadığından təhlükəsizliyə zəmanət verməməsinin səbəbi. İOS cihazlarında bluetooth'u hər dəfə yenidən başlatdığınız zaman dəyişir, çox əyləncəli deyil)

- İstehsalçı Kodu (daha yaxşı seçimdir, lakin eyni istehsalçıdan/modeldən olan xüsusi cihazları məhdudlaşdırmaq üçün heç bir yol yoxdur)

- Ad, Xidmət UIDD (nadir, lakin ən yaxşı seçim, əsasən DIY geyilə bilən və ya bəlkə də bir Android tətbiqi)

Bəzi qeydlər:

1. Bir iOS cihazıdırsa:

- Önəmli müsbət və mənfi cəhətləriniz var. Pro, reklam məlumatları olan güc səviyyəsini ötürürlər. Bu, kalibrləmə mərhələsində faydalıdır, Apple Watch istifadə etməyin 24db, iPhone və əksər cihazların 12db sürətində yayımlandığı üçün faydalı olduğunu görəcəksiniz.

CON, həll yollarını tapmalı olacaqsınız. Reklam edilən MAC ünvanı (əsas identifikasiya üsulu) bluetooth siqnalı hər dəfə yenidən başladıqda dəyişir, yəni kodu hər dəfə yükləməli olacaqsınız … əyləncəli deyil. Modellər arasında dəyişə biləcək istehsalçı məlumatlarından istifadə edə bilərsiniz. Bu, "bütün iPhone 8" hiss etməsi üçün məhdudlaşdıra biləcəyiniz deməkdir.

2. Bir Android cihazıdırsa:

- Şəxsən mənim Android cihazım yoxdur. Ancaq ehtimal ki, MAC ünvanını düzəldə bilən və ya hətta fərdiləşdirilmiş bir ad əlavə edə biləcək bir çox tətbiq var (əgər bu şəkildə getmək istəsəniz). İOS cihazlarında bunu edə biləcək bir "nrf connect" proqramı var. Ancaq davamlı deyil, yəni ekranı kilidləsəniz və ya tətbiqləri dəyişdirsəniz.. konfiqurasiya bir neçə saniyə ərzində sönür.

3. Başqa bir ESP32. (ən yaxşı bahis)

- Bunun kimi bir sadə kod belə bir cihazda tətbiq oluna bilər; esp32 ilə işləyən ağıllı qrup. Kod əslində BLE_IBeacon.ino ESP BLE kitabxanasından bir nümunədir. Ağıllı qrupum göndərildiyi üçün bunu çox sınaqdan keçirmədim, yəqin ki, tezliklə yeniləmələr göndərəcəyəm.

Addım 4: (Quraşdırma) - IFTTT

(Quraşdırma) - IFTTT
(Quraşdırma) - IFTTT

Tamam, bu mərhələdə, ehtimal ki, iş axınınızın bütün qərarlarını qəbul etməlisiniz. Tetikleyici cihazınız var, ESP -ni internetə simsiz qoşmaq üçün bir yeriniz var və IFTTT -nin avtomatlaşdıra biləcəyini düşündünüz.

IFTTT güclüdür; Sadəcə cihazınıza sadə bir bildiriş göndərmək olsun, bir tvit göndərilməsini və ya ağıllı bir fiş ilə bir ampulü açmasını istəyirsiniz. Bu təlimatda, sonunu IFTTT ilə uyğun TECKIN ağıllı fişləri ilə tətbiq edəcəyik. Hər halda, IFTTT tətbiqini yükləyin və ya IFTTT.com veb saytına gedin və hesab yaradın.

Hələlik budur!

Yalnız Smart Life fişindən başqa bir bildiriş və ya başqa bir şey göndərmək istəyirsinizsə, növbəti addımı atlaya bilərsiniz.

Addım 5: (Quraşdırma) IOT Cihazı *isteğe bağlı *

"Smart Life" tətbiqini PlayStore (android) və ya AppStore (iOS) -dan yükləyin. Təlimatlar olduqca sadədir, baxmayaraq ki, proses bir az çətindir. Tarama mərhələsində (mavi düymə yanıb -sönəndə) bir anda dayandığını öyrəndim, sonra bir neçə dəfə açmaq və söndürmək üçün əl ilə basdım. Bu mənə kömək etdi. Hər halda; bu fişin quraşdırılması tətbiqimizdən fərqli bir şey deyil, buna görə də artıq sahibisinizsə və onu tətbiqinizə bağlamısınızsa, getməyə hazır olmalısınız.

DİQQƏT: Bu addıma keçməzdən əvvəl açarı tətbiqdən yandırıb söndürməyi bacarmalısınız. Bu, ağıllı fişi düzgün qurduğunuz deməkdir.

IFTTT tətbiqi, "Ağıllı Həyat" tətbiqi ilə sorunsuz bir şəkildə sinxronizasiya edilməlidir, ehtimal ki, növbəti addımda bir hadisə yaratarkən kimlik doğrulaması tələb olunur.

Addım 6: (Quraşdırma) IFTTT Webhook Api *Təcrübəli İstifadəçilər *

(Quraşdırma) IFTTT Webhook Api *Təcrübəli İstifadəçilər *
(Quraşdırma) IFTTT Webhook Api *Təcrübəli İstifadəçilər *

IFTTT tətbiqindən əvvəl istifadə etməmisinizsə və bəzi texniki şərtlərdən o qədər də rahat deyilsinizsə, növbəti addımda Ətraflı Bələdçi (fotoşəkilləri ilə) üçün bu addımı atlayın.

1. Yeni bir hadisə yaradın.

2. "Bunu" bir webhook api olaraq təyin edin. Tədbirə qoyduğunuz adı yazın.

3. "Bunu" istədiyiniz davranışa qoyun. Ağıllı fiş üçün ağıllı həyat axtarın və 'yandır' seçin.

4. Ağıllı fişinizi seçin və finişə basın.

5. Ana ekranda 'webhooks' kartını axtarın. Basıldıqdan sonra altındakı "daha çoxunu əldə et" düyməsini basın.

6. Sənədləri basın. Bu, URL qurucusu və test cihazı ilə birlikdə api açarınızı göstərəcəkdir.

7. #2 -də yazdığınız adla de URL qurucusundan istifadə edin. Bunu kopyalayın və yazın.

8. Varlıq sensoru artıq aktiv olmadıqda bir davranışın tetiklenmesini istəyirsinizsə, təkrarlayın. Bizim vəziyyətimizdə 3 nömrəni təkrarlayın, ancaq 'söndür' seçin. Ayrıca, #2 -də ad da bu dəfə fərqli olmalıdır.

İşiniz bitərsə, növbəti addımı atlayın.

Addım 7: (Quraşdırma) IFTTT Webhook Api *Fotoşəkilləri ilə Yeni Başlayanlar üçün *

(Quraşdırma) IFTTT Webhook Api *Fotoşəkilləri ilə Yeni Başlayanlar üçün *
(Quraşdırma) IFTTT Webhook Api *Fotoşəkilləri ilə Yeni Başlayanlar üçün *
(Quraşdırma) IFTTT Webhook Api *Fotoşəkilləri ilə Yeni Başlayanlar üçün *
(Quraşdırma) IFTTT Webhook Api *Fotoşəkilləri ilə Yeni Başlayanlar üçün *
(Quraşdırma) IFTTT Webhook Api *Fotoşəkilləri ilə Yeni Başlayanlar üçün *
(Quraşdırma) IFTTT Webhook Api *Fotoşəkilləri ilə Yeni Başlayanlar üçün *

Ətraflı bələdçi *şəkil bələdçisi android və vebdə oxşar olmalıdır *

IFTTT sadə bir iş axınıdır, əgər "bu olur", sonra "olur". Yenisini yaratmalısan, 1. tətbiqdə "daha çoxunu əldə et" düyməsini basın və bir siyahı görünəcək.

2. Axtarış çubuğunun altında a "öz tətbiqlərinizi sıfırdan hazırlayın" yazılır, Plus işarəsinə basın.

3. "Bu" artı işarəsinə basın

Bizim vəziyyətimizdə "bu" internet vasitəsilə api çağırışı olacaq. Api zəngi, bir google axtarışını yazdığınızda və url google.com/(uzun bir simvol simvolu) olduğu kimi bir URL üçün bir məsləhətdir. Api yaratmaq üçün: ("bu" düyməsini basdıqdan sonra)

4. "Veb qarmaqlarını" axtarın

5. Tək variantı seçin

6. Tədbirinizə ad verin (bu nümunədə "Otur" istifadə edəcəyik). Bu adı yazın, çox önəmlidir.

7. Tetikleyici Yarat düyməsini basın

Tamam! daha yaxınıq, indi "o" hissəyə. Bu dərs üçün Smart fişi açmaq üçün "o" nu təyin edəcəyik. Ancaq IFTTT -dən bir şey seçə bilərsiniz. Quraşdırmanı sınaqdan keçirməyin yaxşı bir yolu, sensor hər işə düşəndə (və ya hətta veb brauzerdən api çağırıldıqda: test üçün faydalıdır!) Telefonunuza bildiriş göndərəcək "bildirişlər" seçməkdir.

8. "o" artı işarəsinə basın

9. "Ağıllı Həyat" (və ya "bildirişlər") axtarın

10. 'Aç' düyməsini basın (gedərkən söndürmək üçün başqa bir hadisə yaratmaq üçün bu addımları təkrar etməlisiniz)

11. Hər iki tətbiqiniz və fişiniz düzgün konfiqurasiya edilmişsə, hansı cihazın/qrupun aşağı açıldığını görməlisiniz.

12. Əməliyyat Yarat seçin və sonra bitirin.

İndi hadisənin bağlı olduğunu görməlisiniz. İndi api URL almalıyıq. Bunun üçün:

13. IFTTT Ana Ekranına keçin

14. Webhooks kartı tapın

15. "Daha çoxunu əldə et" seçin

16. Sənədləşdirmə düyməsini vurun. Açarınız olan bir veb səhifəsi görməlisiniz.

17. "{event}" yer tutucularında tədbirinizin adını daxil edin (6 -cı bəndi unutmayın)

18. Səhifənin altına gedin və "Test et" düyməsini vurun.

Yəqin ki, görməli olduğunuz şey "hadisə tetiklendi" yaşıl bir pankartdır və bunun işləyib -işləmədiyini görməlisiniz. Bizim vəziyyətimizdə fiş açılmalıdır. Yoxsa bu yola getmək qərarına gəlsəniz bir bildiriş görməlisiniz. Bir az çəkə bilər, amma bunu bacardığınızı görmək üçün bir dəqiqədən çox olmayacaq. Unutmayın ki, yəqin ki, hərflərə həssasdır.

19. Nəhayət. Tədbirinizin adını (17 yaşında) əvəz etdiyiniz url -i kopyalayın və təhlükəsiz yerdə saxlayın. Tezliklə buna ehtiyacınız olacaq.

20. 1-12-ni təkrarlayın. 6 -da bu dəfə "Stand" dan istifadə edəcəyik. Saat 10 -da "söndür" seçin.

21. İstəyirsinizsə, 13-18-i təkrarlayın, ancaq 19-da kopyaladığınız URL-dən uzaqlaşa bilərsiniz, amma indi "Otur" yazdığınız yeri dəyişdirin və "Stand" ilə əvəz edin. Bunu veb brauzerdə yoxlaya bilərsiniz. "Təbrik edirəm! Stand tədbirini ləğv etdiniz '. Sonra fiş sönməli idi.

Addım 8: (Kod) ESP32 proqramlaşdırılması

(Kod) ESP32 proqramlaşdırılması
(Kod) ESP32 proqramlaşdırılması

Eskizləri Arduino IDE -dən ESP32 lövhənizə yükləməkdə rahat hiss edirsinizsə bu addımı atlaya bilərsiniz. Ən azı eskizin çəkisi 1.2mb adi həddindən bir az çox olduğu üçün tətbiq üçün 2mb arakəsmə təyin etməyi unutmayın.

Orada çox gözəl dərslər var, bunlardan bəzilərini tövsiyə edirəm:

circuitdigest.com/microcontroller-projects…

Ancaq yenə də bu qədər itirməmisiniz, bir neçə vacib nöqtəni bölüşəcəyəm.

- ESP32 bir Arduino lövhəsi deyil, hələ də Arduino IDE tərəfindən proqramlaşdırıla bilər. Sadə Arduino kodu ilə. Ancaq yenə də IDE -ni ESP32 ilə işləmək üçün konfiqurasiya etməlisiniz.

- Tercihlərə görə 'Əlavə lövhələr meneceri' vasitəsi ilə bəzi kitabxanalar qurmalısınız. Yapışdırmalı olduğunuz URL budur:

-(isteğe bağlı, kömək edə bilər) Alətlərdə -> Kitabxanaları İdarə Edin … -> (esp BLE kitabxanasını tapın)

- Alətlərdə, indi ESP cihazlarının uzun bir siyahısına sahib olmalısınız, ESP32 inkişaf modulunu tövsiyə edirəm

- (Vacib) Bölmə menecerində (Ota 2mb app/2mb spifs yoxdur) seçin. Bu addım vacibdir, çünki tətbiq həm wifi/http əlaqələrini, həm də BLE skanerini istifadə etməklə olduqca ağırlaşır.

Hər şeyi düzgün etsəniz, ESP32 -ni proqramlaşdırmalısınız. İndi bunu etmək prosesi bəzi lövhələrdəki arduinoya bənzəyir. Qoşun, uyğun lövhəni, USB portunu seçin və işiniz bitdi. Ancaq bir çox hallarda davam etməli olacaqsınız

Addım 9: (Kod) Kodu ESP32 -ə yükləyin

(Kod) Kodu ESP32 -ə yükləyin
(Kod) Kodu ESP32 -ə yükləyin

Tamam, buradasınızsa, bu, ESP32 lövhəsinə bir eskiz, tercihen blink.ino eskizini uğurla yüklədiyiniz deməkdir.

İndi əlavə edilmiş əsas kod budur, onu GitHub deposunda da tapa bilərsiniz. Aşağıdakıları dəyişdirməlisiniz:

SSID - WiFi Adınız

PSK - WiFi Şifrəniz

otur - Daha əvvəl yazdığınız IFTTT api -dən "Otur" ilə URL

stand - Daha əvvəl yazdığınız IFTTT api -dən "Stand" olan URL

İndi tətik cihazınızı lövhəyə yaxınlaşdırın və sonra kodu yükləyin. Sonra kodu uğurla yüklədikdən sonra Serial Monitoru (baud 115200) açın.

Bunu hər hansı bir BLE effektiv cihazla istifadə etməyi planlaşdırırsınızsa, növbəti addımı atlayın.

Qeyd: Yaddaş səhv mesajları alsanız, çünki standart parametrlər ESP xam kodu üçün yalnız 1 MB yaddaş (4 MB -dan) buraxır. Efirdə proqramlaşdırmaq üçün bir neçə şeyə bir hissə qoyur. Adətən aşağıdakıları edirəm:

- Alətlərdə, ESP cihazlarının uzun bir siyahısına sahib olmalısınız, bölmə menecerində ESP32 dev modulunu seçin- 'Ota 2mb app/2mb spifs yoxdur' seçin.

Bu mənə bu tətbiq üçün lazım olan ikiqat yaddaş sahəsi verir.

Addım 10: (Kod) Kodu ESP32 -ə yükləyin *isteğe bağlı *

(Kod) Kodu ESP32 -ə yükləyin *isteğe bağlı *
(Kod) Kodu ESP32 -ə yükləyin *isteğe bağlı *

"Tətiyi təyin et" addımında göstərilən çətin hissə budur. Monitor MAC ünvanını (##: ##: ##: ##: ## kimi görünməlidir, burada#ya rəqəmdən və ya hərfdir), İstehsalçı Kodu və RSSI (mənfi rəqəm)). Cihazınızın hansı olduğunu tapmaq üçün burada bir az oynamalısınız. Adətən lövhənin yanında qoyuram ki, ən kiçik rəqəmi aydın görə biləm. Dəyərləri kopyalaya bilmək üçün 'avtomatik sürüşdür' qutusunu işarədən çıxarın.

  • Mac ünvanıdırsa, "myDevice" i doldurun. Sonra 96 nömrəli sətri və 95 saylı şərh sətirini şərh edin
  • Bu addırsa, "myDevice" i doldurun. Sonra 97 nömrəli sətri və 95 saylı şərh sətirini şərh edin
  • Hələlik uğursuz olduğunuz MaufactureData -dırsa, hələ də həmin hissəni inkişaf etdirirəm.

May cihazları üçün dəstək əlavə etmək üçün #96 və ya 97 nömrəli şərti ifadəni kopyalayıb bu sintaksisdə bir -birinin yanında yerləşdirə bilməlisiniz:

əgər ((şərt1) || (şərt2) || (şərt3)) {

Buna görə daha çox dəyişən əlavə edin (myDevice1, myDevice2, myDevice3).

Addım 11: ESP yerləşdirin və Kalibr edin

ESP yerləşdirin və kalibr edin
ESP yerləşdirin və kalibr edin

Bu, quraşdırmanın ən vacib hissəsidir. Diqqətlə bu prosesdən keçmək, sehr kimi işləmək və ya sadəcə güclü baş ağrısı verməklə fərqlənəcəkdir.

Bu nöqtədə yüklədiyiniz kod şəxsən test etdiyim və hər gün telefonumla masamda istifadə etdiyim parametrlərlə işləyir; sizin üçün də işləyəcək demək deyil. Buna görə özünüz kalibrləmə etməlisiniz.

1. ESP32 lövhəsini son SABİT edilmiş yerə qoyun. Nədənsə ESP32 -nin mövqeyini dəyişirsinizsə, yəqin ki, bunu yenidən etməlisiniz. Bu, ümumilikdə yaxşı bir təcrübə təmin edəcək.

1. (Əlavə) bunu edərkən kompüterinizə qoşula biləcəyinizi unutmayın. Bir masaüstündə olduğunuz üçün bunu edə bilmirsinizsə, hər sınaqın yerləşdirmə, tətik cihazı və saymaq üçün daxil ola biləcək digər amillərə yaxın olması lazım olduğunu nəzərə alaraq sınaq və səhv etməlisiniz.

2. Kod işləyərkən Serial Monitoru açın.

Varsayılan olaraq kod, tapılan hər bir bluetooth cihazının (və ya sadəcə parametrlərinizə uyğun olan cihazların) RSSI (Alınan siqnal gücü göstəricisi) Serial Monitor vasitəsilə göndəriləcək. Əsas hərəkət cihazınızla bir az oynayın (tetikleyici cihaz). İstifadə etmək istədiyiniz hədlərin nə olduğunu müəyyənləşdirməlisiniz. Bu konfiqurasiyanı diqqətlə düzəltmək

3. Eşikləri təyin edərkən onları burada əvəz edin:

  • yaxın_thrsh
  • far_thrsh

4. Kodu yenidən yükləyin, sınayın və optimal performans tapana qədər təkrarlayın.

Nəzərə alınması lazım olan bir neçə şey:

1. Eşiklər arasında təxminən 20db fərq istəyirsən. Near_thrsh 50 -ə təyin olunarsa, far_thrsh -in 70 və ya daha çox olması arzu edilir. Fərq çox qısadırsa, lövhənin dayanmadan açıldığı və söndüyü bəzi məsafələr və ya yerlər tapa bilərsiniz. Bu fərqi artırmaq, bu arzuolunmaz davranışdan qaçınmanızı təmin edəcək. Şəxsən 20db marjın kifayət qədər yaxşı olduğunu gördüm.

2. Kalibrləmə testində real həyat ssenariləri mümkün olduğu qədər bu, ən yaxşı performansı təyin etməyə kömək edəcək.

3. Kodun 82 -ci sətirindəki sinfi öyrənin; burada bütün məntiqin edildiyi yerdir. Kod yaxşı şərh olunsa da. GitHub -da soruşmaqdan çekinmeyin!

Addım 12: Təbriklər! Bitti

Hər hansı bir təklifin şərhində və ya probleminiz varsa mənə bildirin. Probleminiz artıq həll edilmişsə, GitHub -u yoxlamağı unutmayın!

Tövsiyə: