Indholdsfortegnelse:

Pet Feedermaskine med RasPi og Telegram Bot: 4 trin (med billeder)
Pet Feedermaskine med RasPi og Telegram Bot: 4 trin (med billeder)

Video: Pet Feedermaskine med RasPi og Telegram Bot: 4 trin (med billeder)

Video: Pet Feedermaskine med RasPi og Telegram Bot: 4 trin (med billeder)
Video: Pi Zero powered Automatic Pet Food Dispenser 2024, Juli
Anonim
Pet Feedermaskine med RasPi og Telegram Bot
Pet Feedermaskine med RasPi og Telegram Bot
Pet Feedermaskine med RasPi og Telegram Bot
Pet Feedermaskine med RasPi og Telegram Bot

Først og fremmest skal jeg præcisere, at dette ikke er en original Idea Mine, bare opdatere og tilpasse programmerings scripts til at arbejde med telegram, jeg fandt det i en tidligere Instructable, så kreditterne er virkelig forfatteren til det.

Du kunne se den spanske version af dette i min personlige blog:

Du skal bygge et lille kredsløb, der aktiverer en motor med højt drejningsmoment, og da mit kendskab til elektronik er meget, meget sparsomt, måtte jeg bruge et par dage på at lære det grundlæggende ved at se videoer på YouTube.

Det originale automatiseringsskript er skrevet i Python og bruger en GMail -forbindelse til at konsultere kommandoerne, jeg havde aldrig brugt dette programmeringssprog, men sandheden er ikke så forskellig fra de andre, jeg har ændret det lidt, så det tilpasser sig bedre til det nye de Python -biblioteker og automatiseringsprocessen sammen med operativsystemets konfigurationer giver dig mulighed for at parametre følgende:

  • Interaktion gennem kommandoer sendt til Chat kontrolleret via ChatBots.
  • Det gør det muligt at spore status for den udleverede mad.
  • Kontrollerer, hvor meget mad der skal udleveres.
  • Den har knapper, der giver dig mulighed for at fodre manuelt.
  • Det tillader ikke overfodring ved at deaktivere fodringen med 8 timers mellemrum.
  • Den har en status -LCD, der viser dataene som dato og klokkeslæt for det næste tidspunkt for den næste strømforsyning, SSID, som den er forbundet til WiFi og enhedens IP -adresse.
  • Valgfrit: Viser nogle Chuck Norris Random Jokes og / eller Trivia of Numbers ved hjælp af et par offentlige APIS (genial af den originale forfatter).
  • Systemet er immun mod genstart på grund af strømafbrydelser, da det gemmer en statusfil.
  • Systemet registrerer, når der er et forbindelsestab, og forsøger at oprette forbindelse igen, indtil det lykkes.

Trin 1: Brugte materialer

  • 1 Raperry Pi, helst version 3, der allerede er integreret med det trådløse kort, du kan også bruge Pi 3 Zero -versionen, det kræver lidt mere arbejde, fordi du skal lodde stifterne, men jeg fandt meget sent ud af, at det kunne Brug en af disse, der er mere økonomisk.
  • 1 elektrisk motor med højt drejningsmoment, 37 mm, 3,5 omdr./min. Og 12V.
  • 1 Braket til 37 mm motor.
  • 1 tegn LCD -skærm på 20x4 linjer med HD44780 kontrol.
  • 1 kornautomat Zevro Model WM1001 aksel-D på 5 tommer lang, 0,63 cm i diameter (D-udskæring er nødvendig for at fastgøre den til dispenseren)
  • 1 akselkobling fra 1/4 "til 6 mm for at forbinde motoren.

Alle de tidligere materialer undtagen de sidste to kunne jeg ikke få dem i mit land (eller i det mindste vidste jeg ikke, hvor jeg skulle få dem), men stangen og koblingen er sandsynligvis på et svejseværksted, men det er første gang, jeg gør noget sådan havde jeg ingen idé om, hvordan det skulle være at montere motoren, så jeg spurgte siden med links beskrevet ovenfor; Nedenfor de materialer, jeg kunne købe i lokale butikker:

  • 1 trækasse, jeg bruger en 20,3 cm bred × 26,7 cm høj x 13 cm dyb. boksen har en dør, der åbnes til højre med et hul på 10 cm x 4 cm for at placere LCD -skærmen (lokal snedkerarbejde)
  • 3 trykknapper
  • 1 lille protoboard
  • 1 LED på 3,3 Volt (Det er ligegyldigt farven, men for spændingen er de normalt røde)
  • 1 NPN PN2222 transistor
  • 1 Modstand på 270 Ω
  • 1 Modstand på 10 KΩ
  • 1 Potentiometer på 10 KΩ
  • 1 IN4003 -diode (IN4001 eller IN4004 kan fungere)
  • 1 12V 3A adapter
  • 1 5V 2A adapter
  • 4 skruer med vingemøtrik fra 1,5 tommer til 2 tommer (afhænger af tykkelsen af det anvendte træ, de skal fastgøre motorbeslaget til trækassen)
  • Kabler Trøjer i forskellige farver
  • 1 folderør eller et sæt PVC med en diameter på 4 tommer, dette afhænger af højden, hvorpå trækassen skal placeres.
  • 1 PVC -albue, der fastgøres til den forrige støbning.
  • 3 klemmer til bilrør (Verden)
  • 4 fod UTP -kabel (vi har brug for de snoede par for at oprette forbindelserne)
  • 1 USB WebCam, er det ikke nødvendigt at have høj opløsning.

Nogle diverse materialer, der kan fås i isenkræmmere eller muligvis allerede har: Industrieltape

  • Tin svejser
  • Tin
  • Bore
  • Bor 5/16
  • S8 skruer med udvidelser

Trin 2: Placering af strukturen

Placering af strukturen
Placering af strukturen
Placering af strukturen
Placering af strukturen
Placering af strukturen
Placering af strukturen

Hovedideen er at udskifte dispenseringshåndtaget, der kommer i ZEVRO, med stangen D, som derefter vil blive forbundet til motoren ved hjælp af koblingen. Dispenseren fastgøres til trækassen og trækassen til væggen. Da jeg ikke kender meget elektronik, brugte jeg ikke nogen Bakelit -plade til at montere kredsløbet, så jeg brugte brødbrættet til at lægge alle komponenterne, så i bunden af kassen fastgøres med skruer Rapberry Pi og brødbrættet, der allerede havde et klæbemiddel på bagsiden, så jeg gik bare til at indsætte den. Boksen skal have tre knapper, der har funktionen Genstart timeren, aktiver feederen, og den sidste vil være et direkte trin for at aktivere motoren uden at gå gennem kredsløbet. Motoren vil blive holdt inde i kassen ved hjælp af beslaget, så kun stangen D, der forbinder til dispenseren, stikker ud af kassen, i bunden af kassen fastgør og justerer webkameraet, så jeg ved hver mailkonsultation og bekræftelse sendt et foto af hvordan er tallerkenen, dette for ikke at overfodre, hvis de ikke er færdige med den sidste madrunde.

Fra bunden af dispenseren blev røret, der går ned til tallerkenen, placeret, og PVC -albuen blev placeret på bunden, jeg lagde lidt industrielt tape i udløbet for at minimere hastigheden af madstrømmen og lavede en dispenseringsbase til forhindre mad i at sprøjte overalt. For at fastgøre røret til væggen skal du bruge metalbeslag, som du fastgør til væggen med S8 -skruerne.

Hold på pladen på LCD -skærmen på døren til kassen, og brug de snoede par på UTP -kablet til at tage dem direkte til hindbæret, i den anden ende af kablerne splejser hunspidserne på springerne for at gøre forbindelsen lettere GPIO -portene på hindbæret. Dette ville være kredsløbsdiagrammet. Jeg vil forsøge at forklare det med det lille, jeg kan få fra elektronik.

Motoren er forbundet direkte til den positive pol på 12 volt transformeren, men for at strømmen skal strømme, skal den passere gennem kredsløbet i motorens neutralpol, for denne transistor N2222 bruges. Transistorerne har normalt 3 ben, der svarer til en kollektor, en base og en emitter, afhængigt af transistorens model kan placeringen af disse ben variere; Denne transistor får switch til at fungere. Det er her, vi forbinder motorens neutralpol med transistorens kollektor, pin # 19 på rapberry er forbundet til basen ved hjælp af en modstand på 270Ω, og emitteren er forbundet til transistorens neutrale terminal. 12V transformer sammen med en af hindbærets jordpæle; transistoren vil lade strømmen strømme mellem kollektor og emitter, så længe basen stimuleres med tilstrækkelig spænding; senere programmerer vi rapberry, så port 19 vil i henhold til visse ordrer udsende 3,3 volt, nok til at kredsløbet kan fortsætte og aktivere motoren.

Til LCD -skærmen bruges en anden del af protobarden i et andet kredsløb, hvor du tilslutter 10KΩ potentiometeret, der afviser kontrasten i teksten, der vises på LCD, så hvis der ikke vises noget på skærmen, er det sandsynligvis fordi potentiometeret er totalt lukket; i mit tilfælde lader jeg den stå helt åben, så teksten bliver bedre visualiseret. Til sidst ville forbindelserne i brødbrættet være som følger.

Trin 3: Raspberry Pi -konfiguration

Først og fremmest er det vigtigt at oprette Telegram Bot, at systemet vil blive administreret. Du skal bruge en nøgle til at ændre det vedhæftede python -script. Læs venligst trinene i telegramdokumentationen:

core.telegram.org/bots#3-how-do-i-create-a-bot

For at konfigurere rapberry skal du bruge Lite-versionen af Rapbian (vi har ikke brug for den grafiske grænseflade) og anvende den grundlæggende konfiguration, der viser raspbian, når den er installeret eller ved hjælp af raspi-config-kommandoen: udvid rummet til 100%, og aktiver SSH, men især det vigtigste er at ændre adgangskoden og brugernavnet til den bruger -pi, der kommer som standard (Ellers, som det skete for mig, kan de lide et angreb fra port 22, hvis de har en offentlig IP adresseret til hindbær). Bortset fra det er konfigurationen til automatisk at oprette forbindelse til mit WiFi -netværk (forudsat at mit netværk kaldes "BlogSoriano" og mit kodeord er "$ ecure123!") Vi genererer og gemmer nøglen i filen Trådløse forbindelser med følgende kommando:

sudo wpa_passphrase "BlogSoriano" "$ ecure123!" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf>/dev/null

den næste ting er at opdatere og installere python -installationssystemet "pip", så vi logger ind som root, opdaterer og installerer de nødvendige pakker:

sudo -i apt-get opdatering apt-get install build-essential python-dev python-smbus python-pip

Med dette har vi allerede adgang til python -klassebiblioteket, for det script, vi skal bruge, skal vi installere følgende:

pip installer RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces trådløs telepot cv2

Når installationen af afhængigheder er færdig, vil vi bruge scriptet, der er knyttet til dette trin, jeg gemmer det i stien /opt/petfeeder.py, og filen kan oprettes ved hjælp af kommandoen nano /opt/petfeeder.py og inde i denne fil vi indsætter koden, eller hvis du har mere Linux -erfaring, kan du downloade direkte med wget. I scriptet er det vigtigt at ændre variablerne BOTKEY (i linje 36) og SYSPASSWORD (i linje 23).

Jeg præciserer, at denne kode ikke blev skrevet af mig, da jeg aldrig havde programmeret i Python, jeg ændrede den kun til at arbejde med de nye biblioteker og med 20x4 LCD -skærmen og til at bruge telegram Bot.

Når vi har Scriptet, skal vi ændre værdierne for variablerne med nøglen til bot; til dette er det nødvendigt at oprette en ny Telegram Bot, med at det kun ville være at gemme filen og afslutte (med Ctrl + eller gem og ctrl + x forlader editoren nano), vi skal bare være et bevis på genstart; selve scriptet gemmer sidste gang strømsystemet aktiveres, så vi skal kun få scriptet til at køre hver gang operativsystemet starter, for dette fandt jeg en helt særlig løsning med et program kaldet supervisor, som installeres fra Debian -arkiverne:

apt-get install supervisor

og når den er installeret, behøver vi kun at oprette en konfigurationsfil i /etc/supervisor/conf.d/petfeeder.conf, da vi i den tidligere sag kan oprette og gemme den med nano, denne fil har følgende:

[program: petfeederd] bibliotek =/opt kommando = python petfeeder.py autostart = true autorestart = true

Når filen er gemt, kan vi bruge kommandoen supervisorctl [start | stop | genstart] petfeederd, da tjenesten i dette tilfælde ikke er startet, udfører vi den med start:

supervisorctl start petfeederd

Trin 4: Klar til test

Image
Image
Klar til test
Klar til test
Klar til test
Klar til test
Klar til test
Klar til test

Og med dette skulle systemet fungere, LCD -skærmen skulle vise oplysninger om, hvornår det skulle være det næste feed, eller om det er klar til at fodre, skal jeg sige det. Du skal også vise navnet på det trådløse netværk, du er tilsluttet, og den IP -adresse, der bruges, hvis vi skal oprette forbindelse via SSH, jeg deler en lille video, som jeg lavede, jeg beklager kvaliteten af det, jeg er ikke særlig god er dette emne i vlogs.

Du bør være i stand til at søge i din bot på Telegram og sende en af de næste kommandoer, efter at du har /godkendt din chat:

/feed: Starter fodringsprocessen, så længe den parameteriserede tidsperiode er forløbet.

/hvornår: den returnerer oplysninger om hvornår den sidste fodring var og et billede af madtallerkenen.

/foto: Returner et billede af madtallerkenen.

/genstart: Genstart systemet, sæt variablen for sidste feed til 0 for at kunne fodre med det samme.

/status Det informerer om internetforbindelsesstatus: SSID for det tilsluttede trådløse netværk og den IP -adresse, som systemet har inden for netværket.

Anbefalede: