Оглавление:
- Шаг 1: Настройка сервера и зависимостей на Raspberry Pi
- Шаг 2. Установите веб-платформу и конфигурацию для NGiNX
- Шаг 3. Настройка скриптов Python, которые будут взаимодействовать с GPIO
- Шаг 4. Завершение работы на стороне PHP
- Шаг 5: Создание схемы
- Шаг 6: Заключительное тестирование
- Шаг 7: Бонусная часть: Старомодный триггер с хлопушкой
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В этом проекте я продемонстрирую, как создать полностью беспроводную систему управления освещением с дополнительным бонусом в конце. Следуйте за полным руководством.
Требования:
- Raspberry Pi (подойдет любой вкус, но я использовал модель 3B +)
- Два транзистора 2n2222 (я рекомендую приобрести как минимум пять, так как есть большая вероятность, что вы закоротите несколько по ошибке)
- Кабели-перемычки между мужчинами и мужчинами и женщинами
- Макетная плата
- (необязательно, но рекомендуется) Источник питания макетной платы 5 В
- По два резистора 1 кОм и 10 кОм
- Модуль Dual-Relay
- Две старые домашние лампы или другие осветительные приборы (используйте светодиодные лампы, так как лампы накаливания имеют тенденцию сгорать во время тестирования)
- Скотч и резак для сращивания кабеля.
Шаг 1: Настройка сервера и зависимостей на Raspberry Pi
Для своего проекта я использовал NGiNX, хотя вы можете использовать любой сервер, какой захотите (Apache2 и т. Д.). Ванильная установка с менеджером пакетов - это нормально, нет необходимости компилировать собственный исходный код или что-то в этом роде. Также нам понадобятся PHP, Python3 и Composer.
- SSH в свой PI и введите $ sudo nano /etc/dhcpcd.conf
- Настроить статические параметры IP.
- Перезагрузите свой PI
- Проверьте, все ли работает, набрав {the_ip_you_chose} в адресной строке браузера (вы должны увидеть страницу приветствия nginx)
Шаг 2. Установите веб-платформу и конфигурацию для NGiNX
Мы хотим иметь веб-сайт, к которому мы можем получить доступ из нашего мобильного или настольного браузера, и, чтобы избавиться от написания простого кода php / html, который не входит в объем данного руководства, мы вместо этого будем использовать PHP-фреймворк под названием Yii2 для обработки основных фрезерование и укладка для нас.
- Перейдите на страницу установки Yii2 и используйте композитор, чтобы установить его в / var / www / html / light-switch.
- Мы пока ничего не увидим, так как мы еще не добавили наш конфигурационный файл для сервера.
- Я прикрепил файл (по умолчанию) к этому шагу
- Используйте его как есть с этим фреймворком или найдите другой в Интернете, если вы предпочитаете другой бэкэнд.
- Вы должны поместить этот файл в / etc / nginx / sites-available /
- Перезагрузите NGiNX с помощью $ sudo systemctl reload nginx
- Если что-то не работает, вы можете запустить $ sudo nginx -t для отладки файлов конфигурации.
Шаг 3. Настройка скриптов Python, которые будут взаимодействовать с GPIO
Поскольку PHP не любит так хорошо работать со сценариями времени выполнения, такими как GPIO API, а python не очень дружелюбен с веб-приложениями, мы будем использовать каждое из них в их выгодных контекстах. В приложении к этому шагу вы найдете 4 необходимых скрипта Python, которые взаимодействуют с контактами и запускают свет. Разместите скрипты в любом месте, но обратите внимание на их расположение, так как оно нам понадобится на следующем шаге, когда мы настроим php-часть.
Шаг 4. Завершение работы на стороне PHP
Все, что нам нужно сделать, это удалить некоторые пути и страницы по умолчанию из основного макета и добавить несколько строк кода в SiteController, а также новый метод с именем actionLightswitch (). После этого он выполнит сценарии python из предыдущего шага, которые, в свою очередь, будут управлять контактами GPIO.
Шаг 5: Создание схемы
Из-за характера этого конкретного релейного модуля (он переключается при подключении к GND) нам необходимо построить схему с использованием транзисторов. PI откроет только транзистор, который позволит току течь от контактов данных реле к GND, тем самым запустив катушку и замкнув цепь для ламп. Следуйте схемам на прилагаемых изображениях, и все будет хорошо.
В следующей части вы должны быть очень осторожны, так как пора подключить реле. Сначала отключите все от сети! Реле имеет 3 порта на каждое соединение. Мы подключим кабели нашей бытовой техники к среднему и тому, на котором есть значок «открыто». Осторожно соедините кабель, чтобы обнажить медные проводники, и вставьте их в вышеупомянутые порты реле. Порядок не имеет значения, мы сейчас работаем с альтернативным током.
Шаг 6: Заключительное тестирование
Проверьте свою схему и назначенные контакты не менее двух раз, затем подключите PI к источнику питания и введите {the_chosen_ip} в адресной строке браузера. На первой странице будут два переключателя. Нажмите на них и посмотрите, как включается / выключается свет.
Шаг 7: Бонусная часть: Старомодный триггер с хлопушкой
Требования:
- любой usb-микрофон (не обязательно качественный)
- Пакет ALSA (способ установки будет отличаться в зависимости от вашего дистрибутива)
- Модуль PyAudio
Скопируйте прикрепленный скрипт Python и подключите микрофон. Перезагрузите PI. Выполните сценарий и следуйте подсказкам консоли. Подойдите ближе к микрофону и дважды хлопните в ладоши. Вы должны увидеть, что хлопки регистрируются на выходе консоли, и в случае успеха оба индикатора загорятся через 2 секунды.