Оглавление:

Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания): 6 шагов
Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания): 6 шагов

Видео: Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания): 6 шагов

Видео: Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания): 6 шагов
Видео: Подключаю ZigBee-устройства с помощью zigbee2mqtt 2024, Июль
Anonim
Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания)
Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания)
Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания)
Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания)
Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания)
Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания)
Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания)
Сетевые розетки с дистанционным управлением Raspberry Pi RF (вилки питания)

Управляйте дешевыми сетевыми розетками 433 МГц (настенными розетками) с помощью Raspberry Pi. Pi может узнать коды управления, выводимые с пульта дистанционного управления розетками, и использовать их под программным управлением для активации любых или всех удаленных розеток по всему дому.

Дизайн не полагается на внешнее подключение к Интернету (то есть) «Интернет вещей» и, следовательно, (ИМХО) намного более безопасен, чем веб-контроллеры. Тем не менее, я попытался интегрироваться с Google Home, но быстро потерял желание жить, когда команды иногда выполнялись за несколько десятков секунд или никогда не выполнялись вообще.

Очевидное применение во время Рождества - это управление огнями елки и (если вы так склонны) уличными огнями. Хотя это простое использование, построив эту инструкцию, вы получите сверхгибкий контроллер сокетов, который может реагировать на входные сигналы датчиков и на другие устройства в вашей домашней сети, такие как Raspberry Pis под управлением Linux Motion.

Например, у меня есть набор кухонных светильников, которые включаются, когда камера, работающая в режиме «Движение», обнаруживает движение на кухне, а затем выключает их после пяти минут бездействия. Это действительно хорошо работает!

С помощью Tasker и AutoTools SSH из магазина Google Play вы можете настроить всевозможные причудливые пульты дистанционного управления для телефона.

В проекте используются дешевые платы приемника и передатчика 433 МГц, широко доступные на eBay. Они совместимы (по крайней мере, в Великобритании) с розетками удаленной сети 433 МГц, которые продаются с пультами дистанционного управления. Мой проект включает в себя приемник, поэтому новые наборы команд дистанционного управления могут быть включены легко и быстро. Одно замечание - удаленные розетки, доступные в Великобритании, по-видимому, бывают двух видов - те, идентификатор которых программируется переключателем на розетке, и те, которые зависят от программирования с пульта дистанционного управления. Этот проект совместим с обоими, но первые не теряют своей идентичности при отключении электроэнергии и поэтому предпочтительнее.

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

Хотя это не является строго необходимым для этого проекта, я также добавил охлаждающий вентилятор и плату контроллера. Без вентилятора Pi может довольно сильно нагреваться (около 60 ° C). Подробности могут быть предоставлены в более поздних инструкциях.

Надо сказать, что я не программист. Программное обеспечение (в основном) написано на Python, а все остальное скопировано у людей, которые знают, что делают. Я ознакомился с источниками, где могу - если я что-то пропустил, дайте мне знать, и я исправлю текст.

Instructable предполагает некоторую способность к пайке и знакомство с Python, Bash и общение с вашим Pi через SSH (хотя я постараюсь сделать инструкции как можно более полными). Он также написан на британском английском, поэтому, если вы читаете на другой стороне пруда, не обращайте внимания на лишние буквы в словах и странные названия вещей (например, «розетки», которые вы будете знать как что-то вроде розетки).

Также приветствуются любые комментарии, предложения по улучшению и использованию и т. Д.!

Шаг 1. Подготовка кейса

Подготовка кейса
Подготовка кейса
Подготовка кейса
Подготовка кейса
Подготовка кейса
Подготовка кейса

Для этого проекта я использовал старый роутер TP-Link TD-W8960N. Это хороший размер, и как только я придумал, как в него попасть, над ним довольно легко работать.

Я также сохранил для роутера блок питания 12 В @ 1 А, который немного недопит, но на практике подходит для этого приложения.

Чтобы открыть корпус, нужно вывернуть два винта в нижней части корпуса, а затем использовать инструмент для отрывания по краю корпуса, чтобы облегчить открытие зажимов. Два винта находятся под резиновыми ножками в задней части корпуса (см. Красные стрелки). Сложнее всего открыть зажимы спереди, но я не сомневался, и они погнулись в моем инструменте для подглядывания.

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

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

Если вы чувствуете себя смелым (как и я), вы можете удалить кнопочный выключатель, гнездо постоянного тока и гнезда RJ45 с печатной платы. Лучший способ, который я нашел для этого, - это зажать доску в тисках и нагреть ее от теплового пистолета при помощи подходящего тонкого инструмента для открывания корпуса или отвертки. Логика заключается в том, что все паяные соединения расплавляются одновременно, что снижает общую тепловую нагрузку на пластиковый корпус компонента по сравнению с использованием паяльника на каждом переходе. По крайней мере, это теория. На практике тут не обойтись без удачи! Вопрос о том, сколько тепла применять, - это вопрос суждения, но будьте осторожны и ошибитесь, если будет слишком мало. Если все пойдет хорошо, вы получите пригодные для использования компоненты, показанные на фотографии (однако вы обратите внимание на оплавленную ручку переключателя и слегка деформированную планку разъемов RJ45!).

В противном случае вы можете купить ваши биты в Интернете.

Шаг 2: Список деталей

Raspberry Pi - я подозреваю, что подойдет любой вкус, но я использовал 3B +

Плата передатчика 433 МГц - поищите на eBay «РЧ-передатчик 433 МГц с комплектом приемника для Arduino Arm Mcu Wireless» или аналогичный

Плата приемника 433 МГц - то же самое. Обычно 1,98 фунта стерлингов за пару

LM2596 Buck-регулятор - eBay, обычно £ 1,95. Чтобы преобразовать мощность 12 В в 5 В для Pi

Световод - найдите на eBay «Волоконно-оптический кабель - диаметр 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 / 3 мм - световод» - я использовал 2-миллиметровую трубу, но с 1,5 мм было бы легче работать (я заплатил £ 2,95 на 1 м)

2-полюсный миниатюрный тумблер (приятно иметь, но необязательно)

Разъем USB типа A с возможностью пайки 180 ° - через eBay я заплатил 1,90 фунта стерлингов за десять

Двухполюсный нажимной переключатель (неплохо, но необязательно) - я получил свой от платы модема / маршрутизатора

Разъем (ы) RJ45 - восстановлены с платы модема / маршрутизатора

Разъем питания постоянного тока - через eBay (10X гнездо для подключения источника питания постоянного тока, гнездовой разъем для монтажа на панели 5,5 x 2,1 мм £ 0,99)

Антенны 430 МГц - преобразуйте антенны модема / маршрутизатора на 2 ГГц

12 В постоянного тока Блок питания 12 Вт (минимум) - в идеале он будет поставляться с модемом / роутером. В противном случае убедитесь, что указанная выше розетка постоянного тока соответствует той, которую вы используете. Требование 12 В определяется передатчиком 433 МГц

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

Шаг 3: расходные материалы и инструменты

Вам понадобятся следующие расходные материалы:

Припой (по мере необходимости)

Клей-расплав (по мере необходимости)

Соединительный провод - (например) 22 и 24AWG (по мере необходимости)

Термоусадочная муфта (при необходимости)

Жертвенный кот. 5 соединительный кабель Ethernet

Жертвенный патч-кабель USB 2.

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

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

Кусачки (предпочтительно кусачки заподлицо)

Призовой инструмент

Подходящая отвертка для разборки корпуса.

Паяльник

Клей-пистолет

Фен (для сгибания световых трубок и для любых импровизированных перерывов в парикмахерской)

FM-приемник связи 433 МГц (опционально - для устранения неполадок передатчика) - (например) AR1000

Шаг 4: Сборка

сборка
сборка
сборка
сборка
сборка
сборка
сборка
сборка

Как вы собираете Pi и вспомогательные платы, зависит от используемого вами корпуса. На фотографиях видно, что я сделал.

Pi расположен примерно в середине корпуса, что дает достаточно места для использования различных разъемов (обратите внимание, что HDMI не используется, поскольку Pi общается через SSH (то есть) «без головы».

Я прикрепил Pi к основанию с помощью пары использованных пластиковых креплений (см. Фото). Поскольку коробка не предназначена для портативного использования, вы можете обойтись только двумя застежками. Вы можете легко использовать 2,5-миллиметровые винты со стойками или даже термоклей (который я использовал в прошлом - только не используйте слишком много и избегайте любых компонентов для поверхностного монтажа на нижней стороне, так как вы неизбежно получите чтобы убрать доску в какой-то момент (первый закон конструкции - вам придется ее разобрать)).

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

Как только все будет на месте, вы можете все подключить.

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

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

Вы заметите световые трубки, используемые для направления света от двух светодиодов на Pi и от светодиода состояния источника питания на переднюю часть корпуса. Я использовал тепло от фена, чтобы согнуть трубы (вы определенно НЕ хотите использовать тепловую пушку!). Это метод проб и ошибок, но в конце концов он того стоит, поскольку вы можете напрямую видеть, что сигнализируют светодиоды, а не полагаться на программное обеспечение и внешние светодиоды. Конечно, это ваш выбор. Для резки труб используются острые кусачки (лучше всего подходят кусачки заподлицо), но вы также можете использовать острые ножницы. Опять же, термоклей можно использовать для фиксации труб на месте, но будьте осторожны, используйте только небольшое количество, которое быстро остывает, так как клей может деформировать трубы.

В идеале следует доработать антенны. Обычно они рассчитаны на работу на частоте 2 ГГц, а при использовании на частоте 433 МГц будут очень неэффективными антеннами.

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

Вырежьте, где показано, чтобы удалить оригинальную антенну 2 ГГц и обнажить коаксиал. Осторожно достаньте внутреннюю жилу, снимите оплетку и припаяйте ее к новому куску проволоки, как показано. Длина нового провода составляет примерно 1/4 длины волны 433 МГц (т.е.) длина = 0,25 * 3E8 / 433E6 = 17 см. Нижняя часть может быть свернута с помощью небольшого сверла или подобного приспособления, чтобы вся длина могла поместиться в крышке антенны.

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

Я модифицировал только антенну передатчика, так как «глухой» приемник, вероятно, полезен при изучении кодов дистанционного управления RF (см. Ниже).

Подключение к сети Ethernet осуществляется с помощью жертвенного кабеля Cat. 5 межблочный кабель к разъему RJ45 спас от модема. Обрежьте кабель в соответствии с расстоянием между разъемом Ethernet Pi и разъемом на корпусе RJ45 и оголите все восемь проводов. Используйте тестер непрерывности, чтобы убедиться, что вы подключили контакт 1 кабеля к контакту 1 разъема и т. Д. Простой способ сделать это - вставить разъем в разъем, к которому вы проводите проводку, и прозвонить между контактами разъема и оголенными концами кабеля. Поскольку используется только один из четырех внешних разъемов RJ45, пометьте проводное гнездо соответствующим образом, чтобы в дальнейшем избежать неприятных ошибок.

Точно так же USB-разъем подключается с помощью расходуемого патч-кабеля USB 2, соединяющего контакт 1 с контактом 1 и т. Д. Внешний USB-разъем приклеивается к корпусу горячим способом с помощью отверстия в корпусе, оставленного розеткой для телефонной линии.

Шаг 5: Примечания к передатчику

Примечания к передатчику
Примечания к передатчику
Примечания к передатчику
Примечания к передатчику
Примечания к передатчику
Примечания к передатчику

Платы передачи и приема 433 МГц, которые я использовал, повсеместно можно найти в Интернете, и, поскольку они настолько дешевы, я заказал по две пары каждой (для экспериментальных взлетов). Я обнаружил, что приемники надежны, но передатчик, который я использовал, нужно модифицировать, чтобы он работал надежно.

Схема передатчика FS1000A, который я купил *, приведена на схеме. Методом проб и ошибок я обнаружил, что конденсатор 3 пФ необходимо установить в положение C1 SoT (выберите при тестировании), чтобы заставить устройство работать. Поскольку у меня есть широкополосный приемник, который покрывает 430 МГц, это было относительно легко устранить. Интересный вопрос, как можно тестировать без приемника.

* Примечание: я купил вторую партию передатчиков после того, как не смог заставить работать первые два. У всех них отсутствовала коллекторная катушка. Хм!

У меня в ящике для мусора был конденсатор 3 пФ, но я думаю, что для большинства людей этого не будет, и в любом случае необходимое значение может быть больше, скажем, 7 пФ. Грубую замену можно произвести с помощью двух кусков скрученного провода (у моего знакомого кабеля витая пара есть емкость около 100 пФ на фут, чтобы дать вам представление о длине), но это не рекомендуется, поскольку могут возникнуть другие проблемы. Надеюсь, вам повезет и у вас не будет такой проблемы. Вы всегда можете купить более дорогой (а значит, и, возможно, более качественный передатчик).

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

Также обратите внимание, что металлическое сквозное отверстие рядом со словом «ANT» на передатчике НЕ является соединением антенны - оно находится в углу без маркировки (см. Фото). Это была первая ошибка, которую я сделал….

Контактное соединение, услужливо помеченное «ATAD», конечно же, должно читать «DATA».

Шаг 6: Обзор программного обеспечения

Обзор программного обеспечения
Обзор программного обеспечения

Имейте в виду, что я не программист. Как уже говорилось ранее, умный материал - это чужой код, но я знаю достаточно, чтобы уловить его и адаптировать, чтобы он работал вместе. Это также первая инструкция, которую я опубликовал с кодом, так что извиняюсь, если я сделал это неправильно! Если у вас есть вопросы, имейте это в виду …

Я использовал следующее базовое программное обеспечение:

  • Распбиан Стретч Лайт
  • PiGPIO (фантастическая библиотека для управления сервоприводами и т. Д.)
  • Код _433.py (для кодирования и декодирования управляющих кодов RF) - ссылка на веб-сайт PiGPIO.
  • Python3 (поставляется с Raspbian)

Дополнительное программное обеспечение, которое я использую:

  • pyephem (вычисляет время рассвета и заката - полезно для переключения света)
  • Отличный Tasker и AutoTools SSH для создания пульта дистанционного управления на моем телефоне Android - см. Фото (оба доступны в магазине Google Play). [Как создать «сцену» Tasker выходит за рамки данного руководства, так как это довольно крутая кривая обучения, но я рад обсудить, что я сделал]

Мой собственный код (на Python). Грубый, но функциональный:

  • tx.py - программное обеспечение с аргументами меню и / или командной строки, которое отправляет соответствующий код на передатчик 433 МГц.
  • dawn-dusk - вычисляет время рассвета и заката в моем местоположении и обновляет пользовательский crontab (используется для огней рождественской елки и т. д.)

Доступ к приведенному выше личному коду можно получить через GitHub:

Функциональность проекта обеспечивается кодом PiGPIO и _433.py. Последний имеет функцию приема, которая прослушивает команды дистанционного управления от вашего радиочастотного пульта дистанционного управления 433 МГц и декодирует синхронизирующие импульсы, создавая выходной сигнал, который может быть сохранен для последующего использования функцией передачи. Это позволяет системе обучаться любому «нормальному» радиочастотному пульту дистанционного управления 433 МГц. В принципе, его также можно использовать для изучения радиочастотных пультов дистанционного управления вашего соседа. Я бы категорически не советовал этого делать, поскольку соседи редко замечают забавную сторону беспорядочного звонка в дверь. Я бы не стал.

Настраивать

Поскольку Pi в этом приложении работает «без головы» (т. Е.) Без монитора или клавиатуры, вам нужно поговорить с ним через ssh. Доступно множество руководств, в которых рассказывается, как настроить Pi без головы, но для простоты я предполагаю, что вы сначала запустите Pi с монитором и клавиатурой. После загрузки запустите терминал и введите sudo raspi-config. Выберите '5. Параметры взаимодействия », а затем« P2 SSH ». Включите ssh-сервер и закройте raspi-config (что, вероятно, закончится перезагрузкой).

Последующие коммуникации с Pi могут быть выполнены с удаленного терминала через ssh. Обратите внимание, что код не требует фиксированного IP-адреса LAN для Pi, но он, безусловно, помогает (и, безусловно, необходимо, если вы углубитесь в управление Tasker). Опять же, в сети есть множество руководств, в которых рассказывается, как это сделать. Мой домашний маршрутизатор позволяет мне назначать фиксированный IP-адрес MAC-адресу Pi, поэтому я делаю это таким образом, а не редактируя настройки Pi.

Установка PiGPIO:

ssh в Pi и введите следующие команды:

sudo apt update

sudo apt установить pigpio python-pigpio python3-pigpio

sudo apt install git

git clone

sudo apt установить python3-RPi. GPIO

Чтобы запустить PiGPIO при загрузке:

crontab -e

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

@reboot / usr / local / bin / pigpiod

Получите код Python для передачи и декодирования удаленных радиочастотных кодов 433 МГц:

wget

распаковать _433_py.zip

Переместите распакованный _433.py в подходящий каталог (например) ~ / software / apps.

Ввод (в этом каталоге)

_433.py

переводит Pi в режим 433 rx, ожидая демодулированных радиочастотных кодов дистанционного управления на контакте 38 GPIO.

При подключенном приемнике 433 МГц, когда поблизости используется пульт дистанционного управления 433 МГц, на экране будут отображаться что-то вроде следующих данных:

код = 5330005 бит = 24 (пробел = 12780 t0 = 422 t1 = 1236)

Эти данные используются в вашей программе Python для восстановления передачи с пульта дистанционного управления.

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

_433.py> ~ / software / apps / remotedata.txt

После того, как у вас есть данные, следующим шагом будет их использование для редактирования кода tx.py, который вы можете скопировать из моего репозитория GitHub. Этот код использует данные для генерации сигналов, распознаваемых удаленным (ыми) сокетом (ами), для передачи передатчиком 433 МГц. Надеюсь, необходимые правки будут достаточно очевидны, а остальное зависит от вас …

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