Cuprins:
- Pasul 1: Hardware și protocoale necesare
- Pasul 2: Conectați microfonul și senzorul PIR
- Pasul 3: Creați fluxul de lucru în Zapier
- Pasul 4: Scripturi Google
- Pasul 5: Conectați fluxul cu codul Arduino
- Pasul 6: Revizuire, concluzii și scalare viitoare
Video: IDC2018IOT: Snitcher de ședințe: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
PROBLEMA
După cum știm, tendința spațiilor de lucru în comun s-a accelerat în ultimii ani, alături de tehnologia de ultimă generație care definește alegerea spațiului de lucru în comun care se potrivește nevoilor dumneavoastră.
Una dintre principalele caracteristici oferite este sălile de întâlnire comune oferite membrilor spațiului de lucru, care este gestionat de o platformă de calendar (de obicei) simplă.
O problemă apare din nou, deoarece programul oamenilor tinde să fie dinamic.
S-ar putea să rezervați o cameră gândindu-vă că ar putea avea nevoie de ea și nu ar vrea să rateze intervalul de timp.
Chiar dacă cineva nu ar folosi acea perioadă de timp în cele din urmă, nu se va deranja să o notifice și să o anuleze de dragul altora, deoarece, din păcate, aceasta este natura umană.
CUM O REZOLVĂM?
Folosind tehnologia IoT - verificarea sunetului și a mișcării într-o sală de ședință desemnată, verificăm, la fiecare anumit interval de timp, dacă o cameră este rezervată și de fapt ocupată sau nu:
1. Dacă nu este rezervat, nu faceți nimic.
2. Dacă este rezervat, verificați dacă sunt detectate mișcări sau sunete;
Dacă există, nu faceți nimic.
Dacă nu a fost detectat nimic, trimiteți un mesaj de avertizare (prin e-mail) utilizatorului care a rezervat camera care vă întreabă dacă camera este încă în uz. cu excepția cazului în care utilizatorul va declara că încă folosește camera, starea camerei va fi schimbată în „Disponibil”.
* Aici, am integrat proiectul nostru cu Google Calendar pentru a-l generaliza cât mai mult posibil.
Pasul 1: Hardware și protocoale necesare
1. Am folosit NOSEMCU astfel încât să putem actualiza lucrurile dinamic folosind conexiunea WIFI.
2. Senzor microfon care va „citi” zgomotul din cameră.
3. Senzor PIR care va verifica dacă există vreo mișcare.
Pentru utilizarea software-ului și a serverului, pe lângă codul din Arduino, am folosit Google Script și Zapier pentru a sprijini sistemul nostru online. Puteți vedea fluxul în imaginea adăugată (și PDF).
Am folosit Zapier pentru a conecta aplicații și a automatiza fluxurile noastre de lucru (cum ar fi IFTTT) și am folosit Google Script pentru a ne ajuta să comunicăm cu Google Calendar. Scriptul pe care l-am scris produce e-mailul creatorului evenimentului, astfel încât să-l putem trimite pe Zapier și verifică dacă utilizatorul a cerut să dețină camera (salvând câteva informații în Foi de calcul Google) înainte de a șterge evenimentul.
Pasul 2: Conectați microfonul și senzorul PIR
Am vrut să verificăm valorile medii ale postărilor microfonului către NODEMCU atunci când oamenii vorbesc (în mod clar, în fiecare cameră aveau zgomote de fond diferite). Am făcut câteva teste și am realizat că nivelul mediu de zgomot este camera în care am lucrat este undeva peste 50.
Senzorul PIR oferă doar valori HIGH sau LOW, deci am verificat doar nivelul de sensibilitate care este cel mai precis pentru camera pe care am verificat-o. Acest ghid a fost destul de util.
LEGĂTURILE NOASTRE:
Microfon - ca în imagine Senzorul PIR: GND> GND, OUT> D7, VCC> VN (5V)
Pasul 3: Creați fluxul de lucru în Zapier
Pentru a ști dacă camera este de fapt goală sau încă este în uz (și utilizatorii sunt într-o pauză, de exemplu), am dori să creăm un flux care să o asigure, imediat după ce NodeMCU declanșează un Webhook către Zapier care notifică că camera este goală:
(1) TRIGGER - CATCH HOOKZapier prinde Webhook-ul (care va fi trimis de NODEMCU)
(2) ACTION - GETZapier trimite un alt Webhook pentru a obține datele despre eveniment;> Apelează (rulează) un GoogleScript - GetCurrentEmailEventID (explicație în pasul următor), pentru a obține datele curente ale evenimentului - numele evenimentului, ID-ul evenimentului, adresa de e-mail a utilizatorului.
(3) FILTRU - CONTINUAȚI DOAR DACĂ
Continuați cu pasul următor numai dacă există un eveniment (orice eveniment) care se întâmplă în prezent pe calendar (CAMERA ESTE OCUPATĂ), în caz contrar, se oprește deoarece camera este liberă.
(4) ACȚIUNE - GMAILZapier trimite un e-mail, prin Gmail, utilizatorului care a rezervat camera (a primit aceste informații la pasul 2)
(5) ACȚIUNE - ÎNTÂRZIERE FOR Permiteți utilizatorului să răspundă la e-mail. - Dacă utilizatorul dă clic pe link: apelați (rulați) GoogleScript - ApproveCurrentEvent (Prin urmare, camera este eliminată din lista „Camere de șters” și camera este încă marcată ca ocupată.)
(6) ACȚIUNE - OBȚINERE După 5 minute, Zapier apelează (rulează) GoogleScript - DeleteCurrentEvent- Dacă utilizatorul nu a făcut clic pe link
Verifică dacă ID-ul camerei se află în lista „Camere de șters”
doar elimină evenimentul.
Pasul 4: Scripturi Google
Pe măsură ce am integrat întregul sistem, GoogleScripts a fost alegerea banală a unui IDE, astfel am folosit bibliotecile Google relevante. S-ar schimba în conformitate cu platforma de rezervare a camerei.
(1) GetCurrentEmailEventID
Se execută printr-un apel Webhook.
Utilizarea unui anumit offset pentru a elimina posibila anulare ratată, obținând datele curente ale evenimentului.
(2) ApproveCurrentEvent
Se execută de un clic de utilizator.
În cazul aprobării de către utilizator a faptului că încă camera este în uz, șterge ID-ul evenimentului din „Camere de șters”. Am folosit o foaie Google, orice altă formă de listă ar putea fi relevantă aici.
(3) DeleteCurrentEvent
Se execută printr-un apel Webhook.
Căutați ID-ul evenimentului relevant din listă (foaia Google) și șterge acel eveniment din calendar.
Pasul 5: Conectați fluxul cu codul Arduino
Codul atașat se conectează la senzorii pe care i-am verificat acum câțiva pași la sistemul online (calendarul Google în cazul nostru). Verifică dacă camera este ocupată și apoi dacă nu, trimite o cerere HTTP (un Webhook) care pornește solicitarea de ștergere a evenimentului pe Zapier.
Pasul 6: Revizuire, concluzii și scalare viitoare
Principala provocare cu care a trebuit să ne confruntăm este acoperirea tuturor cazurilor marginale atunci când am decis să eliberăm o sală de ședințe. Apoi a trebuit să creăm o mașină de stare luând în considerare fiecare caz posibil, astfel încât să nu apară o eroare și camera să fie setată ca disponibilă numai atunci când ar trebui.
De exemplu, dacă camera este rezervată pentru un grup care nu este în prezent (adică într-o pauză, de exemplu), dar care încă mai are nevoie, NODEMCU va detecta că camera este liberă> PROBLEMĂ.
Apoi, soluția noastră a fost să trimitem prin e-mail utilizatorului care a rezervat camera (ceea ce nu a fost simplu de dat seama) un mesaj care oferă opțiunea de a păstra încăperea.
Dacă utilizatorul nu a răspuns într-un timp dat (l-am setat la 5 minute, dar poate fi schimbat cu ușurință), ștergem evenimentul din calendar (și eliberăm camera).
În acest fel, în cele din urmă am reușit să gestionăm toate scenariile posibile și să creăm un sistem de lucru.
LIMITĂRILE SISTEMULUI NOSTRU:
1. Senzorii folosiți trebuie să fie foarte exacți și sensibili.
2. Dimensiunea camerei este limitată la raza / raza senzorului.
3. Va trebui să ne bazăm pe capacitatea de răspuns a utilizatorului.
4. Sistemul nostru este construit folosind mai multe platforme (calendar Google, Gmail, Zapier etc.) și va trebui să își folosească serviciul pentru a efectua performanțe.
5. Scalarea acestui serviciu pentru mai multe camere (în locul duplicării întregului sistem) va necesita o manipulare suplimentară cu ID-ul camerei.
6. Sistemul este automat doar și nu există o opțiune manuală pentru anularea rezervării unei camere.
EVOLUȚII VIITOARE:
Cu siguranță am extinde sistemul în două moduri:
1. Abilitatea de a lucra cu orice alte platforme calendaristice (astfel încât orice companie de spații de colaborare să o poată utiliza).
2. Capacitatea de a gestiona mai multe camere, etaje și site-uri.
Credem că acest tip de scară va dura 2-3 luni pentru a generaliza, testa și adăuga mai multe camere (etaje etc.).
În plus, folosind o sumă nelimitată de bani și resurse, vom folosi senzori mai buni cu o gamă mai mare, împreună cu personalizarea acestora în camera desemnată - luând în considerare intervalul, raza, cantitatea de senzori etc. Un pas care ar face ca fiecare sistem să se instaleze mai mult, evident.
Recomandat:
IDC2018IOT IoPill Box: 7 pași
IDC2018IOT IoPill Box: Aceasta este IoPill Box - cutia de pilule săptămânală conectată la internet. Pentru proiectul final al cursului nostru IoT, am decis să oferim o soluție care să ne asigure că persoanele în vârstă (sau orice altă persoană care folosește o cutie de pilule săptămânală) ) nu uitați să luați
IDC2018IOT Cârlig: 6 pași
IDC2018IOT Cloth Hanger: cuierul de pânză IOT vă va face dulapul mai inteligent și vă va oferi statistici online cu privire la hainele din interiorul său. Are 3 caracteristici principale: atunci când doriți să alegeți ce să purtați, puteți apăsa culoarea pe care doriți să o purtați astăzi și umerașele de îmbrăcăminte IOT
Sistem inteligent de ușă pentru auzul afectat (IDC2018IOT): 11 pași
Sistem inteligent de ușă pentru auzul afectat (IDC2018IOT): Sperăm cu toții să avem o casă care să ne potrivească, dar construcția standard nu este potrivită pentru toată lumea. O ușă către o casă este foarte slab concepută pentru persoanele surde sau cu deficiențe de auz. Persoanele cu deficiențe de auz nu pot auzi o bătaie la ușă sau
Studiați mai bine cu o lampă inteligentă de birou - IDC2018IOT: 10 pași (cu imagini)
Studiați mai bine cu o lampă inteligentă de birou - IDC2018IOT: Oamenii din lumea occidentală petrec mult timp așezat. La birou, conducând, uitându-mă la televizor și multe altele. Uneori, a sta prea mult poate dăuna corpului dvs. și vă poate afecta abilitățile de concentrare. Mersul și ridicarea în picioare după un anumit timp este crucial pentru
IDC2018IOT conectat pentru animale de companie, apă și sistem de monitorizare: 7 pași
Sistem IDC2018IOT conectat pentru alimente, apă și monitor pentru animale de companie: Introducere Fie că sunteți un student sub presiune, o persoană care lucrează din greu sau pur și simplu departe de casă mai mult de câteva ore pe zi. În calitate de proprietari îngrijitori de animale de companie, vrem să ne asigurăm că cei dragi rămân sănătoși, hrăniți și, bineînțeles, NU culcați pe t