Оглавление:

Дешевая и эффективная домашняя автоматизация с Raspberry Pi: 11 шагов (с изображениями)
Дешевая и эффективная домашняя автоматизация с Raspberry Pi: 11 шагов (с изображениями)

Видео: Дешевая и эффективная домашняя автоматизация с Raspberry Pi: 11 шагов (с изображениями)

Видео: Дешевая и эффективная домашняя автоматизация с Raspberry Pi: 11 шагов (с изображениями)
Видео: Умный дом своими руками. С чего начать? Xiaomi Aqara, Sonoff, Raspberry Pi, Home Assistant, Nest 2024, Ноябрь
Anonim
Дешевая и эффективная домашняя автоматизация с Raspberry Pi
Дешевая и эффективная домашняя автоматизация с Raspberry Pi
Дешевая и эффективная домашняя автоматизация с Raspberry Pi
Дешевая и эффективная домашняя автоматизация с Raspberry Pi
Дешевая и эффективная домашняя автоматизация с Raspberry Pi
Дешевая и эффективная домашняя автоматизация с Raspberry Pi

Я всегда хотел иметь возможность управлять освещением по беспроводной сети, но коммерческие варианты обычно дороги. Светильники Philips Hue стоят около 70 долларов, и светильники с подключением к Wi-Fi тоже дороги. Это руководство расскажет вам, как управлять до пяти огней / ламп / ниток рождественских огней примерно за 50 долларов, и его можно расширить, чтобы включить больше огней.

Шаг 1. Что вам понадобится

Что тебе понадобится
Что тебе понадобится

Материалы:

Raspberry Pi Zero W (беспроводная версия)

Карта Micro SD (минимум 4 ГБ)

Кабель / конвертер Mini HDMI в HDMI (есть разница между mini и micro, убедитесь, что выбрали правильный!)

Кабель / конвертер Micro USB в USB

USB-клавиатура

Примечание: у меня есть стартовый комплект Raspberry Pi Zero W от Amazon, который поставляется с Raspberry Pi Zero W, SD-картой, футляром, кабелем питания, конвертером HDMI и конвертером USB. Всего за 30 долларов это неплохой вариант (ссылка)

Вы можете использовать другую модель Raspberry Pi, но у Raspberry Pi должна быть какая-то форма подключения к Интернету, а Pi Zero W - самый дешевый вариант.

Удаленные розетки - я использовал эти

Радиочастотный передатчик и приемник (Примечание: частота передатчика / приемника должна совпадать с частотой удаленных розеток) - я использовал эти

Провод для антенны (я использовал сплошной медный провод 22 калибра, другой провод может подойти)

Макетная плата, перемычки, 40-контактный разъем типа папа-вилка

Программное обеспечение:

ОС Raspberry Pi (Загрузить рабочий стол Raspbian)

Изображение диска Etcher (для записи ОС Pi на SD-карту)

Инструменты:

Паяльник

Компьютер для загрузки Pi OS и Etcher

Шаг 2: Настройте розетки

Настроить розетки
Настроить розетки
Настроить розетки
Настроить розетки

Начните с подключения розеток к розетке. Следуйте прилагаемым инструкциям, чтобы установить их, и подключите свет / приборы. Убедитесь, что ваш пульт правильно спарен и управляет розетками.

Шаг 3. Создайте учетную запись PubNub

PubNub - это бесплатный интернет-сервер, который позволяет вам общаться между устройствами в любой точке мира. Сценарий python получает сообщения с веб-страницы и использует информацию в сообщении для включения или выключения света. Вы можете зарегистрировать свою бесплатную учетную запись здесь. После регистрации войдите в свою учетную запись. Вы попадете на страницу управления приложением. Щелкните «Создать новое приложение». Дайте вашему приложению имя, затем выберите его из списка приложений (если это ваше первое приложение, оно будет единственным). Это приведет вас на страницу ключей приложения. Щелкните «Demo Keyset», и вы должны увидеть три разных ключа. Держите эту страницу вверх, эти ключи понадобятся вам позже. Теперь, когда у вас есть учетная запись PubNub, вы можете настроить raspberry pi.

Шаг 4: подготовьте Raspberry Pi

Загрузите Etcher и ОС Raspberry Pi на свой компьютер (ссылки в списке деталей)

Установите Etcher на свой компьютер и разархивируйте (при необходимости) ОС Raspberry Pi. Вставьте карту Micro SD в компьютер и откройте Etcher. Нажмите «Выбрать изображение» и перейдите к разархивированному файлу ОС Raspberry Pi. Выберите его, затем нажмите «Выбрать диск» и выберите свою карту micro SD из списка. Нажмите «Flash» и дождитесь завершения Etcher. После завершения работы Etcher извлеките SD-карту из компьютера (Etcher автоматически извлекает ее) и вставьте ее в Raspberry Pi. На этом этапе вам нужно будет подключить Raspberry Pi к монитору с преобразователем HDMI. Подключите клавиатуру (и мышь, если у вас есть концентратор с несколькими USB) и подключите кабель питания. Есть два порта micro USB. Один предназначен для питания, другой - это фактический порт USB. Ближайший к концу Pi - это питание, а ближе к середине - USB. Теперь ваш raspberry pi начнет загружаться. Он может перезапуститься несколько раз во время первой загрузки, но это нормально. После запуска raspberry pi подключите его к Wi-Fi. После подключения к Wi-Fi вы можете использовать SSH-сервер, но я считаю, что сейчас проще использовать графический интерфейс. Откройте окно терминала и введите следующие команды:

sudo pip3 install 'pubnub == 3.9.0'

cd git clone git: //git.drogon.net/wiringPi git clone

sudo git clone https://github.com/timleland/rfoutlet.git / var / www / rfoutlet

sudo chown root.root / var / www / rfoutlet / codesend sudo chmod 4755 / var / www / rfoutlet / codesend

cd wiringPi

./строить

Теперь откройте файловый браузер Raspberry Pi, и вы должны увидеть папку pi-home-automation. Дважды щелкните по нему, и вы должны увидеть файл с именем RFControl.py. Скопируйте его (щелкните напротив него и выберите «Копировать»), затем вернитесь в папку pi и вставьте его туда.

Выключите raspberry pi (из меню или запустив sudo poweroff из командной строки) и отключите его, как только зеленый свет перестанет мигать.

Шаг 5: Создание схемы

Создание схемы
Создание схемы
Создание схемы
Создание схемы
Создание схемы
Создание схемы

Пришло время создать схему. Я использовал макетную плату, но вы можете делать это как хотите.

Во-первых, мы должны создать антенну для радиопередатчика. В этом обучающем руководстве рассказывается, как сделать антенну для радиопередатчика. Следуйте инструкциям, затем припаяйте его к контакту антенны передатчика (на том, который я использовал, он был помечен как ANT) более короткой стороной, ближайшей к передатчику.

Подключите передатчик

Передатчик использует эти контакты:

ДАННЫЕ: GPIO 17, физический контакт 11

VCC: Raspberry Pi 5 В, физический контакт 2

GND: Raspberry Pi GND, физический контакт 6

Подключите приемник

Приемник использует эти контакты:

GND: Raspberry Pi GND, физический контакт 9

VCC: Raspberry Pi 5 В, физический контакт 4

ДАННЫЕ: GPIO 27, физический контакт 13 (на приемнике, который я использовал, есть два контакта данных, и я использовал тот, который ближе всего к VCC)

Шаг 6: Получите коды RF

Получите коды RF
Получите коды RF

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

sudo / var / www / rfoutlet / RFSniffer

Затем откройте программу RFControl. Размещение окна терминала и окна программы рядом может быть полезно на следующем шаге.

Теперь вам понадобится пульт, который был включен в комплект розетки. Держите его близко к приемнику и нажимайте каждую отдельную кнопку. Когда вы нажимаете кнопку, вы видите два числа, напечатанных на экране. Один из них будет шестизначным или семизначным кодом, а другой - трехзначным. Вам нужно будет отредактировать словарь кодов в программе. Введите 7-значный код в соответствующее место переключателя в программе и для каждой кнопки включения / выключения вставьте 3-значный код (это длина) в соответствующий переключатель в программе.

Например, если переключатель 1 имеет код 1234567, код выключения 7654321 и длину 890, код будет выглядеть следующим образом:

коды = {

'switch1': {'on': 1234567, # Это выключатель 1 on 'off': 7654321, # это выключатель 1 off 'len': 890, # это длина кода переключателя 1}, 'switch2': {… },…}

Повторите это для каждой кнопки. Пока вы редактируете этот файл, измените строки, которые говорят «YOUR-SUB-KEY», на свой ключ подписки PubNub, и «YOUR-PUB-KEY» на свой ключ публикации.

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

Шаг 7: Запуск программы

Запуск программы
Запуск программы

Теперь, когда у вас есть все коды, перейдите на эту страницу GitHub (на вашем компьютере, а не на Raspberry Pi) и нажмите зеленую кнопку с надписью «Клонировать или загрузить», затем нажмите «Загрузить ZIP». После загрузки этого файла разархивируйте его и откройте папку. Откройте файл с именем main.js. Вам нужно будет ввести свои ключи подписки и публикации в программе, заменив «YOUR-PUB-KEY» на свой ключ публикации и «YOUR-SUB-KEY» на свой ключ подписки.

Затем вернитесь к своему Raspberry Pi и введите

python3 RFControl.py

После того, как он напечатает «Готово», вернитесь к своему компьютеру и откройте файл index.html в веб-браузере, щелкнув напротив него, выберите «Открыть с помощью» и выберите предпочтительный браузер. Вы должны увидеть 2 столбца по 5 кнопок с названиями переключателей между ними. Нажмите любую из кнопок. Если он правильно управляет розеткой, отлично! Если нет, попробуйте следующее:

  1. Убедитесь, что Raspberry Pi получает сообщения. Он должен печатать на экране всякий раз, когда получает сообщение с веб-страницы. Если нет, убедитесь, что ваши ключи подписки / публикации верны.
  2. Если Raspberry Pi получает сообщения, убедитесь, что ваши коды RF верны. Убедитесь, что ваши розетки сопряжены с вашим пультом дистанционного управления, ваш пульт может управлять ими, и что коды, которые вы ввели в программу, верны.
  3. Если коды RF верны, убедитесь, что ваш Raspberry Pi находится в пределах досягаемости розеток. Если они начнут работать после того, как пододвинули ее ближе, возможно, вам придется переделать антенну.
  4. Если они по-прежнему не работают, сообщите мне о своей проблеме в комментариях, и я постараюсь помочь с этим.

Шаг 8: Запуск при запуске

Чтобы ваша программа python запускалась при запуске, введите это в свой терминал raspberry pi:

crontab -e

Затем перейдите в конец файла и введите следующее:

@reboot python3 /home/pi/RFControl.py &

Это заставит ваш скрипт Python запускаться каждый раз при запуске. Теперь перезагрузите Raspberry Pi.

Шаг 9: добавление дополнительных переключателей

Добавление дополнительных переключателей
Добавление дополнительных переключателей

Если вы хотите добавить больше розеток, следуйте этим инструкциям:

Откройте RFControl.py на своем Raspberry Pi и добавьте новый переключатель в словарь переключателей.

Пример:

переключатели = {

… Другие переключатели… 'NAME-OF-SWITCH': {'on': xxxxxxx, 'off': yyyyyyy, 'len': zzz,},}

Затем добавьте новую кнопку в свое веб-приложение, отредактировав переменную переключателей в main.js на своем компьютере.

Пример:

var Switches = [… Старые переключатели… ['NAME-TO-DISPLAY', 'NAME-OF-SWITCH'],];

Замените NAME-TO-DISPLAY на имя, которое вы хотите, чтобы оно отображалось на веб-странице, а NAME-OF-SWITCH в обоих файлах на любое другое. Но он должен отличаться от других!

Шаг 10: Двигайтесь дальше

Продолжая
Продолжая

PubNub поддерживается на многих различных платформах, а это значит, что вы можете отправлять сообщения практически с любого устройства! Я использовал голосовой комплект Raspberry Pi AIY и PubNub для отправки команд своим голосом, но это может быть темой более поздних инструкций. Спасибо, что прочитали мою инструкцию, надеюсь, она была вам полезна!

Шаг 11: кредиты

Спасибо Тиму Лиланду за руководство по настройке радиопередатчика: руководство

Спасибо diy_bloke за руководство по созданию антенны: руководство

Спасибо также всем, кто разместил в Интернете учебные пособия, которые я просматривал за помощь!

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