
Съдържание:
- Стъпка 1: Съберете части
- Стъпка 2: Настройка на Raspberry Pi без монитор или клавиатура
- Стъпка 3: Инсталирайте Wiring Pi, Apache и PHP
- Стъпка 4: Уебсайт
- Стъпка 5: Изображение на уебсайта
- Стъпка 6: Дистанционно управление на уеб сървър
- Стъпка 7: Свържете веригата към Raspberry Pi
- Стъпка 8: Създайте стартираща услуга
- Стъпка 9: Прикрепете Raspberry Pi към гаража
- Стъпка 10: Прикрепете Raspberry Pi към SECO-LARM
- Стъпка 11: Изпратете предупреждение, ако вратата е отворена, когато трябва да се затвори
- Стъпка 12: Поставете Raspberry Pi в Тайната книга
- Стъпка 13: Приложение: Препратки
- Стъпка 14: Приложение: Актуализации
- Стъпка 15: Приложение: Отстраняване на неизправности
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-06-01 06:08

Създадох тази инструкция през 2014 г. Оттогава много се промени. През 2021 г. актуализирах интелигентната отварачка за гаражни врати тук.
Използвайте Raspberry Pi и смартфон за отваряне, затваряне и наблюдение на гаражна врата. Отварянето и затварянето на вратата се осигурява с помощта на самоподписани сертификати, инсталирани на мобилните телефони на семейството. Ако вратата на гаража е отворена, когато не трябва, изпратете текстово съобщение (SMS) на мобилен телефон.
Гаражната врата се използва непрекъснато от края на 2014 г. През годините се опитах да актуализирам промените. Има приложение, описващо промените в инструкциите.
Целите на този проект са:
- Направете първата си инструкция - не планирах да публикувам това, но получих много искания
- Отворете гаражна врата със стандартно дистанционно
- Отворете гаражна врата с отваряща се гаражна отваряща врата за стена
- Отворете гаражна врата с SmartPhone
- Следете състоянието на гаражната врата дистанционно чрез мобилен телефон или лаптоп (отворена или затворена?)
- Изпратете текстово съобщение до мобилния ми телефон, ако вратата е отворена, когато трябва да се затвори
- Пазете вратата на гаража сигурно (например при загуба на захранване, вратата не трябва да се отваря)
- Не позволявайте на никой друг в мрежата да отваря вратата (двупосочен самоподписан SSL сертификат)
- Използвайте WiFi вместо кабелна връзка
- Използвайте Raspberry Pi 3
Основата за това внедряване на отваряне на гаражни врати е получена от Instructable: Raspberry Pi Отваряне на гаражни врати от квартал. Първоначално използвах модел B+ Raspberry Pi, след това преминах към Raspberry Pi 2 модел B, а сега използва Raspberry Pi 3.
Използвах MacBook за комуникация с Raspberry Pi, но може да се използва всеки компютър.
Няма убедителна причина за изграждането на това устройство, но беше забавно. По -рентабилно е да си купите такъв. Подобно устройство може да бъде закупено за около $ 130 USD.
- Повдигащ майстор 828LM
- Чембърлейн MyQ $ 129
- GoGo Gate $ 179
- Занаятчия $ 100
Бележки:
- Текст, ограден с пики, като този ♣ замени-това ♣ трябва да бъде заменен с действителна стойност
- Подчертаният син текст на Arduino е връзка. В този случай това е връзка към arduino версия на отварачка за гаражни врати.
- Опитах се да кредитирам всеки използван източник. Извинявам се за пропуските. По -голямата част от този документ се основава на работата на други хора.
- $ показва команда, изпълнявана в терминален прозорец на MacBook и обикновено се изпълнява на Raspberry Pi
Стъпка 1: Съберете части
Купете или съберете части и инструменти (цени в щатски долари).
- Raspberry Pi 3 Model B Newark Element14 $ 35
- 5.2V 2.5A USB захранващ адаптер от Amazon $ 9.99
- Micro USB към USB кабел 6 фута от Amazon $ 7,99
- Калъф от Amazon $ 6.99
- SanDisk Ultra 16 GB microSDHC клас 10 с адаптер (SDSQUAN-016G-G4A) от Amazon $ 8,99
- SunFounder 2 -канален 5V релеен щитов модул за Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - 6,79 щ.д.
- 3x женско-женски джъмперни проводници. Купено от Fry's за 4,95 долара.
- Динамичен DNS $ 40 на година за 30 имена (dyn.com)
- 1-Gang 18 cu. в. Old Work Heavy Wall Switch и Outlet Box, $ 3.12
- Бяла стенна плоча Ultra Pro с една четка, $ 7.88
- SECO-LARM SM 226L, сензор за гаражни врати, цената варира значително, $ 9,99 на Amazon с безплатна доставка
- 50 фута твърд проводник на термостата, Home Depot или Lowe's, ~ 20 долара
Моето общо: ~ 172,00 $
Имах следните части, инструменти и услуги:
- CAT5 Ethernet кабел
- Тел с малък габарит, дълъг 6 фута
- Отвертка с крестообразна глава
- Клещи за иглени носове
- Фрези за кутии
- Плоска отвертка за бижутери, необходима за разхлабване на винтовете на релето
- MacBook (може да се използва компютър)
- AT&T GigaPower (може да се използва всеки доставчик на интернет услуги)
Стъпка 2: Настройка на Raspberry Pi без монитор или клавиатура

Всички проекти на Raspberry Pi изискват някакъв тип настройка. Харесва ми да използвам същия набор от инструкции и, когато е необходимо, да имам едно място за актуализиране на тези инструкции.
Инсталирайте Raspberry Pi, като използвате следните инструкции:
Настройка на Raspberry Pi без монитор или клавиатура
Инструкциите по -горе включват незадължителни стъпки в приложението. Не забравяйте да направите стъпката:
Добавете сертификати от страна на клиента към уеб сървърите
Изключване на Raspberry Pi
$ sudo shutdown -h 0
След изключване, премахнете
- Ethernet кабел
- USB сериен кабел
Те вече няма да са необходими. Използвайте wifi, ssh и терминален прозорец на Mac Book, за да изпълнявате команди на Raspberry Pi.
Изключете захранването и включете отново захранването и малиновото пи трябва да се рестартира.
Стъпка 3: Инсталирайте Wiring Pi, Apache и PHP
Инсталирайте Wiring Pi
Отворете терминален прозорец на Mac Book. Влезте в Raspberry Pi, след това изтеглете, компилирайте и инсталирайте Wiring Pi. Този софтуер позволява контрол на GPIO щифтовете. Ето ръководство стъпка по стъпка:
wiringpi.com/download-and-install/
Ето съкратена версия на инструкциите:
$ ssh pi@♣ raspberry-pi-ip ♣
парола: ♣ парола ♣ $ sudo apt-get install git-core $ git clone git: //git.drogon.net/wiringPi $ cd wiringPi $ git pull origin $./build
Изпълнете командата gpio, за да проверите инсталацията:
$ gpio -v
gpio версия: 2.29 Copyright (c) 2012-2015 Gordon Henderson Това е безплатен софтуер с АБСОЛЮТНО БЕЗ ГАРАНЦИЯ. За подробности тип: gpio -гаранция Raspberry Pi Подробности: Тип: Модел 2, Ревизия: 1.1, Памет: 1024MB, Производител: Sony [OV] Дървото на устройствата е активирано. Този Raspberry Pi поддържа GPIO достъп на потребителско ниво. -> Вижте страницата за повече информация $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Име | Режим | V | Физически | V | Режим | Име | wPi | BCM | +-----+-----+---------+------+---+---- ++ ----+---+- -----+---------+-----+-----+| | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | ВЪН | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 1 | IN | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 | +-----+-----+---------+------+---+---- ++ ----+---+- -----+---------+-----+-----+| BCM | wPi | Име | Режим | V | Физически | V | Режим | Име | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+
Горните команди трябва да ви дадат известна увереност, че wiringPi работи добре.
Инсталирайте Apache и PHP
Изпълнете следните команди:
$ cd..
$ sudo apt-get update $ sudo apt-get install apache2 php5 libapache2-mod-php5
За да проверите дали уеб сървърът работи, отворете браузър и в полето URL въведете:
„Малина-пи-ип“
Уебсайтът по подразбиране на Apache отговаря с „Работи!“
Стъпка 4: Уебсайт
Отворете терминален прозорец на Mac Book. Влезте в Raspberry Pi, след това премахнете файла index.html по подразбиране, променете разрешенията в директорията на уебсайта и редактирайте файл, наречен index.php.
$ ssh pi@♣ raspberry-pi-ip ♣
парола: ♣ парола ♣ $ sudo rm /var/www/index.html $ sudo chown pi: root/var/www $ sudo nano /var/www/index.php
И въведете следния код:
Отваряне на гараж
Домашна автоматизация |
---|
Отваряне на гаражни врати | Ръководство за отваряне на гаражни врати | затворен 1 | отвори 0 |
CTRL-o и ENTER, за да напишете файла, и CTRL-x, за да излезете от редактора.
Променете разрешенията за файла
$ sudo chmod 664 /var/www/index.php
Стъпка 5: Изображение на уебсайта


Вземете дистанционно отваряне на гаражни врати с висока разделителна способност от мрежата. Променете изображението, както искате, с помощта на четка за рисуване Mac. На изображението по -горе е използвана отварачка за гаражи с висока разделителна способност, добавено е малиново пи лого и светодиодът е премахнат.
Едното изображение е фонът (remote-background.jpg), а другото е активното изображение (remote-press.jpg).
Планът беше, че при натискане на бутон, вместо да мига светодиода, малината ще мига. Опростих сайта.
Копирайте изображенията в малиновото пи:
$ scp *-j.webp
парола: ♣ парола ♣
Уебсайтът има един бутон за натискане. За да проверите, отворете браузър и въведете ♣ raspberry-pi-ip ♣. Вместо уебсайта по подразбиране на Apache, който казва „Работи!“, Трябва да се появи бутонът. Натиснете го.
Стъпка 6: Дистанционно управление на уеб сървър
За да улесня достъпа до отварачката за гаражни врати от отдалечено място, използвам динамично DNS име. Защото не обичам да си спомням IP адресите.
С тази функция въвеждам „динамично име на хост“.getmyip.com в полето URL на браузър. Забележка: IP на домашните рутери може да се промени без предизвестие, но това се случва рядко. Избрах да използвам DynDNS. Ще трябва да знаете публичния IP адрес на вашия рутер.
U-Verse IP маршрутизатор: ♣ uverse-public-ip ♣
Можете да видите вашите имена на хостове и подробности за акаунта в DynDNS Pro. Ето няколко съвета, за да започнете:
-
Създайте вашето Dynamic DNS име на хост (1 от 30):
- „Динамично име на хост“
- Ключ за актуализация: ♣ ключ за динамичен ip-актуализатор ♣
-
Инсталирайте клиент за актуализация, за да сте сигурни, че името на вашия хост винаги е насочено към правилния IP адрес.
- Изтеглете и инсталирайте на MacBook
- IP адресите на AT&T U-verse рядко се променят, така че актуализаторът по-горе може да се стартира винаги, когато се промени
-
Следвайте указанията:
- Добавяне на профил
- Въведете потребителско име и парола: ♣ dynamic-ip-username ♣ ♣ dynamic-ip-password ♣
- Изберете име на хост
- Щракнете върху Конфигуриране на избрани хостове
- Хостът трябва да стане активен
-
Конфигурирайте мрежата си, за да разрешите достъп до вашето устройство от интернет. Можете да използвате нашия Dyn Wizard за някои общи инструкции как да направите това, да използвате ресурси като PortForward.com или да се свържете с производителя на устройството за помощ.
- AT-T U-стих
- Пренасочване на портове за 2-Wire 3801HGV-това е маршрутизаторът AT&T U-Verse, който имам. Вижте Актуализации в Приложение за това как да пренасяте напред на рутер AT&T U-verse 5268ac.
- Отворете браузъра и отидете на ♣ raspberry-pi-ip ♣
- Парола: ♣ парола ♣
- Настройки
-
Защитна стена
- Изберете ♣ raspberry-pi-hostname ♣
-
Сървъри
- Порт на уеб сървър 80
- HTTPS сървър - порт 443
- Добавяне
- Запазване
След като това стане, уеб сървърът ще работи от интернет. За да проверите, въведете „динамично име на хост“и трябва да видите бутона за отваряне на гаражни врати.
Стъпка 7: Свържете веригата към Raspberry Pi

За предоставения код (стъпки 4 и 6) използвах GPIO пин 7. Съвпадение е, че GPIO 7 е същият като wiringPi pin 7. В PHP кода се използват номера на Pin pin, а НЕ GPIO номера на PIN. Можете да използвате който искате, но не забравяйте да промените кода.
Опитах да използвам усукана жица, но релето не държи добре на усукана жица. Плътният проводник е по -добър.
При първия ми опит създадох три свързващи кабела (женски към мъжки).
- Използвайте три кабела от женски към женски
-
Нарежете три парчета твърда тел на около 1 инча.
Лента 1/4in на двата края на плътна жица
- Поставете един плътен проводник в един женски джъмпер кабел.
Ето един по-добър начин за създаване на свързващи кабели (женски към мъжки):
- Използвайте само плътна жица
- Нарежете три 4 -инчови парчета плътна тел
- Лента 1/4in на двата края на плътна жица
-
Използвайте женски свързващи щифтове
-
Плъзнете един женски свързващ щифт върху единия край на плътна жица и го нагънете
Женският щифт не трябва да се разхлабва, запоявайте, ако е необходимо
- Плъзнете облекчението на напрежението върху женския свързващ щифт или щифта на капака с електрическа лента
-
Свържете релето към pi, както е показано на диаграмата:
- Свържете женския край на кабела към щифта на Raspberry Pi.
- Поставете плътен проводник в релето.
Стъпка 8: Създайте стартираща услуга
Повечето релета, включително закупеното, работят по следния начин:
- Когато сигналът е включен, веригата остава изключена.
- Когато сигналът е ИЗКЛЮЧЕН, веригата е включена.
Ако Raspberry Pi загуби захранване, релето има предпазен механизъм, който поддържа веригата OFF.
Проблем може да възникне, когато Rapberry Pi и релето се възстановят, но преди Raspberry Pi да завърши зареждането, за да включи сигнала, което е необходимо, за да се изключи веригата. Можете да се събудите сутрин с отворен гараж и потенциално с няколко нови приятели!
Релето обаче всъщност не се инициализира, докато режимът на GPIO пин не бъде зададен чрез тази команда: gpio mode 7 out. Освен това, ако GPIO щифтът е в положение ON (gpio write 7 1), преди да зададете GPIO режим, релето ще остане изключено след инициализиране.
За да направите тази инициализация при стартиране и да не се събуждате с нови приятели, използвайте следния стартиращ скрипт.
$ ssh pi@♣ raspberry-pi-ip ♣
$ sudo nano /etc/init.d/garagerelay
След това поставете този скрипт:
#! /bin/bash
# /etc/init.d/garagerelay # Извършване на специфични функции, когато системният регистър поиска „$ 1“в началото) ехо „Стартиращо реле“# Включете 7, което поддържа релето изключено/usr/local/bin/gpio write 7 1 #Стартирайте режим Gpio/usr/local/bin/gpio 7 изход;; стоп) ехо "Спиране на gpio";; *) echo "Usage: /etc/init.d/garagerelay {start | stop}" exit 1;; esac изход 0
За да запишете: CTRL-o, ENTER
За да излезете от nano, CTRL-x
Направете файла изпълним:
$ sudo chmod +x /etc/init.d/garagerelay
Сега кажете на вашия pi да стартира този скрипт при зареждане:
$ sudo update -rc.d -f гаражно реле начало 4
(Забележка: Можете безопасно да игнорирате предупреждението „липсващи LSB тагове“.)
Уверете се, че стартиращият скрипт работи
$ sudo рестартиране
Отворете браузър и кликнете върху отварачката. Релето трябва да щракне.
Стъпка 9: Прикрепете Raspberry Pi към гаража

Когато премествате Raspberry Pi, не забравяйте да стартирате:
$ shutdown -h 0
Може да искате да изключите захранването на гаража. Така че отварянето на звънеца на вратата не ви удря с ток:). Истинската причина е всеки път, когато скъсявате проводниците, вратата да се качва нагоре и надолу.
Развийте винтовете за стена от отварящия механизъм за врата, който прикрепя звънеца към стената.
Пробийте дупка от гаража зад отварящата врата до вътрешността на къщата. В Тексас Raspberry Pi не трябва да бъде в гаража, температурните колебания в гаража са извън работните спецификации на Raspberry Pi.
Прокарайте проводниците на релето през отвора (използвайте закачалка).
Разхлабете двата винта от задната страна на ключалката за звънец.
Отстранете двата края на проводниците на релето: 1) около 1/8 "инча от страната на релето и около ½" инча от страната на звънеца. Огънете страната на звънеца на проводника в половин контур, достатъчно голям, за да се побере около винта от задната страна.
Свържете един релеен проводник към всеки винт на гърба на звънеца на вратата и затегнете винта. Връзките са както е показано на изображението. Тъй като релето изолира веригата, посоката дори няма значение кое реле е прикрепено към кой винт.
Стъпка 10: Прикрепете Raspberry Pi към SECO-LARM


Преди да завърша кода, със семейството ми бяхме на почивка и отворих браузъра си. Последният изглед на браузъра ми беше за отваряне на гаражни врати - страницата се опресни и вратата на гаража се отвори. Няколко дни по -късно един съсед се обади и попита дали гаражната врата трябва да бъде отворена? За щастие бих могъл да го затворя от 500 мили.
Тази бъркотия ме принуди да променя кода, за да не се случи това, и да добавя сензор и състоянието на гаражната врата към уебсайта.
Това е връзка към оригиналната инструкция за добавяне на сензор. Като се има предвид всичко, което вече е завършено, инсталирането на сензора може да бъде значително опростено и вместо да се използва python, добавете няколко реда код към index.php.
Fatal error: Uncaught Error: Call to undefined function exec() in W:\www\langs\.php-gen-lang\v3-core\macros.php(127) : eval()'d code:518 Stack trace: #0 W:\www\langs\.php-gen-lang\v3-core\macros.php(127): eval() #1 W:\www\langs\.php-gen-lang\v3-core\index-global.php(231): Macros->macros_parse('<!DOCTYPE html>...') #2 W:\www\langs\howwhatproduce.com\bg.howwhatproduce.com\index.php(9): require_once('W:\\www\\langs\\.p...') #3 {main} thrown in W:\www\langs\.php-gen-lang\v3-core\macros.php(127) : eval()'d code on line 518