Sisällysluettelo:

IDC2018IOT: Kokoushuone Snitcher: 6 vaihetta
IDC2018IOT: Kokoushuone Snitcher: 6 vaihetta

Video: IDC2018IOT: Kokoushuone Snitcher: 6 vaihetta

Video: IDC2018IOT: Kokoushuone Snitcher: 6 vaihetta
Video: IDC European IoT Summit 2018 2024, Marraskuu
Anonim
IDC2018IOT: Kokoushuone Snitcher
IDC2018IOT: Kokoushuone Snitcher

ONGELMA

Kuten tiedämme, yhteistyötilojen trendi on kiihtynyt viime vuosina, ja huipputekniikka määrittelee tarpeisiisi sopivan yhteistyötilan valinnan.

Yksi tärkeimmistä tarjotuista ominaisuuksista on yhteistilahuoneet, joita tarjotaan yhteistyötilan jäsenille, ja jota hallinnoi (yleensä) yksinkertainen kalenterialusta.

Ongelma toistuu, kun ihmisten aikataulu on yleensä dynaaminen.

Voisi varata huoneen ajattelemalla, että hän saattaa tarvita sitä eikä halua missata aikaväliä.

Vaikka kukaan ei lopulta käyttäisi tätä aikaväliä, hän ei vaivaudu ilmoittamaan ja peruuttamaan sitä muiden vuoksi, koska se on valitettavasti ihmisluonto.

MITEN RATKAISEMME SEN?

Käytämme IoT -tekniikkaa - tarkistaaksemme äänen ja liikkeen määrätyssä kokoushuoneessa - tarkistamme jokaisen tietyn aikavälin jälkeen, onko huone varattu ja todella varattu vai ei:

1. Jos se ei ole varattu, älä tee mitään.

2. Jos se on varattu, tarkista, havaitaanko liikettä tai ääntä.

Jos on, älä tee mitään.

Jos mitään ei havaittu, lähetä varoitusviesti (sähköpostitse) huoneen varanneelle käyttäjälle, joka kysyy, onko huone edelleen käytössä. ellei käyttäjä ilmoita käyttävänsä edelleen huonetta, huoneen tilaksi muutetaan "Saatavilla".

* Täällä integroimme projektimme Google -kalenteriin yleistääksemme sen mahdollisimman paljon.

Vaihe 1: Tarvittavat laitteet ja protokollat

Laitteisto ja protokollat tarvitaan
Laitteisto ja protokollat tarvitaan

1. Käytimme NOSEMCU: ta, jotta voisimme päivittää asioita dynaamisesti WIFI -yhteyden avulla.

2. Mikrofonianturi, joka "lukee" huoneen melun.

3. PIR -anturi, joka tarkistaa, onko liikettä.

Ohjelmisto- ja palvelinkäyttöön käytimme Arduinon koodin lisäksi Google Scriptiä ja Zapieria tukemaan järjestelmäämme verkossa. Näet kulun lisätyssä kuvassa (ja PDF -tiedostossa).

Käytimme Zapieria sovellusten yhdistämiseen ja työnkulkujen automatisointiin (kuten IFTTT) ja Google Scriptin avulla kommunikoimaan Google -kalenterin kanssa. Kirjoittamamme skripti tuottaa tapahtuman tekijän sähköpostin, jotta voimme lähettää sen lähettäen Zapierin ja tarkistaa, onko käyttäjä pyytänyt pitämään huoneen (tallentamalla joitain tietoja Google Sheetsiin) ennen tapahtuman poistamista.

Vaihe 2: Yhdistä mikrofoni ja PIR -anturi

Liitä mikrofoni ja PIR -anturi
Liitä mikrofoni ja PIR -anturi
Yhdistä mikrofoni ja PIR -anturi
Yhdistä mikrofoni ja PIR -anturi

Halusimme tarkistaa keskimääräiset arvot, jotka mikrofoni lähettää NODEMCU: lle, kun ihmiset puhuvat (selvästi, jokaisessa huoneessa oli erilaiset taustaäänet). Teimme joitain testejä ja huomasimme, että keskimääräinen melutaso on huone, jossa työskentelimme, on jossain yli 50.

PIR -anturi antaa vain HIGH tai LOW -arvoja, joten tarkistimme vain sen herkkyyden tason, joka on tarkin tarkastamaamme huoneeseen. Tämä opas oli varsin hyödyllinen.

YHTEYDEMME:

Mikrofoni - kuten kuvassa PIR -anturi: GND> GND, OUT> D7, VCC> VN (5V)

Vaihe 3: Luo työnkulku Zapierissa

Luo työnkulku Zapierissa
Luo työnkulku Zapierissa
Luo työnkulku Zapierissa
Luo työnkulku Zapierissa
Luo työnkulku Zapierissa
Luo työnkulku Zapierissa

Jotta voimme tietää, onko huone todella tyhjä vai edelleen käytössä (ja käyttäjät ovat esimerkiksi tauolla), haluamme luoda sen varmistavan virran heti sen jälkeen, kun NodeMCU laukaisee Webhookin Zapierille, joka ilmoittaa, että huone on tyhjä:

(1) TRIGGER - CATCH HOOKZapier saa Webhookin (jonka NODEMCU lähettää)

(2) TOIMINTA - GETZapier lähettää toisen Webhookin hakemaan tapahtumatiedot;> Se kutsuu (suorittaa) GoogleScriptin - GetCurrentEmailEventID (selitys seuraavassa vaiheessa) saadakseen nykyisen tapahtuman tiedot - tapahtuman nimen, tapahtumatunnuksen, käyttäjän sähköpostin.

(3) SUODATIN - JATKA VAIN JOS

Jatka seuraavaan vaiheeseen vain, jos kalenterissa on tapahtuma (mikä tahansa tapahtuma) (ROOM IS BUSY), muuten pysähtyy, koska huone on tyhjä.

(4) TOIMINTA - GMAILZapier lähettää sähköpostiviestin Gmailin kautta huoneen varanneelle käyttäjälle (sai nämä tiedot vaiheessa 2)

(5) TOIMENPITEET - VIIMEISTELY Anna käyttäjälle aikaa vastata sähköpostiin. - Jos käyttäjä napsauttaa linkkiä: soita (suorita) GoogleScript - ApproveCurrentEvent (Siksi huone poistetaan poistettavista huoneista -luettelosta ja huone on edelleen merkitty varattuksi.)

(6) TOIMINTA - HANKI 5 minuutin kuluttua Zapier soittaa (suorittaa) GoogleScriptin - DeleteCurrentEvent- Jos käyttäjä ei napsauttanut linkkiä

Tarkista, onko huonetunnus poistettavien huoneiden luettelossa

se vain poistaa tapahtuman.

Vaihe 4: Google Scripts

Google Scripts
Google Scripts
Google Scripts
Google Scripts
Google Scripts
Google Scripts

Kun integroimme koko järjestelmän, GoogleScripts oli IDE: n triviaali valinta, joten käytimme asiaankuuluvia Google -kirjastoja. Muuttuisi huoneen varausalustan mukaan.

(1) GetCurrentEmailEventID

Toimii Webhook -puhelun avulla.

Tietyn poikkeaman käyttäminen mahdollisen virheen peruuttamisen poistamiseksi, nykyisten tapahtumatietojen saaminen.

(2) ApproveCurrentEvent

Toimii käyttäjän napsautuksella.

Jos käyttäjä hyväksyy, että huone on edelleen käytössä, se poistaa tapahtumatunnuksen poistettavista huoneista. Käytimme Google -taulukkoa, mikä tahansa muu luettelomuoto voisi olla osuva tässä.

(3) DeleteCurrentEvent

Toimii Webhook -puhelun avulla.

Etsii asianomaista tapahtumatunnusta luettelosta (Google -taulukko) ja poistaa tapahtuman kalenterista.

Vaihe 5: Yhdistä virtaus Arduino -koodilla

Liitteenä oleva koodi yhdistää anturit, jotka tarkistimme muutama vaihe sitten online -järjestelmään (Google -kalenteri meidän tapauksessamme). Se tarkistaa, onko huone varattu, ja sitten, jos ei, se lähettää HTTP -pyynnön (Webhook), joka käynnistää Zapier -tapahtumapyyntöpyynnön.

Vaihe 6: Katsaus, johtopäätökset ja tuleva skaalaus

Image
Image

Suurin haaste, joka meidän oli käsiteltävä, on kattaa kaikki reuna -asiat päätettäessä vapauttaa kokoustila. Meidän oli sitten luotava tilakone, joka huomioi kaikki mahdolliset tapaukset siten, että virhe ei tapahdu ja huone asetetaan saataville vain silloin, kun sen pitäisi.

Jos huone on esimerkiksi varattu jollekin ryhmälle, joka ei ole tällä hetkellä paikalla (esimerkiksi tauolla), mutta silti tarvitsee sitä, NODEMCU havaitsee, että huone on vapaa> ONGELMA.

Ratkaisumme oli sitten lähettää sähköpostitse huoneen varanneelle käyttäjälle (mikä ei ollut yksinkertaista selvittää) viesti, joka tarjoaa mahdollisuuden jatkaa huoneen pitämistä.

Jos käyttäjä ei vastannut tietyssä ajassa (asetimme sen 5 minuutiksi, mutta se voidaan muuttaa helposti), poistamme tapahtuman kalenterista (ja vapautamme huoneen).

Tällä tavalla onnistuimme lopulta käsittelemään kaikki mahdolliset skenaariot ja luomaan toimivan järjestelmän.

JÄRJESTELMÄN RAJOITUKSET:

1. Käytettyjen antureiden on oltava erittäin tarkkoja ja herkkiä.

2. Huoneen koko on rajoitettu anturin säteelle/alueelle.

3. Meidän on luotettava käyttäjien reagointikykyyn.

4. Järjestelmämme on rakennettu useilla alustoilla (Google -kalenteri, Gmail, Zapier jne.), Ja sen on käytettävä palveluaan.

5. Tämän palvelun skaalaaminen useisiin huoneisiin (koko järjestelmän päällekkäisyyksien sijasta) vaatii lisäkäsittelyn huoneen tunnuksella.

6. Järjestelmä on vain automaattinen, eikä huonevarauksen peruuttamiseen ole manuaalista vaihtoehtoa.

TULEVAISUUDEN KEHITYS:

Haluamme varmasti laajentaa järjestelmää kahdella tavalla:

1. Kyky työskennellä muiden kalenterialustojen kanssa (joten kaikki yhteistyötilat tuottavat yritykset voivat käyttää sitä).

2. Kyky käsitellä useita huoneita, kerroksia ja sivustoja.

Uskomme, että tällaisen mittakaavan yleistäminen, testaaminen ja useiden huoneiden (kerrosten jne.) Lisääminen kestää 2-3 kuukautta.

Lisäksi käyttämällä rajoittamatonta määrää rahaa ja resursseja käytämme parempia antureita, joilla on suurempi alue, sekä räätälöimme ne nimettyyn huoneeseen - ottaen huomioon kantama, säde, anturien määrä jne. Vaihe, joka pidentää jokaisen järjestelmän asennusta, ilmeisesti.

Suositeltava: