Cuprins:

IDC2018IOT GarbageCan-Online: 7 pași
IDC2018IOT GarbageCan-Online: 7 pași

Video: IDC2018IOT GarbageCan-Online: 7 pași

Video: IDC2018IOT GarbageCan-Online: 7 pași
Video: DOCUMENTAR RECORDER. 30 de ani de democrație 2024, Iulie
Anonim
Image
Image
Piese necesare
Piese necesare

Introducere

Toată lumea știe ce se întâmplă atunci când lăsăm coșul de gunoi prea mult timp fără a-l scoate. Ei bine, cel mai evident lucru este că nu există loc pentru mai multe gunoi, dar începe și să duhnească și devine foarte neplăcut.

Cu acest proiect, ne propunem să vă ajutăm să vă monitorizați coșurile de gunoi în jurul casei / spațiului de lucru / etc, astfel încât să puteți ști oricând când sunt pline și puteți lua măsuri imediate scoțând coșul de gunoi.

Sistemul vă va avertiza printr-o notificare telefonică sau o alertă de tablou de bord că trebuie să goliți coșul de gunoi. Sistemul ia în considerare nivelul de plenitudine al coșului de gunoi, dar și temperatura și umiditatea măsurate în interiorul acestuia. Cu toții suntem familiarizați cu urgența golirii coșurilor de gunoi în zilele fierbinți și umede …

Caracteristici principale

  1. Tabloul de bord de monitorizare:

    • Secțiunea principală:

      • Nivelul de plenitudine al fiecărei cutii de gunoi.
      • Temperatura și umiditatea fiecărui coș de gunoi.
    • Secțiunea de statistici:

      • Cea mai plină cutie de gunoi.
      • Cel mai fierbinte cos de gunoi.
  2. Sistem de alerte și notificări:

    • Sunt acceptate următoarele evenimente:

      • Coșul de gunoi este plin.
      • A apărut o eroare a senzorului.
    • Alertele de plenitudine țin cont de nivelul de plenitudine al coșului de gunoi, dar și de nivelul de temperatură și umiditate al coșului de gunoi.
    • Alertele pot fi trimise prin notificări telefonice și alerte de tablou de bord.
    • Fiecare canal de alertă poate fi activat și dezactivat prin intermediul tabloului de bord.
  3. Scalabilitate:

    • Folosind butonul de calibrare, este posibil să reglați sistemul la diferite coșuri de gunoi cu capacități diferite.
    • Este posibil să adăugați relativ ușor mai multe coșuri de gunoi. Se poate asambla același sistem pe un nou coș de gunoi, poate seta ID-ul coșului de gunoi și îl poate calibra (apăsând un buton). Pentru a avea mai mult de 3 coșuri de gunoi va fi necesară extinderea tabloului de bord (sarcină ușoară de realizat).

Cine suntem noi?

Acest proiect a fost creat (cu drag și dăruire!) De Rom Cyncynatus și Daniel Alima - Studenți ai IDC Herzliya ca proiect final pentru cursul nostru IoT. Sperăm că veți găsi munca noastră utilă și vă va plăcea să o folosiți!

Pasul 1: Piese necesare

Pentru a construi sistemul, va trebui să achiziționați următoarele componente și piese:

  1. Coș de gunoi (de preferință cu capac): Acesta va fi folosit pentru … ei bine … știi ce vom face cu acesta, nu?;)
  2. Breadboard: Pentru a conecta toate componentele diferite fără a utiliza nicio lipire.
  3. NodeMCU (ESP-8266): Responsabil de citirea senzorilor și de trimiterea informațiilor în cloud.
  4. Senzor IR la distanță - Sharp 0A41SK: Acest senzor va măsura cantitatea de gunoi (nivel de plenitudine) din interiorul cutiei.
  5. Senzor de temperatură și umiditate - DHT11: Acest senzor va măsura temperatura și umiditatea din coșul de gunoi.
  6. Comutator momentan: va fi utilizat pentru calibrarea senzorului de distanță în funcție de dimensiunea coșului de gunoi.
  7. Folie de aluminiu: va fi utilizată pentru a forma un detector pentru starea capacului - indiferent dacă este deschis sau închis.
  8. Sârme jumper: obțineți abundență, la diferite lungimi și culori. Va conecta totul împreună.
  9. Bandă pentru conducte: Va trebui să atașăm lucrurile la locul lor.
  10. Cablu Micro-USB: Pentru a conecta NodeMCU la computer pentru programare și ulterior pentru o sursă de alimentare.
  11. Alimentare USB (încărcător pentru smartphone): va furniza energie NodeMCU atunci când este instalat pe coșul de gunoi.

Pasul 2: Cablare și asamblare

Cablare și asamblare
Cablare și asamblare
Cablare și asamblare
Cablare și asamblare
Cablare și asamblare
Cablare și asamblare

Cablare

Așezați NodeMCU pe panou, astfel încât să fie convenabil să-l atașați ulterior la coșul de gunoi și conectați cablul USB la acesta. Apoi, consultați imaginea de mai sus pentru a conecta diferitele componente la NodeMCU. Asigurați-vă că utilizați fire lungi pentru senzori și fire de stare, astfel încât va fi convenabil să instalați sistemul și să folosiți coșul de gunoi cu el.

  • Senzor IR la distanță - Sharp 0A41SK:

    • Vin (Roșu) Vin
    • GND (Negru) GND
    • Vout (Galben) A0
  • Senzor de temperatură și umiditate - DHT11:

    • Vin (Roșu) 3V3
    • GND (Negru) GND
    • DATE (Galben) D4
  • Comutator momentan:

    • Pin1 D3
    • Pin2 GND
  • Firele de stare a capacului (deschidere / închidere):

    • Sârmă1 D2
    • Wire2 GND

Asamblare

Asamblarea sistemului pe coșul de gunoi este destul de simplă. Atașați placa de pâine la coșul de gunoi, de preferință aproape de capac. Folosiți fie bandă, fie cablu pentru a-l fixa în poziție. Atunci:

  1. Așezați senzorul de distanță IR în mijlocul capacului (din partea interioară!). Asigurați-vă că îl asigurați corect, altfel veți întâlni citiri false!
  2. Așezați senzorul de temperatură și umiditate undeva în interiorul coșului de gunoi. Fixați cu bandă.
  3. Acoperiți partea laterală a capacului și vârful coșului de gunoi cu folie de aluminiu. Asigurați-vă că există un contact bun atunci când capacul este închis. Acest lucru va semnaliza sistemul că coșul de gunoi este deschis sau închis. Apoi lipiți fiecare dintre firele de stare ale capacului într-una din folia de aluminiu și fixați-le cu bandă.

Pasul 3: Configurați MQTT, Node-RED și IFTTT

Configurați MQTT, Node-RED și IFTTT
Configurați MQTT, Node-RED și IFTTT
Configurați MQTT, Node-RED și IFTTT
Configurați MQTT, Node-RED și IFTTT
Configurați MQTT, Node-RED și IFTTT
Configurați MQTT, Node-RED și IFTTT

Cea mai mare parte a logicii proiectului este de fapt implementată în cloud. NodeMCU trimite datele către serverul MQTT, iar Node-RED le consumă și își aplică logica pe acesta (mai multe despre arhitectura aflată mai departe). În cele din urmă, pentru a transmite notificări push (alerte) către smartphone-ul nostru, am folosit IFTTT.

Vom folosi serviciile cloud CloudMQTT și FRED ca serverele noastre MQTT și respectiv Node-RED și vom folosi IFTTT pentru notificările push.

  1. Înscrieți-vă la CloudMQTT cu planul gratuit. Rețineți acreditările dvs. către serverul MQTT (nume de utilizator și parolă).
  2. Înscrieți-vă la IFTTT. Creați un nou applet de „Notificare aplicație Webhooks IFTTT”. Utilizați „Notificare telefon mobil” ca nume de eveniment WebHookds. Consultați imaginea de mai sus pentru detalii grozave. Rețineți cheia API a producătorului.
  3. Descărcați aplicația IFTTT pe telefon și conectați-vă cu acreditările dvs. Acest lucru vă va permite să primiți notificări push.
  4. Înscrieți-vă la FRED cu planul gratuit.
  5. Odată ce instanța FRED este funcțională, importați fluxurile atașate în ea (butonul 3 bare import din clipboard). Lipiți conținutul fiecărui fișier (widgest.json, alerts.json, statistics.json) și importați-l.
  6. Editați unul dintre nodurile MQTT (unul este suficient) pentru a vă actualiza acreditările CloudMQTT.
  7. Editați nodul IFTTT pentru a vă actualiza cheia API IFTTT maker.

Pasul 4: Programați NodeMCU și calibrarea capacității de gunoi

Odată ce avem totul conectat, trebuie să programăm NodeMCU cu software-ul adecvat (schiță), astfel încât să utilizeze de fapt toate lucrurile care sunt conectate la acesta și să comunice cu internetul.

  1. Descărcați și instalați Arduino IDE de aici.
  2. Instalați și setați tipul de placă NodeMCU așa cum este explicat la începutul următoarei instrucțiuni.
  3. Instalați următoarele biblioteci (Sketch Include Library Manage Libraries …):

    1. Biblioteca Adafruit MQTT (de Adafruit)
    2. Biblioteca de senzori DHT (de Adafruit)
    3. SharpIR (de Giuseppe Masino)
    4. EEPROM Orice - explicație aici.
  4. Deschideți fișierul GarbageCanOnline.ino și actualizați următoarele:

    1. Acreditările dvs. WiFi (WLAN_SSID, WLAN_PASS)
    2. Acreditările dvs. CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
    3. Dacă aceasta este o a doua cutie de gunoi sau mai multe, modificați codul de gunoi (GARBAGECAN_ID)
  5. Încărcați schița actualizată pe NodeMCU.
  6. Deschideți fereastra monitorului serial (Ctrl + M) și asigurați-vă că reușește să publice datele senzorilor în CloudMQTT.
  7. Acum, când capacul este închis și coșul de gunoi este gol, apăsați lung butonul de calibrare pentru a calibra capacitatea coșului de gunoi.
  8. Coșul de gunoi este gata. Puteți să îl deconectați de la computer și să-l conectați în locația desemnată utilizând sursa de alimentare USB.

Pasul 5: Utilizarea sistemului

Utilizarea sistemului
Utilizarea sistemului
Utilizarea sistemului
Utilizarea sistemului
Utilizarea sistemului
Utilizarea sistemului

Dacă ați ajuns până aici, totul ar trebui să fie funcțional. Să facem o prezentare rapidă a diferitelor aspecte de utilizare ale sistemului.

Presupunem că aveți conectat doar un singur coș de gunoi, dar este ușor să adăugați mai multe mai târziu!

Mai întâi, observați tabloul de bord principal. Ar trebui să vă aflați în ecranul de pornire, văzând nivelul de umplere, temperatură și umiditate al coșului de gunoi. Puteți controla notificările telefonice și alertele tabloului de bord folosind comutatoarele din stânga.

Când cantitatea de gunoi din interiorul coșului de gunoi se modifică, veți vedea modificările gabaritului în consecință. Acesta este și cazul graficelor de temperatură și umiditate.

Când nivelul de plenitudine atinge 85% -90% (pragul exact depinde de temperatură și umiditate) sau a apărut o eroare a senzorului, veți primi o notificare prin metodele preferate. Veți primi o notificare o dată la oră pentru fiecare coș de gunoi.

În vizualizarea Statistici, veți putea vedea cea mai plină coș de gunoi în prezent și cea mai fierbinte. Titlu lipsit de măgulire, dacă putem spune …

Pasul 6: Înțelegerea fluxului

Înțelegerea fluxului
Înțelegerea fluxului
Înțelegerea fluxului
Înțelegerea fluxului
Înțelegerea fluxului
Înțelegerea fluxului
Înțelegerea fluxului
Înțelegerea fluxului

După cum probabil ați observat până acum, sistemul are o mulțime de „părți mobile”. Vom încerca să clarificăm modul în care lucrurile sunt conectate între ele.

În primul rând, avem coșul de gunoi cu NodeMCU și senzorii săi. Putem avea o mulțime de acestea - doar „copii” reciproc.

NodeMCU măsoară diferiții senzori așezați în coșul de gunoi și publică datele pe serverul MQTT (protocolul MQTT). Vă puteți gândi la serverul MQTT ca la un mare schimb de informații, că multe coșuri de gunoi își pot raporta informațiile.

O altă entitate care se conectează la serverul MQTT este Node-RED. Node-RED ascultă diferitele mesaje provenite de la coșul de gunoi care transportă datele senzoriale și își aplică logica. Funcționează prin utilizarea „fluxurilor” de informații. De fiecare dată când este primit un mesaj, în funcție de tipul acestuia (subiect MQTT), acesta intră în lanțuri specifice de operații care ajung să activeze diferitele caracteristici ale sistemului (actualizarea tabloului de bord, trimiterea de alerte etc.) Ar fi foarte corect să spunem că Node-RED este „creierul” sistemului. Este conștient de tot ceea ce se întâmplă peste tot și poate lua măsuri în consecință.

În interiorul Node-RED am construit 3 fluxuri principale de informații:

  1. Widgeturi - Informațiile senzoriale introduse în Node-RED sunt apoi afișate pe tabloul de bord prin intermediul indicatorilor și al graficelor.
  2. Alerte - Informațiile senzoriale sunt procesate pentru a concluziona dacă ar trebui declanșată o alertă (pe tabloul de bord sau în aplicația pentru smartphone). Nivelul de plenitudine, cu temperatura și umiditatea sunt luate în considerare pentru a decide să informeze utilizatorul că coșul de gunoi este plin. De asemenea, erorile senzoriale sunt raportate de același flux.
  3. Statistici - Informațiile senzoriale sunt agregate pentru a afișa cele mai pline și mai fierbinți coșuri de gunoi.

Pentru ca Node-RED să trimită notificări push, acesta se conectează la un serviciu numit IFTTT (prin protocol HTTP). Activează un anumit eveniment IFTTT cu textul de notificare relevant, iar IFTTT trimite notificarea către smartphone-ul nostru (protocoale HTTP și XMPP).

Consultați imaginile de mai sus pentru a înțelege mai bine (a) structura generală a sistemului și (b) cele 3 fluxuri diferite de informații din interiorul Node-RED

Pasul 7: Provocări, limitări și planuri pentru viitor …

Provocări

Principalele provocări ale acestui proiect au fost în principal gestionarea serviciilor MQTT și Node-RED. Am folosit mai întâi AdafruitIO, dar implementarea sa personalizată MQTT nu a fost prea bună pentru noi. Nu a fost convenabil să lucrezi cu „fluxurile” sale în interiorul Node-RED. Prin urmare, am optat în cele din urmă pentru CloudMQTT, care se bazează pe serverul Mosquitto MQTT și este mult mai standard. Apoi am continuat să ne ocupăm de Node-RED, ceea ce a fost destul de provocator, mai ales pentru că Node-RED este o bestie. De exemplu, este mult mai cuprinzător și mai profesional decât IFTTT din punctul nostru de vedere. A trebuit să ne adaptăm și să învățăm cum să folosim abordarea de proiectare bazată pe flux pentru a construi caracteristicile noastre necesare ale sistemului. Mai mult, unul dintre cele mai mari avantaje ale sale este suportul codului javascript, dar a durat ceva timp să ne obișnuim, deoarece nu suntem programatori javascript. În ciuda tuturor acestor lucruri, ne-a plăcut foarte mult să lucrăm cu acest instrument special și am găsit că este foarte interesant și util.

Limitări

În ceea ce privește limitările, prima ar fi faptul că am folosit numai servicii gratuite și acestea nu vor permite să mergem la scară completă. Planul gratuit CloudMQTT nu va permite să avem mai mult de 5 conexiuni paralele, ceea ce înseamnă că putem avea doar 4 coșuri de gunoi și Node-RED. Planul gratuit FRED Node-RED permite doar 24 de ore de utilizare directă, după care trebuie să vă conectați manual și să resetați cronometrul. Cu toate acestea, aceste probleme sunt ușor de rezolvat fie prin executarea acestor servicii la nivel local, fie prin plata unui pic suplimentar pentru a ridica limitările. Cea de-a doua limitare este faptul că, atunci când cineva adaugă a patra cutie de gunoi și mai departe, el trebuie să editeze manual fluxul de widget-uri în Node-RED pentru a adăuga widgeturile corespunzătoare.

Planuri de viitor

Am avut câteva idei pentru a ne îmbunătăți și a extinde sistemul:

  1. Treceți la servicii cloud non-gratuite. (o singură zi de muncă).
  2. Adăugarea unui compresor de gunoi la coșul de gunoi, reducând astfel frecvența golirii acestuia. (4 luni de muncă)
  3. Lucrul cu coșurile de gunoi urbane și industriale pentru a îmbunătăți eficiența camioanelor urbane care manipulează gunoiul în oraș. Acest lucru ar însemna îmbunătățirea considerabilă a tabloului de bord și a sistemului de notificare, astfel încât șoferii de camioane să își poată planifica traseul mult mai bine atunci când manipulează gunoiul. (6 luni de muncă).
  4. Adăugarea abilităților de reciclare la coșul de gunoi, cum ar fi capacitatea de a turna soluții biologice speciale în coșul de gunoi și de a ajuta la reciclarea acestuia în timp ce se află încă în coșul de gunoi. Acest lucru poate fi utilizat pe piața internă, de exemplu, pentru a produce compost pentru grădini, dar poate fi utilizat în mod clar și pe cutii industriale. (6 luni de muncă).

Recomandat: