İçindekiler:
- 1. Adım: Gerekli Donanım ve Protokoller
- Adım 2: Mikrofonu ve PIR Sensörünü Bağlayın
- Adım 3: İş Akışını Zapier'de Oluşturun
- 4. Adım: Google Komut Dosyaları
- Adım 5: Akışı Arduino Koduyla Bağlayın
- Adım 6: Gözden Geçirme, Sonuçlar ve Gelecek Ölçeklendirme
Video: IDC2018IOT: Toplantı Odası Snitcher: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
SORUN
Bildiğimiz gibi, ortak çalışma alanları trendi, ihtiyaçlarınıza uyan özel ortak çalışma alanı seçimini tanımlayan son teknoloji ile birlikte son birkaç yıldır hızlanıyor.
Sunulan ana özelliklerden biri, (genellikle) basit bir takvim platformu tarafından yönetilen ortak çalışma alanı üyelerine sunulan ortak toplantı odalarıdır.
İnsanların programı dinamik olma eğiliminde olduğu için bir sorun yeniden ortaya çıkar.
İhtiyacı olabileceğini ve zaman dilimini kaçırmak istemeyeceğini düşünerek bir oda ayırtabilir.
Kişi bu zaman aralığını eninde sonunda kullanmasa bile, başkaları için bilgilendirme ve iptal etme zahmetine girmez, çünkü ne yazık ki bu insan doğasıdır.
BUNU NASIL ÇÖZERİZ?
IoT teknolojisini kullanarak - belirlenmiş bir toplantı odasındaki sesi ve hareketi kontrol ederek, belirli bir zaman aralığında bir odanın rezerve edilip edilmediğini ve gerçekten dolu olup olmadığını kontrol ediyoruz:
1. Rezervasyon yapılmadıysa hiçbir şey yapmayın.
2. Kayıtlıysa, herhangi bir hareket veya ses algılanıp algılanmadığını kontrol edin;
Varsa, hiçbir şey yapmayın.
Hiçbir şey algılanmadıysa, odayı rezerve eden kullanıcıya, odanın hala kullanımda olup olmadığını soran bir uyarı mesajı (e-posta yoluyla) gönderin. kullanıcı hala odayı kullandığını beyan etmedikçe, oda durumu “Müsait” olarak değiştirilecektir.
* Burada projemizi olabildiğince genelleştirmek için Google Takvim ile entegre ettik.
1. Adım: Gerekli Donanım ve Protokoller
1. NOSEMCU'yu WIFI bağlantısını kullanarak dinamik olarak güncelleyebilmek için kullandık.
2. Odadaki gürültüyü "okuyacak" mikrofon sensörü.
3. Herhangi bir hareket olup olmadığını kontrol edecek PIR sensörü.
Yazılım ve sunucu kullanımı için Arduino'daki kodun yanı sıra sistemimizi online olarak desteklemek için Google Script ve Zapier kullandık. Akışı eklenen resimde (ve PDF'de) görebilirsiniz.
Uygulamaları bağlamak ve iş akışlarımızı (IFTTT gibi) otomatikleştirmek için Zapier'i kullandık ve Google Takvim ile iletişim kurmamıza yardımcı olması için Google Script'i kullandık. Yazdığımız komut dosyası, etkinlik oluşturucunun e-postasını oluşturuyor, böylece Zapier'i gönderip gönderebilelim ve kullanıcının etkinliği silmeden önce odayı tutmak isteyip istemediğini (Google E-Tablolar'da bazı bilgileri kaydederek) kontrol ettik.
Adım 2: Mikrofonu ve PIR Sensörünü Bağlayın
İnsanlar konuşurken mikrofonun NODEMCU'ya gönderdiği ortalama değerleri kontrol etmek istedik (açıkçası her odada farklı arka plan sesleri vardı). Bazı testler yaptık ve çalıştığımız odanın ortalama gürültü seviyesinin 50'nin üzerinde olduğunu fark ettik.
PIR sensörü yalnızca YÜKSEK veya DÜŞÜK değerler verir, bu nedenle yalnızca kontrol ettiğimiz oda için en doğru olan hassasiyet seviyesini kontrol ettik. Bu rehber oldukça yardımcı oldu.
BAĞLANTILARIMIZ:
Mikrofon - resimdeki gibiPIR sensörü: GND > GND, OUT > D7, VCC > VN (5V)
Adım 3: İş Akışını Zapier'de Oluşturun
Odanın gerçekten boş mu yoksa hala kullanımda mı (ve örneğin kullanıcılar bir molada) olup olmadığını bilmek için, NodeMCU'nun Zapier'e bir Web kancasını ateşledikten hemen sonra, bunu sağlayan bir akış oluşturmak istiyoruz. oda boş:
(1) TRIGGER - CATCH HOOKZapier Web kancasını yakalar (NODEMCU tarafından gönderilecek)
(2) EYLEM - GETZapier, olay verilerini almak için başka bir Web kancası gönderir;> Geçerli olay verilerini - olay adı, olay kimliği, kullanıcı e-postasını almak için bir GoogleScript - GetCurrentEmailEventID (aşağıdaki adımdaki açıklama) çağırır (çalışır).
(3) FİLTRE - YALNIZCA DEVAM EDERSE
Bir sonraki adıma yalnızca takvimde o anda gerçekleşen bir etkinlik (herhangi bir etkinlik) varsa devam edin (ODA MEŞGUL), aksi takdirde oda boş olduğu için durur.
(4) EYLEM - GMAILZapier, odayı rezerve eden kullanıcıya Gmail aracılığıyla bir e-posta gönderir (bu bilgiyi 2. adımda almıştır).
(5) EYLEM - GECİKTİRME Kullanıcıya e-postayı yanıtlaması için zaman tanıyın.- Kullanıcı bağlantıyı tıklarsa: GoogleScript'i çağırın (çalıştırın) - ApproveCurrentEvent(Bu nedenle oda, 'Silinecek odalar' listesinden kaldırılır ve oda hala dolu olarak işaretlenir.)
(6) EYLEM - GET 5 dakika sonra, Zapier GoogleScript'i çağırır (çalışır) - DeleteCurrentEvent- Kullanıcı bağlantıyı tıklamadıysa
Oda kimliğinin 'Silinecek odalar' listesinde olup olmadığını kontrol eder
sadece olayı kaldırır.
4. Adım: Google Komut Dosyaları
Tüm sistemi entegre ettiğimiz için, GoogleScripts bir IDE'nin önemsiz seçimiydi, Bu nedenle ilgili Google Kitaplıklarını kullandık. Oda Rezervasyon Platformuna göre değişecektir.
(1) GetCurrentEmailEventID
Bir Web kancası çağrısı ile çalıştırılır.
Olası yanlış iptali ortadan kaldırmak için belirli bir ofset kullanmak, mevcut olay verilerini almak.
(2) Geçerli Olayı Onayla
Bir kullanıcı tıklamasıyla çalışır.
Bir kullanıcının odanın hala kullanımda olduğunu onaylaması durumunda, etkinlik kimliğini 'Silinecek Odalar'dan siler. Bir Google sayfası kullandık, başka herhangi bir liste biçimi burada alakalı olabilir.
(3) Geçerli Olayı Sil
Bir Web kancası çağrısı ile çalıştırılır.
Listede (Google sayfası) ilgili olay kimliğini arar ve bu olayı takvimden siler.
Adım 5: Akışı Arduino Koduyla Bağlayın
Ekli kod, birkaç adım önce kontrol ettiğimiz sensörlere çevrimiçi sisteme bağlanır (bizim durumumuzda Google takvimi). Odanın meşgul olup olmadığını kontrol eder ve sonra değilse, Zapier'de silme olayı isteğini başlatan bir HTTP isteği (bir Web kancası) gönderir.
Adım 6: Gözden Geçirme, Sonuçlar ve Gelecek Ölçeklendirme
Başa çıkmamız gereken asıl zorluk, bir toplantı odasını boşaltmaya karar verirken tüm uç vakaları ele almaktı. Daha sonra her olası durumu göz önünde bulundurarak bir durum makinesi oluşturmamız gerekiyordu, öyle ki bir hata oluşmayacak ve oda yalnızca gerektiği zaman kullanılabilir olacak şekilde ayarlanacak.
Örneğin, oda şu anda orada olmayan (örneğin molada olan) bir grup için rezerve edilmişse, ancak yine de buna ihtiyacı varsa, NODEMCU odanın boş olduğunu algılayacaktır > SORUN.
Ardından, çözümümüz, odayı rezerve eden kullanıcıya (ki bunu anlamak kolay değildi) odayı elinde tutma seçeneği sunan bir mesaj e-postası göndermek oldu.
Kullanıcı belirli bir süre içinde cevap vermemişse (5 dakika olarak ayarladık, ancak kolayca değiştirilebilir), etkinliği takvimden sileriz (ve odayı boşaltırız).
Bu sayede olası tüm senaryoları ele almayı ve çalışan bir sistem oluşturmayı başardık.
SİSTEM SINIRLAMALARIMIZ:
1. Kullanılan sensörler çok hassas ve hassas olmalıdır.
2. Oda boyutu, sensörün yarıçapı/aralığı ile sınırlıdır.
3. Kullanıcı duyarlılığına güvenmek zorunda kalacağız.
4. Sistemimiz çeşitli platformlar (Google takvimi, Gmail, Zapier vb.) kullanılarak oluşturulmuştur ve gerçekleştirmek için hizmetlerini kullanmak zorunda kalacaktır.
5. Bu hizmeti birden fazla oda için ölçeklendirmek (tüm sistemi çoğaltmak yerine), oda kimliğiyle ek bir işlem gerektirecektir.
6. Sistem sadece otomatiktir ve oda rezervasyonunu manuel olarak iptal etme seçeneği yoktur.
GELECEK GELİŞMELER:
Sistemi kesinlikle iki şekilde büyütürüz:
1. Diğer takvim platformlarıyla çalışabilme (böylece herhangi bir ortak çalışma alanı şirketi bunu kullanabilir).
2. Birden fazla oda, kat ve siteyi idare edebilme.
Bu tür bir ölçeğin genelleştirilmesi, test edilmesi ve birden fazla oda (kat vb.) özelliğinin eklenmesi 2-3 ayı bulacaktır.
Ek olarak, sınırsız miktarda para ve kaynak kullanarak, daha geniş bir menzile sahip daha iyi sensörler kullanacağız ve bunları belirlenen odaya göre özelleştireceğiz - menzil, yarıçap, sensör sayısı vb. açıkça.
Önerilen:
Alexa ve Raspberry Pi ile Kontrol Oturma Odası: 12 Adım
Alexa ve Raspberry Pi ile Oturma Odasını Kontrol Edin: Alexa (Amazon Echo veya Dot) ve Raspberry Pi GPIO ile oturma odanızın TV'sini, ışıklarını ve Fanı kontrol edin
Kaçış Odası Arduino: 6 Adım (Resimlerle)
Kaçış Odası Arduino: Bu proje, temel kodlama bilgisi olan arduino por elektronik bileşenlerini kullanarak bir kaçış odası prototipi oluşturmakla ilgilidir. Bu kaçış odasının ele alınması gereken 5 aşaması olacaktır:(Herkes için farklı olabilir)1. Basınç sensörü - LEDBir kez
Eller Serbest Odası: 8 Adım
Eller Serbest Odası: Merhaba benim adım Avroh ve 6. sınıfa giriyorum. Bunu bir odaya girip çıkmanın harika bir yolu olması için öğretilebilir hale getirdim. Ancak programlayacak ve birinin gelip gelmediğini hissedecek kaynaklarım yoktu. Bu yüzden odayı sıfırdan yaptım
Işıklı ve Sesli Yatak Odası Alarmı!: 6 Adım
Işıklı ve Sesli Yatak Odası Alarmı!: Merhaba, bugün size Arduino UNO ile yatak odanızın kapısına nasıl alarm yapacağınızı göstereceğim
Nextion Dokunmatik Ekran Outlook Takvim Toplantı Hatırlatma: 6 Adım
Nextion Dokunmatik Ekran Outlook Takvim Toplantı Hatırlatıcısı: Bu projeye başlamamın nedeni, çoğu zaman toplantıları kaçırmam ve daha iyi bir hatırlatma sistemine ihtiyacım olduğunu düşünmemdi. Microsoft Outlook Calendar kullanmamıza rağmen zamanımın çoğunu aynı bilgisayarda Linux/UNIX üzerinde geçirdim. ile çalışırken