Sommario:

IDC2018IOT Connected Pet Food, acqua e sistema di monitoraggio: 7 passaggi
IDC2018IOT Connected Pet Food, acqua e sistema di monitoraggio: 7 passaggi

Video: IDC2018IOT Connected Pet Food, acqua e sistema di monitoraggio: 7 passaggi

Video: IDC2018IOT Connected Pet Food, acqua e sistema di monitoraggio: 7 passaggi
Video: Man Falls OVERBOARD and Boat Keeps Going! | Wavy Boats | Haulover Inlet 2024, Luglio
Anonim
Image
Image
IDC2018IOT Connected Pet Food, Water e Monitor System
IDC2018IOT Connected Pet Food, Water e Monitor System

introduzione

Che tu sia uno studente sotto pressione, una persona che lavora sodo o semplicemente lontano da casa per più di poche ore al giorno. Come proprietari di animali premurosi, vogliamo assicurarci che i nostri cari rimangano sani, nutriti e, naturalmente, NON sdraiati sul divano (bastardo!). È ora di smettere di chiedere favori, o anche solo di pagare per tali servizi.

Con questo fantastico progetto miriamo a fornirti la possibilità di fare da te (ho sentito che ora è una cosa). Costruiremo una soluzione per monitorare meglio i nostri animali domestici e persino agiremo mentre siamo in ufficio, a scuola o semplicemente in giro con i nostri amici o altri significativi.

Questo sistema ti consentirà di nutrire il tuo animale domestico a distanza controllando la quantità di cibo che versi dal contenitore, riempiendo la ciotola dell'acqua ogni volta che si svuota. Inoltre, ora possiamo monitorare i livelli dell'acqua della ciotola in tempo reale, misurare il contenuto del contenitore di cibo e, soprattutto, guardare l'animale dal vivo utilizzando un semplice modulo telecamera.

Chi siamo

Tomer Maimon, Gilad Ram e Alon Shprung. Tre appassionati studenti di informatica dell'IDC Herzeliya. Questo è il nostro primo progetto Instructables come parte di un workshop IoT - speriamo che lo troverai interessante e divertente da costruire!

Passaggio 1: comprensione dell'architettura:

Capire l'architettura
Capire l'architettura
Capire l'architettura
Capire l'architettura

Possiamo dividere questo sistema in due parti principali:

  1. Canali dati in entrata:

    • Sensore dell'acqua: campionando i livelli dell'acqua all'interno della ciotola dell'animale domestico, i dati vengono trasmessi dall'unità Node-MCU al server Blynk e infine vengono presentati tramite la Pet Dashboard.
    • Sensore sonar: campionando il contenuto del contenitore di cibo, i dati vengono trasmessi dall'unità Arduino (con estensione dello shield Ethernet) al server Blynk e infine vengono presentati tramite la Pet Dashboard.
    • Modulo fotocamera Pi: campiona costantemente i fotogrammi dell'area dell'animale domestico, il Pi ospita il proprio server che fornisce il feed live alla Dashboard dell'animale domestico.
  2. Flusso di comando:

    • Pulsante Feed (Dashboard) - aggiornando un valore di pin virtuale tramite Blynk, la relativa funzione viene attivata sulla scheda Arduino, il Servo si muove per consentire il passaggio del cibo attraverso il coperchio.
    • Give Water (Dashboard) - aggiorna attivamente un valore pin virtuale tramite Blynk, la relativa funzione viene attivata sulla scheda Node-MCU, il relè viene acceso, la pompa dell'acqua inizierà a far scorrere l'acqua nella ciotola dell'animale.
    • Pet Live Feed (Dashboard) - integrato nel dashboard e che presenta dati in tempo reale tramite il server flask che viene eseguito sul dispositivo Pi.

Passaggio 2: elenco delle parti

Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti
Elenco delle parti

Per iniziare a lavorare su questo sistema, avrai bisogno delle seguenti parti (o simili):

  1. Fisico:

    • Contenitore per alimenti: abbiamo utilizzato un tubo industriale a due lati da 45 cm, che abbiamo acquistato in un grande magazzino di casa. È importante avere 2 uscite. Una per la misurazione del contenuto e una seconda uscita per il meccanismo di apertura/chiusura.
    • Nastro adesivo: per tenere insieme le cose;)
    • Ponticelli: più siamo meglio è, è sempre bene avere qualcosa in più se qualcosa va storto.
    • Cavo Ethernet: per collegare il nostro Arduino (con scudo ethernet) a Internet.
    • Lattina da giardinaggio: usata come contenitore per l'acqua e la pompa dell'acqua.
    • Tubo dell'acqua corto: collegato alla pompa e versa l'acqua nella ciotola dell'animale.
  2. Sensori:

    • Sensore di livello dell'acqua WINGONEER: misura il livello dell'acqua all'interno della ciotola dell'animale.
    • Sensore sonar - Misura la distanza del livello del cibo dal coperchio superiore all'interno del contenitore.
    • Relè TONGLING: permette di accendere/spegnere la pompa dell'acqua che fa scorrere l'acqua.
    • Modulo fotocamera Pi: collegato a un dispositivo Raspberry Pi e trasmette in streaming le immagini dell'area dell'animale domestico.
    • Servo generico: blocca e sblocca il contenitore del cibo.
  3. Dispositivi elettronici / Schede:

    • Arduino Uno: controlla l'implementazione dell'unità contenitore per alimenti.
    • Arduino Ethernet Shield: fornisce la connessione Internet alla nostra scheda.
    • NodeMCU (ESP-8266): controlla l'unità dell'acqua, sia per misurare che per versare l'acqua. Questa scheda ha la possibilità di connettersi tramite WiFi.
    • Raspberry Pi 3 - ospita il server della fotocamera e fornisce feed live al dashboard dell'animale domestico.
    • Pompa sommergibile dell'acqua VicTsing 80 GPH: fa scorrere l'acqua dalla lattina da giardinaggio alla ciotola, insieme al tubo dell'acqua.

Passaggio 3: cablaggio e posizionamento delle cose insieme

Cablaggio e posizionamento delle cose insieme
Cablaggio e posizionamento delle cose insieme
Cablaggio e posizionamento delle cose insieme
Cablaggio e posizionamento delle cose insieme
Cablaggio e posizionamento delle cose insieme
Cablaggio e posizionamento delle cose insieme

Cablaggio

Prima di iniziare, si consiglia di posizionare Arduino/Node-MCU su una breadboard per facilitare l'unione di tutti i cavi e il posizionamento in qualsiasi posizione fisica. Inoltre, si consiglia di utilizzare fili lunghi per evitare errori derivanti dal distacco del cavo. Ti abbiamo fornito uno schema elettrico per Node-MCU (Water Unit) e Arduino (Food Unit).

  1. Unità Alimentare (Arduino):

    • Sensore ecoscandaglio:

      • GND (Nero) = GND
      • VCC (rosso) = 5V
      • Trigonometro (Viola) = 3
      • Eco (Blu) = 4
    • Servo:

      • GND (Nero) = GND
      • VCC (rosso) = 5V
      • Segnale (giallo) = 9
  2. Unità Idrica (Nodo):

    • Sensore di livello dell'acqua:

      • S (Blu) = A0
      • + (Rosso) = 3v3
      • - (Nero) = GND
    • Relè (cablato elettricamente alla pompa dell'acqua):

      • IN (giallo) = D1
      • VCC (rosso) = Vin
      • GND (Nero) = GND
  3. Unità fotocamera (Pi):

    • Sensore della fotocamera:

      • Collegati alla porta della fotocamera singola del Pi (cavo di flusso)
      • Se cerchi di saperne di più su Pi con il modulo fotocamera - Link

Assemblare le parti insieme

In questa parte, puoi personalizzare e modificare questo progetto per "fartelo tuo". Ma ti forniremo immagini e descrizione per ricostruire la nostra versione del prodotto.

  1. Food Unit (Arduino): il contenitore è piuttosto semplice, ci concentreremo sulla creazione dei due coperchi.

    • Coperchio superiore: praticate 2 fori nel coperchio per far entrare il sensore sonar (vedi immagine allegata).
    • Coperchio inferiore + meccanismo: inizia prendendo uno degli attacchi di plastica (forniti con il servosensore) e costruisci una forma a "martello da mazza" usando nastro adesivo / bastoncini di legno (abbiamo usato solo nastro adesivo). Quindi, collegalo al servo. Ora, abbiamo bisogno di 2 fori sul coperchio stesso. Il primo dovrebbe consentire al servo di adattarsi al meccanismo che abbiamo costruito sul "lato interno" del coperchio. Taglia un altro foro in base al lato della "testa del martello" che hai creato. In questo modo, ogni volta che il servo si apre, la coda del martello spazzerà il cibo verso l'uscita ed eviterà che i pezzi grandi si incastrino tra loro.
  2. Unità idrica (Node-MCU): collega semplicemente il tubo dell'acqua alla pompa dell'acqua, ora posizionalo all'interno della lattina da giardinaggio (assicurati di NON posizionare la parte sbagliata con il relè e i cavi elettrici all'interno dell'acqua).
  3. Unità fotocamera: tutto ciò che devi fare è posizionare il Pi con il modulo della fotocamera in una posizione a tua scelta.

Passaggio 4: imposta Blynk

Configurazione Blynk
Configurazione Blynk
Configurazione Blynk
Configurazione Blynk

Tutte le funzionalità remote in questo progetto sono basate su Blynk. Questo servizio ci fornisce fondamentalmente un server Web gratuito e un'API RESTful per comunicare con i nostri dispositivi Arduino/Node-MCU su Internet utilizzando il protocollo HTTP. Blynk ci consente di definire pin virtuali, che verranno utilizzati come indirizzo per l'esecuzione di funzioni specifiche relative al versamento dell'acqua, all'alimentazione e al campionamento dei diversi sensori (abbiamo fatto questa parte per te, tutto ciò che devi fare è ottenere il tuo token dell'applicazione, che verrà spiegato in seguito).

Come ottenere il mio token di autenticazione Blynk

  1. Scarica l'app Blynk tramite AppStore/PlayStore per il tuo dispositivo mobile.
  2. Iscriviti a questo servizio (è gratuito).
  3. Avvia un nuovo progetto, assicurati di selezionare il dispositivo corretto (nel nostro caso ESP8266).
  4. Dopo la creazione, verrà inviata un'e-mail con TOKEN DI AUTENTICAZIONE - Salva il token per i passaggi successivi.

Nota: Blynk può essere completamente utilizzato tramite l'app, ma abbiamo deciso di implementare la nostra dashboard personalizzata.

Infine, per procedere al passaggio successivo, è necessario scaricare e installare la libreria Blynk - Link (passare alla parte 3)

Passaggio 5: configurare il contenitore per alimenti, la pompa dell'acqua e la telecamera live

Configura contenitore per alimenti, pompa dell'acqua e videocamera dal vivo
Configura contenitore per alimenti, pompa dell'acqua e videocamera dal vivo
Configura contenitore per alimenti, pompa dell'acqua e videocamera dal vivo
Configura contenitore per alimenti, pompa dell'acqua e videocamera dal vivo

A questo punto, abbiamo finito di assemblare tutte le parti insieme e abbiamo ottenuto il nostro blynkAuthAppToken (vedi passaggio 3).

Ti abbiamo fornito tutto il codice necessario per eseguire questo progetto, tutto ciò che devi fare è modificare alcune variabili nel codice, che lo renderanno "il tuo" sistema privato.

Prima di tutto, inizia con il download dell'IDE Arduino (se non l'hai ancora fatto) - Link

Contenitore per alimenti Arduino

  1. Configura l'IDE sulla scheda Arduino: Strumenti -> Scheda -> Arduino/Genuino Uno
  2. Assicurati di avere queste librerie installate: Schizzo -> Includi libreria -> Gestisci librerie

    Staffetta (di Rafael)

  3. Apri il file sketch PetFeeder.ino, configura i seguenti parametri (vedi immagine allegata per aiuto):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Compila e carica lo schizzo sul tuo dispositivo Arduino.

Nodo-MCU Water Unit

  1. Imposta l'IDE sulla scheda Node-MCU:

    Vedi la prima parte di questo istruibile per una spiegazione dettagliata

  2. Assicurati di avere queste librerie installate: Schizzo -> Includi libreria -> Gestisci librerie

    WiFi Manager (di tzapu)

  3. Apri il file di schizzo PetFeeder.ino, configura i seguenti parametri (vedi l'immagine allegata per aiuto):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "YOUR_WIFI_SSID"; // Fondamentalmente è il nome della tua rete WiFi
    • pass = "YOUR_WIFI_PASSWORD"; // se non hai la password, usa la stringa vuota ""
  4. Compila e carica lo schizzo sul tuo dispositivo Node-MCU.

Modulo Fotocamera Pi Live

  1. Connetti il modulo fotocamera pi
  2. Esegui " sudo raspi-config " e attiva l'opzione "fotocamera".
  3. Prova la fotocamera usando il comando "raspistill" per catturare un'immagine

    r aspistill -o image.jpg

  4. Imposta il server della webcam Flask:

    • Installa tutti i requisiti usando pip install -r requisiti.txt
    • Usa python per eseguire camera_server.py
    • Dai un'occhiata su 127.0.0.1: 5000/video_feed
  5. Imposta il server Web Flask per l'esecuzione all'avvio:

    • Aggiungi la seguente riga a /etc/rc.local (prima della riga di uscita):

      python /camera_server.py

Passaggio 6: come utilizzare il pannello di controllo

Come utilizzare il pannello di controllo
Come utilizzare il pannello di controllo

Impostare

Questa parte è abbastanza semplice, tutto ciò che devi fare è inserire il "token app blynk" nel file "index.js" come segue:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // usa lo stesso token dei passaggi precedenti.

utilizzo

  1. Aprire la dashboard facendo doppio clic sul file "index.html".
  2. La dashboard campiona automaticamente il sistema ogni 10 minuti.
  3. Le misure del contenitore di acqua e cibo possono essere prese manualmente.
  4. I pulsanti "Give Water" e "Feed" vengono utilizzati per fornire attivamente cibo e acqua al tuo animale domestico.
  5. La parte inferiore della dashboard presenterà il feed live dal modulo della fotocamera se hai seguito attentamente le istruzioni del passaggio precedente.

Nota: se desideri personalizzare il numero di volte in cui il contenitore del cibo si apre quando dai da mangiare, apri il file "index.js" e modifica il "valore" nella riga successiva da "3" a qualsiasi numero a tua scelta:

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

Passaggio 7: sfide, limiti e piani futuri

Sfide

Le principali sfide per noi in questo progetto riguardavano la progettazione del meccanismo di apertura/chiusura del contenitore per alimenti e la creazione di un codice simultaneo stabile per il controllo e la misurazione dell'unità alimentare. Credo che abbiamo provato almeno 4 versioni diverse finché non siamo rimasti soddisfatti. La preoccupazione principale era il cibo che bloccava l'uscita. Per evitare ciò, abbiamo scelto un design Sledge-Hammer, in questo modo ogni volta che apriamo il contenitore, la coda del "martello" sta spazzando il cibo verso l'uscita. Inoltre, l'utilizzo di un tubo a due lati ha reso la nostra vita molto più semplice durante la costruzione del contenitore per alimenti. Tale oggetto è perfetto per posizionare il meccanismo di uscita da un lato e un sensore di distanza dall'altro lato per misurarne il contenuto.

limiti

In questa fase del progetto, ci sono poche limitazioni al sistema:

  1. Non è completamente automatizzato, il che significa che l'alimentazione e il versamento dell'acqua vengono eseguiti manualmente tramite il dashboard di monitoraggio senza alcun programmatore intelligente (che potrebbe essere aggiunto in futuro o implementato da te!).
  2. La dashboard è in esecuzione localmente dal tuo laptop, per renderla più accessibile può essere ospitata su piattaforme popolari come "Heroku".
  3. Abbiamo utilizzato un modulo telecamera molto semplice, che può essere sostituito con un modulo molto più complicato per consentire una migliore qualità dell'immagine e l'eventuale aggiunta di un canale di comunicazione con il tuo animale domestico (utilizzando un altoparlante).

Progetti futuri

Se avessimo il tempo e il budget per continuare a sviluppare questo sistema, avremmo avuto in mente alcune idee e un possibile programma:

  1. Aggiunta del sistema di pianificazione automatica per l'alimentazione degli animali domestici - 2~3 giorni di lavoro.
  2. Costruire un sito web per consentire agli utenti del nostro sistema di creare dashboard personalizzati che sono ospitati online e accessibili da qualsiasi dispositivo connesso - 1-2 mesi di lavoro.
  3. Lavorando su una versione industriale per questo sistema, consentendo a più proprietari di animali domestici di controllare e comunicare meglio con i loro animali domestici online, abbiamo riscontrato molto interesse da parte degli amici che hanno visto l'esito di questo Instructable. Quindi, se hai la passione del tempo per portare il progetto al livello successivo, hai il pieno supporto!

Speriamo che ti sia piaciuto leggere (e, si spera, costruire!) questo progetto:)

Consigliato: