INHOUDSOPGAWE:

Troeteldiervoermasjien met RasPi en Telegram Bot: 4 stappe (met foto's)
Troeteldiervoermasjien met RasPi en Telegram Bot: 4 stappe (met foto's)

Video: Troeteldiervoermasjien met RasPi en Telegram Bot: 4 stappe (met foto's)

Video: Troeteldiervoermasjien met RasPi en Telegram Bot: 4 stappe (met foto's)
Video: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, Julie
Anonim
Troeteldiervoermasjien met RasPi en Telegram Bot
Troeteldiervoermasjien met RasPi en Telegram Bot
Troeteldiervoermasjien met RasPi en Telegram Bot
Troeteldiervoermasjien met RasPi en Telegram Bot

Eerstens moet ek verduidelik dat dit nie 'n oorspronklike idee -myn is nie, maar net die programmeerskripte opdateer en aanpas om met telegram te werk; ek het dit in 'n vorige Instructable gevind, sodat die krediete werklik die outeur daarvan is.

U kon die Spaanse weergawe hiervan in my persoonlike blog sien:

U moet 'n klein stroombaan bou wat 'n motor met 'n hoë wringkrag aktiveer, en omdat my kennis van elektronika baie skaars is, moes ek 'n paar dae lank leer om die basiese beginsels te leer deur na video's op YouTube te kyk.

Die oorspronklike outomatiseringsskrif is in Python geskryf en gebruik 'n GMail -verbinding om die opdragte te raadpleeg; ek het nog nooit hierdie programmeertaal gebruik nie, maar die waarheid is nie so anders as die ander nie; ek het dit 'n bietjie aangepas sodat dit beter aanpas by die nuwe Met die Python -biblioteke en die outomatiseringsproses, tesame met die bedryfstelselkonfigurasies, kan u die volgende parameteriseer:

  • Interaksie deur opdragte wat na Chat gestuur word, beheer deur ChatBots.
  • Dit laat u toe om die status van die resepte op te spoor.
  • Bepaal hoeveel kos uitgegee gaan word.
  • Dit het knoppies waarmee u met die hand kan voer.
  • Dit laat nie oorvoeding toe deur die voeding met tussenposes van 8 uur uit te skakel nie.
  • Dit het 'n status -LCD wat die data toon as die datum en tyd van die volgende keer vir die volgende kragtoevoer, die SSID waarmee dit aan die WiFi gekoppel is en die IP -adres van die toestel.
  • Opsioneel: Toon 'n paar willekeurige grappe en / of getalle van Chuck Norris met 'n paar openbare APIS (vernuftig deur die oorspronklike skrywer).
  • Die stelsel kan nie weer begin as gevolg van kragonderbrekings nie, aangesien dit 'n statuslêer stoor.
  • Die stelsel bespeur wanneer daar 'n verbindingverlies is en probeer weer koppel totdat dit suksesvol is.

Stap 1: Gebruikte materiaal

  • 1 Raperry Pi, verkieslik die weergawe 3 wat reeds met die draadlose kaart geïntegreer is, u kan ook die Pi 3 Zero -weergawe gebruik; dit verg 'n bietjie meer werk, want u moet die penne soldeer, maar ek het baie laat agtergekom dat dit moontlik is gebruik een hiervan wat meer ekonomies is.
  • 1 elektriese motor met 'n groot wringkrag, 37 mm, 3,5 rpm en 12V.
  • 1 Braket vir 37mm motor.
  • 1 karakter LCD -skerm van 20x4 reëls met HD44780 -beheer.
  • 1 Graangewas Zevro Model WM1001 as-D van 5 duim lank, 0,63 cm in deursnee (D-snit is nodig om dit aan die dispenser te heg)
  • 1 Askoppeling van 1/4 "tot 6 mm om by die motor aan te sluit.

Al die vorige materiaal, behalwe die laaste twee, kon ek dit nie in my land kry nie (of ek het ten minste nie geweet waar om dit te kry nie), maar die staaf en die koppelaar is waarskynlik in 'n sweiswerkswinkel, maar dit is die eerste keer dat ek iets doen so, ek het geen idee hoe dit moet wees om by die enjin aan te pas nie, en ek het die bladsy met die bogenoemde skakels gevra; Onder die materiaal wat ek in plaaslike winkels kon koop:

  • 1 houtkas gebruik ek 'n breedte van 20,3 cm x 26,7 cm x 13 cm diep. die boks het 'n deur wat regs oopmaak met 'n gat van 10 cm x 4 cm om die LCD -skerm te plaas (plaaslike skrynwerk)
  • 3 drukknoppies
  • 1 Klein Protoboard
  • 1 LED van 3,3 Volt (dit maak nie saak wat die kleur betref nie, maar vir die spanning is dit gewoonlik rooi)
  • 1 NPN PN2222 transistor
  • 1 Weerstand van 270 Ω
  • 1 Weerstand van 10 KΩ
  • 1 Potentiometer van 10 KΩ
  • 1 IN4003 -diode (IN4001 of IN4004 kan werk)
  • 1 12V 3A adapter
  • 1 5V 2A adapter
  • 4 skroewe met vleuelmoer van 1,5 sentimeter tot 2 duim (hang af van die dikte van die hout wat gebruik word, om die motorbeugel aan die houtkas vas te maak)
  • Kabels Jumper stringe van verskillende kleure
  • 1 voubuis of 'n stel PVC met 'n deursnee van 4 duim, dit hang af van die hoogte waarop die houtkas geplaas sal word.
  • 1 PVC -elmboog wat aan die vorige gietstuk geheg word.
  • 3 klemme vir motorpype (die wêreld)
  • 4 voet UTP -kabel (ons benodig die gedraaide pare om die verbindings te maak)
  • 1 USB WebCam, is dit nie nodig om 'n hoë resolusie te hê nie.

'N Paar verskillende materiale wat in hardewarewinkels verkrygbaar is, of moontlik reeds: Industriële band

  • Blikblaser
  • Blik
  • Boor
  • Boor 5/16
  • S8 skroewe met uitbreidings

Stap 2: Plaas die struktuur

Plaas die struktuur
Plaas die struktuur
Plaas die struktuur
Plaas die struktuur
Plaas die struktuur
Plaas die struktuur

Die belangrikste idee is om die doseerhandvatsel wat in die ZEVRO kom, te vervang deur die staaf D wat dan met die koppelaar aan die motor gekoppel sal word. Die houer word aan die houtkas vasgemaak en die houtkas aan die muur. Aangesien ek nie veel elektronika weet nie, het ek geen bakelietplaat gebruik om die kring te monteer nie, en ek het die broodbord gebruik om al die komponente te plaas, sodat die onderkant van die boks vasgemaak word met skroewe, die Rapberry Pi en die broodbord wat reeds 'n kleefmiddel gehad het op die agterkant, so ek het dit net gaan plak. Die boks moet drie knoppies hê wat die funksie het om die timer weer te begin, die toevoer te aktiveer en die laaste een is 'n direkte stap om die motor te aktiveer sonder om deur die kring te gaan. Die motor word met behulp van die beugel in die boks gehou, sodat slegs die staaf D wat met die dispenser verbind word, uit die boks uitsteek, onder in die boks, en die webkamera regstel sodat ek elke poskonsultasie en bevestiging 'n foto gestuur van hoe die bord is, dit moet nie te veel gevoer word as hulle nie die laaste ronde kos klaargemaak het nie.

Van die onderkant van die dispenser is die buis wat na die bord gaan, geplaas en die PVC -elmboog op die basis geplaas. voorkom dat voedsel oral spuit. Om die pyp aan die muur vas te maak, gebruik metaalhakies wat u met die S8 -skroewe aan die muur vasmaak.

Hou die bord van die LCD -skerm aan die deur van die boks vas en gebruik die gedraaide pare van die UTP -kabel om dit direk na die Framboos te neem, aan die ander kant van die kabels, verbind die vroulike punte van die springers om die verbinding makliker te maak die GPIO -poorte van die Framboos. Dit sou die kringdiagram wees. Ek sal probeer om dit te verduidelik met die bietjie wat ek van elektronika kan kry.

Die motor is direk gekoppel aan die positiewe pool van die 12 volt transformator, maar vir die stroom moet dit deur die stroombaan in die neutrale pool van die motor gaan, want hierdie transistor N2222 word gebruik. Die transistors het gewoonlik 3 bene wat ooreenstem met 'n kollektor, 'n basis en 'n emitter, afhangende van die model van die transistor kan die ligging van hierdie bene verskil; Hierdie transistor laat die skakelaar funksioneer. Dit is hier waar ons die neutrale pool van die motor met die kollektor van die transistor verbind, pen # 19 van die rapberry is met 'n weerstand van 270Ω aan die basis gekoppel en die emitter is verbind met die neutrale terminaal van die transistor. 12V transformator saam met een van die aardpale van die framboos; die transistor sal die stroom tussen kollektor en emitter laat vloei, solank die basis met voldoende spanning gestimuleer word; later sal ons die aarbei programmeer sodat poort 19 volgens sekere opdragte 3,3 volt sal uitstraal, genoeg om die stroombaan aan te hou en die motor te aktiveer.

Vir die LCD -skerm word 'n ander deel van die protobard gebruik in 'n ander stroombaan waar u die 10KΩ potensiometer aansluit wat die kontras van die teks wat op die LCD verskyn, verwerp, so as niks op die skerm verskyn nie, is dit waarskynlik omdat die potensiometer heeltemal is gesluit; in my geval laat ek dit heeltemal oop sodat die teks beter gevisualiseer kan word. Uiteindelik sou die verbindings in die broodbord soos volg wees.

Stap 3: Raspberry Pi -konfigurasie

In die eerste plek is dit belangrik om die Telegram Bot te skep sodat die stelsel bestuur sal word. U benodig 'n sleutel om die aangehegte python -script te verander. Lees die stappe in die telegramdokumentasie:

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

Om die rapberry te konfigureer, gebruik die Lite-weergawe van die Rapbian (ons benodig nie die grafiese koppelvlak nie) en pas die basiese opset toe wat die raspbian wys sodra dit geïnstalleer is of gebruik die raspi-config-opdrag: brei die ruimte uit tot 100% en aktiveer die SSH, maar veral die belangrikste is om die wagwoord en gebruikersnaam standaard na die gebruiker -pi te verander (anders kan hulle, soos met my gebeur, 'n aanval deur poort 22 kry as hulle 'n openbare IP -adres aan die framboos het). Verder is die konfigurasie om outomaties aan my WiFi -netwerk te koppel (as ek aanvaar dat my netwerk 'BlogSoriano' genoem word en my wagwoord '$ ecure123!'), Genereer en stoor ons die sleutel in die lêer vir draadlose verbindings met die volgende opdrag:

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

Die volgende ding is om die python -installasie stelsel "pip" op te dateer en te installeer, sodat ons as root sal aanmeld, die nodige pakkette opdateer en installeer:

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

Hiermee het ons reeds toegang tot die python -klasbiblioteek, vir die script wat ons gaan gebruik, moet ons die volgende installeer:

pip installeer RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces draadlose telepot cv2

Sodra die afhanklikheid geïnstalleer is, gebruik ons die script wat by hierdie stap aangeheg is, ek stoor dit in die pad /opt/petfeeder.py en die lêer kan geskep word met die opdrag nano /opt/petfeeder.py en in hierdie lêer ons plak die kode, of as u meer Linux -ervaring het, kan u dit direk aflaai met wget. In die skrif is dit belangrik om die veranderlikes BOTKEY (in reël 36) en SYSPASSWORD (in reël 23) te verander.

Ek verduidelik dat hierdie kode nie deur my geskryf is nie, aangesien ek nog nooit in Python geprogrammeer het nie; ek het dit net aangepas om te werk met die nuwe biblioteke en met die 20x4 LCD -skerm en om telegram Bot te gebruik.

Sodra ons die Script het, moet ons die waardes van die veranderlikes verander met die sleutel vir die bot; hiervoor is dit nodig om 'n nuwe Telegram Bot te skep, sodat dit slegs die lêer sou stoor en verlaat (met Ctrl + of stoor en ctrl + x verlaat die redakteur nano); ons moet net 'n bewys wees van herbegin; die script self stoor die laaste keer dat die kragstelsel geaktiveer word, dus hoef ons slegs die script te laat werk elke keer as die bedryfstelsel begin; hiervoor het ek 'n baie besondere oplossing gevind met 'n program genaamd toesighouer, wat geïnstalleer word uit die Debian -bewaarplekke:

apt-get installeer toesighouer

en sodra dit geïnstalleer is, hoef ons slegs 'n konfigurasielêer in /etc/supervisor/conf.d/petfeeder.conf te skep, soos in die vorige geval kan ons dit met nano skep en stoor; die lêer het die volgende:

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

Sodra die lêer gestoor is, kan ons die command supervisorctl [start | stop | herlaai] petfeederd, aangesien die diens in hierdie geval nie begin is nie, voer ons dit uit met die begin:

supervisorctl begin petfeederd

Stap 4: gereed om te toets

Image
Image
Klaar om te toets
Klaar om te toets
Klaar om te toets
Klaar om te toets
Klaar om te toets
Klaar om te toets

En hiermee moet die stelsel werk, moet die LCD -skerm inligting toon oor wanneer dit die volgende voer moet wees, of as dit gereed is om te voer, sou ek dit sê. U moet ook die naam van die draadlose netwerk waarmee u gekoppel is, en die IP -adres wat gebruik word, wys as ons via SSH moet verbind, ek deel 'n klein video wat ek gemaak het, ek vra om verskoning vir die kwaliteit daarvan, ek Ek is nie baie goed nie, is hierdie onderwerp van die vlogs.

U moet u bot op Telegram kan soek en een van die volgende opdragte kan stuur nadat u u klets gemagtig het:

/voer: Begin die voedingsproses, solank die tydsverloop van die parameter verstryk het.

/wanneer: dit gee inligting oor wanneer die laaste voeding was en 'n prentjie van die kosbord.

/foto: Gee 'n foto van die kosbord.

/herbegin: herbegin die stelsel, stel die veranderlike van die laaste voer op 0 om onmiddellik te kan voed.

/status Dit lig in oor die status van die internetverbinding: SSID van die gekoppelde draadlose netwerk en die IP -adres wat die stelsel in die netwerk het.

Aanbeveel: