Мазмуну:

Пет азыктандыруучу машина RasPi жана Telegram Bot менен: 4 кадам (сүрөттөр менен)
Пет азыктандыруучу машина RasPi жана Telegram Bot менен: 4 кадам (сүрөттөр менен)

Video: Пет азыктандыруучу машина RasPi жана Telegram Bot менен: 4 кадам (сүрөттөр менен)

Video: Пет азыктандыруучу машина RasPi жана Telegram Bot менен: 4 кадам (сүрөттөр менен)
Video: В Кыргызстане обнаружили подпольные медресе! 2024, Ноябрь
Anonim
Пет азыктандыруучу машина RasPi жана Telegram Bot менен
Пет азыктандыруучу машина RasPi жана Telegram Bot менен
Үй жаныбарларын багуучу машина RasPi жана Telegram Bot менен
Үй жаныбарларын багуучу машина RasPi жана Telegram Bot менен

Биринчиден, бул түпнуска Idea Mine эмес экенин такташым керек, жөн эле телеграмма менен иштөө үчүн программалоо сценарийлерин жаңыртып, ыңгайлаштырып койгула, мен аны мурунку Нускамада таптым, андыктан кредиттер чындап эле анын автору.

Мунун испанча версиясын менин жеке блогумдан көрө аласыз:

Сиз жогорку моменттүү моторду иштетүүчү чакан схеманы курушуңуз керек, жана менин электроника боюнча билимим өтө аз болгондуктан, мен YouTubeдагы видеолорду көрүү менен бир нече күн негиздерин үйрөнүүгө туура келди.

Түпнуска автоматташтыруу скрипти Python тилинде жазылган жана буйруктарга кайрылуу үчүн GMail байланышын колдонот, мен бул программалоо тилин эч качан колдонгон эмесмин, бирок чындык башкалардан анча айырмаланбайт, мен аны жаңыга жакшыраак ылайыкташтыруу үчүн бир аз өзгөртүп койгом. Python китепканалары жана автоматташтыруу процесси операциялык тутумдун конфигурациялары менен бирге төмөнкүлөрдү параметрлештирүүгө мүмкүндүк берет:

  • Чатка жөнөтүлгөн буйруктар аркылуу өз ара аракеттенүү ChatBots аркылуу көзөмөлдөнөт.
  • Бул берилген тамактын абалын көзөмөлдөөгө мүмкүндүк берет.
  • Канча азык -түлүк берилерин көзөмөлдөйт.
  • Бул кол менен тамактандырууга мүмкүндүк берген баскычтарга ээ.
  • Бул 8 сааттык интервалда тамактандырууну өчүрүү менен ашыкча тамактанууга жол бербейт.
  • Ал статустук ЖКга ээ, бул маалыматтарды кийинки электр менен камсыздоонун кийинки убактысынын датасы жана убактысы катары көрсөтөт, ал SSIDге WiFi жана түзмөктүн IP дарегине туташкан.
  • Кошумча: Коомдук APIS жупун колдонуп, Чак Норрис кокус тамашаларын жана / же сандарын көрсөтөт (Түпнуска автордун тапкычтыгы).
  • Тутум абалдын файлын сактап калгандыктан, электр энергиясынын өчүрүлүшүнөн улам кайра башталуудан корголгон.
  • Система байланыш үзүлгөндө аныктайт жана ийгиликтүү болгонго чейин кайра туташууга аракет кылат.

1 -кадам: колдонулган материалдар

  • 1 Raperry Pi, жакшыраак Wireless картасы менен интеграцияланган 3 версиясы, сиз Pi 3 Zero версиясын колдоно аласыз, бул дагы бир аз иштөөнү талап кылат, анткени сиз казыктарды ширетишиңиз керек, бирок мен аны кеч билдим үнөмдүү болгонун колдонуңуз.
  • 1 жогорку моменттүү электр кыймылдаткычы, 37мм, 3,5рм жана 12В.
  • 37 мм мотор үчүн 1 брекет.
  • HD44780 көзөмөлү бар 20х4 саптан турган 1 белгиден турган LCD экран.
  • 1 Дан таркатуучу Zevro Model WM1001 шахтасы-D 5 дюйм узундугу, диаметри 0.63см (D диспенсерге тиркөө үчүн керек)
  • Моторго кошулуу үчүн 1/4 дюймдан 6ммге чейин 1 шахталык бириктиргич.

Акыркы экиден башка бардык мурунку материалдар мен аларды өз өлкөмдө ала алган жокмун (же жок дегенде кайдан алууну билбедим), бирок таяк менен кошкуч ширетүүчү цехте болсо керек, бирок мен биринчи жолу бир нерсе кылып жатам сыяктуу, мен моторго кантип туура келерин билбедим, ошондуктан мен жогоруда сүрөттөлгөн шилтемелердин баракчасынан сурадым; Төмөндө мен жергиликтүү дүкөндөрдөн сатып алсам болот:

  • 1 жыгач куту, мен 20,3 см кеңдикте × 26,7 см бийиктикте 13 см тереңдикте колдоном. кутуда ЖК экранды коюу үчүн 10см х 4см тешиги бар оңго ачылуучу эшик бар (жергиликтүү жыгач устачылык)
  • 3 Баскычтарды басыңыз
  • 1 Small Protoboard
  • 3.3 Вольттогу 1 LED (Түсүнүн мааниси жок, бирок чыңалуу үчүн алар көбүнчө кызыл)
  • 1 NPN PN2222 транзистору
  • 1 каршылык 270 Ω
  • 1 каршылык 10 КОм
  • 1 потенциометр 10 КОм
  • 1 IN4003 диод (IN4001 же IN4004 иштей алат)
  • 1 12V 3A адаптер
  • 1 5V 2A адаптер
  • 1,5 дюймдан 2 дюймга чейин канат гайкасы бар 4 бурама (колдонулган жыгачтын калыңдыгына жараша, мотор кронштейнин жыгач кутуга бекитүү керек)
  • Ар кандай түстөгү кабельдер
  • 1 бүктөлүүчү түтүк же диаметри 4 дюйм болгон ПВХ топтому, бул жыгач куту салынуучу бийиктикке жараша болот.
  • Мурунку гипсте бекитилген 1 PVC чыканак.
  • 3 унаа түтүктөрү үчүн кыскычтар (Дүйнө)
  • UTP кабелинин 4 футу (туташуу үчүн бизге буралган жуптар керек)
  • 1 USB WebCam, жогорку чечим болушу шарт эмес.

Аппараттык дүкөндөрдө же, балким, бизде бар болгон ар кандай материалдар: Өнөр жай тасмасы

  • Калай ширетүүчү
  • Калай
  • Бургулоо
  • 5/16 машыгуу
  • Кеңейтүүчү менен S8 бурамалар

2 -кадам: структураны жайгаштыруу

Структураны жайгаштыруу
Структураны жайгаштыруу
Структураны жайгаштыруу
Структураны жайгаштыруу
Структураны жайгаштыруу
Структураны жайгаштыруу

Негизги идея - ZEVROдо келген бөлүштүрүү туткасын D таякчасына алмаштыруу, ал кийин Моторго кошкуч аркылуу туташтырылат. Диспенсер жыгач кутуга жана жыгач куту дубалга бекитилет. Мен көп электрониканы билбегендиктен, мен схеманы орнотуу үчүн бакелит табакчасын колдонгон жокмун, ошондуктан мен бардык компоненттерди коюу үчүн нан тактасын колдонгом, ошондуктан кутунун түбүнө Rapberry Pi жана нан плитасы бурамалар менен бекитилген. арткы жагында, мен жөн эле чаптоого бардым. Кутучада таймерлерди кайра баштоо, фидерди иштетүү жана акыркысы моторду чынжырдан өтпөстөн иштетүү үчүн түздөн -түз иш -милдети бар үч баскыч болушу керек. Мотор кронштейн аркылуу кутунун ичинде кармалат, андыктан диспенсерге туташтырылган D таягы гана кутудан чыгып кетет, кутунун түбүндө вебкамераны оңдоп, тууралайт, ошондо ар бир почта консультациясында жана ырастоодо I тамактын акыркы турун бүтүрө элек болсо, табак кандай экенин сүрөттү жиберди.

Диспенсердин түбүнөн табакка түшүүчү түтүк коюлду жана PVC чыканагы базанын үстүнө коюлду, мен тамак -аш агымынын ылдамдыгын азайтуу үчүн розеткага кичинекей өнөр жай лентасын коюп, тамактын бардык жерге чачылышына жол бербөө. Түтүктү дубалга бекитүү үчүн, S8 сай бурамалары менен дубалга бекиткен металл кронштейндерди колдонуңуз.

Кутунун эшигинде ЖК экрандын табагын кармап, UTP кабелинин буралган түгөйлөрүн малинага алып баруу үчүн колдонуңуз, кабелдердин экинчи учунда секирүүчүлөрдүн ургаачы учтары туташууну жеңилдетет. Малинанын GPIO порттору. Бул схема болмок. Мен муну Электроникадан ала турган нерсем менен түшүндүрүүгө аракет кылам.

Мотор 12 вольттуу трансформатордун оң полюсуна түз туташкан, бирок агымдын агымы үчүн ал мотордун нейтралдуу уюлундагы чынжыр аркылуу өтүшү керек, анткени N2222 транзистору колдонулат. Адатта транзисторлордун 3 буту бар, алар коллекторго, базага жана эмитентке туура келет, транзистордун моделине жараша бул буттардын жайгашуусу ар кандай болушу мүмкүн; Бул транзистор которуштуруу функциясын аткарат. Бул жерде мотордун нейтралдык уюлун транзистордун коллекторуна туташтырабыз, раперинин # 19 пини 270Ω каршылык аркылуу базага туташат жана эмитент транзистордун нейтралдуу терминалына туташат. 12В трансформатор малинанын жер түркүктөрүнүн бири менен бирге; транзистор база жетиштүү чыңалуу менен стимулдаштырылган учурда коллектор менен эмитенттин ортосундагы учурдагы агымга жол берет; кийинчерээк биз rapberryди программалайбыз, кээ бир буйруктарга ылайык порт 19 3,3 вольтту чыгарат, бул микросхеманы улантуу жана иштетүү үчүн жетиштүү.

ЖК экран үчүн протобардын дагы бир бөлүгү башка схемада колдонулат, анда сиз 10KΩ потенциометрди туташтырасыз, ал ЖКда пайда болгон тексттин контрастын четке кагат, андыктан экранда эч нерсе көрүнбөсө, балким потенциометр толугу менен жабык; менин учурда аны толугу менен ачык калтырам, ошондо текст жакшыраак көрүнөт. Акыр -аягы, нан тактасындагы байланыштар төмөнкүдөй болмок.

3 -кадам: Raspberry Pi конфигурациясы

Биринчиден, система башкарыла турган Telegram Bot түзүү маанилүү, тиркелген питон скриптин өзгөртүү үчүн сизге ачкыч керек болот. Сураныч, телеграмма Документтериндеги кадамдарды окуңуз:

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

Rapberry конфигурациялоо үчүн Rapbian Lite версиясын колдонуңуз (бизге графикалык интерфейс кереги жок) жана raspbian орнотулганда же raspi-config буйругун колдонуп көрсөткөн негизги конфигурацияны колдонуңуз: мейкиндикти 100% га чейин кеңейтүү жана иштетүү SSH, бирок эң башкысы - сырсөздү жана колдонуучунун атын демейки келген пи колдонуучуга өзгөртүү (Болбосо, мага окшоп, эгер алар малинага багытталган коомдук IPге ээ болсо, алар 22 -порт аркылуу кол салышы мүмкүн). Мындан тышкары, Wi -Fi тармагыма автоматтык түрдө туташуу үчүн конфигурация (Менин тармагым "BlogSoriano" деп аталат жана менин сырсөзүм "$ ecure123!" Деп эсептелет) Биз ачкычты Зымсыз байланыш файлында төмөнкү буйрук менен түзөбүз жана сактайбыз:

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

кийинки нерсе - "pip" python орнотуу системасын жаңыртуу жана орнотуу, ошондуктан биз root катары кирип, керектүү пакеттерди жаңыртып, орнотуп алабыз:

sudo -i apt-get жаңыртуу apt-get install-essential python-dev python-smbus python-pip

Муну менен биз колдоно турган скрипт үчүн python класс китепканасына кирүү мүмкүнчүлүгүнө ээбиз, төмөнкүлөрдү орнотушубуз керек:

pip орнотуу RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces зымсыз телепот cv2

Көз карандылыктарды орнотуу аяктагандан кийин, биз бул кадамга тиркелген скриптти колдонобуз, мен аны /opt/petfeeder.py жолунда сактайм жана файлды nano /opt/petfeeder.py буйругу менен жана бул файлдын ичинде түзүүгө болот биз кодду чаптайбыз же эгер сизде Linuxтун тажрыйбасы көбүрөөк болсо, сиз wget менен түз жүктөп алсаңыз болот. Скриптте BOTKEY (36 -сапта) жана SYSPASSWORD (23 -сапта) өзгөрмөлөрүн өзгөртүү маанилүү.

Мен бул кодду мен жазган эмесмин, анткени мен Pythonдо эч качан программалаган эмесмин, мен аны жаңы китепканалар менен иштөө жана 20x4 ЖК экраны менен иштөө жана телеграмма Botти колдонуу үчүн гана өзгөрткөм.

Бизде Скрипт болгондон кийин, биз боттун ачкычы менен өзгөрмөлөрдүн маанилерин өзгөртүүбүз керек; бул үчүн жаңы Telegram Bot түзүү керек, мында файлды сактоо жана чыгуу гана болот (Ctrl + же сактоо жана ctrl + x нано редакторунан кетет), биз жөн гана кайра баштоонун далили болушубуз керек; скрипт өзү күч системасы акыркы жолу иштетилгенде үнөмдөйт, ошондуктан биз операциялык система башталган сайын сценарийди иштетишибиз керек, бул үчүн мен Debian репозиторийлеринен орнотулган супервайзер программасы менен өзгөчө чечимди таптым.:

apt-get орнотуу көзөмөлдөөчүсү

жана орнотулгандан кийин, биз /etc/supervisor/conf.d/petfeeder.conf ичинде конфигурация файлын гана түзүшүбүз керек, анткени мурунку учурда биз аны нано менен түзө жана сактай алабыз, бул файлда төмөнкүлөр болот:

[программа: petfeederd] каталог =/opt command = python petfeeder.py autostart = true autorestart = true

Файл сакталгандан кийин биз supervisorctl [start | токтотуу | restart] petfeederd, анткени бул учурда кызмат баштала элек, биз аны баштоо менен аткарабыз:

supervisorctl petfeederd баштайт

4 -кадам: Сыноого даяр

Image
Image
Сыноого даяр
Сыноого даяр
Сыноого даяр
Сыноого даяр
Сыноого даяр
Сыноого даяр

Жана муну менен система иштеши керек, ЖК экраны качан кийинки тоют болушу керектиги жөнүндө маалыматты көрсөтүшү керек же эгер айтсам, ал тамак берүүгө даяр болсо. Сиз ошондой эле туташкан зымсыз тармактын атын жана IP дарегин көрсөтүшүңүз керек, эгерде биз SSH аркылуу туташышыбыз керек болсо, мен жасаган кичинекей видеону бөлүшөм, анын сапаты үчүн кечирим сурайм, мен Мен влогдордун бул темасы жакшы эмесмин.

Сиз ботуңузду Telegramда издеп, чатка уруксат бергенден кийин кийинки буйруктун бирин жөнөтө алышыңыз керек:

/тоют: Параметрленген убакыт өткөндөн кийин тамактандыруу процессин баштайт.

/качан: акыркы тамак качан болгонун жана тамак тарелкасынын сүрөтүн кайтарат.

/сүрөт: Тамак табактын сүрөтүн кайтарыңыз.

/өчүрүп күйгүзүү: Системаны өчүрүп күйгүзүү, акыркы тоюттун өзгөрмөсүн 0 кылып коюп, дароо тамактандыруу үчүн.

/status Бул Интернетке туташуу абалы жөнүндө кабар берет: туташкан Зымсыз байланыштын SSIDи жана тутумдун тармак ичиндеги IP дареги.

Сунушталууда: