Turinys:

Išmanusis naminių gyvūnėlių tiektuvas: 9 žingsniai
Išmanusis naminių gyvūnėlių tiektuvas: 9 žingsniai

Video: Išmanusis naminių gyvūnėlių tiektuvas: 9 žingsniai

Video: Išmanusis naminių gyvūnėlių tiektuvas: 9 žingsniai
Video: Nuo letenos iki uodegos. Ką turėtų žinoti pagyvenusių šunų šeimininkai 2024, Liepa
Anonim
Image
Image
Išmanusis naminių gyvūnėlių lesykla
Išmanusis naminių gyvūnėlių lesykla

Ar turite augintinį?

  • Ne: įvaikink vieną! (ir grįžkime prie šios pamokos).
  • Taip: geras darbas!

Argi nebūtų puiku, jei galėtumėte pamaitinti ir duoti vandens savo mylimam žmogui, neatšaukdami planų, kad laiku grįžtumėte namo? Mes sakome, kad daugiau nesijaudinkite.

Šiame projekte mes sukūrėme nuotoliniu būdu valdomus (per internetą) maisto ir vandens balionėlius.

Internetiniame prietaisų skydelyje galite peržiūrėti duomenis ir valdyti dozatorius:

  • Peržiūrėkite maisto ir vandens lygį rezervuaruose.
  • Peržiūrėkite maisto ir vandens lygį dubenėliuose.
  • Ar gyvūnas šiuo metu valgo ar geria?
  • Suplanuokite maitinimą (prietaisas neišduos maisto, jei dubenyje yra pakankamai maisto).
  • Automatiškai išpilstykite vandenį, kai indas tuščias.
  • Vienu mygtuko paspaudimu išpilstykite maistą/vandenį.
  • Gaukite tiesioginius pranešimus į savo telefoną („Telegram“programa).

Kas mes esame?

Sukūrė Tomas Kaufmanas ir Katya Fichman, „IDC Herzliya“informatikos studentai.

Šis projektas buvo sukurtas IOT kursui.

Prekės

Elektronika

  • 2 X ESP8266 („Wemos d1 mini“).
  • Jumperio laidai.
  • 2 X duonos lenta.
  • 4 X ultragarso jutiklis.
  • 2 X Įkrovos langelis.
  • 2 X Įkrovos elementų stiprintuvas (HX711).
  • Servo (180 °).
  • Servo (nuolatinis sukimasis).
  • 2 X 6 V maitinimo šaltinis.

Dalys

  • Kukurūzų dribsnių dozatorius („Amazon“nuoroda).
  • 3D atspausdintas maisto piltuvo piltuvas (https://www.thingiverse.com/thing:3998805).
  • 3D spausdintas maisto dozatoriaus servo priedas (https://www.thingiverse.com/thing:3269637).
  • 3D spausdintas maisto dozatoriaus stovas (skirtas šiam projektui:
  • 3D spausdinta apkrovos elementų bazė ir plokštė (skirta šiam projektui:
  • Vandens dozatorius („Amazon“nuoroda į kažką panašaus).
  • Viela (prijungti vandens dozatoriaus rankenėlę prie servo).
  • 3 X Ultragarso jutiklio stovas.

1 žingsnis: kaip tai veikia?

Kaip tai veikia?
Kaip tai veikia?

ESP8266 plokštės siunčia jutiklių rodmenis į „Node-RED“per „Mosquitto“(MQTT brokeris).

„Node-RED“apdoroja duomenis, atitinkamai imasi veiksmų (taip pat siunčia išdavimo komandas į ESP8266 plokštes per „Mosquitto“) ir rodo informaciją prietaisų skydelyje.

Visi skaičiavimai atliekami naudojant „Node-RED“, todėl būtų lengva pakartoti šį projektą ir pakeisti duomenų apdorojimą pagal jūsų nustatymus ir pageidavimus, nenusitepus rankų nuo kodavimo.

2 žingsnis: programinė įranga

Programinė įranga
Programinė įranga

„Arduino IDE“

Atsisiųskite ir įdiekite (nuoroda:

Mosquitto

Atsisiųskite ir įdiekite (nuoroda:

Node.js

Atsisiųskite ir įdiekite (nuoroda:

Mazgas-RAUDONAS

Vykdykite instrukcijas:

ngrok

Atsisiųsti:

Telegrama

Įdiekite programą savo išmaniajame telefone.

3 žingsnis: grandinės išdėstymas

Grandinės išdėstymas
Grandinės išdėstymas

* Abu įrenginiai turi tas pačias grandines

Vandens dalytuvas

  • Ultragarsinis jutiklis (vandens rezervuarui)

    • GND - G.
    • VCC - 5V
    • ECHO - D5
    • TRIGGERIS - D0
  • Ultragarsinis jutiklis (skirtas augintinio atstumui nuo dubenėlio)

    • GND - G.
    • VCC - 5V
    • ECHO - D6
    • TRIGGERIS - D7
  • Įkelti langelį

    • ŽALIA - A+ (HX711)
    • BALTAS - A- (HX711)
    • JUODAS - E- (HX711)
    • RAUDONA - E+ (HX711)
  • HX711 (apkrovos elementų stiprintuvas)

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

    • GND - G.
    • VCC - 5V

Maisto dozatorius

  • Ultragarsinis jutiklis (maisto bakui)

    • GND - G.
    • VCC - 5V
    • ECHO - D5
    • TRIGGERIS - D0
  • Ultragarsinis jutiklis (skirtas augintinio atstumui nuo dubenėlio)

    • GND - G.
    • VCC - 5V
    • ECHO - D6
    • TRIGGERIS - D7
  • Įkelti langelį

    • ŽALIA - A+ (HX711)
    • BALTAS - A- (HX711)
    • JUODAS - E- (HX711)
    • RAUDONA - E+ (HX711)
  • HX711 (apkrovos elementų stiprintuvas)

    • GND - G.
    • VCC - 5V
    • DT - D4
    • SCK - D3
  • Servo (nuolatinis sukimasis)

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

4 žingsnis: amatai

Amatai
Amatai
Amatai
Amatai
Amatai
Amatai

Vandens dalytuvas

  1. Klijuokite servo prie dozatoriaus apatinės dalies viršaus (kaip parodyta nuotraukoje).
  2. Gręžkite nedidelę skylę vandens dozatoriaus rankenėlėje.
  3. Prijunkite servo galvutę prie rankenėlės viela (įsitikinkite, kad servo galvutė yra 0 padėtyje ir įsitikinkite, kad viela yra įtempta).
  4. Klijuokite vieną ultragarso jutiklį prie vidinės bako pusės, netoli jo viršaus (jutiklis nukreiptas žemyn).
  5. Klijuokite vieną ultragarsinį jutiklį žemiau vandens rankenėlės į išorę (įsitikinkite, kad jis yra pakankamai aukštas, kad vandens indas nepaveiktų jo rodmenų).

Maisto dozatorius

  1. Prisukite servo prie laikiklio (3D spausdinta dalis).
  2. Klijuokite piltuvą (3D spausdinta dalis) prie bako laikiklio (3D spausdinta dalis).
  3. Prijunkite rezervuaro laikiklį prie dozatoriaus stovo (3D spausdinta dalis) ir padėkite baką į vietą.
  4. Įdėkite verpimo dalį (3D spausdintą) į savo vietą ir per besisukančią guminę dozatoriaus dalį.
  5. Prisukite servo laikiklio dalį prie dozatoriaus stovo.
  6. Priklijuokite vieną ultragarso jutiklį prie vidinės bako dangčio pusės (jutiklis nukreiptas žemyn).
  7. Priklijuokite vieną ultragarsinį jutiklį prie bako laikiklio pusės, nukreiptos į vietą, kurioje jūsų augintinis valgys.

Įkėlimo langeliai

Klijuokite kiekvieną apkrovos elementą prie 3D atspausdinto pagrindo ir plokštės (apkrovos elemento rodyklė nukreipta žemyn)

5 žingsnis: Mosquitto

Mosquitto
Mosquitto

Atidarykite „Mosquitto“(„Windows“vartotojai: eikite į aplanką „Mosquitto“, atidarykite cmd ir įveskite „mosquitto -v“).

* Norėdami gauti vidinį kompiuterio IP adresą, paleiskite cmd ir įveskite „ipconfig“.

6 veiksmas: „Arduino IDE“

„Arduino IDE“
„Arduino IDE“
„Arduino IDE“
„Arduino IDE“

Atidarykite „Arduino IDE“ir vykdykite šio vadovo dalį „Įdiegti ESP8266 priedą„ Arduino IDE “:

Eikite į Įrankiai-> Lenta ir pasirinkite „LOLIN (WEMOS) D1 R2 & mini“.

Eikite į Sketch-> Include Library-> Add. ZIP Library… ir pridėkite 3 bibliotekas prie „Libraries.rar“failo.

Atidarykite eskizą „HX711Calibration“, įkelkite jį į abu ESP8266, paleiskite ir vykdykite instrukcijas (kodo pradžioje ir nuosekliajame monitoriuje), kad sukalibruotumėte apkrovos elementus (įsitikinkite, kad serijinio monitoriaus duomenų perdavimo sparta nustatyta į 115200 baudų).

* Užrašykite kalibravimo koeficientą ir nulinį poslinkį (vėlesniam naudojimui).

Atidarykite „FoodDispenser“ir „WaterDispenser“eskizus per IDE ir pakeiskite šiuos kintamuosius pagal savo nustatymus (faile „Settings.h“):

  • WIFI_SSID
  • WIFI_PASSWORD
  • MQTT_SERVER
  • LOAD_CELL_CALIBRATION_FACTOR
  • LOAD_CELL_ZERO_OFFSET

* Į MQTT_SERVER įveskite vidinį IP adresą iš veiksmo „Mosquitto“.

Įkelkite eskizus į du ESP8266 (po vieną kodą prie kiekvienos plokštės).

* Atkreipkite dėmesį, kad naudojome biblioteką „AsyncMqttClient“, o ne labiau paplitusią „pubsubclient“biblioteką, nes esp8266 užstrigo, kai buvo sujungta su biblioteka „HX711“.

* Jei nuspręsite keisti kodą, nepanaudokite „atidėjimo“ir „išeigos“funkcijų atgalinio ryšio funkcijose, nes tai sukels avarijas.

7 žingsnis: Ngrok

Ngrokas
Ngrokas
Ngrokas
Ngrokas

Išpakuokite atsisiųstą failą (iš nuorodos, esančios žingsnyje „Programinė įranga“).

Atidarykite „ngrok.exe“ir paleiskite komandą „ngrok http 1880“.

* Galite pasirinkti arčiausiai jūsų esantį regioną (au, eu, ap, us, jp, in, sa). Numatytasis yra mes.

Pavyzdžiui, vykdydami komandą: "ngrok http --region = eu 1880" (nustatykite regioną į Europą).

Dabar matysite savo žiniatinklio adresą, skirtą išoriniam naudojimui (šį adresą vadinsime YOUR_NGROK_ADDRESS).

8 žingsnis: mazgas-RAUDONAS

Mazgas-RAUDONAS
Mazgas-RAUDONAS
Mazgas-RAUDONAS
Mazgas-RAUDONAS
Mazgas-RAUDONAS
Mazgas-RAUDONAS

Atidarykite „Node-RED“(„Windows“vartotojai: atidarykite cmd ir įveskite „node-red“) ir eikite į https:// localhost: 1880 (jei tai neveikia, ieškokite adreso cmd lange, kuriame parašyta „Serveris dabar bėga ).

Atidarykite meniu (viršutiniame dešiniajame kampe) ir paspauskite „Tvarkyti paletę“.

Eikite į skirtuką „Įdiegti“, ieškokite ir įdiekite šiuos modulius:

  • mazgas-raudonas-prisidėti-išlieka.
  • node-red-contrib-cron-plus.
  • mazgas-raudonas-prisideda-ui-led.
  • mazgas-raudonas-prietaisų skydelis.
  • node-red-contrib-telegrambot.

Eikite į meniu-> Importuoti ir įkelti srauto failą (išskleiskite pridėtą RAR failą ir įkelkite json failą).

Žiūrėkite pridėtus vaizdus, kad paaiškintumėte apie srautą.

Turite pakeisti šiuos mazgus naudodami savo nustatymus:

  • Atnaujinkite mazgo „Telegramos siuntėjas“profilį naudodami savo roboto naudotojo vardą ir prieigos raktą (naudokite šį vadovą:
  • Srauto apačioje pakeiskite „Ngrok Address“ir „Telegram Chat Id“mazgų naudingąsias apkrovas (gaukite pokalbio ID naudodami aukščiau esančioje nuorodoje esantį „Telegram“vadovą).
  • Apatinėje srauto dalyje yra nustatymų mazgai - pakeiskite juos pagal savo poreikius:

    • Aktyvinti gyvūno valgymo/gėrimo įspėjimus.
    • Apibrėžkite atstumą, kuriuo reikia suaktyvinti įspėjimą apie valgymą/gėrimą.
    • Apibrėžkite dubenų ir rezervuarų duomenų apdorojimą.
    • Pakeiskite dozavimo laiką (kiek laiko dozės vyksta - automatinis režimas ir mygtuko paspaudimas).
    • Nustatykite maisto dubenėlio perpildymo slenksčio procentą (nutraukite automatinį maisto tiekimą, jei dubenyje yra pakankamai maisto).

Išskleiskite srautą (viršuje dešinėje).

* Tik pirmą kartą įdiegę, derinimo lange pamatysite įspėjimą apie trūkstamą failą „persistance.json“. Nesijaudinkite dėl to, nes tuo metu, kai nustatysite maitinimo laiką arba pakeisite automatinį vandens jungiklį, jis inicijuos šį failą ir nebebus šio įspėjimo.

Prietaisų skydelį galite peržiūrėti adresu https:// NODE-RED_PC'S_INTERNAL_IP_ADDRESS: 1880/ui (jei esate prisijungę prie to paties LAN kaip serveris) arba YOUR_NGROK_ADDRESS/ui (iš visur).

9 žingsnis: Apvyniokite

Apvyniokite
Apvyniokite

Tikimės, kad ši pamoka buvo informatyvi ir lengvai skaitoma, suprantama ir įgyvendinama.

Nesivaržykite mūsų bet ko paklausti.

Rekomenduojamas: