Sommario:

Dispenser IoT per animali domestici: 7 passaggi (con immagini)
Dispenser IoT per animali domestici: 7 passaggi (con immagini)

Video: Dispenser IoT per animali domestici: 7 passaggi (con immagini)

Video: Dispenser IoT per animali domestici: 7 passaggi (con immagini)
Video: Pet Feeder Machine ioT project 2024, Luglio
Anonim
Image
Image
Dispenser IoT per animali domestici
Dispenser IoT per animali domestici

Ho due gatti e dover dar loro dei bocconcini circa 3 volte al giorno è diventato piuttosto fastidioso. Mi guardavano con le loro facce carine e gli sguardi intensi, poi correvano verso una scatola piena di gatti verdi, miagolando e implorando per loro. Avevo deciso che era abbastanza. Non dovrai più alzarti solo per dare a un gatto un paio di bocconcini. Ora era il momento per un distributore di dolcetti, perché come dice il proverbio: "I programmatori esistono per fare cose complicate per fare meno cose semplici".

DFRobot ha sponsorizzato questo progetto.

Elenco delle parti:

  • DFRobot Raspberry Pi 3
  • Modulo fotocamera DFRobot Raspberry Pi
  • Motore passo-passo DFRobot con ingranaggio planetario
  • LCD I2C 16x2
  • Barrel Jack al terminale
  • Driver per motore passo-passo DRV8825
  • Condensatore 100 µF
  • Arduino UNO e Genuino UNO
  • Ponticelli (generici)

Passaggio 1: creazione di un design

Creare un disegno
Creare un disegno

La prima è stata la scelta di come controllare la mia nuova macchina pensata. Il Bluetooth avrebbe avuto una portata troppo corta, a soli 30 piedi senza ostacoli. Con queste informazioni, ho scelto di utilizzare il WiFi. Ma ora, come uso il WiFi per controllare la macchina? Un Raspberry Pi 3 ha funzionalità WiFi integrate, permettendomi di usare Flask per ospitare una pagina web. Il prossimo è stato l'argomento del recinto e come dispensare le prelibatezze. Ho deciso per un design a ruota rotante, in cui i dolcetti sarebbero caduti in piccole sezioni, sarebbero stati ruotati e poi i dolcetti sarebbero scesi su una rampa e avrebbero viaggiato verso la parte anteriore della macchina.

Passaggio 2: realizzazione del modello Fusion 360

Realizzare il modello Fusion 360
Realizzare il modello Fusion 360
Realizzare il modello Fusion 360
Realizzare il modello Fusion 360
Realizzare il modello Fusion 360
Realizzare il modello Fusion 360

Ho iniziato creando un modello base per il ricettacolo del trattamento. Le prelibatezze cadono in una mini-tramoggia dove vengono poi portate in una ruota rotante.

Successivamente ho aggiunto il Raspberry Pi 3 al design Fusion, insieme agli altri componenti elettronici, incluso un modulo fotocamera LCD e Raspberry Pi. Ho anche realizzato una tramoggia che potrebbe contenere ulteriori prelibatezze.

Le pareti per il distributore di dolcetti dovrebbero essere tagliate da un compensato da 1/4 di pollice su un router CNC. Ci sono 7 pezzi, 4 pareti, un pavimento e un pezzo superiore e un coperchio che possono aprirsi e chiudersi per esporre le prelibatezze.

Infine, ho creato una maniglia "fantasiosa" per aprire il coperchio.

Passaggio 3: configurazione del Pi

DFRobot mi ha contattato e ha inviato il loro Raspberry Pi 3 e il modulo fotocamera Raspberry Pi. Quindi, dopo aver aperto le scatole, mi sono messo subito al lavoro configurando la scheda SD. Per prima cosa sono andato alla pagina dei download di Raspberry Pi e ho scaricato la versione più recente di Raspbian. Ho quindi estratto il file e l'ho messo in una comoda directory. Non puoi semplicemente copiare/incollare un file.img su una scheda SD, devi "masterizzarlo" sulla scheda. Puoi scaricare un'utilità di masterizzazione come Etcher.io per trasferire facilmente l'immagine del sistema operativo. Dopo che il file.img era sulla mia scheda SD, l'ho inserito nel Raspberry Pi e gli ho dato alimentazione. Dopo circa 50 secondi ho scollegato il cavo e rimosso la scheda SD. Quindi ho rimesso la scheda SD nel mio PC e sono andato alla directory "boot". Ho aperto Blocco note e l'ho salvato come file vuoto chiamato "ssh" senza estensione. C'era anche un file che ho aggiunto chiamato "wpa_supplicant.conf" e ho inserito questo testo: network={ ssid= psk=} Quindi ho salvato ed espulso la scheda e l'ho reinserita nel Raspberry Pi 3. Questo dovrebbe ora consentire l'utilizzo di SSH e la connessione al WiFi.

Passaggio 4: installazione del software

Esistono diversi software in grado di trasmettere video in streaming, come VLC e motion, ma ho deciso di utilizzare mjpeg-streamer a causa della sua bassa latenza e della facilità di installazione. Secondo le istruzioni sul sito, fai un:git clone https://github.com/jacksonliam/mjpg-streamer.git In una cartella, quindi digita: sudo apt-get install cmake libjpeg8-dev Per installare le librerie necessarie. Cambia la tua directory nella cartella che hai scaricato e poi digita: make Seguito da: sudo make install Per compilare il software. Infine inserisci: export LD_LIBRARY_PATH=. E per eseguirlo digita:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Puoi accedere allo stream andando a: https:// L'ip locale di pi:8080/stream. html Per visualizzare il flusso.

Passaggio 5: configurazione di un server Web

Per poter controllare la macchina esternamente tramite WiFi avevo bisogno di un server web. Un server web serve fondamentalmente pagine web quando richiesto, di solito da un browser. Volevo qualcosa di veloce e semplice da configurare e utilizzare, che togliesse Apache dal tavolo. Volevo anche interfacciare il server web con Python in modo da poter controllare Arduino Uno con PySerial. Questa ricerca alla fine mi ha portato a Flask, una bella libreria Python che consente agli utenti di creare rapidamente un server web. Il codice completo è allegato a questa pagina del progetto. Lo script python imposta fondamentalmente 2 pagine Web, una ospitata nella directory principale, '/', e un'altra ospitata su '/dispense'. La pagina dell'indice ha un modulo HTML che, una volta inviato, invia una richiesta di posta alla pagina di erogazione. La pagina di erogazione controlla quindi se il valore del post è corretto e se è il messaggio 'D\n' viene inviato via seriale ad Arduino Uno.

Passaggio 6: controllo dell'IO

Controllo IO
Controllo IO
Controllo IO
Controllo IO
Controllo IO
Controllo IO
Controllo IO
Controllo IO

Ho deciso di utilizzare il DRV8825 per pilotare il mio motore passo-passo, principalmente perché necessitava solo di 2 pin IO e aveva una limitazione di corrente regolabile. Ho provato a utilizzare un L293D ma non è riuscito a gestire il carico del motore passo-passo. Il DRV8825 è controllato facendo pulsare il pin STEP tramite PWM e la direzione è controllata tirando il pin DIR in alto o in basso. Il motore passo-passo che sto usando ha un assorbimento di 1,2 amp, quindi ho regolato la tensione VREF a 0,6 V. Il prossimo è stato l'LCD. Volevo usare I2C per ridurre la quantità di IO necessaria e per semplificare il codice. Per installare la libreria, cerca semplicemente "LiquidCrystal_I2C" e installala. Infine, Arduino Uno verifica la presenza di nuove informazioni nel buffer seriale e se corrisponde a "D". Se lo fa, Uno fa muovere il motore passo-passo di 180 gradi e poi di -72 gradi per evitare che le prelibatezze si depositino.

Consigliato: