Sommario:

IDC2018IOT: Snitcher della sala riunioni: 6 passaggi
IDC2018IOT: Snitcher della sala riunioni: 6 passaggi

Video: IDC2018IOT: Snitcher della sala riunioni: 6 passaggi

Video: IDC2018IOT: Snitcher della sala riunioni: 6 passaggi
Video: Hogwarts Legacy - 6 Secret Passages and Hidden Room Locations! 2024, Dicembre
Anonim
IDC2018IOT: Snitcher della sala riunioni
IDC2018IOT: Snitcher della sala riunioni

IL PROBLEMA

Come sappiamo, negli ultimi anni il trend degli spazi di co-working sta accelerando, insieme alla tecnologia all'avanguardia che definisce la scelta dello spazio di co-working specifico che si adatta alle tue esigenze.

Una delle principali funzionalità offerte sono le sale riunioni condivise offerte ai membri dello spazio di co-working, gestite da una piattaforma di calendario (di solito) semplice.

Un problema si ripresenta quando gli orari delle persone tendono ad essere dinamici.

Si potrebbe prenotare una stanza pensando di averne bisogno e di non voler perdere la fascia oraria.

Anche se uno alla fine non utilizzerà quella fascia oraria, non si preoccuperà di notificarla e cancellarla per il bene degli altri, poiché, sfortunatamente, questa è la natura umana.

COME LO RISOLVIAMO?

Utilizzando la tecnologia IoT - controllando il suono e il movimento in una sala riunioni designata, controlliamo, a ogni determinato intervallo di tempo, se una sala è prenotata ed effettivamente occupata o meno:

1. Se non è prenotato, non fare nulla.

2. Se è prenotato, controlla se sono stati rilevati movimenti o rumori;

Se c'è, non fare nulla.

Se non è stato rilevato nulla, inviare un messaggio di avviso (via email) all'utente che ha prenotato la camera che chiede se la camera è ancora in uso. a meno che l'utente non dichiari che sta ancora utilizzando la stanza, lo stato della stanza sarà cambiato in "Disponibile".

* Qui abbiamo integrato il nostro progetto con Google Calendar per generalizzarlo il più possibile.

Passaggio 1: hardware e protocolli necessari

Hardware e protocolli necessari
Hardware e protocolli necessari

1. Abbiamo usato NOSEMCU in modo da poter aggiornare le cose in modo dinamico utilizzando la connessione WIFI.

2. Sensore del microfono che "leggerà" il rumore nella stanza.

3. Sensore PIR che controllerà se c'è movimento.

Per l'utilizzo del software e del server, oltre al codice in Arduino, abbiamo utilizzato Google Script e Zapier per supportare il nostro sistema online. Puoi vedere il flusso nell'immagine aggiunta (e nel PDF).

Abbiamo utilizzato Zapier per connettere app e automatizzare i nostri flussi di lavoro (come IFTTT) e abbiamo utilizzato Google Script per aiutarci a comunicare con Google Calendar. Lo script che abbiamo scritto sta producendo l'e-mail del creatore dell'evento in modo da poterlo inviare a Zapier e controlla se l'utente ha chiesto di tenere la stanza (salvando alcune informazioni in Fogli Google) prima di eliminare l'evento.

Passaggio 2: collegare il microfono e il sensore PIR

Collega il microfono e il sensore PIR
Collega il microfono e il sensore PIR
Collega il microfono e il sensore PIR
Collega il microfono e il sensore PIR

Volevamo controllare i valori medi che il microfono invia al NODEMCU quando le persone parlano (chiaramente, in ogni stanza c'erano rumori di sottofondo diversi). Abbiamo fatto alcuni test e ci siamo resi conto che il livello medio di rumore nella stanza in cui abbiamo lavorato è da qualche parte superiore a 50.

Il sensore PIR fornisce solo valori ALTI o BASSI, quindi abbiamo verificato solo il livello di sensibilità più accurato per la stanza che abbiamo controllato. Questa guida è stata piuttosto utile.

I NOSTRI COLLEGAMENTI:

Microfono - come in fotoSensore PIR: GND > GND, OUT > D7, VCC > VN (5V)

Passaggio 3: crea il flusso di lavoro in Zapier

Crea il flusso di lavoro in Zapier
Crea il flusso di lavoro in Zapier
Crea il flusso di lavoro in Zapier
Crea il flusso di lavoro in Zapier
Crea il flusso di lavoro in Zapier
Crea il flusso di lavoro in Zapier

Per sapere se la stanza è effettivamente vuota o ancora in uso (e gli utenti sono in pausa per esempio), vorremmo creare un flusso che lo assicuri, subito dopo che il NodeMCU lancia un Webhook a Zapier che notifica che il la stanza è vuota:

(1) TRIGGER - CATCH HOOKZapier cattura il Webhook (che verrà inviato dal NODEMCU)

(2) AZIONE - GETZapier invia un altro Webhook per ottenere i dati dell'evento;> Chiama (esegue) un GoogleScript - GetCurrentEmailEventID (spiegazione nel passaggio successivo), per ottenere i dati dell'evento corrente - nome evento, ID evento, email utente.

(3) FILTRO - CONTINUA SOLO SE

Prosegui con il passaggio successivo solo se è presente un evento (qualsiasi evento) in corso nel calendario (CAMERA OCCUPATA), altrimenti si interrompe perché la stanza è libera.

(4) AZIONE - GMAILZapier invia un'e-mail, tramite Gmail, all'utente che ha prenotato la camera (ottenuto queste informazioni nel passaggio 2)

(5) AZIONE - RITARDO PER Lasciare all'utente il tempo di rispondere all'e-mail.- Se l'utente fa clic sul collegamento: chiamare (eseguire) GoogleScript - ApproveCurrentEvent(Quindi la stanza viene rimossa dall'elenco 'Stanze da eliminare' e il la stanza è ancora contrassegnata come occupata.)

(6) AZIONE - OTTIENI Dopo 5 minuti, Zapier chiama (esegue) GoogleScript - DeleteCurrentEvent- Se l'utente non ha fatto clic sul collegamento

Verifica se l'ID della camera è nell'elenco 'Camere da eliminare'

rimuove semplicemente l'evento.

Passaggio 4: script di Google

Script di Google
Script di Google
Script di Google
Script di Google
Script di Google
Script di Google

Poiché abbiamo integrato l'intero sistema, GoogleScripts è stata la scelta banale di un IDE, quindi abbiamo utilizzato le librerie di Google pertinenti. Cambierebbe in base alla piattaforma di prenotazione delle camere.

(1) GetCurrentEmailEventID

Eseguito da una chiamata Webhook.

Utilizzando un certo offset per eliminare possibili mancate cancellazioni, ottenendo i dati dell'evento corrente.

(2) Approva evento in corso

Eseguito da un clic dell'utente.

In caso di approvazione da parte dell'utente che la stanza è ancora in uso, elimina l'ID evento dalle "Stanze da eliminare". Abbiamo utilizzato un foglio di Google, qualsiasi altra forma di elenco potrebbe essere pertinente qui.

(3) EliminaEvento Attuale

Eseguito da una chiamata Webhook.

Cerca l'ID evento pertinente nell'elenco (foglio di Google) ed elimina tale evento dal calendario.

Passaggio 5: collegare il flusso con il codice Arduino

Il codice allegato si collega ai sensori che abbiamo verificato qualche passaggio fa al sistema online (calendario Google nel nostro caso). Controlla se la stanza è occupata e quindi, se non lo è, invia una richiesta HTTP (un Webhook) che avvia la richiesta di eliminazione dell'evento su Zapier.

Passaggio 6: revisione, conclusioni e ridimensionamento futuro

Image
Image

La sfida principale che abbiamo dovuto affrontare è stata quella di coprire tutti i casi limite quando abbiamo deciso di liberare una sala riunioni. Abbiamo quindi dovuto creare una macchina a stati considerando ogni possibile caso, in modo tale che non si verificasse un errore e la stanza fosse impostata come disponibile solo quando dovrebbe.

Ad esempio, se la stanza è prenotata per un gruppo che attualmente non c'è (cioè in pausa, per esempio), ma ne ha ancora bisogno, NODEMCU rileverà che la stanza è libera > PROBLEMA.

Quindi, la nostra soluzione è stata quella di inviare un'e-mail all'utente che ha prenotato la stanza (cosa non semplice da capire) un messaggio che fornisce la possibilità di continuare a tenere la stanza.

Se l'utente non ha risposto in un determinato tempo (abbiamo impostato 5 minuti, ma può essere modificato facilmente), eliminiamo l'evento dal calendario (e liberiamo la stanza).

In questo modo, alla fine siamo riusciti a gestire tutti gli scenari possibili ea creare un sistema funzionante.

LIMITAZIONI DEL NOSTRO SISTEMA:

1. I sensori utilizzati devono essere molto precisi e sensibili.

2. La dimensione della stanza è limitata al raggio/gamma del sensore.

3. Dovremo fare affidamento sulla reattività dell'utente.

4. Il nostro sistema è costruito utilizzando diverse piattaforme (calendario Google, Gmail, Zapier ecc.) e dovrà utilizzare il loro servizio per eseguire.

5. Il ridimensionamento di questo servizio per più stanze (invece di duplicare l'intero sistema) richiederà una gestione aggiuntiva con l'ID della stanza.

6. Il sistema è solo automatico e non c'è un'opzione manuale per cancellare la prenotazione di una camera.

SVILUPPI FUTURI:

Sicuramente aumenteremmo il sistema in due modi:

1. Capacità di lavorare con qualsiasi altra piattaforma di calendario (quindi qualsiasi azienda di spazi di co-working potrebbe utilizzarlo).

2. Capacità di gestire più stanze, piani e siti.

Riteniamo che questo tipo di scala impiegherà 2-3 mesi per generalizzare, testare e aggiungere funzionalità di più stanze (piani ecc.).

Inoltre, utilizzando una quantità illimitata di denaro e risorse, utilizzeremmo sensori migliori con una portata più ampia, oltre a personalizzarli in base alla stanza designata, considerando la portata, il raggio, la quantità di sensori, ecc. Un passaggio che renderebbe più lungo l'installazione di ogni sistema, ovviamente.

Consigliato: