Taula de continguts:

Dispensador de tractaments IoT per a mascotes: 7 passos (amb imatges)
Dispensador de tractaments IoT per a mascotes: 7 passos (amb imatges)

Vídeo: Dispensador de tractaments IoT per a mascotes: 7 passos (amb imatges)

Vídeo: Dispensador de tractaments IoT per a mascotes: 7 passos (amb imatges)
Vídeo: Пеноизол своими руками (утепление дома) 2024, Desembre
Anonim
Image
Image
Dispensador de tractaments IoT per a mascotes
Dispensador de tractaments IoT per a mascotes

Tinc dos gats i haver de donar-los llaminadures unes 3 vegades al dia es va convertir en una molèstia. Em miraven cap amunt amb les seves cares simpàtiques i mirades intenses i, després, anaven corrents cap a una capsa plena de verds de gat, maullant i demanant-los. Havia decidit que ja n'hi havia prou. Ja no s’ha d’aixecar només per donar un regal a un gat. Ara era el moment d'una màquina dispensadora de llaminadures, perquè, com diu la dita, "existeixen programadors per fer coses complicades i fer menys coses senzilles".

DFRobot va patrocinar aquest projecte.

Llista de peces:

  • DFRobot Raspberry Pi 3
  • Mòdul de càmera DFRobot Raspberry Pi
  • Motor pas a pas DFRobot amb engranatge planetari
  • LCD I2C 16x2
  • Barrel Jack fins a la terminal
  • Controlador de motor pas a pas DRV8825
  • Condensador 100 µF
  • Arduino UNO i Genuino UNO
  • Cable de pont (genèric)

Pas 1: crear un disseny

Creació d’un disseny
Creació d’un disseny

Primer va ser l'elecció de com controlar la meva màquina recentment pensada. El Bluetooth hauria tingut un abast massa curt, a només 30 peus sense obstruccions. Amb aquesta informació, vaig optar per utilitzar WiFi. Però ara, com puc utilitzar el WiFi per controlar la màquina? Un Raspberry Pi 3 té funcions WiFi integrades que em permeten utilitzar Flask per allotjar una pàgina web. El següent va ser el tema del recinte i com dispensar llaminadures. Vaig decidir un disseny de rodes giratòries, on les llaminadures caiguessin en petites seccions, es giressin al voltant, i després les llaminadures caiguessin cap a una rampa i es desplaçessin cap a la part frontal de la màquina.

Pas 2: elaboració del model Fusion 360

Creació del model Fusion 360
Creació del model Fusion 360
Creació del model Fusion 360
Creació del model Fusion 360
Creació del model Fusion 360
Creació del model Fusion 360

Vaig començar creant un model base per al receptacle per a tractaments. Les llaminadures cauen en una mini-tremuja on després es porten a una roda giratòria.

A continuació, vaig afegir el Raspberry Pi 3 al disseny Fusion, juntament amb la resta d’electrònics, inclosos un mòdul de càmera LCD i Raspberry Pi. També vaig fer una tremuja que pogués emmagatzemar llaminadures addicionals.

Se suposa que les parets del dispensador de llaminadures estan tallades de fusta contraxapada de 1/4 de polzada en un encaminador CNC. Hi ha 7 peces, 4 parets, un terra i una part superior i de tapa que es poden obrir i tancar per exposar les delícies.

Per últim, vaig crear un mànec “elegant” per obrir la tapa.

Pas 3: Configuració del Pi

DFRobot va contactar amb mi i va enviar el seu mòdul de càmera Raspberry Pi 3 i Raspberry Pi. Així que, després d’obrir les caixes, vaig treballar directament configurant la targeta SD. Primer vaig anar a la pàgina de descàrregues de Raspberry Pi i vaig descarregar la versió més recent de Raspbian. Després vaig extreure el fitxer i el vaig posar en un directori convenient. No podeu copiar / enganxar un fitxer.img a una targeta SD, sinó que heu de "gravar-lo" a la targeta. Podeu descarregar una utilitat de gravació com Etcher.io per transferir fàcilment la imatge del sistema operatiu. Després que el fitxer.img fos a la meva targeta SD, el vaig inserir al Raspberry Pi i li vaig donar poder. Al cap d’uns 50 segons, vaig desconnectar el cable i vaig treure la targeta SD. A continuació, vaig tornar a posar la targeta SD al meu PC i vaig anar al directori "boot". Vaig obrir el bloc de notes i el vaig desar com a fitxer en blanc anomenat "ssh" sense cap extensió. També hi havia un fitxer que vaig afegir que es deia "wpa_supplicant.conf" i hi vaig posar aquest text: network = {ssid = psk =} Després vaig desar i vaig expulsar la targeta i la vaig tornar a posar al Raspberry Pi 3. Això ara hauria de permetre l’ús de SSH i la connexió a WiFi.

Pas 4: Instal·lació del programari

Hi ha diversos programes diferents que poden transmetre vídeo, com ara VLC i motion, però vaig decidir utilitzar el mjpeg-streamer a causa de la seva baixa latència i la seva fàcil instal·lació. Segons les instruccions del lloc, feu un: git clone https://github.com/jacksonliam/mjpg-streamer.git En una carpeta, escriviu: sudo apt-get install cmake libjpeg8-dev Per instal·lar les biblioteques necessàries. Canvieu el directori a la carpeta que heu descarregat i, a continuació, escriviu: make Seguit de: sudo make install Per compilar el programari. Introduïu finalment: exporta LD_LIBRARY_PATH =. I per executar-lo escriviu:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Podeu accedir al flux dirigint-vos a: https:// IP local del pi: 8080 / stream. html Per veure el flux.

Pas 5: configurar un servidor web

Per aconseguir que la màquina es controlés externament mitjançant WiFi, necessitava un servidor web. Un servidor web serveix bàsicament pàgines web quan sol·licita un navegador. Volia una cosa ràpida i senzilla d’instal·lar i utilitzar, traient Apache de la taula. També volia connectar el servidor web amb Python per poder controlar l’Arduino Uno amb PySerial. Aquesta missió em va portar finalment a Flask, una bonica biblioteca Python que permet als usuaris crear ràpidament un servidor web. El codi complet s’adjunta a aquesta pàgina del projecte. L'escriptura Python bàsicament configura 2 pàgines web, una que s'allotja al directori arrel, '/', i una altra que està allotjada a '/ dispensar'. La pàgina d'índex té un formulari HTML que, quan s'envia, envia una sol·licitud de publicació a la pàgina de distribució. A continuació, la pàgina de distribució comprova si el valor de la publicació és correcte i si el missatge "D / n" s'envia per sèrie a l'Arduino Uno.

Pas 6: controlar la E / S

Controlant E / S
Controlant E / S
Controlant E / S
Controlant E / S
Controlant E / S
Controlant E / S
Controlant E / S
Controlant E / S

Vaig decidir utilitzar el DRV8825 per conduir el meu motor pas a pas, principalment perquè només necessitava 2 pins d'E / S i tenir una limitació de corrent ajustable. Vaig provar d'utilitzar un L293D, però no podia suportar la càrrega del motor pas a pas. El DRV8825 es controla pulsant el pin STEP mitjançant PWM i la direcció es controla tirant del pin DIR cap a dalt o cap avall. El motor pas a pas que estic utilitzant té una intensitat de 1,2 amperis, de manera que vaig ajustar la tensió VREF a.6V. El següent va ser el LCD. Volia utilitzar I2C per reduir la quantitat d’IO necessària i simplificar el codi. Per instal·lar la biblioteca, només cal que cerqueu "LiquidCrystal_I2C" i que la instal·leu. Finalment, l'Arduino Uno comprova si hi ha informació nova a la memòria intermèdia de sèrie i si coincideix amb "D". Si ho fa, l’Uno fa que el motor pas a pas es mogui 180 graus i després -72 graus per evitar que s’allotgin llaminadures.

Recomanat: