INHOUDSOPGAWE:

Slim troeteldiervoerder: 9 stappe
Slim troeteldiervoerder: 9 stappe

Video: Slim troeteldiervoerder: 9 stappe

Video: Slim troeteldiervoerder: 9 stappe
Video: Bijtende hond terug in wijk van slachtoffer 2024, Julie
Anonim
Image
Image
Slim troeteldiervoerder
Slim troeteldiervoerder

Het jy 'n troeteldier?

  • Nee: neem een aan! (en kom terug na hierdie instruksies).
  • Ja: goeie werk!

Sal dit nie wonderlik wees as u u geliefde kan voed en water gee sonder om planne te kanselleer om betyds by die huis te kom nie? Ons sê: moenie meer bekommerd wees nie.

In hierdie projek het ons 'n afstandbeheerde (via web) voedsel- en waterdispenser gemaak.

Via die aanlyn -dashboard kan u data bekyk en die dispensers beheer:

  • Kyk na die voedsel- en watervlakke in die tenks.
  • Kyk na die voedsel- en watervlakke in die bakke.
  • Eet of drink die dier op hierdie oomblik?
  • Beplan voedings (die toestel gee nie kos uit as daar genoeg kos in die bak is nie).
  • Gee outomaties water as die bak leeg raak.
  • Gee kos/water met 'n druk van 'n knoppie.
  • Ontvang stootkennisgewings op u telefoon (via die Telegram -app).

Wie is ons?

Geskep deur Tom Kaufman en Katya Fichman, rekenaarwetenskapstudente aan IDC Herzliya.

Hierdie projek is bedoel vir 'n IOT -kursus.

Voorrade

Elektronika

  • 2 X ESP8266 (Wemos d1 mini).
  • Springdrade.
  • 2 X broodbord.
  • 4 X Ultrasoniese sensor.
  • 2 X Laai sel.
  • 2 X Laadselversterker (HX711).
  • Servo (180 °).
  • Servo (deurlopende rotasie).
  • 2 x 6V kragtoevoer.

Dele

  • Cornflakes dispenser (Amazon -skakel).
  • 3D -gedrukte trechter vir voedselverdelers (https://www.thingiverse.com/thing:3998805).
  • Die servo -aanhangsel van 3D -gedrukte voedselverdelers (https://www.thingiverse.com/thing:3269637).
  • 3D -gedrukte staander vir voedselverdelers (ontwerp vir hierdie projek:
  • 3D -gedrukte laadselbasis en plaat (ontwerp vir hierdie projek:
  • Waterdispenser (Amazon -skakel na iets soortgelyks).
  • Draad (om die knop van die waterdispenser aan die servo te koppel).
  • 3 X Ultrasoniese sensor se staander.

Stap 1: Hoe werk dit?

Hoe werk dit?
Hoe werk dit?

Die ESP8266-borde stuur sensors se lesings na Node-RED deur Mosquitto (MQTT-makelaar).

Node-RED verwerk die data, voer dienooreenkomstig aksies uit (stuur ook afdelingsopdragte na die ESP8266-borde deur Mosquitto) en vertoon inligting op die paneelbord.

Al die berekeninge word in Node-RED uitgevoer, so dit sou maklik wees om hierdie projek te herhaal en die verwerking van die data volgens u instellings en voorkeure te verander sonder om u hande vuil te maak met kodering.

Stap 2: sagteware

Sagteware
Sagteware

Arduino IDE

Laai af en installeer (skakel:

Muskiet

Laai af en installeer (skakel:

Node.js

Laai af en installeer (skakel:

Node-ROOI

Volg die instruksies:

ngrok

Aflaai:

Telegram

Installeer die app op u slimfoon.

Stap 3: Kringuitleg

Kringuitleg
Kringuitleg

* Albei toestelle het identiese stroombane

Water Dispenser

  • Ultrasoniese sensor (vir die watertenk)

    • GND - G
    • VCC - 5V
    • ECHO - D5
    • TRIGGER - D0
  • Ultrasoniese sensor (vir die troeteldier se afstand van die bak)

    • GND - G
    • VCC - 5V
    • ECHO - D6
    • TRIGGER - D7
  • Laai sel

    • GROEN - A+ (HX711)
    • WIT - A- (HX711)
    • SWART - E- (HX711)
    • ROOI - E+ (HX711)
  • HX711 (laaiselversterker)

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

    • GND - G
    • VCC - 5V

Voedseldispenser

  • Ultrasoniese sensor (vir die voedseltenk)

    • GND - G
    • VCC - 5V
    • ECHO - D5
    • TRIGGER - D0
  • Ultrasoniese sensor (vir die troeteldier se afstand van die bak)

    • GND - G
    • VCC - 5V
    • ECHO - D6
    • TRIGGER - D7
  • Laai sel

    • GROEN - A+ (HX711)
    • WIT - A- (HX711)
    • SWART - E- (HX711)
    • ROOI - E+ (HX711)
  • HX711 (laaiselversterker)

    • GND - G
    • VCC - 5V
    • DT - D4
    • SCK - D3
  • Servo (deurlopende rotasie)

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

Stap 4: Handwerk

Handwerk
Handwerk
Handwerk
Handwerk
Handwerk
Handwerk

Waterdispenser

  1. Plak die servo aan die bokant van die onderste deel van die dispenser vas (soos op die foto getoon).
  2. Boor 'n klein gaatjie in die knop van die waterdispenser.
  3. Verbind die servokop met 'n draad aan die knop (maak seker dat die servokop in posisie 0 is en maak seker dat die draad styf is).
  4. Plak een ultrasoniese sensor aan die binnekant van die tenk, naby die bokant (sensor na onder).
  5. Plak een ultrasoniese sensor onder die waterknop na buite vas (maak seker dat dit hoog genoeg is sodat die waterbak nie sy lesings beïnvloed nie).

Kosbak

  1. Skroef die servo aan die houer vas (3D -gedrukte deel).
  2. Plak die tregter (3D -gedrukte deel) aan die tenkhouer (3D -gedrukte deel).
  3. Koppel die tenkhouer aan die houer van die dispenser (3D -gedrukte deel) en sit die tenk op sy plek.
  4. Plaas die draaiende deel (3D -gedruk) op sy plek en deur die roterende rubberdeel van die dispenser.
  5. Skroef die servohouer -deel op die houer van die dispenser.
  6. Plak een ultrasoniese sensor aan die binnekant van die tenk se deksel (sensor na onder).
  7. Plak een ultrasoniese sensor aan die kant van die houer van die tenk in die rigting van die plek waar u troeteldier kan eet.

Laai selle

Plak elke laadsel op die 3D -gedrukte basis en plaat (laai sel se pyl na onder)

Stap 5: Muskiet

Muskiet
Muskiet

Maak Mosquitto oop (Windows -gebruikers: gaan na die Mosquitto -lêergids, maak cmd oop en voer "mosquitto -v" in).

* Om die interne IP -adres van die rekenaar te kry, voer cmd uit en voer "ipconfig" in.

Stap 6: Arduino IDE

Arduino IDE
Arduino IDE
Arduino IDE
Arduino IDE

Maak die Arduino IDE oop en volg die gedeelte "Installeer ESP8266-byvoeging in Arduino IDE" van hierdie gids:

Gaan na Tools-> Board en kies "LOLIN (WEMOS) D1 R2 & mini".

Gaan na Sketch-> Include Library-> Add. ZIP Library … en voeg die 3 biblioteke by in die "Libraries.rar" lêer.

Maak die skets "HX711Calibration" oop, laai dit op na beide ESP8266's, voer dit uit en volg die instruksies (aan die begin van die kode en in die seriële monitor) om die laadselle te kalibreer (maak seker dat die baud -tempo van die seriële monitor ingestel is op 115200 baud).

* Skryf die kalibreringsfaktor en die nulverstelling neer (vir latere gebruik).

Maak 'FoodDispenser' en 'WaterDispenser' sketse deur die IDE oop en verander die volgende veranderlikes met u instellings (in lêer 'Settings.h'):

  • WIFI_SSID
  • WIFI_PASSWORD
  • MQTT_SERVER
  • LOAD_CELL_CALIBRATION_FACTOR
  • LOAD_CELL_ZERO_OFFSET

* Voer in MQTT_SERVER die interne IP -adres in vanaf die stap "Mosquitto".

Laai die sketse op na u twee ESP8266 (een kode op elke bord).

* Let op dat ons die "AsyncMqttClient" -biblioteek gebruik het en nie die meer algemene "pubsubclient" -biblioteek nie, aangesien die esp8266 ineenstort wanneer dit gekombineer word met die "HX711" -biblioteek.

* As u besluit om die kode te verander, moet u nie die funksies 'vertraging' en 'opbrengs' binne die terugbelfunksies gebruik nie, aangesien dit ineenstortings kan veroorsaak.

Stap 7: Ngrok

Ngrok
Ngrok
Ngrok
Ngrok

Pak die afgelaaide lêer uit (vanaf die skakel in die stap 'sagteware').

Open "ngrok.exe" en voer die opdrag "ngrok http 1880" uit.

* U kan die streek naaste aan u kies (au, eu, ap, ons, jp, in, sa). Die standaard is ons.

Gebruik byvoorbeeld die opdrag: "ngrok http --region = eu 1880" (stel die streek op Europa).

Nou sien u u webadres vir eksterne gebruik (ons verwys na hierdie adres as YOUR_NGROK_ADDRESS).

Stap 8: Node-ROOI

Node-ROOI
Node-ROOI
Node-ROOI
Node-ROOI
Node-ROOI
Node-ROOI

Maak Node-RED oop (Windows-gebruikers: open cmd en voer "node-red" in) en gaan na https:// localhost: 1880 (as dit nie werk nie, soek die adres in die cmd-venster waar dit geskryf is "Server now hardloop by ").

Maak die spyskaart oop (in die regter boonste hoek) en druk op "Beheer palet".

Gaan na die blad "Installeer", soek en installeer hierdie modules:

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

Gaan na die menu-> Invoer en laai die vloei-lêer op (pak die aangehegte RAR-lêer uit en laai die json-lêer op).

Sien die aangehegte beelde vir verduidelikings oor die vloei.

U moet hierdie nodusse met u instellings verander:

  • Dateer die profiel van die "Telegram sender" -knoppie op met die gebruikersnaam en token van u bot (gebruik hierdie gids:
  • Onderaan die stroom verander die vragvragte van die "Ngrok -adres" en "Telegram Chat Id" -knope (kry u klets -ID deur die Telegram -gids in die skakel hierbo te gebruik).
  • In die onderste deel van die stroom is daar instellingsknope - wysig dit volgens u behoeftes:

    • Aktiveer troeteldier is eet/drink waarskuwings.
    • Definieer wat die afstand is om die eet-/drinkwaarskuwing te aktiveer.
    • Definieer die verwerking van bakke en tenks.
    • Verander die afleweringstye (vir hoe lank duur die resepte - outomatiese modus en druk op die knoppie).
    • Definieer die oorloopdrempel persentasie van die kosbak (staak die outomatiese voedseluitgawes as daar genoeg kos in die bak is).

Gebruik die vloei (regs bo).

* Slegs by die eerste implementering sal u 'n waarskuwing in die ontfoutingsvenster sien oor die ontbrekende 'persistance.json' -lêer. Moenie bekommerd wees nie, aangesien u op die oomblik die voedingstye sal instel of die outomatiese waterskakelaar sal verander, dit sal hierdie lêer inisieer en u sal nie meer hierdie waarskuwing hê nie.

U kan u paneelbord sien op https:// NODE-RED_PC'S_INTERNAL_IP_ADDRESS: 1880/ui (as u aan dieselfde LAN as die bediener gekoppel is) of YOUR_NGROK_ADDRESS/ui (van oral).

Stap 9: Sluit af

Afsluit
Afsluit

Ons hoop dat hierdie tutoriaal insiggewend en maklik was om te lees, te verstaan en te implementeer.

Vra ons gerus enigiets.

Aanbeveel: