Innholdsfortegnelse:

Kjæledyrsmater med RasPi og Telegram Bot: 4 trinn (med bilder)
Kjæledyrsmater med RasPi og Telegram Bot: 4 trinn (med bilder)

Video: Kjæledyrsmater med RasPi og Telegram Bot: 4 trinn (med bilder)

Video: Kjæledyrsmater med RasPi og Telegram Bot: 4 trinn (med bilder)
Video: Charles And Alyssa (Exposed) False Strike & Mistreating Snake 2024, Juli
Anonim
Kjæledyrsmater med RasPi og Telegram Bot
Kjæledyrsmater med RasPi og Telegram Bot
Kjæledyrsmater med RasPi og Telegram Bot
Kjæledyrsmater med RasPi og Telegram Bot

Først av alt må jeg klargjøre at dette ikke er en original Idea Mine, bare oppdatere og tilpasse programmeringsskriptene for å fungere med telegram, jeg fant det i en tidligere Instructable, så kredittene er virkelig forfatteren av det.

Du kan se den spanske versjonen av dette i min personlige blogg:

Du må bygge en liten krets som aktiverer en motor med høyt dreiemoment, og siden min kunnskap om elektronikk er veldig, veldig knapp, måtte jeg bruke et par dager på å lære det grunnleggende ved å se videoer på YouTube.

Det originale automatiseringsskriptet er skrevet i Python og bruker en GMail -tilkobling for å konsultere kommandoene, jeg hadde aldri brukt dette programmeringsspråket, men sannheten er ikke så annerledes enn de andre, jeg har modifisert det litt slik at det tilpasser seg bedre til det nye de Python -bibliotekene og automatiseringsprosessen sammen med operativsystemets konfigurasjoner lar deg parameterisere følgende:

  • Interaksjon gjennom kommandoer sendt til Chat kontrollert via ChatBots.
  • Det gjør det mulig å spore statusen til maten som blir levert.
  • Kontrollerer hvor mye mat som skal utleveres.
  • Den har knapper som lar deg mate manuelt.
  • Det tillater ikke overfôring ved å deaktivere fôringen med 8 timers mellomrom.
  • Den har en status -LCD som viser dataene som dato og klokkeslett for neste gang for neste strømforsyning, SSID som den er koblet til WiFi og IP -adressen til enheten.
  • Valgfritt: Viser noen tilfeldige vitser og / eller Trivia of Numbers fra Chuck Norris ved bruk av et par offentlige APIS (genial av den opprinnelige forfatteren).
  • Systemet er immun mot omstart på grunn av strømbrudd ettersom det lagrer en statusfil.
  • Systemet oppdager når det oppstår et tilkoblingstap og prøver å koble til igjen til det lykkes.

Trinn 1: brukte materialer

  • 1 Raperry Pi, helst versjon 3 som allerede er integrert med det trådløse kortet, du kan også bruke Pi 3 Zero -versjonen, det tar litt mer arbeid fordi du må lodde pinnene, men jeg fant veldig sent ut at det kunne bruk en av disse som er mer økonomisk.
  • 1 elektrisk motor med høyt dreiemoment, 37 mm, 3,5 o / min og 12 V.
  • 1 brakett for 37 mm motor.
  • 1 tegn LCD -skjerm på 20 x 4 linjer med HD44780 -kontroll.
  • 1 frokostblandingsdispenser Zevro modell WM1001 aksel-D på 5 tommer lang, 0,63 cm i diameter (D-kutt er nødvendig for å feste den til dispenseren)
  • 1 Akselkobling fra 1/4 "til 6 mm for å feste motoren.

Alle de tidligere materialene bortsett fra de to siste kunne jeg ikke få dem i mitt land (eller i det minste visste jeg ikke hvor jeg skulle få dem), men stangen og koblingen er sannsynligvis på et sveiseverksted, men det er første gang jeg gjør noe sånn sett, jeg ante ikke hvordan det skulle være å passe motoren, så jeg spurte siden med koblingene beskrevet ovenfor; Nedenfor materialene jeg kunne kjøpe i lokale butikker:

  • 1 trekasse, jeg bruker en 20,3 cm bred × 26,7 cm høy x 13 cm dyp. esken har en dør som åpnes til høyre med et hull på 10 cm x 4 cm for å plassere LCD -skjermen (lokal snekker)
  • 3 Trykknapper
  • 1 Liten Protoboard
  • 1 LED på 3,3 volt (det spiller ingen rolle fargen, men for spenningen er de vanligvis røde)
  • 1 NPN PN2222 transistor
  • 1 Motstand på 270 Ω
  • 1 Motstand på 10 KΩ
  • 1 potensiometer på 10 KΩ
  • 1 IN4003 -diode (IN4001 eller IN4004 kan fungere)
  • 1 12V 3A adapter
  • 1 5V 2A adapter
  • 4 skruer med vingemutter fra 1,5 tommer til 2 tommer (avhenger av tykkelsen på treet som brukes, de skal feste motorbraketten til trekassen)
  • Kabler Strikkebånd i forskjellige farger
  • 1 sammenleggbart rør eller et sett med PVC med en diameter på 4 tommer, dette avhenger av høyden som trekassen skal plasseres i.
  • 1 PVC -albue som festes til forrige støping.
  • 3 klemmer for bilrør (Verden)
  • 4 fot UTP -kabel (vi trenger de vridde parene for å lage tilkoblingene)
  • 1 USB WebCam, er det ikke nødvendig å ha høy oppløsning.

Noen diverse materialer som kan kjøpes i jernvarehandel, eller muligens har vi allerede: Industriell tape

  • Tinn sveiser
  • Tinn
  • Bore
  • Drill 5/16
  • S8 skruer med utvidere

Trinn 2: Plassering av strukturen

Plassering av strukturen
Plassering av strukturen
Plassering av strukturen
Plassering av strukturen
Plassering av strukturen
Plassering av strukturen

Hovedideen er å bytte ut doseringshåndtaket som kommer i ZEVRO med stangen D som deretter vil bli koblet til motoren ved hjelp av koblingen. Dispenseren festes til trekassen og trekassen til veggen. Siden jeg ikke vet mye elektronikk, brukte jeg ikke noen bakelittplate for å montere kretsen, så jeg brukte brødbrettet til å sette alle komponentene, så nederst på esken festes med skruer Rapberry Pi og brødbrettet som allerede hadde et lim på baksiden, så jeg bare limte den. Boksen må ha tre knapper som skal fungere som omstarter timeren, aktivere materen og den siste vil være et direkte trinn for å aktivere motoren uten å gå gjennom kretsen. Motoren vil bli holdt inne i boksen ved hjelp av braketten, så bare stangen D som kobles til dispenseren vil stikke ut av esken, i bunnen av boksen fikse og justere webkameraet slik at jeg i hver e -postkonsultasjon og bekreftelse sendte et bilde av hvordan er tallerkenen, dette for ikke å overfôre i tilfelle de ikke har fullført den siste runden med mat.

Fra bunnen av dispenseren ble røret som går ned til tallerkenen plassert og PVC -albuen plassert på basen, jeg la litt Industrial Tape i utløpet for å minimere hastigheten på matstrømmen og lagde en dispenseringsbunn for hindre at mat sprøyter overalt. For å feste røret på veggen, bruk metallbraketter som du fester til veggen med S8 -skruene.

På døren til boksen holder du platen på LCD -skjermen og bruker de vridde parene på UTP -kabelen til å ta dem direkte til bringebæret, i den andre enden av kablene spleiser huntuppene på hopperne for å gjøre tilkoblingen lettere GPIO -portene på bringebæret. Dette ville være kretsdiagrammet. Jeg skal prøve å forklare det med det lille jeg kan få av elektronikk.

Motoren er koblet direkte til den positive polen til 12 volt transformatoren, men for at strømmen skal strømme må den passere gjennom kretsen i motorens nøytrale pol, for denne transistoren N2222 brukes. Transistorene har normalt 3 ben som tilsvarer en kollektor, en base og en emitter, avhengig av transistorens modell kan plasseringen av disse benene variere; Denne transistoren får bryteren til å fungere. Det er her vi kobler motorens nøytrale pol til kollektoren til transistoren, pin # 19 på rapberry er koblet til basen ved hjelp av en motstand på 270Ω og senderen er koblet til transistorens nøytrale terminal. 12V transformator sammen med en av jordpolene til bringebæret; transistoren vil la strømmen flyte mellom kollektor og emitter så lenge basen stimuleres med tilstrekkelig spenning; senere skal vi programmere rapsbæret slik at port 19 i henhold til visse ordre vil avgi 3,3 volt, nok til at kretsen kan fortsette og aktivere motoren.

For LCD -skjermen brukes en annen del av protobarden i en annen krets hvor du kobler 10KΩ potensiometeret som avviser kontrasten til teksten som vises på LCD -skjermen, så hvis ingenting vises på skjermen er det sannsynligvis fordi potensiometeret er helt lukket; i mitt tilfelle lar jeg den stå helt åpen slik at teksten blir bedre visualisert. Til slutt ville tilkoblingene i brødbrettet være som følger.

Trinn 3: Raspberry Pi -konfigurasjon

Først og fremst er det viktig å opprette Telegram Bot for at systemet skal administreres. Du trenger en nøkkel for å endre det vedlagte python -skriptet. Vennligst les trinnene i telegramdokumentasjonen:

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

For å konfigurere rapberry, bruk Lite-versjonen av Rapbian (vi trenger ikke det grafiske grensesnittet) og bruk den grunnleggende konfigurasjonen som viser raspbian når den er installert eller bruk raspi-config-kommandoen: utvid plassen til 100% og aktiver SSH, men spesielt det viktigste er å endre passordet og brukernavnet til bruker -pi som kommer som standard (Ellers, som skjedde med meg, kan de lide et angrep fra port 22 hvis de har en offentlig IP adressert til bringebæret). Bortsett fra det konfigurasjonen for å koble til automatisk mitt WiFi -nettverk (Forutsatt at nettverket mitt kalles "BlogSoriano" og passordet mitt er "$ ecure123!") Genererer og lagrer vi nøkkelen i filen for trådløse forbindelser med følgende kommando:

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

det neste er å oppdatere og installere python -installasjonssystemet "pip", så vi logger inn som root, oppdaterer og installerer de nødvendige pakkene:

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

Med dette har vi allerede tilgang til python -klassebiblioteket, for skriptet som vi skal bruke, må vi installere følgende:

pip install RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces wireless telepot cv2

Når installasjonen av avhengigheter er fullført, bruker vi skriptet som er vedlagt dette trinnet, jeg lagrer det i banen /opt/petfeeder.py og filen kan opprettes ved hjelp av kommandoen nano /opt/petfeeder.py og inne i denne filen vi limer inn koden, eller hvis du har mer Linux -erfaring, kan du laste ned direkte med wget. I skriptet er det viktig å endre variablene BOTKEY (på linje 36) og SYSPASSORD (på linje 23).

Jeg presiserer at denne koden ikke ble skrevet av meg siden jeg aldri hadde programmert i Python, jeg bare endret den for å fungere med de nye bibliotekene og med 20x4 LCD -skjermen og for å bruke telegram Bot.

Når vi har skriptet, må vi endre verdiene til variablene med nøkkelen for boten; for dette er det nødvendig å opprette en ny Telegram Bot, med det ville det bare være å lagre filen og avslutte (med Ctrl + eller lagre og ctrl + x forlater editoren nano), vi trenger bare å være bevis på omstart; selve skriptet lagrer siste gang strømsystemet aktiveres, så vi trenger bare å få skriptet til å kjøre hver gang operativsystemet starter, for dette fant jeg en helt spesiell løsning med et program som heter supervisor, som er installert fra Debian -depotene:

apt-get install veileder

og når den er installert, trenger vi bare å opprette en konfigurasjonsfil i /etc/supervisor/conf.d/petfeeder.conf, som i forrige tilfelle kan vi opprette og lagre den med nano, denne filen vil ha følgende:

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

Når filen er lagret kan vi bruke kommandoen supervisorctl [start | stopp | restart] petfeederd, ettersom tjenesten ikke er startet i dette tilfellet, utfører vi den med start:

supervisorctl start petfeederd

Trinn 4: Klar til å teste

Image
Image
Klar til å teste
Klar til å teste
Klar til å teste
Klar til å teste
Klar til å teste
Klar til å teste

Og med dette bør systemet fungere, LCD -skjermen skal vise informasjon om når det skal være neste feed eller om det er klart til feed hvis jeg skal si det. Du må også vise navnet på det trådløse nettverket du er koblet til og IP -adressen som brukes i tilfelle vi trenger å koble til via SSH, jeg deler en liten video som jeg lagde, jeg beklager kvaliteten på den, jeg er ikke veldig god er dette emnet for vloggene.

Du bør kunne søke i boten din på Telegram og sende en av de neste kommandoene etter at du har /autorisert chatten din:

/feed: Starter fôringsprosessen så lenge den parameteriserte tidsperioden har gått.

/når: den returnerer informasjon om når den siste fôringen var og et bilde av matfatet.

/foto: Returner et bilde av matfatet.

/restart: Start systemet på nytt, sett variabelen for siste feed til 0 for å kunne mate umiddelbart.

/status Det informerer om Internett -tilkoblingsstatus: SSID for den tilkoblede trådløse enheten og IP -adressen som systemet har i nettverket.

Anbefalt: