Inhoudsopgave:

Slimme voerbak voor huisdieren: 9 stappen
Slimme voerbak voor huisdieren: 9 stappen

Video: Slimme voerbak voor huisdieren: 9 stappen

Video: Slimme voerbak voor huisdieren: 9 stappen
Video: Automatische voerbak kat - Voerautomaat met smartphone besturing (APP) - Voerdispenser - van Zedar 2024, Juli-
Anonim
Image
Image
Slimme voerbak voor huisdieren
Slimme voerbak voor huisdieren

Heb je een huisdier?

  • Nee: adopteer er een! (en kom terug naar dit instructable).
  • Ja: goed bezig!

Zou het niet geweldig zijn als je je geliefde zou kunnen voeden en water geven zonder plannen te annuleren om op tijd thuis te zijn? We zeggen: maak je geen zorgen meer.

In dit project hebben we een op afstand bestuurbare (via web) voedsel- en waterdispenser gemaakt.

Via het online dashboard kunt u gegevens inzien en de dispensers bedienen:

  • Bekijk de voedsel- en waterstanden in de tanks.
  • Bekijk de voer- en waterstanden in de schalen.
  • Eet of drinkt het dier op dit moment?
  • Plan voedingen (apparaat geeft geen voedsel af als er genoeg voedsel in de kom zit).
  • Geeft automatisch water af wanneer de kom leeg raakt.
  • Doseer voedsel/water met een druk op de knop.
  • Ontvang pushmeldingen op je telefoon (via de Telegram-app).

Wie zijn we?

Gemaakt door Tom Kaufman en Katya Fichman, studenten Computerwetenschappen aan IDC Herzliya.

Dit project is gemaakt voor een IOT-cursus.

Benodigdheden

Elektronica

  • 2 X ESP8266 (Wemos d1 mini).
  • Jumper draden.
  • 2 X Broodplank.
  • 4 X Ultrasone sensor.
  • 2 X Laadcel.
  • 2 X Loadcell-versterker (HX711).
  • Servo (180°).
  • Servo (continue rotatie).
  • 2X 6V voeding.

Onderdelen

  • Cornflakes dispenser (Amazon link).
  • 3D-geprinte trechter voor voedseldispensers (https://www.thingiverse.com/thing:3998805).
  • 3D-geprinte servo-bevestiging van de voedseldispenser (https://www.thingiverse.com/thing:3269637).
  • 3D-geprinte stand voor voedseldispensers (ontworpen voor dit project:
  • 3D-geprinte laadcelbasis en plaat (ontworpen voor dit project:
  • Waterdispenser (Amazon link naar iets soortgelijks).
  • Draad (om de knop van de waterdispenser op de servo aan te sluiten).
  • 3 X Ultrasone sensorstandaard.

Stap 1: Hoe werkt het?

Hoe werkt het?
Hoe werkt het?

De ESP8266-kaarten sturen de meetwaarden van de sensoren naar Node-RED via Mosquitto (MQTT-makelaar).

Node-RED verwerkt de gegevens, voert overeenkomstige acties uit (stuur ook afgifte-opdrachten naar de ESP8266-borden via Mosquitto) en geeft informatie weer op het dashboard.

Alle berekeningen worden uitgevoerd in Node-RED, dus het zou gemakkelijk zijn om dit project te repliceren en de verwerking van de gegevens te wijzigen volgens uw instellingen en voorkeuren zonder uw handen vuil te maken aan codering.

Stap 2: Software

Software
Software

Arduino IDE

Download en installeer (link:

mug

Download en installeer (link:

Node.js

Download en installeer (link:

Knooppunt-RED

Volg de instructies:

ngrok

Downloaden:

Telegram

Installeer de app op je smartphone.

Stap 3: Circuitindeling

Circuitlay-out
Circuitlay-out

* Beide apparaten hebben identieke circuits

Waterdispenser

  • Ultrasone sensor (voor de watertank)

    • GND - G
    • VCC - 5V
    • ECHO-D5
    • TRIGGER - D0
  • Ultrasone sensor (voor de afstand van het huisdier tot de kom)

    • GND - G
    • VCC - 5V
    • ECHO-D6
    • TRIGGER - D7
  • Laadcel

    • GROEN - A+ (HX711)
    • WIT - A- (HX711)
    • ZWART - E- (HX711)
    • ROOD - E+ (HX711)
  • HX711 (laadcelversterker)

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

    • GND - G
    • VCC - 5V

Voedseldispenser

  • Ultrasone sensor (voor de voedseltank)

    • GND - G
    • VCC - 5V
    • ECHO-D5
    • TRIGGER - D0
  • Ultrasone sensor (voor de afstand van het huisdier tot de kom)

    • GND - G
    • VCC - 5V
    • ECHO-D6
    • TRIGGER - D7
  • Laadcel

    • GROEN - A+ (HX711)
    • WIT - A- (HX711)
    • ZWART - E- (HX711)
    • ROOD - E+ (HX711)
  • HX711 (laadcelversterker)

    • GND - G
    • VCC - 5V
    • DT - D4
    • SCK - D3
  • Servo (continue rotatie)

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

Stap 4: Knutselen

Ambacht
Ambacht
Ambacht
Ambacht
Ambacht
Ambacht

Waterdispenser

  1. Lijm de servo aan de bovenkant van het onderste deel van de dispenser (zoals op de foto).
  2. Boor een klein gaatje in de knop van de waterdispenser.
  3. Sluit de servokop met een draad aan op de knop (zorg ervoor dat de servokop op positie 0 staat en zorg ervoor dat de draad strak zit).
  4. Lijm een ultrasone sensor aan de binnenkant van de tank, in de buurt van de bovenkant (sensor naar beneden).
  5. Lijm een ultrasone sensor onder de waterknop naar buiten toe (zorg ervoor dat deze hoog genoeg is zodat de waterbak zijn metingen niet beïnvloedt).

Voedselautomaat

  1. Schroef de servo op zijn houder (3D-geprint deel).
  2. Lijm de trechter (3D-geprint deel) op de tankhouder (3D-geprint deel).
  3. Sluit de tankhouder aan op de stand van de dispenser (3D geprint deel) en zet de tank op zijn plaats.
  4. Steek het draaiende deel (3D geprint) op zijn plaats en door het draaiende rubberen deel van de dispenser.
  5. Schroef het servohouderdeel op de houder van de dispenser.
  6. Lijm een ultrasone sensor aan de binnenkant van het deksel van de tank (sensor naar beneden gericht).
  7. Lijm een ultrasone sensor aan de zijkant van de houder van de tank gericht naar de plaats waar uw huisdier zal eten.

Laadcellen

Lijm elke laadcel op de 3D-geprinte basis en plaat (pijl van de laadcel naar beneden gericht)

Stap 5: Mosquito

mug
mug

Open Mosquitto (Windows-gebruikers: ga naar de map Mosquitto, open cmd en voer in: "mosquitto -v").

* Om het interne IP-adres van de computer te krijgen, voert u cmd uit en voert u "ipconfig" in.

Stap 6: Arduino IDE

Arduino IDE
Arduino IDE
Arduino IDE
Arduino IDE

Open de Arduino IDE en volg het gedeelte "Install ESP8266 Add-on in Arduino IDE" van deze handleiding:

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

Ga naar Sketch->Bibliotheek opnemen->ZIP-bibliotheek toevoegen… en voeg de 3 bibliotheken toe aan het bestand "Libraries.rar".

Open de schets "HX711Calibration", upload deze naar beide ESP8266's, voer deze uit en volg de instructies (in het begin van de code en in de seriële monitor) om de loadcellen te kalibreren (zorg ervoor dat de baudrate van de seriële monitor is ingesteld op 115200 baud).

* Noteer de kalibratiefactor en de nulpuntverschuiving (voor later gebruik).

Open "FoodDispenser" en "WaterDispenser" sketches via de IDE en verander de volgende variabelen met je instellingen (in bestand "Settings.h"):

  • WIFI_SSID
  • WIFI WACHTWOORD
  • MQTT_SERVER
  • LOAD_CELL_CALIBRATION_FACTOR
  • LOAD_CELL_ZERO_OFFSET

* Voer in MQTT_SERVER het interne IP-adres van de stap "Mosquitto" in.

Upload de schetsen naar uw twee ESP8266 (één code voor elk bord).

* Merk op dat we de "AsyncMqttClient"-bibliotheek hebben gebruikt en niet de meer gebruikelijke "pubsubclient" -bibliotheek omdat de esp8266 crasht in combinatie met de "HX711" -bibliotheek.

* Als u ervoor kiest om wijzigingen in de code aan te brengen, zorg er dan voor dat u de functies "delay" en "yield" niet gebruikt in callback-functies, omdat dit crashes zal veroorzaken.

Stap 7: Ngroko

Ngrok
Ngrok
Ngrok
Ngrok

Pak het gedownloade bestand uit (via de link in de stap "Software").

Open "ngrok.exe" en voer het commando "ngrok http 1880" uit.

* U kunt de dichtstbijzijnde regio selecteren (au, eu, ap, us, jp, in, sa). De standaard zijn wij.

Voer bijvoorbeeld het commando uit: "ngrok http --region=eu 1880" (stel de regio in op Europa).

Nu zie je je webadres voor extern gebruik (we noemen dit adres YOUR_NGROK_ADDRESS).

Stap 8: Knooppunt-RED

Knooppunt-RED
Knooppunt-RED
Knooppunt-RED
Knooppunt-RED
Knooppunt-RED
Knooppunt-RED

Open Node-RED (windows-gebruikers: open cmd en typ "node-red") en ga naar https://localhost:1880 (als het niet werkt, zoek dan naar het adres in het cmd-venster waar staat "Server now loopt op").

Open het menu (in de rechterbovenhoek) en druk op "Palet beheren".

Ga naar het tabblad "Installeren", zoek en installeer deze modules:

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

Ga naar het menu->Importeren en upload het stroombestand (pak het bijgevoegde RAR-bestand uit en upload het json-bestand).

Zie de bijgevoegde afbeeldingen voor uitleg over de stroming.

U moet deze knooppunten aanpassen met uw instellingen:

  • Werk het profiel van het "Telegram-afzender"-knooppunt bij met de gebruikersnaam en het token van uw bot (gebruik deze handleiding:
  • Wijzig onderaan de stroom de payloads van de nodes "Ngrok Address" en "Telegram Chat Id" (verkrijg uw chat-ID met behulp van de Telegram-gids in de bovenstaande link).
  • In het onderste deel van de stroom zijn er instellingenknooppunten - wijzig ze volgens uw behoeften:

    • Activeer waarschuwingen voor huisdier is eten/drinken.
    • Definieer wat de afstand is voor het activeren van eet-/drinkwaarschuwing.
    • Definieer gegevensverwerking van kommen en tanks.
    • Wijzig de uitgiftetijden (hoe lang duurt de uitgifte - automatische modus en druk op de knop).
    • Definieer het overloopdrempelpercentage van de voerbak (stop de automatische voedseluitgifte af als er voldoende voedsel in de kom zit).

Implementeer de stroom (rechtsboven).

* Alleen bij de eerste implementatie ziet u een waarschuwing in het foutopsporingsvenster over het ontbreken van het 'persistance.json'-bestand. Maak je geen zorgen, want op het moment dat je voertijden instelt of de automatische waterwissel wijzigt, wordt dit bestand geïnitialiseerd en heb je deze waarschuwing niet meer.

Je kunt je dashboard bekijken op https://NODE-RED_PC'S_INTERNAL_IP_ADDRESS:1880/ui (als je verbonden bent met hetzelfde LAN als de server) of YOUR_NGROK_ADDRESS/ui (van overal).

Stap 9: Afsluiten

Inpakken
Inpakken

We hopen dat deze tutorial informatief en gemakkelijk te lezen, begrijpen en implementeren was.

Vraag ons gerust alles.

Aanbevolen: