Cuprins:

IDC2018IOT conectat pentru animale de companie, apă și sistem de monitorizare: 7 pași
IDC2018IOT conectat pentru animale de companie, apă și sistem de monitorizare: 7 pași

Video: IDC2018IOT conectat pentru animale de companie, apă și sistem de monitorizare: 7 pași

Video: IDC2018IOT conectat pentru animale de companie, apă și sistem de monitorizare: 7 pași
Video: Ce înseamna semnul tau din nastere 2024, Noiembrie
Anonim
Image
Image
Sistem IDC2018IOT conectat pentru alimente, apă și monitor pentru animale de companie
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 grijulii de animale de companie, vrem să ne asigurăm că cei dragi noștri rămân sănătoși, hrăniți și bineînțeles NU culcați pe canapea (ticălosule!). Este timpul să nu mai cereți favoruri sau chiar să plătiți pentru astfel de servicii.

Cu acest proiect mișto ne propunem să vă oferim capacitatea de a vă face singuri (am auzit că este un lucru acum). Vom construi o soluție pentru a ne monitoriza mai bine animalele de companie și chiar vom lua măsuri în timp ce ne aflăm la birou, la școală sau doar petrecem timpul cu prietenii sau alte persoane semnificative.

Acest sistem vă va permite să vă hrăniți animalul de companie de la distanță în timp ce controlați cantitatea de mâncare pe care o turnați din recipient, umpleți vasul de apă ori de câte ori acesta este gol. În plus, acum putem monitoriza nivelurile de apă ale bolului în timp real, putem măsura conținutul recipientului de alimente și cel mai important, putem urmări animalul de companie în direct, folosind un modul simplu de cameră.

Despre noi

Tomer Maimon, Gilad Ram și Alon Shprung. Trei studenți pasionați în informatică din IDC Herzeliya. Acesta este primul nostru proiect Instructables ca parte a unui atelier IoT - sperăm că veți găsi interesant și distractiv de construit!

Pasul 1: Înțelegerea arhitecturii:

Înțelegerea arhitecturii
Înțelegerea arhitecturii
Înțelegerea arhitecturii
Înțelegerea arhitecturii

Putem împărți acest sistem în două părți principale:

  1. Canale de date primite:

    • Senzor de apă - eșantionarea nivelurilor de apă din interiorul bolului pentru animale de companie, datele sunt transmise de la unitatea Node-MCU către serverul Blynk și în cele din urmă sunt prezentate prin intermediul Pet Dashboard.
    • Senzor sonar - eșantionarea conținutului recipientului pentru alimente, datele sunt transmise de la unitatea Arduino (cu extensie de ecran Ethernet) către serverul Blynk și în cele din urmă sunt prezentate prin intermediul tabloului de bord Pet.
    • Pi Camera Module - eșantionează în mod constant cadre ale zonei pentru animale de companie, Pi găzduiește propriul server care furnizează fluxul live tabloului de bord al animalelor de companie.
  2. Flux de comandă:

    • Buton de alimentare (tablou de bord) - actualizarea unei valori de pin virtuale prin Blynk, funcția relevantă este declanșată pe placa Arduino, Servo se deplasează apoi pentru a permite alimentelor să treacă prin capac.
    • Give Water (Dashboard) - actualizează în mod activ o valoare virtuală a pinului prin Blynk, funcția relevantă este declanșată pe placa Node-MCU, releul este pornit, pompa de apă va începe să curgă apa în bolul animalului de companie.
    • Feed pentru animale de companie (tablou de bord) - încorporat în tabloul de bord și care prezintă date live prin intermediul serverului balon care rulează pe dispozitivul Pi.

Pasul 2: Lista pieselor

Lista pieselor
Lista pieselor
Lista pieselor
Lista pieselor
Lista pieselor
Lista pieselor

Pentru a începe să lucrați la acest sistem, veți avea nevoie de următoarele piese (sau similare):

  1. Fizic:

    • Container pentru alimente: Am folosit o țeavă industrială pe două fețe de 45 cm, pe care am cumpărat-o într-un magazin universal. Este important să aveți 2 ieșiri. Una pentru măsurarea conținutului și a doua ieșire pentru mecanismul de deschidere / închidere.
    • Bandă pentru conducte: pentru a menține lucrurile împreună;)
    • Jumper Wires: Cu cât mai mult, cu atât mai bine, întotdeauna bine să ai ceva în plus dacă ceva nu merge bine.
    • Cablu Ethernet: Pentru conectarea Arduino (cu ecran Ethernet) la internet.
    • Cutie de grădinărit: Utilizată ca recipient pentru apă și pompă de apă.
    • Tub scurt de apă: conectat la pompă și turnă apă în vasul animalului de companie.
  2. Senzori:

    • WINGONEER Senzor de nivel al apei: Măsurați nivelurile de apă din castronul animalului de companie.
    • Senzor sonar - Măsurați distanța nivelului alimentelor de la capacul superior din interiorul recipientului.
    • Releu TONGLING: ne permite să pornim / oprim pompa de apă care curge apa.
    • Modul de cameră Pi: conectat la un dispozitiv Pi zmeură și transmite în flux imagini ale zonei pentru animale de companie.
    • Servo generic: Blochează și deblochează recipientul pentru alimente.
  3. Dispozitive / plăci electronice:

    • Arduino Uno: Controlează implementarea unității de containere pentru alimente.
    • Arduino Ethernet Shield: Oferă conexiune la internet la placa noastră.
    • NodeMCU (ESP-8266): Controlează unitatea de apă, atât pentru măsurarea cât și pentru turnarea apei. Această placă are capacitatea de a se conecta prin WiFi.
    • Raspberry Pi 3 - găzduiește serverul camerei și oferă feed-uri live tabloului de bord al animalelor de companie.
    • Pompa de apă submersibilă VicTsing 80 GPH: curge apa din cutia de grădinărit în castron, împreună cu tubul de apă.

Pasul 3: Cablarea și plasarea lucrurilor împreună

Cablarea și plasarea lucrurilor împreună
Cablarea și plasarea lucrurilor împreună
Cablarea și plasarea lucrurilor împreună
Cablarea și plasarea lucrurilor împreună
Cablarea și plasarea lucrurilor împreună
Cablarea și plasarea lucrurilor împreună

Cablare

Înainte de a începe, este recomandat să plasați Arduino / Node-MCU pe o placă pentru a facilita punerea tuturor firelor împreună și plasarea acestuia în orice locație fizică. În plus, se recomandă utilizarea firelor lungi pentru a preveni erorile care decurg din detașarea cablurilor. V-am furnizat o schemă de conectare pentru Node-MCU (unitatea de apă) și Arduino (unitatea de alimentare).

  1. Unitate alimentară (Arduino):

    • Senzor sonar:

      • GND (Negru) = GND
      • VCC (roșu) = 5V
      • Trig (Violet) = 3
      • Ecou (albastru) = 4
    • Servo:

      • GND (Negru) = GND
      • VCC (roșu) = 5V
      • Semnal (galben) = 9
  2. Unitate de apă (nod):

    • Senzor nivel apă:

      • S (Albastru) = A0
      • + (Roșu) = 3v3
      • - (Negru) = GND
    • Releu (cablat electric la pompa de apă):

      • IN (Galben) = D1
      • VCC (Roșu) = Vin
      • GND (Negru) = GND
  3. Unitate de cameră (Pi):

    • Senzor cameră:

      • Conectați-vă la portul unic al camerei Pi (cablu flux)
      • Dacă doriți să aflați mai multe despre Pi cu modulul cameră - Link

Asamblarea pieselor împreună

În această parte, sunteți binevenit să personalizați și să modificați acest proiect pentru a-l „face al vostru”. Dar vă vom oferi imagini și descriere pentru a reconstrui versiunea noastră a produsului.

  1. Unitatea alimentară (Arduino): Recipientul este destul de drept, ne vom concentra pe realizarea celor două capace.

    • Capac superior: Tăiați 2 găuri în capac pentru ca senzorul Sonar să se potrivească (vezi imaginea atașată).
    • Capac inferior + Mecanism: Începeți cu preluarea unuia dintre accesoriile din plastic (furnizate împreună cu servo-senzorul) și construiți o formă „Sledge Hammer” folosind bandă adezivă / bastoane de lemn (am folosit doar bandă). Apoi, atașați-l servo. Acum, avem nevoie de 2 găuri pe capacul propriu-zis. Primul ar trebui să permită servomotorului să se încadreze în mecanismul pe care l-am construit plasat pe „partea interioară” a capacului. Tăiați o altă gaură pe partea laterală a „capului de ciocan” pe care ați creat-o. În acest fel, de fiecare dată când servo-ul se deschide, coada ciocanului va mătura mâncarea spre ieșire și va împiedica blocarea bucăților mari.
  2. Unitate de apă (Node-MCU): pur și simplu conectați tubul de apă la pompa de apă, așezați-l acum în cutia de grădinărit (asigurați-vă că NU așezați partea greșită cu releul și firele electrice în interiorul apei).
  3. Unitate cameră: tot ce trebuie să faceți este să plasați modulul Pi cu cameră într-o locație la alegere.

Pasul 4: Configurați Blynk

Configurați Blynk
Configurați Blynk
Configurați Blynk
Configurați Blynk

Toate capacitățile de la distanță din acest proiect se bazează pe Blynk. Acest serviciu ne oferă practic un server Web gratuit și API RESTful pentru comunicarea cu dispozitivele noastre Arduino / Node-MCU prin internet folosind protocolul HTTP. Blynk ne permite să definim pinii virtuali, care vor fi folosiți ca adresă pentru executarea funcțiilor specifice legate de turnarea apei, alimentarea și eșantionarea diferiților senzori (am făcut acea parte pentru dvs., tot ce trebuie să faceți este să obțineți propriul jeton de aplicație, care va fi explicată în continuare).

Cum să obțin indicativul meu de autentificare Blynk

  1. Descărcați aplicația Blynk prin AppStore / PlayStore pentru dispozitivul dvs. mobil.
  2. Înscrieți-vă la acest serviciu (este gratuit).
  3. Porniți un proiect nou, asigurați-vă că selectați dispozitivul corect (în cazul nostru ESP8266).
  4. După creare, va fi trimis un e-mail cu JOC DE AUTENTICARE - Salvați jetonul pentru pașii următori.

Notă: Blynk poate fi utilizat pe deplin prin intermediul aplicației, dar am decis să implementăm propriul nostru tablou de bord personalizat.

În cele din urmă, pentru a trece la pasul următor, ar trebui să descărcați și să instalați biblioteca Blynk - Link (treceți la partea 3)

Pasul 5: configurați recipientul pentru alimente, pompa de apă și camera foto live

Configurați containerul pentru alimente, pompa de apă și camera live
Configurați containerul pentru alimente, pompa de apă și camera live
Configurați containerul pentru alimente, pompa de apă și camera live
Configurați containerul pentru alimente, pompa de apă și camera live

În acest moment, am terminat de asamblat toate piesele împreună și am obținut blynkAuthAppToken (a se vedea pasul 3).

V-am furnizat tot codul de care aveți nevoie pentru a rula acest proiect, tot ce trebuie să faceți este să schimbați câteva variabile din cod, ceea ce îl va face să fie propriul dvs. sistem privat.

În primul rând, începeți cu descărcarea IDE-ului Arduino (dacă nu ați făcut-o încă) - Link

Container pentru alimente Arduino

  1. Configurați IDE pe placa Arduino: Instrumente -> Placă -> Arduino / Genuino Uno
  2. Asigurați-vă că aveți aceste biblioteci instalate: Schiță -> Includeți bibliotecă -> Gestionați bibliotecile

    Releu (De Rafael)

  3. Deschideți fișierul de schițe PetFeeder.ino, configurați următorii parametri (consultați imaginea atașată pentru ajutor):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Compilați și încărcați schița pe dispozitivul dvs. Arduino.

Unitate de apă Node-MCU

  1. Configurați IDE pe placa Node-MCU:

    Consultați prima parte a acestui instructiv pentru explicații detaliate

  2. Asigurați-vă că aveți aceste biblioteci instalate: Schiță -> Includeți bibliotecă -> Gestionați bibliotecile

    Manager WiFi (de tzapu)

  3. Deschideți fișierul de schițe PetFeeder.ino, configurați următorii parametri (consultați imaginea atașată pentru ajutor):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "YOUR_WIFI_SSID"; // Practic este numele rețelei WiFi
    • pass = "YOUR_WIFI_PASSWORD"; // dacă nu aveți parolă, utilizați șirul gol ""
  4. Compilați și încărcați schița pe dispozitivul dvs. Node-MCU.

Modul Pi Live Camera

  1. Conectați modulul camerei pi
  2. Rulați „sudo raspi-config” și activați opțiunea „cameră”.
  3. Testați camera utilizând comanda „raspistill” pentru a captura o imagine

    r aspistill -o image.jpg

  4. Setați serverul camerei web Flask:

    • Instalați toate cerințele utilizând pip install -r requirements.txt
    • Utilizați python pentru a rula camera_server.py
    • Verificați-l la 127.0.0.1:5000/video_feed
  5. Setați serverul web Flask să ruleze la pornire:

    • Adăugați următoarea linie la /etc/rc.local (înainte de linia de ieșire):

      python /camera_server.py

Pasul 6: Cum se utilizează panoul de control

Cum se folosește panoul de control
Cum se folosește panoul de control

Înființat

Această parte este destul de simplă, tot ce trebuie să faceți este să introduceți fișierul „blynk app token” în fișierul „index.js” după cum urmează:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // utilizați același simbol din pașii anteriori.

Utilizare

  1. Deschideți tabloul de bord făcând dublu clic pe fișierul „index.html”.
  2. Tabloul de bord va testa automat sistemul la fiecare 10 minute.
  3. Măsurile pentru recipientul pentru apă și alimente pot fi luate manual.
  4. Butoanele „Dați apă” și „Hrăniți” sunt folosite pentru a vă alimenta activ animalul cu hrană și apă.
  5. Partea de jos a tabloului de bord va prezenta fluxul live de la modulul camerei dacă ați urmat cu atenție instrucțiunile pasului anterior.

Notă: dacă doriți să personalizați de câte ori se deschide recipientul pentru alimente atunci când hrăniți, deschideți fișierul „index.js” și schimbați „valoarea” de pe următoarea linie de la „3” la orice număr la alegere:

fetch (baseURL + '/ update / V1? value = 3');

Pasul 7: Provocări, limite și planuri de viitor

Provocări

Principalele provocări pentru noi în acest proiect au fost legate de proiectarea mecanismului de deschidere / închidere a containerului de alimente și crearea unui cod concurent stabil pentru controlul și măsurarea unității alimentare. Cred că am încercat cel puțin 4 versiuni diferite până când am fost mulțumiți. Principala preocupare a fost alimentele care blocau ieșirea. Pentru a preveni acest lucru, am ales un design Sledge-Hammer, în acest fel ori de câte ori deschidem recipientul, coada „ciocanului” mătură mâncarea spre ieșire. Mai mult, folosirea unui tub cu două laturi ne-a făcut viața mult mai simplă în timp ce construim recipientul pentru alimente. Un astfel de obiect este perfect pentru plasarea mecanismului de ieșire pe o parte și un senzor de distanță pe cealaltă parte pentru măsurarea conținutului său.

Limite

În această fază a proiectului, există câteva limitări ale sistemului:

  1. Nu este complet automatizat, ceea ce înseamnă că alimentarea și turnarea apei se face manual prin intermediul tabloului de bord de monitorizare fără planificatoare inteligente (care ar putea fi adăugate în viitor sau implementate de dvs.!).
  2. Tabloul de bord rulează local de pe propriul laptop, pentru a face mai accesibil poate fi găzduit pe platforme populare precum „Heroku”.
  3. Am folosit un modul de cameră foarte simplu, care poate fi înlocuit cu un modul mult mai complicat pentru a permite o calitate a imaginii mai bună și posibilă adăugarea unui canal de comunicare cu animalul dvs. de companie (folosind un difuzor).

Planuri de viitor

Dacă am avea timp și buget pentru a continua dezvoltarea acestui sistem, am avut în vedere câteva idei și un posibil program:

  1. Adăugarea unui sistem automat de programare pentru hrănirea animalelor de companie - 2 ~ 3 zile de muncă.
  2. Construirea unui site web pentru a permite utilizatorilor sistemului nostru să creeze tablou de bord personalizat, găzduit online și accesibil de pe orice dispozitiv conectat - 1-2 luni de muncă.
  3. Lucrăm la o versiune industrială pentru acest sistem, permițând mai multor proprietari de animale să controleze mai bine și să comunice online cu animalele lor de companie, am avut mult interes de la prietenii care au văzut rezultatul acestui instructabil. Deci, dacă aveți pasiunea de timp pentru a duce proiectul la nivelul următor - aveți un sprijin deplin!

Sperăm că ți-a plăcut să citești (și să sperăm că construiești!) Acest proiect:)

Recomandat: