Sadržaj:

Stroj za hranjenje kućnih ljubimaca s RasPi i Telegram Botom: 4 koraka (sa slikama)
Stroj za hranjenje kućnih ljubimaca s RasPi i Telegram Botom: 4 koraka (sa slikama)

Video: Stroj za hranjenje kućnih ljubimaca s RasPi i Telegram Botom: 4 koraka (sa slikama)

Video: Stroj za hranjenje kućnih ljubimaca s RasPi i Telegram Botom: 4 koraka (sa slikama)
Video: 2000+ Common Swedish Nouns with Pronunciation · Vocabulary Words · Svenska Ord #1 2024, Srpanj
Anonim
Stroj za hranjenje kućnih ljubimaca s RasPi i Telegram Botom
Stroj za hranjenje kućnih ljubimaca s RasPi i Telegram Botom
Stroj za hranjenje kućnih ljubimaca s RasPi i Telegram Botom
Stroj za hranjenje kućnih ljubimaca s RasPi i Telegram Botom

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

Španjolsku verziju ovoga mogli ste vidjeti na mom osobnom blogu:

Morate izgraditi mali krug koji aktivira motor s velikim zakretnim 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.

Izvorna 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 knjižnice i proces automatizacije zajedno s konfiguracijama operacijskog sustava omogućuju vam parametriziranje sljedećeg:

  • Interakcija putem naredbi poslanih Chatu kontroliranih putem ChatBot -ova.
  • Omogućuje praćenje statusa izdane hrane.
  • Kontrolira koliko će hrane biti izdano.
  • Ima gumbe koji 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.
  • Izborno: prikazuje neke slučajne viceve Chucka Norrisa i / ili Trivia of Numbers koristeći par javnih APIS -a (genijalno od izvornog autora).
  • Sustav je imun na ponovno pokretanje zbog nestanka struje jer sprema datoteku statusa.
  • Sustav detektira gubitak veze i pokušava se ponovno 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 verziju Pi 3 Zero, potrebno je malo više posla jer morate lemiti pinove, no 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 12V.
  • 1 Nosač za motor od 37 mm.
  • LCD zaslon od 1 znaka, linija 20x4 s kontrolom HD44780.
  • 1 Dozator za žitarice Zevro Model WM1001 vratilo-D od 5 inča duljine, promjera 0,63 cm (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 zadnja 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 veza; Ispod materijala koje sam mogao 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 zaslona (lokalna stolarija)
  • 3 Pritisnite tipke
  • 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 od 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 drva, pričvršćuju nosač motora na drvenu kutiju)
  • Kablovi Džemper niti različitih boja
  • 1 sklopiva cijev ili set 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 kabela (potrebni su nam upleteni parovi za povezivanje)
  • 1 USB WebCam, nije potrebno imati visoku razlučivost.

Neki razni materijali koji se mogu nabaviti u trgovinama gvožđa ili možda već imamo: Industrijska traka

  • Limeni zavarivač
  • Kositar
  • Bušilica
  • 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 ugradnju strujnog kruga pa sam upotrijebio ploču za postavljanje svih komponenti tako da su na dno kutije pričvršćene vijcima Rapberry Pi i ploča za kruh koja je već imala ljepilo na stražnjoj strani pa sam ga samo otišao zalijepiti. Okvir mora imati tri gumba koji će imati funkciju ponovnog pokretanja timera, aktiviranja ulagača, a posljednji će biti izravan korak za aktiviranje motora bez prolaska kroz krug. Motor će se držati unutar kutije pomoću držača, pa će samo šipka D koja se spaja 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 tanjur, ovo da se ne prehrani u slučaju da nisu popili posljednju rundu hrane.

S dna dozatora postavljena je cijev koja se spušta do tanjura, 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 nosače koje pričvrstite na zid vijcima s vijkom S8.

Na vratima kutije držite ploču LCD zaslona i upotrijebite upletene parove UTP kabela da ih odvedete izravno na Malinu, a na drugom kraju kabela spojite ženske vrhove skakača kako biste olakšali povezivanje GPIO priključci 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, za ovaj tranzistor se koristi N2222. Tranzistori obično imaju 3 kraka koji odgovaraju kolektoru, bazi i odašiljaču, ovisno o modelu tranzistora, mjesto ovih nožica može varirati; Ovaj tranzistor omogućuje funkciju prekidača. Ovdje povezujemo neutralni pol motora s kolektorom tranzistora, pin # 19 maline spojen je na bazu pomoću otpora od 270Ω, a emiter je spojen na neutralni terminal tranzistora. 12V transformator zajedno s jednim od uzemljenja pola maline; tranzistor će propustiti struju između kolektora i emitera sve dok je baza stimulirana dovoljnim naponom; kasnije ćemo programirati malinu tako da će prema određenim naredbama priključak 19 emitirati 3,3 volta, dovoljno da se krug nastavi i aktivira motor.

Za LCD zaslon, drugi dio protobarda koristi se 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 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 sustavom. 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 toga, konfiguracija 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 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 sustava "pip" pa ćemo se prijaviti kao root, ažurirati i instalirati potrebne pakete:

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

S ovim već imamo pristup knjižnici 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

Kad 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 izravno s wgetom. U skripti je važno promijeniti varijable BOTKEY (u retku 36) i SYSPASSWORD (u retku 23).

Pojašnjavam da ovaj kôd nisam napisao ja budući da nikada nisam programirao u Pythonu, samo sam ga izmijenio za rad s novim knjižnicama i s LCD zaslonom veličine 20x4 te za korištenje telegrama Bot.

Nakon što imamo skriptu, 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 (s Ctrl + ili spremi i ctrl + x napušta uređivač nano), samo trebamo biti dokaz ponovnog pokretanja; sama skripta sprema posljednji put kada se sustav napajanja aktivira, pa moramo samo omogućiti da se skripta pokrene svaki put kad se operacijski sustav pokrene, za to sam pronašao vrlo posebno rješenje s programom koji se zove supervizor, a koji je instaliran iz spremišta Debian:

apt-get instalacijski nadzornik

a nakon instaliranja, 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 će datoteka imati sljedeće:

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

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

nadzornikpokrenuti petfeederd

Korak 4: Spremni za testiranje

Image
Image
Spremno za testiranje
Spremno za testiranje
Spremno za testiranje
Spremno za testiranje
Spremno za testiranje
Spremno za testiranje

S ovim bi sustav trebao funkcionirati, LCD zaslon bi trebao prikazivati informacije o tome kada bi trebao biti sljedeći unos ili ako je to spreman za hranjenje, ako 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, ispričavam 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 hranjenja sve dok je parametrirano razdoblje proteklo.

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

/foto: Vratite sliku tanjura s hranom.

/restart: Ponovno pokrenite sustav, postavite varijablu zadnjeg feeda na 0 kako biste mogli odmah unositi.

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

Preporučeni: