Mündəricat:

IDC2018IOT: Görüş Otağı Snitcher: 6 addım
IDC2018IOT: Görüş Otağı Snitcher: 6 addım

Video: IDC2018IOT: Görüş Otağı Snitcher: 6 addım

Video: IDC2018IOT: Görüş Otağı Snitcher: 6 addım
Video: ''Mesnevi'den Hikayeler'' 🕊️Mevlana Celaleddin Rumi 💫 Pandora Medya Sesli Kitap 2024, Iyul
Anonim
IDC2018IOT: Görüş Otağı Snitcher
IDC2018IOT: Görüş Otağı Snitcher

PROBLEM

Bildiyimiz kimi, ehtiyaclarınız üçün uyğun olan xüsusi iş sahəsinin seçimini müəyyən edən qabaqcıl texnologiya ilə birlikdə son bir neçə il ərzində birgə iş yerləri tendensiyası sürətlənir.

Təqdim olunan əsas xüsusiyyətlərdən biri, (ümumiyyətlə) sadə bir təqvim platforması tərəfindən idarə olunan birgə iş sahəsi üzvlərinə təklif olunan paylaşılan görüş otaqlarıdır.

İnsanların cədvəli dinamik olmağa meylli olduğu üçün bir problem yenidən ortaya çıxır.

Ehtiyacı ola biləcəyini düşünərək bir otaq sifariş edə bilərsiniz və vaxt boşluğunu qaçırmaq istəməyəcəksiniz.

Nəhayət, kimsə bu zaman dilimindən istifadə etməsə belə, təəssüf ki, insan təbiəti olduğu üçün bunu başqaları naminə xəbərdar etmək və ləğv etməkdən çəkinməz.

NECƏ HAL EDİRİK?

IoT texnologiyasından istifadə edərək - təyin olunmuş bir toplantı otağında səs və hərəkəti yoxlayaraq, hər bir zaman aralığında bir otaq üçün rezervasiya olub -olmamasını yoxlayırıq:

1. Rezervasiya edilməyibsə, heç nə etməyin.

2. Sifariş verilmişsə, aşkar edilmiş hər hansı bir hərəkət və ya səs olub olmadığını yoxlayın;

Əgər varsa, heç nə etmə.

Heç bir şey aşkar edilməyibsə, otaq sifariş edən istifadəçiyə otağın hələ də istifadədə olub -olmadığını soruşan bir xəbərdarlıq mesajı (e -poçt vasitəsilə) göndərin. istifadəçi hələ də otaqdan istifadə etdiyini bildirməsə, otaq vəziyyəti "Mövcud" olaraq dəyişdiriləcək.

* Burada, mümkün olduğu qədər ümumiləşdirmək üçün layihəmizi Google Calendar ilə birləşdirdik.

Addım 1: Lazım olan avadanlıq və protokollar

Avadanlıq və Protokollar Lazımdır
Avadanlıq və Protokollar Lazımdır

1. WIFI bağlantısından istifadə edərək hər şeyi dinamik şəkildə yeniləmək üçün NOSEMCU -dan istifadə etdik.

2. Otaqdakı səs -küyü "oxuyacaq" mikrofon sensoru.

3. Hər hansı bir hərəkət olub olmadığını yoxlayacaq PIR sensoru.

Proqram və server istifadəsi üçün Arduino kodundan başqa sistemimizi onlayn dəstəkləmək üçün Google Script və Zapier istifadə etdik. Əlavə edilmiş şəkildəki (və PDF) axını görə bilərsiniz.

Tətbiqləri birləşdirmək və iş axınlarımızı avtomatlaşdırmaq üçün Zapier -dən istifadə etdik (IFTTT kimi) və Google Təqvimlə ünsiyyət qurmağımıza kömək etmək üçün Google Scriptdən istifadə etdik. Yazdığımız skript, hadisə yaradıcısının e -poçtunu istehsal edir, beləliklə Zapier -ə göndərə bilərik və istifadəçi hadisəni silməzdən əvvəl otağı saxlamağı xahiş edib -etmədiyini (Google Cədvəllərdə saxlayaraq) yoxlayır.

Addım 2: Mikrofonu və PIR Sensorunu qoşun

Mikrofonu və PIR Sensorunu qoşun
Mikrofonu və PIR Sensorunu qoşun
Mikrofonu və PIR Sensorunu qoşun
Mikrofonu və PIR Sensorunu qoşun

İnsanlar danışarkən mikrofonun NODEMCU -ya göndərdiyi orta dəyərləri yoxlamaq istədik (aydındır ki, hər otaqda fərqli fon səsləri var idi). Bir az sınaq keçirdik və başa düşdük ki, işlədiyimiz otaq orta səs -küy səviyyəsi 50 -dən yuxarıdır.

PIR sensoru yalnız YÜKSƏLİ və ya DÜŞÜK dəyərlər verir, buna görə yoxladığımız otağa ən həssas olan həssaslıq səviyyəsini yoxlayırıq. Bu bələdçi olduqca faydalı oldu.

BAĞLANTILARIMIZ:

Mikrofon - şəkildəki kimi PIR sensoru: GND> GND, OUT> D7, VCC> VN (5V)

Addım 3: Zapier -də iş axını yaradın

Zapier -də iş axını yaradın
Zapier -də iş axını yaradın
Zapier -də iş axını yaradın
Zapier -də iş axını yaradın
Zapier -də iş axını yaradın
Zapier -də iş axını yaradın

Otağın həqiqətən boş olduğunu və ya hələ də istifadədə olduğunu bilmək üçün (və istifadəçilər, məsələn, fasilədədir), NodeMCU -nun Zapier -ə Webhook açmasından dərhal sonra onu təmin edən bir axın yaratmaq istərdik. otaq boşdur:

(1) TRIGGER - CATCH HOOKZapier, Webhooku tutur (NODEMCU tərəfindən göndəriləcək)

(2) Əməliyyat - GETZapier hadisə məlumatlarını əldə etmək üçün başqa bir Webhook göndərir;> Mövcud hadisə məlumatlarını əldə etmək üçün bir GoogleScript - GetCurrentEmailEventID (aşağıdakı addımdakı izahat) çağırır (işləyir) - hadisə adı, hadisə ID, istifadəçi e -poçtu.

(3) FİLTRE - YALNIZ DAVAM EDİR

Növbəti mərhələyə yalnız təqvimdə hal -hazırda baş verən bir hadisə (hər hansı bir hadisə) davam edərsə (ROOM IS BUSY), əks halda otaq boş olduğu üçün dayanır.

(4) ACTION - GMAILZapier, Gmail vasitəsilə otaq sifariş edən istifadəçiyə e -poçt göndərir (bu məlumatı 2 -ci addımda əldə etdiniz)

(5) Əməliyyat - GECİKMƏ İstifadəçiyə e -poçtu cavablandırmaq üçün vaxt verin. - İstifadəçi linki tıklayırsa: GoogleScript -ə zəng edin (işləyin) - ApproveCurrentEvent (Bu səbəbdən otaq 'Silmək üçün otaqlar' siyahısından çıxarılır və otaq hələ də dolu kimi qeyd olunur.)

(6) ƏMƏL - 5 dəqiqə sonra əldə edin, Zapier GoogleScript - DeleteCurrentEvent -ə zəng edir (çalışır) - İstifadəçi linki vurmadısa

Otaq identifikatorunun 'Silmək üçün otaqlar' siyahısında olub olmadığını yoxlayır

sadəcə hadisəni silir.

Addım 4: Google Skriptləri

Google Skriptləri
Google Skriptləri
Google Skriptləri
Google Skriptləri
Google Skriptləri
Google Skriptləri

Bütün sistemi birləşdirdikdə, GoogleScripts bir IDE -nin əhəmiyyətsiz bir seçimi idi, beləliklə, müvafiq Google Kitabxanalarından istifadə etdik. Otaq Rezervasyon Platformasına görə dəyişəcək.

(1) GetCurrentEmailEventID

Webhook zəngi ilə işləyir.

Mövcud hadisə məlumatlarını əldə edərək, mümkün gecikməni ləğv etmək üçün müəyyən bir ofset istifadə edin.

(2)CurrentEvent təsdiq edin

Bir istifadəçi klik ilə işləyir.

İstifadəçinin otağın hələ də istifadədə olduğunu təsdiqləməsi halında, hadisə silmək istədiyi otaqlar silinəcəkdir. Bir Google hesabatı istifadə etdik, hər hansı bir siyahı forması burada uyğun ola bilər.

(3) DeleteCurrentEvent

Webhook zəngi ilə işləyir.

Siyahıda (Google vərəqi) müvafiq hadisə identifikatorunu axtarır və həmin hadisəni təqvimdən silir.

Addım 5: Axını Arduino Kodu ilə bağlayın

Əlavə edilmiş kod, bir neçə addım əvvəl yoxladığımız sensorlara onlayn sistemə qoşulur (bizim vəziyyətimizdə Google təqvimi). Otağın məşğul olub -olmadığını yoxlayır, sonra yoxsa Zapier -də hadisə sorğusunu silməyə başlayan bir HTTP sorğusu (Webhook) göndərir.

Addım 6: Baxış, Nəticələr və Gələcək Ölçüləmə

Image
Image

Qarşılaşmamız lazım olan əsas problem, görüş otağını boşaltmağa qərar verərkən bütün kənar halları əhatə etməkdir. Daha sonra hər hansı bir vəziyyəti nəzərə alaraq bir dövlət maşını yaratmaq məcburiyyətində qaldıq ki, bir səhv baş verməsin və otaq yalnız lazım olduğu zaman mövcud olaraq qurulsun.

Məsələn, otaq hazırda olmayan bir qrup üçün ayrılıbsa (məsələn, fasilədədir), lakin buna hələ də ehtiyac duyulursa, NODEMCU otağın pulsuz olduğunu> SORUN.

Sonra həll yolumuz, otağı rezervasiya edən istifadəçiyə (anlamaq asan olmayan) e -poçt göndərmək idi.

İstifadəçi müəyyən bir müddətdə cavab vermədisə (5 dəqiqə olaraq təyin etdik, ancaq asanlıqla dəyişdirilə bilər), hadisəni təqvimdən silirik (və otağı azad edirik).

Bu yolla, nəticədə bütün mümkün ssenariləri idarə etməyə və işləyən bir sistem yaratmağa müvəffəq olduq.

SİSTEM SINIRLAMALARIMIZ:

1. İstifadə olunan sensorlar çox dəqiq və həssas olmalıdır.

2. Otağın ölçüsü sensorun radiusu/diapazonu ilə məhdudlaşır.

3. İstifadəçinin reaksiyasına etibar etməliyik.

4. Sistemimiz bir neçə platformadan (Google təqvimi, Gmail, Zapier və s.) İstifadə edərək qurulmuşdur və onların xidmətlərindən istifadə etmək məcburiyyətində qalacaq.

5. Bu xidməti birdən çox otaq üçün miqyaslandırmaq (bütün sistemi təkrarlamaq əvəzinə) otaq identifikatoru ilə əlavə işləmə tələb edir.

6. Sistem yalnız avtomatikdir və otaq sifarişini ləğv etmək üçün əl ilə seçim yoxdur.

GƏLƏCƏK İNKİŞAFLARI:

Sistemi mütləq iki şəkildə genişləndirərdik:

1. Hər hansı digər təqvim platformaları ilə işləmək bacarığı (buna görə də hər hansı bir əməkdaşlıq məkanı şirkəti bundan istifadə edə bilər).

2. Birdən çox otağı, mərtəbəni və sahəni idarə etmək bacarığı.

İnanırıq ki, bu cür miqyasların ümumiləşdirilməsi, sınanması və birdən çox otağa (mərtəbə və s.) Əlavə edilməsi 2-3 ay çəkəcək.

Əlavə olaraq, məhdudiyyətsiz miqdarda pul və qaynaqlardan istifadə edərək daha geniş diapazonlu daha yaxşı sensorlar istifadə edərdik, onları təyin olunmuş otağa uyğunlaşdıra bilərik - diapazon, radius, sensorların sayı və s. açıq -aydın

Tövsiyə: