Мазмуну:

Raspberry Pi Garage Door Opener: 5 кадам
Raspberry Pi Garage Door Opener: 5 кадам

Video: Raspberry Pi Garage Door Opener: 5 кадам

Video: Raspberry Pi Garage Door Opener: 5 кадам
Video: Hacking my garage door with the Raspberry Pi Pico W 2024, Июль
Anonim
Raspberry Pi гаражынын эшиги
Raspberry Pi гаражынын эшиги

Гараждын эшигин ачууга мүмкүндүк берген он беш жаштагы клавиатурабыз акырындык менен өлүп баратат, бир нече баскычтар менен эптеп катташат, бул биздин өспүрүмдөрдүн (же иттерди кароочу) ачкычын унутуп калганда үйгө кирүүсүн кыйындатат.

Аны алмаштыруунун ордуна, кайра программалоонун алкагынан секирип, мен бир аз жогорку технологияга өтүүнү чечтим жана аны биздин wifiга жана телефонго кирүү мүмкүнчүлүгүн талап кылган нерсеге алмаштырууну чечтим.

Мен дагы бир долбоордон калган Pi Zero Wirelessти жана 2 каналдуу релени колдондум, ал мага эшикти да, гараждын эшигинин ачкычына орнотулган жарыкты да башкарууга мүмкүндүк берет. Менде эски/запастагы USB камера топурак чогулткандыктан, мен аны PiCamдын ордуна колдонгом, бирок бул ыңгайлуулук үчүн болгон эмес. Бул кандайдыр бир колдоого алынган камера менен жакшы иштейт - менде эч кандай өзгөчө нерсе жок, жөн гана аны Raspbian колдогон.

Кээ бир башка долбоорлордон айырмаланып, мен аны мүмкүн болушунча жөнөкөй сактоого аракет кылдым, эгерде сиз көрсөтмөлөрдү аткарсаңыз, ишке кирүүгө оңой болгон "стандарттык" программалык пакеттерди колдонуп көрүңүз. Бул сүрөттө менин акыркы (такыр эле сулуу эмес, бирок бул менин гаражым) орнотуусу, анын ичинде Pi, Relay Module жана USB Webcam эшикти көрсөтүп турат. Pi Zero колдонуунун эч кандай конкреттүү себеби жок - эгер сиз аны ички тармагыңызга туташтыра турган болсоңуз, анда бардык Pi жасайт, жана wifi муну оңой кылат.

1 -кадам: Учурдагы башкаруу панелине туташуу

Учурдагы башкаруу панелине туташуу
Учурдагы башкаруу панелине туташуу

Биринчиден, СИЗДИН ТҮРЛҮҮ БОЛУШУҢУЗ МҮМКҮН! Меники гараждын эшигин ачкандан баштап дубалдагы башкаруу панелине бараткан бир жуп зымга ээ. Текшерилгенде болжол менен 18 вольттой көрүнгөн эки гана зым болгондуктан, башында бул нерсенин бир нече функцияларды кантип башкара алаары жөнүндө бир аз түшүнбөй калдым. Мен ойлойм, ар бир көз ирмемдик баскыч чынжырды толуктайт, бирок каршылыктын ар кандай деңгээлдери менен. Андан кийин башкы блок ар кандай чыңалуудан улам ошол каршылыкты окуп, туура иш -аракетти аткара алат. Мунун эч бир мааниси жок, бирок эгерде сиз көзөмөлдөө бирдигин Пи менен толук алмаштырууга аракет кылбасаңыз. Эмнеге мындай кылгыңыз келгени белгисиз, анткени физикалык бирдикти дагы эле ордунда калтыруу жакшы.

AAAAAnnnyway, сиз эмне кылышыңыз керек болсо, ПХБдагы убактылуу коммутаторлорду реле модулуңузга туташтыруу менен ар кандай баскычтарды басуу керек. Бул мен жасашым керек болгон жалгыз ширетүү болчу жана ПХБдагы төшөмөлөр абдан чоң болгондуктан, бул абдан жөнөкөй болчу. Бул зымдарды азырынча таштап коюңуз, анткени кийинчерээк узарткандан көрө, зымды кыскартуу оңой, эгер сизде ACME зым замбили болбосо, бирок бул сейрек кездешет.

2 -кадам: Эстафеталык тактаны өткөрүү

Эстафеталык тактаны өткөрүү
Эстафеталык тактаны өткөрүү
Эстафеталык тактаны өткөрүү
Эстафеталык тактаны өткөрүү

Бул жерде көп нерсени айтууга болбойт, болгону сүрөттөрдөгүдөй баарын байланыштырыңыз. Sainsmart 2-релелик модулда, JC-VCC жана VCC казыктарын бирге секирүү керек, эгерде алар үчүн таптакыр өзүнчө электр энергиясын колдонгуңуз келбесе, бирок бул үчүн бул ашыкча. GND'ди Pi GND пинине, VCCти 5v пинге, IN1 менен IN2ди GPIO пиндерине колдонууну каалаган нерсеге туташтырыңыз. Сиз аларды ЖОК/ТӨМ которгучтар катары колдоно турган болсоңуз, кайсынысы маанилүү эмес.

3 -кадам: Программаны орнотуу

Программаны орнотуу
Программаны орнотуу

Бул, балким, эң көп убакытты талап кылган кадам, анткени сиз бир азга жүктөлүп жана орнотулган нерселерди көрүп турасыз. Бул нерселердин айрымдары орнотулганда youtube же башка нерсени көрүңүз.

Мен Raspbianди кантип орнотууну түшүндүрбөйм. Эгер муну кантип жасоону билбесеңиз, адегенде Google'дун "салам дүйнөсү" сабактарынын бир түрүнө өтүңүз. Кандай болгон күндө да, балким, Raspbian Lite жаңы орнотуусун колдонуу эң жакшы. Бул долбоорго гинин кереги жок жана бул кошумча чыгым. raspberrypi.org сизге ошол процесстен өтүүгө жардам берет.

SSHти иштетип, (эгер кааласаңыз) же Pi үчүн статикалык IPди конфигурациялаңыз (дагы бир жолу, муну кантип жасоо боюнча менден жакшыраак авторлор тарабынан жазылган бир нече окуу куралдары бар) же андан да жакшыраак, роутериңизди/DHCP сервериңизди конфигурациялаңыз. Сиздин Pi статикалык IP дайындоо үчүн.

Эгерде сиз жакшы, оңой орнотууну жана видео кызматты колдонууну кааласаңыз, барып MotionEye орнотуңуз. Бул, балким, ашыкча, бирок бул "жөн гана иштеген" орнотуулардын бири жана веб -интерфейсти колдонуу оңой. Бул жерден текшериңиз:

github.com/ccrisan/motioneye/wiki/Install-… Ар бир буйруктун алдында sudo колдонуп, бул көрсөтмөлөрдү аткарыңыз, ошондо сизде сонун видео агым орнотулган болот. Эгерде сиз каалаган нерсенин баары эшикти көрүп турганда ачып жатса, видео агымынын болушу такыр талап кылынбайт, бирок кайтарым байланышта болуу жакшы.

Motioneye орнотулгандан кийин, https:// YourIPAddress: 8765 дарегине кирип, "администратор" колдонуучу аты жана бош сырсөз менен кириңиз. Сиз, балким, дагы бир жолу "жөн гана иштеши" керек болгон камераны кошушуңуз керек жана бул көрсөтмөлөрдүн чегинен тышкары.

Администратор катары киргениңизде, "Өркүндөтүлгөн жөндөөлөрдү" которуштурууну чыкылдатыңыз, андан кийин видеоңуздун параметрлерин коюңуз - мен 320x240 видеомду колдондум, анткени мен сапатына караганда тезирээк жаңыртууларга көбүрөөк көңүл бурам, анткени мен аны көргүм келген. эшик ачык болчу же жок, көчөдө почта ящиктеринин номерлерин окуунун кажети жок.

"Видео агымы" жөндөөлөрүнүн астындагы "Агымдын URLи" шилтемесин чыкылдатып, сизге сунуш кылган даректи жазыңыз. Эгер интерфейсти меникиндей кылып орнотууну пландасаңыз, сизге кийинчерээк керек болот.

GPIO казыктарыңызды башкаруунун бир нече жолу бар. Бул долбоор үчүн мен WiringPi колдондум, аны орнотуу үчүн веб -сайттагы нускамаларды колдонуңуз:

wiringpi.com/download-and-install/

Же жөн эле Пиңизге төмөнкү буйруктарды бериңиз:

wget https://lion.drogon.net/wiringpi-2.50-1.debsudo dpkg -i wiringpi-2.50-1.deb gpio -v gpio readall

Бул сизге GPIO төөнөгүчтөрүңүз менен эмне болуп жатканын тизмесин бериши керек.

Эгерде сиз 4 жана 17 -пиндерди колдонуп жатсаңыз (BCM номерлөө схемасында), сиз төмөнкү командалар менен байланыштарыңызды текшере аласыз. Эске алыңыз, пинди LOW коюу, бул Sainsmart модулун колдонсо, реле иштетилет. Сиздики башкача болушу мүмкүн жана сиз муну тууралашыңыз керек. Бул буйруктарды аткарып жатканда, сиз релейлердин ордуна басылганын угушуңуз керек жана LED (лер) күйүшү керек.

gpio -g режими 17 чыгып

gpio -g жазуу 17 0 gpio -g жазуу 1 1 gpio -g mode 4 out gpio -g write 4 0 gpio -g write 4 1

Макул, эми биз UI түзүүгө өтсөк болот.

4 -кадам: Интерфейсти жасоо

Интерфейсти жасоо
Интерфейсти жасоо

Мен apache жана PHP колдондум. Жакшы жана жөнөкөй, өтө кооз эч нерсе жок. Дагы бир жолу, бул башка жерде жакшы түшүндүрүлгөн, андыктан бул жердеги көрсөтмөлөрдү аткарыңыз:

www.raspberrypi.org/documentation/remote-a…

Веб -сервериңиздин "тамыры", демейки боюнча,/var/www/html /де, веб -сервериңиз жөнүндө маалымат берген демейки index.html менен. Сиз ошол index.html алмаштырып жатасыз, андыктан аны өчүрүп же index.copy сыяктуу башка нерсеге алмаштыра аласыз. Мен дагы "pi" колдонуучусун html каталогунун ээси кылдым, уруксаттарга жалкоо болуу үчүн. Акыры, мен сүрөттөрүмдү сактоо үчүн каталог түздүм, анын экөө бар. Бири кнопка басылды деген акылсыз пикир, экинчиси телефондун башкы экранындагы сөлөкөт үчүн колдонулушу мүмкүн.

pi@garagedoor: ~ $ cd/var/www/html/

pi@garagedoor:/var/www/html $ sudo chown pi.pi@garagedoor:/var/www/html $ mv index.html index.copy pi@garagedoor:/var/www/html $ mkdir images

Вебсайтты түзүүнүн чексиз жолдору бар, бирок мен аны MY көндүмдөрүмдүн негизинде мүмкүн болушунча жөнөкөй жана оңой сактоону чечтим. Демек, PHP, анткени мен муну билем. Эгерде сиз python гуру же башка скрипт тили болсоңуз, анда аны колдонуудан тартынбаңыз.

Мен "контейнер" index.html баракчасын түздүм, анда бардык ишти аткарган эки iframem бар. Ифреймдердин биринде GPIO аркылуу релени иштетүүчү баскычтар/шилтемелер бар, ал эми видеону көрсөтүүчү дагы бир iframe. Ал ошондой эле-p.webp

Кнопкаларды камтыган index.html iframe анын мазмуну катары button.html файлына ээ. (бул кантип иштээри күлкүлүү эмеспи?) button.html шилтемелеринин экөө тең GET өзгөрмөлүү мааниси бар action.phpге алып барат. Өткөрүлгөн баанын негизинде action.php эшикти же жарык баскычын иштетет. Сиз менин githubдан HTML жана PHP кодун ала аласыз:

HTML жана PHPтин бардыгын түп каталогго (/var/www/html/) жайгаштырыңыз, кнопканы басууну ырастоо үчүн колдонуп жаткан сүрөттүн аталышы жана видео агымыңыздын дареги менен керектүү жерде кодду жаңыртыңыз. Эсиңиздеби, мен сизге керек деп айтканымда, мурунку кадамда?

5 -кадам: Аны сынап көрүңүз

Макул, эми сизде баары зым менен орнотулганда, баары биринчи аракетте кемчиликсиз иштейт, туурабы? Таттуу!

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