Sadržaj:

Mašina za hranjenje kućnih ljubimaca sa RasPi i Telegram Botom: 4 koraka (sa slikama)
Mašina za hranjenje kućnih ljubimaca sa RasPi i Telegram Botom: 4 koraka (sa slikama)

Video: Mašina za hranjenje kućnih ljubimaca sa RasPi i Telegram Botom: 4 koraka (sa slikama)

Video: Mašina za hranjenje kućnih ljubimaca sa RasPi i Telegram Botom: 4 koraka (sa slikama)
Video: Колыма - родина нашего страха / Kolyma - Birthplace of Our Fear 2024, Juli
Anonim
Mašina za hranjenje kućnih ljubimaca sa RasPi i Telegram Botom
Mašina za hranjenje kućnih ljubimaca sa RasPi i Telegram Botom
Mašina za hranjenje kućnih ljubimaca sa RasPi i Telegram Botom
Mašina za hranjenje kućnih ljubimaca sa RasPi i Telegram Botom

Prije svega, moram pojasniti da ovo nije originalni Idea Mine, samo ažurirajte i prilagodite programske skripte za rad s telegramom, našao sam ga u prethodnom Instructable -u, tako da su zasluge zaista njegov autor.

Špansku verziju ovoga mogli ste vidjeti na mom ličnom blogu:

Morate izgraditi mali krug koji aktivira motor s velikim okretnim momentom, a budući da je moje znanje o elektronici vrlo, vrlo oskudno, morao sam provesti nekoliko dana učeći osnove gledajući videozapise na YouTubeu.

Originalna skripta za automatizaciju napisana je na Pythonu i koristi GMail vezu za provjeru naredbi, nikada nisam koristio ovaj programski jezik, ali istina se ne razlikuje toliko od ostalih, malo sam ga izmijenio kako bi se bolje prilagodio novom one Python biblioteke i proces automatizacije zajedno sa konfiguracijama operativnog sistema omogućavaju vam da parametrizirate sljedeće:

  • Interakcija putem naredbi poslanih Chatu kontroliranih putem ChatBot -ova.
  • Omogućava praćenje statusa izdane hrane.
  • Kontrolira koliko će hrane biti izdano.
  • Ima dugmad koja vam omogućuju ručno hranjenje.
  • Ne dopušta prekomjerno hranjenje onemogućujući hranjenje u intervalima od 8 sati.
  • Ima statusni LCD koji prikazuje podatke kao datum i vrijeme sljedećeg puta za sljedeće napajanje, SSID na koji je spojen na WiFi i IP adresu uređaja.
  • Opcionalno: prikazuje neke nasumične viceve Chucka Norrisa i / ili Trivia of Numbers koristeći par javnih APIS -a (genijalno od originalnog autora).
  • Sistem je imun na ponovno pokretanje zbog nestanka struje jer sprema datoteku statusa.
  • Sistem otkriva kada dođe do prekida veze i pokušava se ponovo povezati dok ne uspije.

Korak 1: Korišteni materijali

  • 1 Raperry Pi, po mogućnosti verzija 3 koja je već integrirana s bežičnom karticom, možete koristiti i Pi 3 Zero verziju, potrebno je malo više posla jer morate lemiti pinove, ali vrlo kasno sam saznao da bi mogao upotrijebite jednu od njih koja je ekonomičnija.
  • 1 elektromotor velikog okretnog momenta, 37 mm, 3,5 o / min i 12 V.
  • 1 Nosač za motor od 37 mm.
  • LCD ekran od 1 karaktera u linijama 20x4 sa kontrolom HD44780.
  • 1 Dozator za žitarice Zevro Model WM1001 vratilo-D od 5 inča dugačko, 0,63 cm u prečniku (D rez je potreban za pričvršćivanje na dozator)
  • 1 Spojnica vratila od 1/4 "do 6 mm za spajanje s motorom.

Sve prethodne materijale osim posljednja dva nisam mogao nabaviti u svojoj zemlji (ili barem nisam znao gdje ih nabaviti), međutim šipka i spojnica su vjerojatno u radionici za zavarivanje, ali prvi put radim nešto tako, nisam imao pojma kako bi trebalo biti u skladu s motorom pa sam upitao stranicu gore opisanih linkova; Ispod materijala koje mogu kupiti u lokalnim trgovinama:

  • 1 drvena kutija, koristim 20,3 cm širine × 26,7 cm visine x 13 cm dubine. kutija ima vrata koja se otvaraju desno s otvorom 10 cm x 4 cm za postavljanje LCD ekrana (lokalna stolarija)
  • 3 Pritisnite tastere
  • 1 Mala protoboard
  • 1 LED od 3,3 V (nije bitna boja, ali za napon su obično crvene boje)
  • 1 tranzistor NPN PN2222
  • 1 Otpor 270 Ω
  • 1 Otpor 10 KΩ
  • 1 Potenciometar od 10 KΩ
  • 1 dioda IN4003 (mogu raditi IN4001 ili IN4004)
  • 1 adapter 12V 3A
  • 1 adapter 5V 2A
  • 4 vijka s krilnom maticom od 1,5 do 2 inča (ovisno o debljini korištenog drveta, pričvršćuju nosač motora na drvenu kutiju)
  • Kablovi Džemper niti različitih boja
  • 1 sklopiva cijev ili komplet PVC -a promjera 4 inča, to ovisi o visini na koju će se postaviti drvena kutija.
  • 1 PVC lakat koji se pričvršćuje na prethodni gips.
  • 3 stezaljke za automobilske cijevi (Svijet)
  • 4 stope UTP kabla (potrebni su nam upleteni parovi za povezivanje)
  • 1 USB WebCam, nije potrebno imati visoku rezoluciju.

Neki razni materijali koji se mogu nabaviti u prodavaonicama željezne opreme ili ih već imamo: Industrial Tape

  • Limeni zavarivač
  • Tin
  • Drill
  • Bušilica 5/16
  • S8 vijci s ekspanderima

Korak 2: Postavljanje strukture

Postavljanje strukture
Postavljanje strukture
Postavljanje strukture
Postavljanje strukture
Postavljanje strukture
Postavljanje strukture

Glavna ideja je zamijeniti ručicu za doziranje koja dolazi u ZEVRO -u šipkom D koja će se zatim spojiti na motor pomoću spojnice. Dozator će biti pričvršćen na drvenu kutiju, a drvena kutija na zid. Kako ne poznajem mnogo elektronike, nisam koristio nikakvu bakelitsku ploču za montiranje strujnog kruga pa sam upotrijebio ploču za postavljanje svih komponenti tako da su na dnu kutije pričvršćene vijcima Rapberry Pi i ploča za kruh koja je već imala ljepilo na poleđini pa sam samo otišao zalijepiti. Kutija mora imati tri gumba koji će imati funkciju ponovnog pokretanja mjerača vremena, aktiviranja ulagača, a posljednji će biti direktan korak za aktiviranje motora bez prolaska kroz krug. Motor će se držati unutar kutije pomoću držača, tako da će samo šipka D koja se povezuje s dozatorom viriti iz kutije, na dnu kutije popraviti i prilagoditi web kameru tako da u svakoj pošti i potvrdi poštom poslao je fotografiju kako je na tanjuru, ovo ne smije biti prekoračeno u slučaju da nisu popili posljednju rundu hrane.

Sa dna dozatora postavljena je cijev koja se spušta do ploče, a PVC lakat postavljen na podnožje, stavio sam malu industrijsku traku u otvor kako bih smanjio brzinu protoka hrane i napravio podlogu za točenje spriječiti prskanje hrane posvuda. Za pričvršćivanje cijevi na zid upotrijebite metalne držače koje pričvrstite na zid vijcima sa vijkom S8.

Na vratima kutije držite ploču LCD ekrana i upotrijebite upletene parove UTP kabela da ih odvedete direktno do maline, a na drugom kraju kabela spojite ženske vrhove kratkospojnika kako biste olakšali povezivanje GPIO portove maline. Ovo bi bio dijagram kola. Pokušat ću to objasniti s ono malo što mogu dobiti od elektronike.

Motor je spojen izravno na pozitivni pol 12 -voltnog transformatora, ali da bi struja tekla mora proći kroz krug u neutralnom polu motora, jer se koristi ovaj tranzistor N2222. Tranzistori obično imaju 3 kraka koji odgovaraju kolektoru, podnožju i emiteru, ovisno o modelu tranzistora, položaj ovih nogu može varirati; Ovaj tranzistor omogućuje funkciju prekidača. Ovdje povezujemo neutralni pol motora s kolektorom tranzistora, pin # 19 maline je spojen na bazu pomoću otpora od 270Ω, a emiter je spojen na neutralni terminal tranzistora. 12V transformator zajedno s jednim od uzemljenih polova maline; tranzistor će dopustiti da struja teče između kolektora i emitera sve dok je baza stimulirana dovoljnim naponom; kasnije ćemo programirati malinu tako da će prema određenim naredbama port 19 emitirati 3,3 volta, dovoljno da se krug nastavi i aktivira motor.

Za LCD ekran, drugi dio protobarda se koristi u drugom krugu gdje povezujete potenciometar od 10KΩ koji odbija kontrast teksta koji se pojavljuje na LCD -u, pa ako se ništa ne pojavi na ekranu, to je vjerojatno zato što je potenciometar potpuno zatvoreno; u mom slučaju ostavljam ga potpuno otvorenim kako bi se tekst bolje vizualizirao. Na kraju bi veze u matičnoj ploči bile sljedeće.

Korak 3: Konfiguracija Raspberry Pi

Prije svega, važno je stvoriti Telegram Bota kojim će se upravljati sistemom. Trebat će vam ključ za izmjenu priložene python skripte. Molimo pročitajte korake u dokumentaciji telegrama:

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

Da biste konfigurirali rapberry, upotrijebite Lite verziju Rapbiana (ne treba nam grafičko sučelje) i primijenite osnovnu konfiguraciju koja prikazuje raspbian nakon instalacije ili pomoću naredbe raspi-config: proširite prostor na 100% i omogućite SSH, ali posebno najvažnije je promijeniti lozinku i korisničko ime korisniku pi koje dolazi prema zadanim postavkama (Inače, kao što se meni dogodilo, mogu pretrpjeti napad preko porta 22 ako imaju javni IP naslovljen na malinu). Osim te konfiguracije za automatsko povezivanje s mojom WiFi mrežom (Pod pretpostavkom da se moja mreža zove "BlogSoriano", a moja lozinka je "$ ecure123!") Generiramo i spremamo ključ u datoteku bežičnih veza sa sljedećom naredbom:

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

sljedeća stvar je ažuriranje i instaliranje python instalacijskog sistema "pip" kako bismo se prijavili kao root, ažurirali i instalirali potrebne pakete:

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

S ovim već imamo pristup biblioteci klasa python, za skriptu koju ćemo koristiti moramo instalirati sljedeće:

pip install RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces bežični telepot cv2

Kada instalacija ovisnosti završi, koristit ćemo skriptu priloženu ovom koraku, spremam je na putanju /opt/petfeeder.py i datoteka se može stvoriti pomoću naredbe nano /opt/petfeeder.py i unutar ove datoteke zalijepimo kôd ili, ako imate više iskustva s Linuxom, možete ga preuzeti direktno pomoću wget -a. U skripti je važno izmijeniti varijable BOTKEY (u retku 36) i SYSPASSWORD (u retku 23).

Pojašnjavam da ovaj kod nisam napisao ja jer nikada nisam programirao u Pythonu, samo sam ga izmijenio za rad s novim bibliotekama i sa LCD ekranom veličine 20x4 i za upotrebu telegrama Bot.

Kada dobijemo Script, moramo promijeniti vrijednosti varijabli ključem za robota; za to je potrebno stvoriti novi Telegram Bot, s tim da bi samo spremio datoteku i izašao (sa Ctrl + ili spremi i ctrl + x napušta uređivač nano), samo trebamo biti dokaz ponovnog pokretanja; sama skripta sprema posljednji put kada je sistem za napajanje aktiviran, pa moramo samo omogućiti da se skripta pokrene svaki put kada se pokrene operativni sistem, za to sam pronašao vrlo posebno rješenje sa programom koji se zove supervizor, koji je instaliran iz Debian spremišta:

apt-get install supervizor

a nakon instalacije, potrebno je samo stvoriti konfiguracijsku datoteku u /etc/supervisor/conf.d/petfeeder.conf, jer u prethodnom slučaju možemo je stvoriti i spremiti pomoću nano, ova datoteka će imati sljedeće:

[program: petfeederd] direktorij =/opt naredba = python petfeeder.py autostart = true autorestart = true

Nakon što je datoteka spremljena, možemo koristiti naredbu supervizorctl [start | stop | restart] petfeederd, jer u ovom slučaju usluga nije pokrenuta, izvršavamo je sa startom:

nadzornik započinje petfeederd

Korak 4: Spremni za testiranje

Image
Image
Spreman za testiranje
Spreman za testiranje
Spreman za testiranje
Spreman za testiranje
Spreman za testiranje
Spreman za testiranje

A s ovim bi sistem trebao funkcionirati, LCD ekran bi trebao prikazivati informacije o tome kada bi trebao biti sljedeći unos ili ako je to spreman za hranjenje, da to kažem. Morate prikazati i naziv bežične mreže na koju ste povezani i IP adresu koja se koristi u slučaju da se moramo povezati putem SSH -a, dijelim mali video koji sam napravio, izvinjavam se na kvaliteti, ja nije baš dobra ova tema vloga.

Trebali biste moći pretraživati svog bota na Telegramu i poslati jednu od sljedećih naredbi nakon što /autorizirate svoj chat:

/feed: Pokreće proces uvlačenja sve dok je parametrizirani vremenski period protekao.

/kada: vraća informacije o tome kada je bilo posljednje hranjenje i sliku tanjura s hranom.

/fotografija: Vratite sliku tanjira za hranu.

/restart: Ponovo pokrenite sistem, postavite varijablu zadnjeg feeda na 0 da biste mogli odmah unositi.

/status Obavještava o statusu internetske veze: SSID povezane bežične mreže i IP adresa koju sistem ima u mreži.

Preporučuje se: