Taula de continguts:

IDC2018IOT Sistema d'alimentació, aigua i monitor d'aliments per a mascotes: 7 passos
IDC2018IOT Sistema d'alimentació, aigua i monitor d'aliments per a mascotes: 7 passos

Vídeo: IDC2018IOT Sistema d'alimentació, aigua i monitor d'aliments per a mascotes: 7 passos

Vídeo: IDC2018IOT Sistema d'alimentació, aigua i monitor d'aliments per a mascotes: 7 passos
Vídeo: Суп на Всю Семью! РАССОЛЬНИК в КАЗАНЕ! КАК ПРИГОТОВИТЬ 2024, Desembre
Anonim
Image
Image
IDC2018IOT Sistema d'alimentació, aigua i monitor d'aliments per a mascotes
IDC2018IOT Sistema d'alimentació, aigua i monitor d'aliments per a mascotes

Introducció

Tant si sou un estudiant sotmès a una pressió, com una persona treballadora o simplement fora de casa durant més de poques hores al dia. Com a propietaris de mascotes que ens preocupen, volem assegurar-nos que els nostres éssers estimats es mantinguin sans, alimentats i, per descomptat, NO estirats al sofà (bastard!). És hora de deixar de demanar favors, o fins i tot de pagar per aquests serveis.

Amb aquest projecte genial pretenem oferir-vos la capacitat de fer-ho vosaltres mateixos (he sentit que ara és una cosa). Construirem una solució per controlar millor les nostres mascotes i, fins i tot, actuarem a l’oficina, a l’escola o simplement passar l’estona amb els nostres amics o altres persones significatives.

Aquest sistema us permetrà alimentar la vostra mascota remotament mentre controleu la quantitat d'aliments que aboqueu del contenidor, ompliu el bol d'aigua sempre que quedi buit. A més, ara podem controlar els nivells d’aigua del bol en temps real, mesurar el contingut del contenidor d’aliments i, sobretot, veure la mascota en directe mitjançant un senzill mòdul de càmera.

Sobre nosaltres

Tomer Maimon, Gilad Ram i Alon Shprung: tres apassionats estudiants d’informàtica de l’IDC Herzeliya. Aquest és el nostre primer projecte Instructables com a part d’un taller de IoT; esperem que el trobeu interessant i divertit de construir.

Pas 1: entendre l'arquitectura:

Comprensió de l'arquitectura
Comprensió de l'arquitectura
Comprensió de l'arquitectura
Comprensió de l'arquitectura

Podem dividir aquest sistema en dues parts principals:

  1. Canals de dades entrants:

    • Sensor d’aigua: es mostren els nivells d’aigua a l’interior del bol per a mascotes, les dades es transmeten des de la unitat Node-MCU al servidor Blynk i finalment es presenten a través del Pet Dashboard.
    • Sensor de sonar: mostra el contingut del contenidor d’aliments, les dades es transmeten des de la unitat Arduino (amb extensió de blindatge Ethernet) al servidor Blynk i finalment es presenten a través del Pet Dashboard.
    • Mòdul de càmera Pi: mostra constantment fotogrames de la zona de mascotes, el Pi allotja el seu propi servidor que proporciona l’alimentació en directe al tauler de mascotes.
  2. Flux d'ordres:

    • Botó d'alimentació (Dashboard): s'actualitza un valor de pin virtual a través de Blynk, la funció corresponent s'activa a la placa Arduino, el Servo es mou llavors per permetre que els aliments passin per la tapa.
    • Give Water (Dashboard): actualitza activament un valor de pin virtual a través de Blynk, la funció corresponent s'activa a la placa Node-MCU, el relé està activat, la bomba d'aigua començarà a transmetre aigua al bol de la mascota.
    • Pet Live Feed (Dashboard): incrustat dins del tauler i que presenta dades en directe a través del servidor de flask que s’executa al dispositiu Pi.

Pas 2: Llista de parts

Llista de peces
Llista de peces
Llista de peces
Llista de peces
Llista de peces
Llista de peces

Per començar a treballar en aquest sistema, necessitareu les parts següents (o similars):

  1. Físic:

    • Contenidor d’aliments: hem utilitzat una canonada industrial de dues cares de 45 cm, que hem comprat en un gran magatzem domèstic. És important tenir dues sortides. Una per mesurar el contingut i la segona sortida per al mecanisme d'obertura / tancament.
    • Cinta adhesiva: per mantenir les coses juntes;)
    • Jumper Wires: com més millor, sempre és bo tenir algun extra si alguna cosa surt malament.
    • Cable Ethernet: per connectar el nostre Arduino (amb blindatge Ethernet) a Internet.
    • Llauna de jardineria: s’utilitza com a recipient per a l’aigua i la bomba d’aigua.
    • Tub d’aigua curt: connectat a la bomba i aboca aigua al bol de la mascota.
  2. Sensors:

    • Sensor de nivell d'aigua WINGONEER: mesureu els nivells d'aigua a l'interior del bol de la mascota.
    • Sensor de sonar: mesureu la distància del nivell dels aliments des de la tapa superior dins del recipient.
    • Relleu TONGLING: ens permet encendre / apagar la bomba d’aigua que raja l’aigua.
    • Mòdul de càmera Pi: connectat a un dispositiu Pi de gerds i emet imatges de la zona de mascotes.
    • Servo genèric: bloqueja i desbloqueja el contenidor d'aliments.
  3. Dispositius electrònics / taulers:

    • Arduino Uno: controla la implementació de la unitat de contenidors d’aliments.
    • Arduino Ethernet Shield: proporciona connexió a Internet a la nostra placa.
    • NodeMCU (ESP-8266): controla la unitat d’aigua, tant per mesurar com per abocar aigua. Aquest tauler té la possibilitat de connectar-se mitjançant WiFi.
    • Raspberry Pi 3: allotja el servidor de càmeres i proporciona informació en directe al tauler de mascotes.
    • Bomba d’aigua submergible VicTsing 80 GPH: fa fluir l’aigua de la llauna de jardineria al bol, juntament amb el tub d’aigua.

Pas 3: connectar i col·locar coses juntes

Cablatge i col·locació de coses juntes
Cablatge i col·locació de coses juntes
Cablatge i col·locació de coses juntes
Cablatge i col·locació de coses juntes
Cablatge i col·locació de coses juntes
Cablatge i col·locació de coses juntes

Cablejat

Abans de començar, es recomana col·locar l'Arduino / Node-MCU en una taula de treball per facilitar el muntatge de tots els cables i la seva ubicació en qualsevol lloc físic. A més, es recomana utilitzar cables llargs per evitar errors derivats del despreniment de cables. Us proporcionem un esquema de cablejat per al Node-MCU (unitat d’aigua) i l’Arduino (unitat d’alimentació).

  1. Unitat d'aliments (Arduino):

    • Sensor de sonar:

      • GND (Negre) = GND
      • VCC (vermell) = 5V
      • Trig (porpra) = 3
      • Ressò (blau) = 4
    • Servo:

      • GND (Negre) = GND
      • VCC (vermell) = 5V
      • Senyal (groc) = 9
  2. Unitat d'aigua (node):

    • Sensor de nivell d'aigua:

      • S (Blau) = A0
      • + (Vermell) = 3v3
      • - (Negre) = GND
    • Relé (cablejat elèctricament a la bomba d'aigua):

      • IN (groc) = D1
      • VCC (vermell) = Vin
      • GND (Negre) = GND
  3. Unitat de càmera (Pi):

    • Sensor de càmera:

      • Connecteu-vos al port d'una sola càmera del Pi (cable de flux)
      • Si voleu obtenir més informació sobre Pi amb el mòdul de càmera - Enllaç

Muntatge de peces juntes

En aquesta part, podeu personalitzar i modificar aquest projecte per "fer-lo vostre". Però us proporcionarem imatges i descripció per reconstruir la nostra versió del producte.

  1. Unitat d’aliments (Arduino): l’envàs és força senzill, ens centrarem en l’elaboració de les dues tapes.

    • Tapa superior: talleu 2 forats a la tapa perquè el sensor del sonar hi cabi (vegeu la imatge adjunta).
    • Tapa inferior + Mecanisme: comenceu per agafar un dels accessoris de plàstic (subministrats amb el sensor servo) i construïu una forma de "Martí de trineu" mitjançant cinta adhesiva / pals de fusta (només utilitzem cinta). A continuació, fixeu-lo al servo. Ara necessitem 2 forats a la tapa. El primer hauria de permetre que el servo s'ajustés al mecanisme que vam construir situat al "costat interior" de la tapa. Talleu un altre forat basat en el lateral del "cap de martell" que heu creat. D’aquesta manera, sempre que s’obri el servo, la cua del martell escombrarà els aliments cap a la sortida i evitarà que les peces grans s’enganxin.
  2. Unitat d'aigua (Node-MCU): simplement connecteu el tub d'aigua a la bomba d'aigua, ara col·loqueu-lo dins de la llauna de jardineria (assegureu-vos que NO col·loqueu la part incorrecta amb el relé i els cables elèctrics dins de l'aigua).
  3. Unitat de càmera: tot el que heu de fer és col·locar el mòdul Pi amb càmera en una ubicació que trieu.

Pas 4: configureu Blynk

Configuració de Blynk
Configuració de Blynk
Configuració de Blynk
Configuració de Blynk

Totes les funcions remotes d’aquest projecte es basen en Blynk. Aquest servei bàsicament ens proporciona un servidor web i una API RESTful gratuïts per comunicar-nos amb els nostres dispositius Arduino / Node-MCU a través d’Internet mitjançant el protocol HTTP. Blynk ens permet definir pins virtuals, que s’utilitzaran com a adreça per executar funcions específiques relacionades amb l’abocament d’aigua, l’alimentació i el mostreig dels diferents sensors (hem fet aquesta part per vosaltres, tot el que heu de fer és obtenir el vostre propi testimoni d’aplicació, que s’explicarà a continuació).

Com obtenir el meu testimoni d'autenticació Blynk

  1. Descarregueu l'aplicació Blynk mitjançant AppStore / PlayStore per al vostre dispositiu mòbil.
  2. Inscriviu-vos a aquest servei (és gratuït).
  3. Inicieu un nou projecte, assegureu-vos de seleccionar el dispositiu correcte (en el nostre cas ESP8266).
  4. Després de la creació, s'enviarà un correu electrònic amb AUTHENTICATION TOKEN: deseu el testimoni per als passos següents.

Nota: Blynk es pot utilitzar completament a través de l'aplicació, però hem decidit implementar el nostre propi tauler personalitzat.

Finalment, per passar al següent pas, haureu de descarregar i instal·lar la biblioteca Blynk - Enllaç (saltar a la part 3)

Pas 5: configureu el contenidor d'aliments, la bomba d'aigua i la càmera en directe

Configureu el contenidor d'aliments, la bomba d'aigua i la càmera en viu
Configureu el contenidor d'aliments, la bomba d'aigua i la càmera en viu
Configureu el contenidor d'aliments, la bomba d'aigua i la càmera en viu
Configureu el contenidor d'aliments, la bomba d'aigua i la càmera en viu

En aquest moment, hem acabat de muntar totes les peces juntes i hem obtingut el nostre blynkAuthAppToken (vegeu el pas 3).

Us hem proporcionat tot el codi que necessiteu per executar aquest projecte, tot el que heu de fer és canviar poques variables al codi, cosa que el convertirà en el vostre sistema privat.

Primer de tot, comenceu descarregant l’IDE Arduino (si encara no ho heu fet): enllaç

Contenidor d’aliments Arduino

  1. Configureu l'IDE a la placa Arduino: Eines -> Taula -> Arduino / Genuino Uno
  2. Assegureu-vos que teniu instal·lades aquestes biblioteques: Esbós -> Inclou biblioteca -> Gestiona les biblioteques

    Relleu (per Rafael)

  3. Obriu el fitxer d'esbós PetFeeder.ino, configureu els paràmetres següents (vegeu la imatge adjunta per obtenir ajuda):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Compileu i pengeu l’esbós al vostre dispositiu Arduino.

Unitat d'aigua Node-MCU

  1. Configureu l'IDE a la placa Node-MCU:

    Vegeu la primera part d’aquest instructiu per obtenir una explicació detallada

  2. Assegureu-vos que teniu instal·lades aquestes biblioteques: Esbós -> Inclou biblioteca -> Gestiona les biblioteques

    Gestor de WiFi (per tzapu)

  3. Obriu el fitxer d'esbós PetFeeder.ino, configureu els paràmetres següents (vegeu la imatge adjunta per obtenir ajuda):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "YOUR_WIFI_SSID"; // Bàsicament és el nom de la vostra xarxa WiFi
    • pass = "YOUR_WIFI_PASSWORD"; // si no teniu cap contrasenya, utilitzeu una cadena buida ""
  4. Compileu i pengeu l’esbós al dispositiu Node-MCU.

Mòdul de càmera Pi Live

  1. Connecteu el mòdul de càmera pi
  2. Executeu "sudo raspi-config" i activeu l'opció "càmera".
  3. Proveu la càmera amb l'ordre "raspistill" per capturar una imatge

    r aspistill -o image.jpg

  4. Estableix el servidor de càmera web Flask:

    • Instal·leu tots els requisits mitjançant pip install -r requirements.txt
    • Utilitzeu python per executar camera_server.py
    • Mireu-ho a 127.0.0.1:5000/video_feed
  5. Configureu el servidor web Flask perquè s'executi a l'arrencada:

    • Afegiu la línia següent a /etc/rc.local (abans de la línia de sortida):

      python /camera_server.py

Pas 6: Com utilitzar el tauler de control

Com utilitzar el tauler de control
Com utilitzar el tauler de control

Configuració

Aquesta part és bastant senzilla, tot el que heu de fer és inserir el fitxer "blynk app token" al fitxer "index.js" de la següent manera:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // utilitza el mateix testimoni dels passos anteriors.

Ús

  1. Obriu el tauler fent doble clic al fitxer "index.html".
  2. El tauler mostrarà el sistema automàticament cada 10 minuts.
  3. Es poden prendre mesures de contenidors d’aigua i aliments manualment.
  4. Els botons "Donar aigua" i "Alimentar" s'utilitzen per subministrar aigua i menjar a la vostra mascota activament.
  5. A la part inferior del tauler es mostrarà l’alimentació en directe del mòdul de la càmera si heu seguit amb atenció les instruccions del pas anterior.

Nota: si voleu personalitzar el nombre de vegades que s'obre el contenidor d'aliments quan s'alimenta, obriu el fitxer "index.js" i canvieu el "valor" de la línia següent de "3" a qualsevol número que trieu:

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

Pas 7: reptes, límits i plans de futur

Desafiaments

Els principals reptes per a nosaltres en aquest projecte estaven relacionats amb el disseny del mecanisme d'obertura / tancament del contenidor d'aliments i la creació d'un codi simultani estable per controlar i mesurar la unitat d'aliments. Crec que hem provat com a mínim 4 versions diferents fins que n’hem quedat satisfets. La principal preocupació eren els aliments que bloquejaven la sortida. Per evitar-ho, vam escollir un disseny de martell de trineu, d'aquesta manera cada vegada que obrim el contenidor, la cua del "martell" està arrasant menjar cap a la sortida. A més, l’ús d’un tub de dues cares ens va fer la vida molt més senzilla mentre construïm el contenidor d’aliments. Aquest objecte és perfecte per col·locar el mecanisme de sortida per un costat i un sensor de distància a l’altre per mesurar-ne el contingut.

Límits

En aquesta fase del projecte, hi ha poques limitacions al sistema:

  1. No està totalment automatitzat, cosa que significa que l’alimentació i l’abocament d’aigua es fan manualment a través del tauler de control sense cap programador intel·ligent (que es podria afegir en el futur o implementar-lo).
  2. El tauler s’executa localment des del vostre propi ordinador portàtil, per tal de fer-lo més accessible, es pot allotjar en plataformes populars com ara “Heroku”.
  3. Hem utilitzat un mòdul de càmera molt senzill, que es pot substituir per un mòdul molt més complicat per permetre una millor qualitat d’imatge i afegir un canal de comunicació amb la seva mascota (mitjançant un altaveu).

Plans futurs

Si tinguéssim el temps i el pressupost per continuar desenvolupant aquest sistema, tindríem en ment algunes idees i un possible calendari:

  1. Addició d’un sistema de programació automàtica per a l’alimentació de mascotes - 2 ~ 3 dies de treball.
  2. Construir un lloc web per permetre als usuaris del nostre sistema crear un tauler personalitzat allotjat en línia i accessible des de qualsevol dispositiu connectat: 1-2 mesos de treball.
  3. Treballant en una versió industrial d’aquest sistema, que permetés a més propietaris de mascotes controlar i comunicar-se millor amb les seves mascotes en línia, vam tenir molt d’interès per part d’amics que van veure el resultat d’aquest instructiu. Per tant, si teniu la passió del temps per portar el projecte al següent nivell, teniu tot el vostre suport!

Esperem que us hagi agradat llegir (i tant de bo construir!) Aquest projecte:)

Recomanat: