Talaan ng mga Nilalaman:

Smart Pet Feeder: 9 Mga Hakbang
Smart Pet Feeder: 9 Mga Hakbang

Video: Smart Pet Feeder: 9 Mga Hakbang

Video: Smart Pet Feeder: 9 Mga Hakbang
Video: The Netvue Birdfy Smart Ai Bird Feeder - The Future Of Bird Feeding! 2024, Nobyembre
Anonim
Image
Image
Smart Pet feeder
Smart Pet feeder

Mayroon ka bang alaga?

  • Hindi: mag-ampon ng isa! (at bumalik sa itinuturo na ito).
  • Oo: magandang trabaho!

Hindi ba't mahusay kung maaari kang magpakain at magbigay ng tubig sa iyong minamahal nang hindi kinansela ang mga plano upang makauwi sa tamang oras? Sinasabi nating hindi na magalala.

Sa proyektong ito gumawa kami ng isang remote control (sa pamamagitan ng web) mga dispenser ng pagkain at tubig.

Sa pamamagitan ng online dashboard maaari mong tingnan ang data at makontrol ang mga dispenser:

  • Tingnan ang mga antas ng pagkain at tubig sa mga tangke.
  • Tingnan ang mga antas ng pagkain at tubig sa mga mangkok.
  • Kumakain ba o umiinom ang hayop sa sandaling ito?
  • Mag-iskedyul ng mga feedings (hindi magpapadala ang aparato ng pagkain kung mayroong sapat na pagkain sa mangkok).
  • Awtomatikong magtapon ng tubig kapag ang mangkok ay walang laman.
  • Ipamahagi ang pagkain / tubig gamit ang isang pagpindot sa isang pindutan.
  • Makatanggap ng mga abiso sa push sa iyong telepono (sa pamamagitan ng Telegram app).

Sino tayo?

Nilikha nina Tom Kaufman at Katya Fichman, mga estudyante sa Computer Science sa IDC Herzliya.

Ang proyektong ito ay ginawa para sa isang kurso na IOT.

Mga gamit

Elektronika

  • 2 X ESP8266 (Wemos d1 mini).
  • Jumper wires.
  • 2 X Breadboard.
  • 4 X Ultrasonic sensor.
  • 2 X Load cell.
  • 2 X Load cell amplifier (HX711).
  • Servo (180 °).
  • Servo (patuloy na pag-ikot).
  • 2 X 6V power supply.

Mga Bahagi

  • Dispenser ng Cornflakes (link sa Amazon).
  • Ang 3D na naka-print na funnel ng dispenser ng pagkain (https://www.thingiverse.com/thing<<998805).
  • Ang 3D na naka-print na servo attachment ng 3D na naka-print na pagkain (https://www.thingiverse.com/thing<<269637).
  • Ang tindig ng dispenser ng 3D na naka-print na pagkain (na idinisenyo para sa proyektong ito: https://www.thingiverse.com/thing tampok285849).
  • 3D naka-print na base ng cell ng pag-load at plato (na idinisenyo para sa proyektong ito:
  • Water dispenser (link ng Amazon sa katulad na bagay).
  • Wire (upang ikonekta ang knob ng dispenser ng tubig sa servo).
  • 3 X Paninindigan ng sensor ng Ultrasonic.

Hakbang 1: Paano Ito Gumagana?

Paano Ito Gumagana?
Paano Ito Gumagana?

Ang mga board ng ESP8266 ay nagpapadala ng mga pagbabasa ng mga sensor sa Node-RED sa pamamagitan ng Mosquitto (MQTT broker).

Pinoproseso ng Node-RED ang data, gumagawa ng mga pagkilos nang naaayon (nagpapadala din ng mga utos ng dispense sa mga board ng ESP8266 sa pamamagitan ng Mosquitto) at pagpapakita ng impormasyon sa dashboard.

Ang lahat ng mga pagkalkula ay ginaganap sa Node-RED upang madali itong makaya ang proyektong ito at baguhin ang pagproseso ng data ayon sa iyong mga setting at kagustuhan nang hindi nadumihan ang iyong mga kamay sa pag-coding.

Hakbang 2: Mga Softwares

Mga Software
Mga Software

Arduino IDE

Mag-download at mag-install (link:

Mosquitto

Mag-download at mag-install (link:

Node.js

Mag-download at mag-install (link:

Node-RED

Sundin ang mga tagubilin:

ngrok

I-download:

Telegram

I-install ang app sa iyong smartphone.

Hakbang 3: Layout ng Circuit

Layout ng Circuit
Layout ng Circuit

* Ang parehong mga aparato ay may magkaparehong mga circuit

Dispenser ng Tubig

  • Ultrasonic sensor (para sa tangke ng tubig)

    • GND - G
    • VCC - 5V
    • ECHO - D5
    • TRIGGER - D0
  • Ultrasonic sensor (para sa distansya ng alaga mula sa mangkok)

    • GND - G
    • VCC - 5V
    • ECHO - D6
    • TRIGGER - D7
  • Load cell

    • GREEN - A + (HX711)
    • Puti - A- (HX711)
    • BLACK - E- (HX711)
    • PULA - E + (HX711)
  • HX711 (load cell amplifier)

    • GND - G
    • VCC - 5V
    • DT - D4
    • SCK - D3
  • Servo (180 °)

    • GND - G
    • VCC - 5V

Dispenser ng Pagkain

  • Ultrasonic sensor (para sa tangke ng pagkain)

    • GND - G
    • VCC - 5V
    • ECHO - D5
    • TRIGGER - D0
  • Ultrasonic sensor (para sa distansya ng alaga mula sa mangkok)

    • GND - G
    • VCC - 5V
    • ECHO - D6
    • TRIGGER - D7
  • Load cell

    • GREEN - A + (HX711)
    • Puti - A- (HX711)
    • BLACK - E- (HX711)
    • PULA - E + (HX711)
  • HX711 (load cell amplifier)

    • GND - G
    • VCC - 5V
    • DT - D4
    • SCK - D3
  • Servo (tuluy-tuloy na pag-ikot)

    • GND - G
    • VCC - 5V
    • KONTROL - D8

Hakbang 4: Craft

Craft
Craft
Craft
Craft
Craft
Craft

Dispenser ng tubig

  1. Kola ang servo sa tuktok ng ibabang bahagi ng dispenser (tulad ng ipinakita sa larawan).
  2. Mag-drill ng isang maliit na butas sa knob ng dispenser ng tubig.
  3. Ikonekta ang ulo ng servo sa knob gamit ang isang kawad (siguraduhin na ang ulo ng servo ay nasa posisyon na 0 at tiyakin na masikip ang kawad).
  4. Idikit ang isang ultrasonic sensor sa panloob na bahagi ng tanke, malapit sa tuktok nito (ang sensor ay nakaharap sa ibaba).
  5. Pandikit ang isang ultrasonikong sensor sa ibaba ng water knob patungo sa labas (tiyaking sapat na mataas ito upang hindi maepekto ng mangkok ng tubig ang mga pagbasa nito).

Dispenser ng pagkain

  1. I-tornilyo ang servo sa may-ari nito (naka-print na bahagi ng 3D).
  2. Kola ang funnel (naka-print na bahagi ng 3D) sa may-ari ng tanke (3D na naka-print na bahagi).
  3. Ikonekta ang may-ari ng tanke sa kinatatayuan ng dispenser (naka-print na bahagi ng 3D) at ilagay ang tangke sa lugar.
  4. Ipasok ang umiikot na bahagi (naka-print na 3D) sa lugar nito at sa pamamagitan ng umiikot na goma na bahagi ng dispenser.
  5. I-screw ang bahagi ng may hawak ng servo sa kinatatayuan ng dispenser.
  6. Idikit ang isang ultrasonic sensor sa panloob na bahagi ng takip ng tanke (ang sensor ay nakaharap pababa).
  7. Idikit ang isang ultrasonic sensor sa gilid ng may hawak ng tanke na nakaharap patungo sa lugar kung saan kakain ang iyong alaga.

Mag-load ng Mga Cell

Idikit ang bawat cell ng pag-load sa 3D naka-print na base at plato (ang arrow ng cell ng pag-load ay nakaharap sa ibaba)

Hakbang 5: Mosquitto

Mosquitto
Mosquitto

Buksan ang Mosquitto (mga gumagamit ng bintana: pumunta sa folder ng Mosquitto, buksan ang cmd at ipasok ang: "mosquitto -v").

* Upang makuha ang panloob na IP address ng computer, patakbuhin ang cmd at ipasok ang "ipconfig".

Hakbang 6: Arduino IDE

Arduino IDE
Arduino IDE
Arduino IDE
Arduino IDE

Buksan ang Arduino IDE at sundin ang "I-install ang ESP8266 Add-on sa Arduino IDE" na bahagi ng gabay na ito:

Pumunta sa Tools-> Board at piliin ang "LOLIN (WEMOS) D1 R2 & mini".

Pumunta sa Sketch-> Isama ang Library-> Magdagdag ng. ZIP Library … at idagdag ang 3 mga aklatan sa "Libraryaries.rar" na file.

Buksan ang "HX711Calibration" sketch, i-upload ito sa parehong ESP8266's, patakbuhin ito at sundin ang mga tagubilin (sa simula ng code at sa serial monitor) upang i-calibrate ang mga load cell (siguraduhin na ang rate ng baud ng serial monitor ay nakatakda sa 115200 baud).

* Isulat ang kadahilanan ng pagkakalibrate at ang zero offset (para magamit sa ibang pagkakataon).

Buksan ang mga sketch na "FoodDispenser" at "WaterDispenser" sa pamamagitan ng IDE at baguhin ang mga sumusunod na variable sa iyong mga setting (sa file na "Mga setting.h"):

  • WIFI_SSID
  • WIFI_PASSWORD
  • MQTT_SERVER
  • LOAD_CELL_CALIBRATION_FACTOR
  • LOAD_CELL_ZERO_OFFSET

* Sa MQTT_SERVER ipasok ang panloob na IP address mula sa hakbang na "Mosquitto".

I-upload ang mga sketch sa iyong dalawang ESP8266 (isang code sa bawat board).

* Pansinin na ginamit namin ang "AsyncMqttClient" library at hindi ang mas karaniwang "pubsubclient" library mula noong nag-crash ang esp8266 kapag isinama sa "HX711" library.

* Kung pipiliin mong gumawa ng mga pagbabago sa code, tiyaking hindi gagamitin ang "pagka-antala" at "pag-andar" na mga function sa loob ng mga function ng callback dahil magdudulot ito ng mga pag-crash.

Hakbang 7: Ngrok

Ngrok
Ngrok
Ngrok
Ngrok

I-unzip ang na-download na file (mula sa link sa hakbang na "Softwares").

Buksan ang "ngrok.exe" at patakbuhin ang utos na "ngrok http 1880".

* Maaari mong piliin ang rehiyon na pinakamalapit sa iyo (au, eu, ap, us, jp, in, sa). Ang default ay sa amin.

Halimbawa ng pagpapatakbo ng utos: "ngrok http --region = eu 1880" (itakda ang rehiyon sa Europa).

Makikita mo ngayon ang iyong web address para sa panlabas na paggamit (isasangguni namin ang address na ito bilang HIS_NGROK_ADDRESS).

Hakbang 8: Node-RED

Node-RED
Node-RED
Node-RED
Node-RED
Node-RED
Node-RED

Buksan ang Node-RED (mga gumagamit ng windows: buksan ang cmd at ipasok ang "node-red") at pumunta sa https:// localhost: 1880 (kung hindi ito gumana, hanapin ang address sa cmd window kung saan nakasulat ang "Server ngayon tumatakbo sa ").

Buksan ang menu (sa kanang sulok sa itaas) at pindutin ang "Pamahalaan ang palette".

Pumunta sa tab na "I-install", hanapin at i-install ang mga modyul na ito:

  • node-red-contrib-persist.
  • node-red-contrib-cron-plus.
  • node-red-contrib-ui-led.
  • node-red-dashboard.
  • node-red-contrib-telegrambot.

Pumunta sa menu-> I-import at i-upload ang flow file (i-extract ang naka-attach na RAR file at i-upload ang json file).

Tingnan ang mga nakakabit na imahe para sa mga paliwanag tungkol sa daloy.

Kakailanganin mong baguhin ang mga node na ito sa iyong mga setting:

  • I-update ang profile ng node na "nagpadala ng Telegram" gamit ang username at token ng iyong bot (gamitin ang gabay na ito:
  • Sa ilalim ng daloy ay baguhin ang mga kargamento ng "Ngrok Address" at "Telegram Chat Id" nodes (kunin ang iyong chat id sa pamamagitan ng paggamit ng gabay sa Telegram sa link sa itaas).
  • Sa ibabang bahagi ng daloy ay may mga setting node - baguhin ang mga ito ayon sa iyong mga pangangailangan:

    • Ang activate pet ay mga alerto sa pagkain / pag-inom.
    • Tukuyin kung ano ang distansya para sa pag-aktibo ng alerto sa pagkain / pag-inom.
    • Tukuyin ang pagproseso ng data ng mga bowls at tank.
    • Baguhin ang mga oras ng dispense (kung gaano katagal naganap ang mga dispense - auto mode at press press).
    • Tukuyin ang porsyento ng overflow threshold ng mangkok ng pagkain (i-abort ang awtomatikong pagtapon ng pagkain kung mayroong sapat na pagkain sa mangkok).

I-deploy ang daloy (sa kanang itaas).

* Sa unang pag-deploy lamang, makakakita ka ng isang babala sa window ng pag-debug tungkol sa nawawalang 'persistance.json' na file. Huwag mag-alala tungkol dito dahil sa ngayon ay magtatakda ka ng mga oras ng pagpapakain o baguhin ang switch ng auto water, sisimulan nito ang file na ito at wala ka nang babalang ito.

Maaari mong tingnan ang iyong dashboard sa https:// NODE-RED_PC'S_INTERNAL_IP_ADDRESS: 1880 / ui (kung nakakonekta ka sa parehong LAN bilang server) o HIS_NGROK_ADDRESS / ui (mula sa kung saan-saan).

Hakbang 9: I-balot

Balutin
Balutin

Inaasahan namin na ang tutorial na ito ay kaalaman at madaling basahin, maunawaan at ipatupad.

Huwag mag-atubiling magtanong sa amin ng anuman.

Inirerekumendang: