Оглавление:

Устройство открывания двери гаража Raspberry Pi 3: 15 шагов (с изображениями)
Устройство открывания двери гаража Raspberry Pi 3: 15 шагов (с изображениями)

Видео: Устройство открывания двери гаража Raspberry Pi 3: 15 шагов (с изображениями)

Видео: Устройство открывания двери гаража Raspberry Pi 3: 15 шагов (с изображениями)
Видео: Одесса. НАЧАЛОСЬ! 2024, Июль
Anonim
Устройство открывания двери гаража Raspberry Pi 3
Устройство открывания двери гаража Raspberry Pi 3

Я создал это руководство в 2014 году. С тех пор многое изменилось. В 2021 году я обновил здесь умный открыватель гаражных ворот.

Используйте Raspberry Pi и смартфон, чтобы открывать, закрывать и контролировать дверь гаража. Открытие и закрытие двери обеспечивается с помощью самозаверяющих сертификатов, установленных на мобильных телефонах семьи. Если дверь гаража открыта, а не должна быть, то отправьте текстовое сообщение (SMS) на мобильный телефон.

Гаражные ворота постоянно используются с конца 2014 года. На протяжении многих лет я старался обновлять изменения. Есть приложение с описанием изменений в инструкции.

Цели этого проекта:

  • Сделайте мой первый поучительный - я не планировал публиковать это, но я получил много запросов
  • Открыть дверь гаража с помощью стандартного пульта ДУ
  • Откройте дверь гаража с помощью настенного дверного звонка для открывания гаража
  • Откройте дверь гаража с помощью смартфона
  • Отслеживайте состояние гаражных ворот удаленно с помощью мобильного телефона или ноутбука (открыты они или закрыты?)
  • Отправить текстовое сообщение на мой мобильный телефон, если дверь открыта, когда ее следует закрыть
  • Держите дверь гаража в безопасности (например, при отключении электроэнергии дверь не должна открываться)
  • Не позволяйте никому в сети открывать дверь (двусторонний самоподписанный сертификат SSL)
  • Используйте Wi-Fi вместо проводного подключения
  • Используйте Raspberry Pi 3

Основа для этой реализации открывателя гаражных ворот была взята из инструкции: Raspberry Pi Garage Door Opener by quartarian. Первоначально я использовал модель B + Raspberry Pi, затем перешел на модель B Raspberry Pi 2, а теперь она использует Raspberry Pi 3.

Я использовал MacBook для связи с Raspberry Pi, но можно использовать любой компьютер.

Нет веских причин для создания этого устройства, но это было весело. Это более выгодно с точки зрения затрат. Подобное устройство можно приобрести примерно за 130 долларов США.

  • Мастер подъемника 828LM
  • Чемберлен MyQ $ 129
  • Ворота GoGo $ 179
  • Ремесленник $ 100

Примечания:

  • Текст, заключенный в пики, например ♣ replace-this ♣, следует заменить фактическим значением.
  • Подчеркнутый синий текст Arduino - это ссылка. В данном случае это ссылка на версию устройства открывания гаражных ворот для Arduino.
  • Я попытался указать на каждый использованный источник. Приношу свои извинения за любые упущения. Большая часть этого документа основана на работах других людей.
  • $ указывает на команду, выполняемую в окне терминала на MacBook и обычно выполняемую на Raspberry Pi.

Шаг 1: Соберите детали

Купите или соберите детали и инструменты (цены в долларах США).

  • Raspberry Pi 3 Model B Newark Element14 $ 35
  • Адаптер питания USB 5,2 В 2,5 А от Amazon $ 9,99
  • Кабель Micro USB-USB длиной 6 футов от Amazon $ 7,99
  • Чехол от Amazon $ 6,99
  • SanDisk Ultra 16 ГБ microSDHC класса 10 с адаптером (SDSQUAN-016G-G4A) от Amazon $ 8,99
  • 2-канальный модуль реле SunFounder 5V для Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $ 6,79
  • 3x перемычки «мама-женщина». Купил в Fry’s за 4,95 доллара.
  • Динамический DNS 40 долларов в год для 30 имен (dyn.com)
  • 1-я банда 18 куб. в. Старый рабочий тяжелый настенный выключатель и розеточная коробка, 3,12 доллара США.
  • Белая настенная тарелка Ultra Pro с одной щеткой, $ 7,88
  • SECO-LARM SM 226L, Датчик двери гаража, цена варьируется в широких пределах, $ 9,99 на Amazon с бесплатной доставкой
  • 50 футов сплошного провода термостата, Home Depot или Lowe's, ~ 20 долларов

Моя сумма: ~ 172,00 $

У меня были следующие запчасти, инструменты и услуги:

  • Кабель Ethernet CAT5
  • Проволока малого калибра, длина 6 футов
  • Отвертка с крестообразным шлицем
  • Плоскогубцы
  • Ножницы для коробок
  • Отвертка с плоской головкой для ювелиров, необходимая для откручивания винтов на реле
  • MacBook (можно использовать ПК)
  • AT&T GigaPower (можно использовать любого интернет-провайдера)

Шаг 2: Настройте Raspberry Pi без монитора или клавиатуры

Настройка Raspberry Pi без монитора или клавиатуры
Настройка Raspberry Pi без монитора или клавиатуры

Все проекты Raspberry Pi требуют определенной настройки. Мне нравится использовать один и тот же набор инструкций, и при необходимости у меня есть одно место для обновления этих инструкций.

Настройте Raspberry Pi, используя следующие инструкции:

Настройка Raspberry Pi без монитора или клавиатуры

Указанные выше инструкции включают дополнительные шаги в приложении. Обязательно проделайте шаг:

Добавить клиентские сертификаты на веб-серверы

Выключение Raspberry Pi

$ sudo выключение -h 0

После выключения удалите

  • сетевой кабель
  • Последовательный USB-кабель

Они больше не понадобятся. Используйте Wi-Fi, ssh и окно терминала в Mac Book для выполнения команд на Raspberry Pi.

Отключите питание и снова подключите питание, и Raspberry Pi должен перезагрузиться.

Шаг 3: Установите Wiring Pi, Apache и PHP

Установите Wiring Pi

Откройте окно терминала в Mac Book. Войдите в Raspberry Pi, затем загрузите, скомпилируйте и установите Wiring Pi. Это программное обеспечение позволяет управлять контактами GPIO. Вот пошаговое руководство:

wiringpi.com/download-and-install/

Вот сокращенная версия инструкций:

$ ssh 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 Авторские права (c) 2012-2015 Гордон Хендерсон Это бесплатное программное обеспечение, не имеющее АБСОЛЮТНО БЕЗ ГАРАНТИЙ. Для получения подробной информации введите: gpio -warranty Raspberry Pi Подробности: Тип: Модель 2, Версия: 1.1, Память: 1024 МБ, Производитель: Sony [OV] Дерево устройств включено. Этот Raspberry Pi поддерживает доступ GPIO на уровне пользователя. -> См. Справочную страницу для более подробной информации $ gpio readall + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + ------ + --------- + ----- + ----- + | BCM | wPi | Имя | Режим | V | Физический | V | Режим | Имя | wPi | BCM | + ----- + ----- + --------- + ------ + --- + ---- ++ ---- + --- + - ----- + --------- + ----- + ----- + | | | 3,3 В | | | 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,3 В | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | В | 0 | 21 || 22 | 0 | В | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | В | 0 | 23 || 24 | 1 | В | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | В | 1 | 27 || 28 | 1 | В | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | В | 1 | 31 || 32 | 0 | В | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | В | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | В | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | В | 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 @ ♣ малина-пи-ip ♣

пароль: ♣ пароль ♣ $ sudo rm /var/www/index.html $ sudo chown pi: root / var / www $ sudo nano /var/www/index.php

И введите следующий код:

Открывалка для гаража

Домашняя автоматизация

<? php if ($ switch == 1) {эхо"

";} еще {эхо"

"; } ?>

Открывалка для гаражных ворот Руководство для открывания гаражных ворот закрыто 1 открытый 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} else {echo"

var13 ->

CTRL-o и ENTER для записи файла и CTRL-x для выхода из редактора.

Изменить права доступа к файлу

$ sudo chmod 664 /var/www/index.php

Шаг 5. Изображение веб-сайта

Изображение веб-сайта
Изображение веб-сайта
Изображение веб-сайта
Изображение веб-сайта

Возьмите дистанционное устройство открывания гаражных ворот с высоким разрешением из Интернета. Измените изображение, как вы хотите, используя кисть Mac. На изображении выше использовался Genie Garage Opener с высоким разрешением, был добавлен логотип Raspberry Pi и удален светодиод.

Одно изображение является фоном (remote-background.jpg), а другое - активным изображением (remote-press.jpg).

Планировалось, что при нажатии кнопки вместо мигания светодиода будет мигать малина. Я упростил сайт.

Скопируйте изображения на raspberry pi:

$ scp *-j.webp

пароль: ♣ пароль ♣

На веб-сайте есть одна кнопка. Для проверки откройте браузер и введите raspberry-pi-ip ♣. Вместо веб-сайта Apache по умолчанию, на котором написано «Это работает!», Должна появиться кнопка. Нажми.

Шаг 6. Удаленное управление веб-сервером

Чтобы упростить доступ к механизму открывания гаражных ворот из удаленного места, я использую динамическое DNS-имя. Потому что я не люблю запоминать IP-адреса.

С помощью этой функции я ввожу ♣ dynamic-hostname ♣.getmyip.com в поле URL-адреса браузера. Примечание. IP-адрес домашних маршрутизаторов может быть изменен без предварительного уведомления, но это случается редко. Я решил использовать DynDNS. Вам нужно будет знать общедоступный IP-адрес вашего маршрутизатора.

IP-адрес маршрутизатора U-Verse: uverse-public-ip ♣

Вы можете просмотреть свои имена хостов и данные учетной записи DynDNS Pro. Вот несколько советов для начала:

  • Создайте свое имя хоста динамического DNS (1 из 30):

    • ♣ динамическое имя хоста ♣
    • Ключ средства обновления: ♣ dynamic-ip-updater-key ♣
  • Установите клиент обновления, чтобы ваше имя хоста всегда указывало на правильный IP-адрес.

    • Скачайте и установите на MacBook
    • IP-адреса AT&T U-verse меняются редко, поэтому указанное выше средство обновления можно запускать всякий раз, когда оно действительно меняется.
    • Следуйте инструкциям:

      • Добавить аккаунт
      • Введите имя пользователя и пароль: ♣ dynamic-ip-username ♣ ♣ dynamic-ip-password ♣
      • Выберите имя хоста
      • Нажмите Настроить выбранные хосты.
      • Хост должен стать активным
    • Настройте свою сеть, чтобы разрешить доступ к вашему устройству из Интернета. Вы можете использовать наш Dyn Wizard для получения некоторых общих инструкций о том, как это сделать, использовать такие ресурсы, как PortForward.com, или обратиться за помощью к производителю устройства.

      • AT&T U-verse
      • Переадресация портов для 2-Wire 3801HGV - это маршрутизатор AT&T U-Verse, который у меня есть. См. Обновления в Приложении, чтобы узнать, как перенаправить порт на маршрутизаторе AT&T U-verse 5268ac.
      • Откройте браузер и перейдите в ♣ raspberry-pi-ip ♣
      • Пароль: ♣ пароль ♣
      • Настройки
      • Межсетевой экран

        • Выберите ♣ raspberry-pi-hostname ♣
        • Серверы

          • Порт веб-сервера 80
          • Сервер HTTPS - порт 443
        • Добавлять
      • Сохранить

Как только это будет сделано, веб-сервер будет работать из Интернета. Для проверки введите ♣ dynamic-hostname ♣, и вы должны увидеть кнопку открывания двери гаража.

Шаг 7: Подключите схему к Raspberry Pi

Подключите схему к Raspberry Pi
Подключите схему к Raspberry Pi

Для предоставленного кода (шаги 4 и 6) я использовал вывод 7 GPIO. По совпадению, GPIO 7 совпадает с выводом 7 wiringPi. В коде PHP используются номера выводов Pi, а НЕ номера выводов GPIO. Вы можете использовать то, что хотите, но не забудьте изменить код.

Я пробовал использовать скрученный провод, но реле плохо держится на скрученном проводе. Сплошная проволока лучше.

С первой попытки я создал три соединительных кабеля (мама-папа).

  • Используйте три соединительных кабеля типа мама-мама
  • Отрежьте три куска прочной проволоки примерно на 1 дюйм.

    Зачистите 1/4 дюйма с обоих концов сплошной проволоки

  • Вставьте один сплошной провод в один соединительный кабель с внутренней резьбой.

Вот лучший способ создания соединительных кабелей (мама-папа):

  • Используйте только одножильный провод
  • Отрежьте три 4-дюймовых куска твердой проволоки.
  • Зачистите 1/4 дюйма с обоих концов сплошного провода.
  • Используйте соединительные штифты с внутренней резьбой

    • Наденьте один соединительный штифт с внутренней резьбой на один конец сплошного провода и обожмите

      Гнездовой штифт не должен расшатываться, при необходимости припаяйте

    • Наденьте приспособление для снятия натяжения на соединительный штифт с внутренней резьбой или заглушку с помощью электротехнической ленты.

Подключите реле к пи, как показано на схеме:

  • Подключите женский конец кабеля к контакту Raspberry Pi.
  • Вставьте сплошной провод в реле.

Шаг 8: Создайте службу запуска

Большинство реле, в том числе и купленное, работают следующим образом:

  • Когда сигнал включен, цепь остается выключенной.
  • Когда сигнал выключен, значит, цепь включена.

Если Raspberry Pi теряет питание, реле имеет предохранительный механизм, который отключает цепь.

Проблема может возникнуть, когда питание Rapberry Pi и реле восстанавливается, но до того, как Raspberry Pi завершит загрузку, чтобы включить сигнал, который необходим для отключения цепи. Вы можете проснуться утром с открытым гаражом и, возможно, с несколькими новыми друзьями!

Однако на самом деле реле не инициализируется до тех пор, пока режим вывода GPIO не будет установлен с помощью этой команды: gpio mode 7 out. Кроме того, если вывод GPIO находится в положении ON (gpio write 7 1) до того, как вы установите режим GPIO, реле останется выключенным после инициализации.

Чтобы эта инициализация запускалась при загрузке и не просыпалась от новых друзей, используйте следующий сценарий запуска.

$ ssh pi @ ♣ малина-пи-ip ♣

$ sudo nano /etc/init.d/garagerelay

Затем вставьте этот скрипт:

#! / bin / bash

# /etc/init.d/garagerelay # Выполнять определенные функции по запросу системы case "$ 1" в start) echo "Starting Relay" # Включите 7, чтобы реле оставалось выключенным / usr / local / bin / gpio write 7 1 # Запустить режим Gpio / usr / local / bin / gpio 7 out;; stop) echo "Остановка gpio";; *) echo "Использование: /etc/init.d/garagerelay {start | stop}" exit 1;; esac выход 0

Для сохранения: CTRL-o, ENTER

Чтобы выйти из nano, CTRL-x

Сделайте файл исполняемым:

$ sudo chmod + x /etc/init.d/garagerelay

Теперь скажите вашему пи запускать этот скрипт при загрузке:

$ sudo update-rc.d -f garagerelay start 4

(Примечание: предупреждение «Отсутствуют теги LSB» можно игнорировать.)

Убедитесь, что сценарий запуска запущен

$ sudo перезагрузка

Откройте браузер и нажмите кнопку открытия. Реле должно щелкнуть.

Шаг 9: прикрепите Raspberry Pi к гаражу

Прикрепите Raspberry Pi к гаражу
Прикрепите Raspberry Pi к гаражу

При перемещении Raspberry Pi обязательно запустите:

$ выключение -h 0

Вы можете отключить электричество в гараже. Так что дверной звонок не убьет вас электрическим током:). Настоящая причина в том, что каждый раз, когда вы закорачиваете провода, дверь будет подниматься и опускаться.

Отвинтите стенные винты от открывателя дверного звонка, с помощью которого дверной звонок крепится к стене.

Проделайте дыру из гаража за открывателем дверного звонка внутрь дома. В Техасе Raspberry Pi не должен находиться в гараже, колебания температуры в гараже выходят за рамки рабочих характеристик Raspberry Pi.

Пропустите провода реле через отверстие (используйте вешалку).

Ослабьте оба винта на задней стороне устройства открывания дверного звонка.

Зачистите оба конца проводов реле: 1) примерно 1/8 дюйма со стороны реле и примерно ½ дюйма со стороны дверного звонка. Согните проволоку со стороны дверного звонка в виде полупетли, достаточно большой, чтобы ее можно было охватить задним винтом.

Подсоедините один провод реле к каждому винту на задней стороне дверного звонка и затяните винт. Подключения показаны на изображении. Поскольку реле изолирует цепь, направление даже не имеет значения, какое реле к какому винту прикреплено.

Шаг 10: прикрепите Raspberry Pi к SECO-LARM

Присоедините Raspberry Pi к SECO-LARM
Присоедините Raspberry Pi к SECO-LARM
Присоедините Raspberry Pi к SECO-LARM
Присоедините Raspberry Pi к SECO-LARM

Прежде чем я закончил код, мы с семьей были в отпуске, и я открыл свой браузер. Последний раз мой браузер видел устройство открывания гаражных ворот - страница обновилась и гаражные ворота открылись. Через несколько дней позвонил сосед и спросил, нужно ли открывать дверь гаража? К счастью, я смог закрыть его за 500 миль.

Этот беспорядок заставил меня изменить код, чтобы этого не произошло, и добавить на сайт датчик и состояние гаражных ворот.

Это ссылка на оригинальную инструкцию по добавлению датчика. Однако, учитывая все, что уже выполнено, установку датчика можно значительно упростить и вместо использования python добавить пару строк кода в index.php.

closed

Магнит прикреплен к левой верхней внутренней стороне гаражных ворот, а датчик прикреплен к стене гаража. Итак, мне пришлось проложить прочный провод термостата от датчика обратно к Raspberry Pi. Для этого потребовалось сделать отверстие из гаража в чердак и из чердака в стену, в которой находится устройство открывания двери гаража (переключатель дверного звонка).

Я вставил синюю распределительную коробку между датчиком SECO-LARM и сплошными проводами.

В моем доме между потолком первого этажа и низом второго этажа есть зазор в 18 дюймов. Я предполагаю, что здесь проходят каналы отопления и охлаждения. Мне понадобился удлинитель для сверла, достаточно длинный, чтобы пройти через второй этаж и через верхнюю пластину 2x4 (верхнюю пластину), на которой находится дверной звонок.

Самая важная часть при сверлении с чердака в области, где провода будут идти к механизму открывания двери гаража, НЕ просверливать электричество. Исправлять это было не весело. Видеть искры и гаснуть свет было довольно захватывающе!

Для датчика требуются два сплошных провода термостата или невидимая проволока для ограждения.

Raspberry Pi имеет несколько описаний контактов (BCM, wPi, физический). В коде используются номера контактов pi проводки. Чтобы увидеть все контакты, а также их сопоставление и значения контактов, введите:

$ gpio readall

Для руководства по gpio введите:

$ gpio человек

В исходных инструкциях физический контакт 9 заземлен и подключается к одному из выводов SECO-LARM. Однако у меня это не работает. Вместо этого подключите выводы к физическим контактам 15 и 17.

Физический контакт 15 (контакт 3 wPi) переходит в 3,3 В, когда датчик SECO-LARM замкнут. Физический контакт 17 - 3,3 В. Если не работает, переключите соединения на SECO-LARM.

Прикрепите СЕКО-ЛАРМ к гаражным воротам и стене. Проложите провода и подключитесь к Raspberry Pi.

Шаг 11: отправьте уведомление, если дверь открыта, когда ее следует закрыть

Если дверь гаража открыта, а не должна быть, то отправьте текстовое сообщение на мобильный телефон.

Установите и настройте простой SMTP.

У меня сотовая связь AT&T, а для текстовых сообщений я использую ♣cell-phone-number♣@txt.att.net. У меня также есть учетная запись gmail, и в приведенном ниже примере используется ♣gmail-account♣@gmail.com. Если вы пользуетесь другими сервисами, внесите соответствующие изменения.

Для команд $ ниже откройте окно терминала на MacBook и войдите в свой Raspberry Pi.

Убедитесь, что репозитории обновлены:

$ sudo apt-get update

Установите простые SSMTP и почтовые утилиты:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

Отредактируйте файл конфигурации SSMTP:

$ sudo nano /etc/ssmtp/ssmtp.conf

следующее:

mailhub = smtp.gmail.com: 587 hostname = ♣ your-hostname ♣ AuthUser=♣gmail-account♣@gmail.com AuthPass = gmail-password ♣ UseSTARTTLS = YES

Отредактируйте файл псевдонимов SSMTP:

$ sudo nano / etc / ssmtp / revaliases

Создайте одну строку для каждого пользователя, который сможет отправлять электронные письма. Например:

корень: ♣gmail-account♣@gmail.com: smtp.gmail.com: 587

Установите права доступа к файлу конфигурации SSMTP:

$ sudo chmod 664 /etc/ssmtp/ssmtp.conf

Разрешения файла /etc/ssmtp/ssmtp.conf определяют, кто сможет отправлять электронные письма с Raspberry Pi. По умолчанию этот файл принадлежит пользователю root, и группа файла также является root.

Отредактируйте файл псевдонимов SSMTP, который содержит данные об учетных записях электронной почты:

$ sudo nano /etc/ssmtp/ssmtp.conf

После завершения описанного выше процесса установки и настройки проверьте его, отправив электронное письмо из командной строки.

$ echo "закрой дверь гаража" | mail -s "Дверь гаража открыта" ♣cell-phone-number♣@txt.att.net

Создайте сценарий, чтобы проверить, открыта ли дверь гаража, когда этого не должно быть, а затем отправьте текстовое сообщение.

$ sudo nano /usr/local/bin/garage.sh

и добавьте следующее:

#! / bin / bash

# проверить, открыта ли дверь гаража. # При открытии отправить предупреждение и записать в системный журнал up = 0; door = $ (/ home / pi / wiringPi / gpio / gpio read 3) if ["$ door" -eq "$ up"], то регистратор ♣ your-hostname ♣: Garage Door Open echo "закрыть дверь гаража" | mail -s "Дверь гаража открыта" ♣cell-phone-number♣@txt.att.net fi exit 0

Затем добавьте crontab для запуска в нужные часы:

$ sudo crontab –e

и добавить:

# Ночью каждый час проверять, открыта ли дверь гаража

0 22-23 / 1 * * * sudo /usr/local/bin/garage.sh 0 0-5 / 1 * * * sudo /usr/local/bin/garage.sh

Если все работает, переходите к следующему шагу.

Шаг 12: Поместите Raspberry Pi в секретную книгу

Поместите Raspberry Pi в секретную книгу
Поместите Raspberry Pi в секретную книгу
Поместите Raspberry Pi в секретную книгу
Поместите Raspberry Pi в секретную книгу

Поместите малиновый пи в секретную книгу. Я купил эту у Майкла примерно за 7 долларов. Я вырезал небольшие отверстия для проводов и шнура питания.

Шаг 13: Приложение: ссылки

SunFounder 2-канальный 5V релейный экранный модуль для Arduino UNO 2560 1280 ARM PIC AVR STM32

  • 2-канальная интерфейсная плата реле 5 В, каждому требуется 15-20 мА
  • Ток драйвера Оборудован сильноточным реле, AC250V 10A; DC30V 10A
  • Стандартный интерфейс, которым можно управлять напрямую с помощью микроконтроллера (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, логика TTL)
  • Светодиоды индикации состояния релейного выхода Ссылка для загрузки документа:

Шаг 14: Приложение: обновления

21 февраля 2016 г.

  • В исходных инструкциях были проблемы с автокоррекцией, форматированием и четкостью указаний.

    • Пример проблемы - когда двойные кавычки в коде заменяются чем-то вроде двойных кавычек, выделенных курсивом. Однако, если вы скопируете это и вставите в скрипт, это не сработает.
    • Обучаемый редактор любит автокоррекцию, поэтому wlan превращается в план, а autoremove превращается в автоматическое удаление. Эти изменения сложно заметить.
    • Некоторые из моих указаний могли быть недостаточно ясными.
    • Обычно я использую угловые скобки как индикатор того, что нужно заменить. Редактор конвертирует их в HTML. Итак, я перешел на квадратные скобки, но они могут вызвать проблемы, потому что выглядят как код. Итак, я наконец остановился на ♣ в качестве индикатора для замены фактическим значением.
  • Со временем я также улучшил некоторые скрипты.
  • Отредактированные шаги 21-26

03 апреля 2016 г.

  • Создано приложение с поиском и устранением неисправностей, справочными материалами и обновлениями (шаги 27-29)
  • Устранение неполадок перенесено в Приложение с предыдущего шага 2.
  • Обновлена страница устранения неполадок и упорядочена по алфавиту
  • Изменено имя файла с test2wifi.sh на garage.sh - более информативное.
  • Обновлен cron для использования garage.sh
  • Отредактировано 1, 20-26 (Создание службы запуска для шага перед приложением)

04 апреля 2016 г.

  • Шаги 2-11 и 16-20 заменены моим стандартом настройки Raspberry Pi.
  • Обновленный список деталей, шаг 1
  • Добавленные / объединенные фотографии

05 апреля 2016 г.

Упрощенный веб-сайт и изображение (шаги 4 и 5)

01 МАЯ 2016

Добавлено устранение неполадок сенсора Seco-larm / raspberry Pi

01 МАЯ 2016

Предыдущие правки не сохраняются должным образом?

11 ноября 2016 г.

  • Обновился до AT&T GigaPower и поменял роутер на 5268ac
  • 5268ac не поддерживает возвратную петлю, поэтому сервер Garage Opener недоступен с компьютеров в локальной сети. Чтобы MacBook мог получить доступ к веб-серверу открывателя гаража, выполните следующие действия:

$ sudo nano / etc / hosts

и добавьте строку

192.168.1.64 ♣ внешнее-доменное-имя сервера ♣

Сохранить и выйти, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • Встроенные правила переадресации портов 5268ac, такие как HTTPS-сервер, HTTP-сервер и веб-сервер, не работают. Чтобы заставить работать переадресацию портов:

    • Откройте браузер и перейдите на 192.168.1.254.
    • Авторизоваться
    • Выберите «Настройки», «Брандмауэр», «Приложения», «дыры» и «DMZ».
    • Выберите веб-сервер открывателя гаража
    • Выбрать определяемый пользователем
    • Щелкните новое пользовательское приложение

      • В поле Application Profile Name введите: PortForwarding.
      • В разделе «Создать определение приложения» добавьте каждое из следующих действий и нажмите «Добавить в список»:

        • TCP от 80 до 80, сопоставление с портом хоста 443
        • TCP от 443 до 443 отображается на порт хоста 443
        • UDP от 443 до 443, сопоставление с портом хоста 443
        • UDP от 80 до 80, сопоставление с портом хоста 443
    • Нажмите назад
    • Снова выберите свой веб-сервер
    • Выбрать определяемый пользователем
    • Добавить переадресацию портов
    • Нажмите кнопку "Сохранить".

21 ЯНВАРЯ 2018

  • Обновлено до Raspberry Pi 3
  • Несколько правок к шагам
  • Обновлены некоторые детали и цены

Шаг 15: Приложение: Устранение неполадок

Используемое дисковое пространство

Последняя строка показывает общий объем используемого дискового пространства. SD-карта имеет 8 ГБ.

$ cd../..

$ sudo du –hx –c

Эл. адрес

Если у вас возникли проблемы, попробуйте следующее:

$ echo "тест" | sendmail -v ♣ваш-gmail-account♣@gmail.com

Если электронная почта настроена правильно, вы должны получить электронное письмо в своей учетной записи Gmail.

Если вы получили ошибку аутентификации:

Возможно, вам потребуется снизить уровень безопасности вашей учетной записи. Однако снижение безопасности НЕ рекомендуется. Google отправит электронное письмо со ссылкой для снижения уровня безопасности.

Вы можете переключиться с текущего почтового клиента на использование www.gmail.com для доступа к своей учетной записи (рекомендуется) или изменить свои настройки на https://www.google.com/settings/security/lesssecu…, чтобы больше не было вашей учетной записи. защищен современными стандартами безопасности.

Я не рекомендую снижать стандарты безопасности.

Если вы получили ошибку авторизации:

Наиболее вероятная причина этого заключается в том, что вы указали неправильное имя пользователя или пароль для своей учетной записи Gmail в файле /etc/ssmtp/ssmtp.conf. Дважды проверьте значения полей AuthUser и AuthPass.

Если вы потеряете соединение во время обработки:

Скорее всего, вы указали неправильный порт для smtp Google где-то в /etc/ssmtp/ssmtp.conf или в / etc / ssmtp / revaliases.

Проверьте последние строки ваших журналов. Там должны быть соответствующие сообщения об ошибках:

$ tail /var/log/mail.log

$ tail / var / log / системный журнал

Дверь гаража не открывается

Если все работает и просто останавливается, попробуйте перезапустить. Если это не сработает, вытащите шнур питания от Raspberry Pi, а затем восстановите питание. Raspberry Pi должен перезагрузиться менее чем за 2 минуты, и все должно работать нормально. Обычно это вызвано отключением питания жилого шлюза.

GPIO

Если что-то пойдет не так, лучший способ узнать, что происходит, - воспользоваться следующей командой:

$ gpio readall

Войдите в raspberry pi с MacBook

терминал - это утилита MacBook: диск / приложения / утилиты / терминал. Я держу терминальное приложение в доке.

На MacBook откройте терминал

$ ssh pi @ ♣ малина-пи-ip ♣

♣ пароль ♣

Войти в жилой шлюз

На MacBook откройте браузер

URL = ♣ raspberry-pi-ip ♣

Логин: ♣ шлюз-пароль ♣

Журналы

Если что-то пойдет не так, проверьте эти журналы на наличие ошибок, предупреждений или других проблем.

$ cat / var / log / сообщения

$ cat / var / log / системный журнал $ cat / var / log / dmesg

Каталог MAC

Каталог на MacBook, где хранятся файлы веб-сайтов

Каталог MAC = / Пользователи / ♣ мой macbook ♣ / Рабочий стол / дом с поддержкой Wi-Fi / устройство для открывания ворот гаража с поддержкой Wi-Fi / веб-сайт

Пароль

Пароль = ♣ raspberry-pi-password ♣

ОЗУ и ЦП используются

$ топ

CTRL-c для выхода

Домашний каталог Raspberry Pi

$ pwd

/ home / pi

Имя хоста Raspberry Pi

$ hostname

hostname = ♣ hostname ♣

Raspberry Pi IP

♣ малина-пи-ip ♣ = 192.168.1.93

Каталог веб-сайтов Raspberry Pi

/ var / www

Секо-ларм перестает работать

01 МАЯ 2016 г. перестал работать секоларм. Это уже третий раз, когда перестал работать датчик. Чтобы сказать это правильно, физический контакт 15 на Raspberry Pi перестал обнаруживать вход 3,3 В. Я попробовал физические контакты 1 и 17 3,3 В, и оба по-прежнему выдавали 3,3 В. Я переключился с физического контакта 15 на другой GPIO, физический контакт 16 (GPIO 4), и он снова начал работать. Итак, в Seco-larm нет ничего плохого. Проблема, похоже, связана с Raspberry Pi GPIO.

GPIO 3, физический контакт 15 не работает. Это очень хороший пост о том, как тестировать контакты GPIO.

Я переключился с GPIO 3 на GPIO 4 и соответственно изменил код. Я не уверен, почему контакт GPIO перестал работать. Вот две возможные причины:

  • У меня установлен датчик Seco-larm, поэтому, когда дверь закрыта, он выдает 3,3 В. Ворота гаража закрываются чаще, чем открываются. Возможно, вывод GPIO не может принимать более или менее постоянный вход 3,3 В.
  • Неисправность совпала с потерей мощности, возможно, произошел скачок мощности.

Жилой шлюз U-verse

У меня есть AT&T U-verse с резидентным шлюзом, но любая служба должна работать.

Если шлюз U-verse перезапускается или теряет питание, может потребоваться перезагрузка Raspberry Pi.

Домашний шлюз U-verse Public IP = ♣ router's-public-ip ♣

Публичный IP-адрес домашнего шлюза U-verse может измениться, но это происходит очень редко.

Домашняя страница U-verse Residential Gateway = 192.168.1.254

SSID точки беспроводного доступа маршрутизатора U-verse = ♣ ssid ♣

Пропускная способность Wi-Fi ниже ожидаемой

Измените роутер на менее используемый канал. По умолчанию все провайдеры каналов настраивают каждый Wi-Fi на канал 1. Переключитесь на менее используемый канал, например 11. Попробуйте использовать нечетное число.

Примечание. Я рассказал паре соседей, что я сделал для улучшения Wi-Fi, и теперь все работают на 9 или 11, поэтому я вернулся к 1. Вы всегда должны использовать нечетный канал.

Откройте браузер.

Для U-стиха введите 192.168.1.254 в поле URL.

Щелкните ссылку «Беспроводная связь» и выберите канал 6 или 11.

Есть приложение для смартфона - анализатор Wi-Fi. На одном из дисплеев отображаются все ближайшие точки доступа Wi-Fi, вещающие на определенном канале. В моем районе все настроены на канал 1.

Отключите Raspberry Pi, а затем восстановите питание.

Рекомендуемые: