Sisällysluettelo:

IDC2018IOT GarbageCan-Online: 7 vaihetta
IDC2018IOT GarbageCan-Online: 7 vaihetta

Video: IDC2018IOT GarbageCan-Online: 7 vaihetta

Video: IDC2018IOT GarbageCan-Online: 7 vaihetta
Video: 5 причин НЕ покупать лобзик DeWALT Barrel Grip Grip 2024, Marraskuu
Anonim
Image
Image
Tarvittavat osat
Tarvittavat osat

Johdanto

Kaikki tietävät, mitä tapahtuu, kun jätämme roskakorin roskakoriin liian kauan poistamatta sitä. Ilmeisin asia on, että roskikselle ei ole tilaa, mutta se alkaa myös haista ja siitä tulee erittäin epämiellyttävää.

Tällä projektilla pyrimme auttamaan sinua seuraamaan roska -astioitasi talon ympärillä / työtila / jne., Jotta voit aina tietää, milloin ne ovat täynnä, ja ryhtyä välittömiin toimiin poistamalla roskat.

Järjestelmä ilmoittaa sinulle puhelinilmoituksella tai kojelaudalla, että sinun on tyhjennettävä roskakori. Järjestelmä ottaa huomioon roskakorin täyttöasteen, mutta myös sen sisällä mitatun lämpötilan ja kosteuden. Me kaikki tunnemme kiireellisen tyhjennyksen roskakoriin kuumina ja kosteina päivinä…

Pääpiirteet

  1. Valvonnan kojelauta:

    • Pääosa:

      • Jokaisen roskakorin täyttöaste.
      • Jokaisen roskakorin lämpötila ja kosteus.
    • Tilastot -osio:

      • Täydellisin roskakori.
      • Kuumin roskakori.
  2. Hälytys- ja ilmoitusjärjestelmä:

    • Seuraavia tapahtumia tuetaan:

      • Roskakori on täynnä.
      • Tapahtui anturivirhe.
    • Täyttövaroitukset ottavat huomioon roskakorin täyttöasteen, mutta myös roskakorin lämpötilan ja kosteuden.
    • Hälytykset voidaan lähettää puhelinilmoitusten ja kojelaudan hälytysten kautta.
    • Jokainen hälytyskanava voidaan kytkeä päälle ja pois päältä kojelaudan kautta.
  3. Skaalautuvuus:

    • Kalibrointipainikkeella järjestelmä voidaan säätää eri roskakoriin, joiden kapasiteetti vaihtelee.
    • Roska -astioita on mahdollista lisätä suhteellisen helposti. Sama järjestelmä voidaan koota uuteen roskakoriin, asettaa roskakorin tunnus ja kalibroida se (napin painalluksella). Yli 3 roska -astian käyttö edellyttää kojelaudan laajentamista (helppo tehtävä).

Keitä me olemme?

Tämän projektin loivat (rakkaudella ja omistautumisella!) Rom Cyncynatus ja Daniel Alima - IDC Herzliyan opiskelijat IoT -kurssimme viimeisenä projektina. Toivomme, että työstäsi on hyötyä, ja nautit siitä!

Vaihe 1: Tarvittavat osat

Järjestelmän rakentamiseksi sinun on hankittava seuraavat komponentit ja osat:

  1. Roskakori (mieluiten kansi): Tätä käytetään… no.. tiedätkö mitä aiomme tehdä tämän kanssa, vai mitä?;)
  2. Leipälevy: Liittää kaikki eri komponentit ilman juottamista.
  3. NodeMCU (ESP-8266): Vastaa anturien lukemisesta ja tietojen lähettämisestä pilveen.
  4. Etäisyys -IR -anturi - Sharp 0A41SK: Tämä anturi mittaa roskan määrän (täyttöaste) tölkin sisällä.
  5. Lämpötila- ja kosteusanturi - DHT11: Tämä anturi mittaa lämpötilan ja kosteuden roskakorissa.
  6. Hetkellinen kytkin: Käytetään etäisyysanturin kalibrointiin roskakorin koon mukaan.
  7. Alumiinifolio: Sitä käytetään ilmaisimen muodostamiseen kannen tilasta - olipa se auki tai kiinni.
  8. Hyppyjohdot: Hanki runsaasti ja eri pituuksilla ja väreillä. Yhdistää kaiken yhteen.
  9. Kanavateippi: Meidän on kiinnitettävä asiat paikoilleen.
  10. Micro-USB-kaapeli: NodeMCU: n liittäminen tietokoneeseen ohjelmointia varten ja myöhemmin virtalähde.
  11. USB -virtalähde (älypuhelimen laturi): Antaa virtaa NodeMCU: lle, kun se on asennettu roskakoriin.

Vaihe 2: Johdotus ja kokoaminen

Johdotus ja kokoonpano
Johdotus ja kokoonpano
Johdotus ja kokoonpano
Johdotus ja kokoonpano
Johdotus ja kokoonpano
Johdotus ja kokoonpano

Johdotus

Aseta NodeMCU leipälevylle niin, että se on kätevä kiinnittää myöhemmin roskakoriin, ja liitä siihen USB -kaapeli. Liitä sitten eri komponentit NodeMCU -laitteeseen yllä olevan kytkentäkaavion kuvan avulla. Muista käyttää pitkiä johtoja antureille ja tilajohdoille, jotta järjestelmän asentaminen ja roskakorin käyttäminen on kätevää.

  • Etäisyys -IR -anturi - Sharp 0A41SK:

    • Vin (punainen) Vin
    • GND (musta) GND
    • Vout (keltainen) A0
  • Lämpötila- ja kosteusanturi - DHT11:

    • Vin (punainen) 3V3
    • GND (musta) GND
    • TIEDOT (keltainen) D4
  • Hetkellinen kytkin:

    • Pin1 D3
    • Pin2 GND
  • Kannen tilan (auki / kiinni) johdot:

    • Johto 1 D2
    • Johto2 GND

Kokoonpano

Järjestelmän kokoaminen roskakoriin on melko yksinkertaista. Kiinnitä leipälauta roskakoriin, mieluiten kannen lähelle. Kiinnitä se paikalleen joko teipillä tai nippusiteellä. Sitten:

  1. Aseta IR -etäisyysanturi kannen keskelle (sisäpuolelta!). Varmista, että se on kiinnitetty kunnolla, muuten saat vääriä lukemia!
  2. Aseta lämpötila- ja kosteusanturi johonkin roskakoriin. Kiinnitä teipillä.
  3. Peitä kannen sivu ja roskakorin kärki alumiinifoliolla. Varmista, että kosketus on hyvä, kun kansi on kiinni. Tämä ilmoittaa järjestelmälle, että roskakori on avattu tai suljettu. Kiinnitä sitten kannen tilajohdot johonkin alumiinifolioon ja kiinnitä teipillä.

Vaihe 3: Määritä MQTT, Node-RED ja IFTTT

Määritä MQTT, Node-RED ja IFTTT
Määritä MQTT, Node-RED ja IFTTT
Määritä MQTT, Node-RED ja IFTTT
Määritä MQTT, Node-RED ja IFTTT
Määritä MQTT, Node-RED ja IFTTT
Määritä MQTT, Node-RED ja IFTTT

Suurin osa projektin logiikasta on todella toteutettu pilvessä. NodeMCU lähettää tiedot MQTT-palvelimelle, ja Node-RED kuluttaa sen ja soveltaa siihen logiikkaansa (lisää arkkitehtuurista eteenpäin). Lopuksi käytimme IFTTT: tä lähettääksemme push -ilmoituksia (hälytyksiä) älypuhelimeemme.

Käytämme CloudMQTT- ja FRED-pilvipalveluita MQTT- ja Node-RED-palvelimina, ja käytämme IFTTT: tä push-ilmoituksiin.

  1. Rekisteröidy CloudMQTT -palveluun ilmaisen suunnitelman avulla. Muista kirjautumistietosi MQTT -palvelimelle (käyttäjätunnus ja salasana).
  2. Rekisteröidy IFTTT: hen. Luo uusi sovelma "Webhooks IFTTT -sovellusilmoitus". Käytä "Matkapuhelinilmoitusta" WebHookds -tapahtuman nimenä. Katso yllä olevasta kuvasta karkeat yksityiskohdat. Huomaa valmistajan sovellusliittymäavain.
  3. Lataa IFTTT -sovellus puhelimeesi ja kirjaudu sisään tunnuksillasi. Tämän avulla voit saada push -ilmoituksia.
  4. Rekisteröidy FREDiin ilmaisen suunnitelman avulla.
  5. Kun olet ottanut FRED -ilmentymän käyttöön, tuo siihen liitetyt kulut (3 palkkia -painike Tuo leikepöydältä). Liitä vain kunkin tiedoston sisältö (widgest.json, alerts.json, statistics.json) ja tuo se.
  6. Muokkaa yhtä MQTT -solmuista (yksi riittää) päivittääksesi CloudMQTT -kirjautumistietosi.
  7. Muokkaa IFTTT -solmua ja päivitä IFTTT -valmistajan sovellusliittymäavain.

Vaihe 4: Ohjelmoi NodeMCU ja roskakorin kapasiteetin kalibrointi

Kun kaikki on kytketty, meidän on ohjelmoitava NodeMCU sopivalla ohjelmistolla (luonnos) niin, että se todella hyödyntää kaikki siihen liittyvät asiat ja kommunikoi Internetin kanssa.

  1. Lataa ja asenna Arduino IDE täältä.
  2. Asenna ja aseta NodeMCU -korttityyppi seuraavan ohjeen alussa kuvatulla tavalla.
  3. Asenna seuraavat kirjastot (Sketch Include Library Manage Libraries…):

    1. Adafruit MQTT -kirjasto (Adafruit)
    2. DHT -anturikirjasto (Adafruit)
    3. SharpIR (Giuseppe Masino)
    4. EEPROMAnything - selitys täällä.
  4. Avaa GarbageCanOnline.ino -tiedosto ja päivitä seuraavat:

    1. WiFi -tunnuksesi (WLAN_SSID, WLAN_PASS)
    2. CloudMQTT -kirjautumistietosi (MQTT_USERNAME, MQTT_PASSWORD)
    3. Jos tämä on toinen tai useampi roskakori, vaihda roskakorin tunnus (GARBAGECAN_ID)
  5. Lataa päivitetty luonnos NodeMCU -laitteeseesi.
  6. Avaa sarjamonitori -ikkuna (Ctrl+M) ja varmista, että se pystyy julkaisemaan anturitiedot CloudMQTT: lle.
  7. Kun kansi on suljettu ja roskakori on tyhjä, paina pitkään kalibrointipainiketta kalibroidaksesi roskakorin kapasiteetin.
  8. Roskakori on valmiina. Voit irrottaa sen tietokoneesta ja liittää sen sille varattuun paikkaan USB -virtalähteen avulla.

Vaihe 5: Järjestelmän käyttö

Järjestelmän käyttäminen
Järjestelmän käyttäminen
Järjestelmän käyttäminen
Järjestelmän käyttäminen
Järjestelmän käyttäminen
Järjestelmän käyttäminen

Jos olet päässyt tähän asti, kaiken pitäisi olla kunnossa. Tehdään nopea yleiskatsaus järjestelmän eri käyttötarkoituksiin.

Oletamme, että sinulla on vain yksi roskakori yhdistettynä, mutta sitä on helppo lisätä myöhemmin!

Huomaa ensin tärkein kojelauta. Sinun pitäisi olla aloitusnäytössä ja nähdä roskakorin täyteys, lämpötila ja kosteus. Voit hallita puhelimen ilmoituksia ja kojelaudan hälytyksiä vasemmalla olevilla kytkimillä.

Kun roskat voivat muuttua roskasäiliön sisällä, mittari muuttuu vastaavasti. Tämä koskee myös lämpötila- ja kosteuskaavioita.

Kun täyttöaste saavuttaa 85% -90% (tarkka kynnys riippuu lämpötilasta ja kosteudesta) tai tapahtuu anturivirhe, saat ilmoituksen haluamallasi menetelmällä. Saat ilmoituksen kerran tunnissa roskakoria kohden.

Tilastot -näkymässä näet tällä hetkellä täydellisimmän ja kuumimman roskakorin. Miellyttävä otsikko, jos voimme sanoa…

Vaihe 6: Virtauksen ymmärtäminen

Virtauksen ymmärtäminen
Virtauksen ymmärtäminen
Virtauksen ymmärtäminen
Virtauksen ymmärtäminen
Virtauksen ymmärtäminen
Virtauksen ymmärtäminen
Virtauksen ymmärtäminen
Virtauksen ymmärtäminen

Kuten olet todennäköisesti jo huomannut, järjestelmässä on paljon "liikkuvia osia". Yritämme selvittää, miten asiat liittyvät toisiinsa.

Ensinnäkin meillä on roskakori NodeMCU: n ja sen antureiden kanssa. Meillä voi olla paljon näitä - vain "kopioita" toisistamme.

NodeMCU mittaa roskakoriin sijoitetut eri anturit ja julkaisee tiedot MQTT -palvelimelle (MQTT -protokolla). Voit ajatella MQTT -palvelinta suurena tiedonvaihtona, jolle monet roska -astiat voivat ilmoittaa tietonsa.

Toinen entiteetti, joka muodostaa yhteyden MQTT-palvelimeen, on Node-RED. Node-RED kuuntelee erilaisia viestejä, jotka tulevat aistitietoja kuljettavasta roskakorista, ja soveltaa siihen logiikkaansa. Se toimii hyödyntämällä "tiedonkulkuja". Aina kun viesti vastaanotetaan, sen tyypin (MQTT -aihe) perusteella se siirtyy tiettyihin toimintoketjuihin, jotka lopulta aktivoivat järjestelmän eri ominaisuudet (kojelaudan päivittäminen, hälytysten lähettäminen jne.) että Node-RED on järjestelmän "aivot". Se on tietoinen kaikesta, mitä tapahtuu kaikkialla, ja voi toimia sen mukaisesti.

Node-RED: n sisälle olemme rakentaneet kolme päävirtaa:

  1. Widgetit - Node -REDiin syötettävät aistitiedot näytetään kojelaudalla mittarien ja kaavioiden kautta.
  2. Hälytykset - Aistitietoja käsitellään päätettäessä, tuleeko hälytys (kojelaudalta vai älypuhelinsovelluksesta). Täyttöaste, lämpötila ja kosteus otetaan huomioon päätettäessä ilmoittaa käyttäjälle, että roskakori on täynnä. Myös aistivirheet raportoivat sama virtaus.
  3. Tilastot - Aistitiedot kootaan näyttämään täydellisimmät ja kuumimmat roskakorit.

Jotta Node-RED lähettää push-ilmoituksen, se muodostaa yhteyden IFTTT-palveluun (HTTP-protokollalla). Se aktivoi tietyn IFTTT -tapahtuman ja siihen liittyvän ilmoitustekstin, ja IFTTT lähettää ilmoituksen älypuhelimeemme (HTTP- ja XMPP -protokollat).

Yllä olevista kuvista saat paremman käsityksen (a) järjestelmän yleisestä rakenteesta ja (b) Node-REDin sisällä olevasta 3 eri tietovirrasta

Vaihe 7: Haasteet, rajoitukset ja tulevaisuuden suunnitelmat…

Haasteet

Suurimmat haasteet tässä projektissa olivat enimmäkseen MQTT- ja Node-RED-palvelujen käsittely. Käytimme ensin AdafruitIO: ta, mutta sen mukautettu MQTT -toteutus ei ollut meille hyvä. Ei ollut kätevää työskennellä sen "syötteiden" kanssa Node-RED: n sisällä. Siksi valitsimme lopulta CloudMQTT: n, joka perustuu Mosquitto MQTT -palvelimeen ja on paljon vakio. Sitten siirryimme käsittelemään Node-REDia, joka oli melko haastavaa, lähinnä siksi, että Node-RED on peto. Esimerkiksi se on meidän näkökulmastamme paljon kattavampi ja ammattimaisempi kuin IFTTT. Meidän piti säätää ja oppia käyttämään sen virtauspohjaista suunnittelutapaa rakentaaksemme vaaditut järjestelmän ominaisuudet. Lisäksi yksi sen suurimmista eduista on javascript -koodin tuki, mutta kesti hetken tottua, koska emme ole javascript -ohjelmoijia. Kaikesta tästä huolimatta nautimme todella työskentelystä tämän työkalun kanssa ja huomasimme sen olevan erittäin mielenkiintoinen ja hyödyllinen.

Rajoitukset

Rajoitusten osalta ensimmäinen olisi se, että käytimme vain ilmaisia palveluja, eivätkä ne salli täysimittaista käyttöä. Ilmainen CloudMQTT-suunnitelma ei salli enempää kuin 5 rinnakkaisyhteyttä, mikä tarkoittaa, että meillä voi olla vain 4 roska-astiaa ja Node-RED. Ilmainen FRED Node-RED -suunnitelma mahdollistaa 24 tunnin suoran käytön, minkä jälkeen sinun on kirjauduttava sisään manuaalisesti ja nollattava ajastin. Nämä ongelmat ovat kuitenkin helposti ratkaistavissa joko suorittamalla nämä palvelut paikallisesti tai maksamalla hieman ylimääräistä rajoitusten poistamiseksi. Toinen rajoitus on se, että kun lisäät neljännen roskakorin ja siitä eteenpäin, hänen on muokattava manuaalisesti widget-kulkua solmun-PUNAISESSA lisätäkseen sen sopivat widgetit.

Tulevaisuudensuunnitelmat

Meillä oli ideoita järjestelmän parantamiseksi ja laajentamiseksi edelleen:

  1. Siirry muihin kuin ilmaisiin pilvipalveluihin. (yksi työpäivä).
  2. Roskakompressorin lisääminen roskakoriin vähentää siten tyhjennystiheyttä. (4 kk työtä)
  3. Työskentely kaupunkien ja teollisuuden roskakorien kanssa parantaakseen kaupungin roskia käsittelevien kaupunkiautojen tehokkuutta. Tämä merkitsisi kojelaudan ja ilmoitusjärjestelmän parantamista huomattavasti, jotta kuorma -autonkuljettajat voivat suunnitella reittinsä paljon paremmin käsitellessään roskia. (6 kk työtä).
  4. Kierrätyskykyjen lisääminen roskakoriin, kuten kyky kaataa erityisiä biologisia liuoksia roskakoriin ja auttaa kierrättämään se, kun se on vielä roskakorin sisällä. Sitä voidaan käyttää kotimaassa esimerkiksi puutarhan kompostin tuottamiseen, mutta sitä voidaan käyttää myös teollisissa tölkeissä. (6 kk työtä).

Suositeltava: