Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04
Всем привет!
В этом руководстве я объясню вам, как сделать систему умной комнаты. Эта система состоит из двух устройств.
Обычное устройство с датчиком влажности и датчиком температуры, которое измеряет текущее качество жизни в вашей комнате. Вы сможете установить желаемую минимальную и максимальную температуру / влажность. Когда эти значения отклоняются, вы будете получать уведомления на домашней странице.
В дополнение к датчикам есть также интеллектуальные радиочасы, интегрированные с динамиком, которыми вы можете управлять через веб-сайт. Вы можете создавать, удалять и включать / отключать будильники. Отключение сигналов тревоги происходит простым движением руки над ультразвуковым датчиком.
В качестве второго и отдельного устройства вы сможете управлять светодиодной лентой с предварительно запрограммированными рисунками и цветами.
Запасы
- Raspberry Pi 3 модель B +
- SD-карта на 16 ГБ
- Ардуино Уно
- Собранный Pi T-Cobbler Plus
- Малая макетная плата
- Блок питания макетной платы (например, блок питания YwRobot)
- Датчик температуры с одним проводом (DS18B20 +)
- Цифровой датчик влажности и влажности (DHT22)
- Ультразвуковой датчик расстояния (HC-SR05)
- ЖК-экран 16x2
- потенциометр
- Усилитель (усилитель Adafruit MAX98357A I2S 3 Вт класса D)
- Динамик диаметром 3 дюйма - 4 Ом 3 Вт
- Модуль Bluetooth (HC-05)
- Светодиодная лента 5 В RGB (WS1812B)
- 1x резистор 4,7 кОм
- 1x резистор 10 кОм
- 3x резистора 1 кОм
- 1x 330 Ом резистор
- Проволочные перемычки
Шаг 1. Подключение
Начнем, ладно.
Сначала подключите все как на схеме выше. Убедитесь, что вы все подключили правильно, иначе что-то не сработает.
ПРИМЕЧАНИЕ. Если вы хотите внести изменения, вам придется отредактировать код. Так что делайте это, только если вы знаете, что делаете! Вы всегда можете связаться со мной по вопросам или проблемам.
Если вам нужны схемы фритзинга, вы можете скачать их здесь.
Шаг 2: База данных
База данных сохранит все измерения датчиков в таблице истории. Это используется для построения графиков истории на веб-сайте.
Если вы хотите работать на веб-сайте, вам потребуется учетная запись. В каждой учетной записи хранятся будильники, световые устройства, уведомления и настройки.
ПРИМЕЧАНИЕ. Механизм входа в систему не включен, но я могу добавить его позже.
Шаг 3: Настройка Raspberry Pi
Итак, если все подключено, мы можем начать настройку Raspberry Pi.
Во-первых, начнем с изображения.
Изображение
1: Загрузите образ ОС Raspberry Pi:
2: Загрузите и установите Win32DiskImager:
3: Вставьте SD-карту и запустите Win32DiskImager.
4: Выберите загруженный образ на вашем диске. Затем выберите свою SD-карту и нажмите кнопку записи. (Перед началом этого процесса убедитесь, что SD-карта пуста, все данные будут удалены!)
5: Если процесс завершен, мы можем внести последние изменения в Raspberry Pi. Перейдите в каталог SD-карты и добавьте файл «ssh» без расширения, чтобы убедиться, что pi включит SSH при запуске.
6: Затем откройте cmdline.txt в том же каталоге, добавьте «ip = 169.254.10.1» в конец строки и нажмите «Сохранить». ПРИМЕЧАНИЕ: Сохраните все в одной строке, иначе некоторые настройки не будут работать.
7: Теперь безопасно извлеките SD-карту из вашего компьютера и вставьте SD-карту в Raspberry Pi.
8: Когда это будет сделано, вы можете подключить pi с помощью кабеля Ethernet к порту LAN вашего ноутбука или компьютера.
9: Включите Raspberry Pi.
Конфигурация Wi-Fi и Pi
Чтобы управлять Raspberry Pi через SSH, нам понадобится программное обеспечение под названием Putty. Вы можете скачать и установить Putty здесь:
1: После установки Putty вы можете подключиться к pi с IP: 169.254.10.1 и портом: 22. Когда появится интерфейс командной строки, вы можете войти в систему с пользователем: pi и паролем: raspberry.
2: Теперь мы вошли в систему типа «sudo raspi-config» и переходим к параметрам взаимодействия. Убедитесь, что One-Wire, Serial (включите только последовательный аппаратный порт, а не оболочку входа в систему через последовательный порт), I2C и SPI включены.
3: Для подключения к Wi-Fi нам нужно использовать пользователя root. Введите «sudo -i», чтобы войти в систему как пользователь root.
4. Чтобы добавить свою сеть Wi-Fi к Raspberry Pi, введите
"wpa_passphrase" SSID "" ваш пароль ">> /etc/wpa_supplicant/wpa_supplicant.conf"
в терминале с именем и паролем вашей сети.
5: Как только это будет сделано, перезагрузите ваш пи.
6: Если все в порядке, вы должны увидеть IP на вашем интерфейсе wlan0. Сделайте "ip a", чтобы проверить это.
7: В качестве последнего введите «sudo apt-get update» и «sudo apt-get upgrade» для обновления вашего pi.
8. Обязательно установите MySQL, apache2 и php-mysql для этого проекта. Введите: sudo apt install apache2 mariadb-server php-mysql -y
9: Для установки MySQL прочтите эту статью:
10: Измените пользователя и пароль MySQL в файле config.py в серверной части.
Настройка Bluetooth
1. Включите Arduino
2: Введите hcitool scan, чтобы найти MAC-адрес вашего модуля Bluetooth. Как только найдете, запишите его или скопируйте в другой документ.
3: Теперь мы собираемся добавить модуль Bluetooth к Raspberry Pi. Выполните следующие команды:
sudo bluetoothctl
агент на
парный mac-адрес (если запрашивается пин, стандартный пин - 1234)
доверять mac-адресу
4: Добавьте свой MAC-адрес в файл app.py на бэкэнде.
Настройка динамика
Теперь ваш пи обновлен, и у нас есть подключение к Интернету. Мы можем начать настройку динамиков.1: Выполните следующую команду: "curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash"
2: Когда это будет сделано, вам будет предложено перезагрузить компьютер, нажмите y и введите.
3. Теперь снова запустите скрипт, это убедится, что звук работает правильно. Если все в порядке, вы услышите, как женщина говорит.
4. Когда это будет сделано, перезагрузитесь второй раз.
Конфигурация Python
Код проекта работает на python, поэтому убедитесь, что у вас установлен python 3.7. Проверьте это с помощью "python3 -V". Если у вас есть python, вы можете установить следующие пакеты с помощью установщика pip: pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocket запросы python-socketio
Установка SmartBox
Теперь все основные настройки настроены, и мы можем начать официальную настройку SmartBox.
1. Клонируйте репозиторий SmartBox в свой домашний каталог (/ home / pi), набрав: git clone
2: Как только это будет сделано, вы можете запустить файл sql. Введите «sudo mysql -u root -p << SmartBox.sql», чтобы создать базу данных.
3: Затем скопируйте интерфейс в / var / www / html, выполнив "cp -R frontend /. / Var / www / html"
4: Для автоматического запуска добавьте служебный файл в systemd. Введите: «cp service / SmartBox.service /etc/systemd/system/SmartBox.service» и выполните команду «sudo systemctl enable myscript.service», чтобы включить его.
5: Как только это будет сделано, перейдите в config.py в бэкэнде и измените его на свой пароль mysql.
6: перезагрузите пи
Шаг 4: Настройка Arduino Uno
Теперь, когда основное устройство готово, мы начнем с светодиодной ленты. Arduino будет управлять светодиодной лентой WS1812B на 5 В для нас.
1: Загрузите и установите IDE Arduino:
2: Загрузите код Arduino в моем репозитории на github:
3: Если все загружено и установлено, вы можете подключить Arduino Uno.
4: Откройте файл LedStripCode.ino и загрузите его на свой Arduino, щелкнув стрелку, указывающую вправо.
5: Подключите модуль Bluetooth и светодиодную ленту к Arduino, и все должно работать. (См. Шаг 1 Подключение)
Шаг 5: Дизайн корпуса
Для дизайна корпуса я использовал уже имеющуюся пластиковую коробку и официальный корпус Raspberry Pi. На виде спереди я проделал разные отверстия для динамика и одно для ЖК-экрана.
На тыльной стороне сделал отверстие для проводки датчика температуры и влажности. Также внутри есть отверстие для проводки макетного блока питания.
На виде сверху есть два отверстия для ультразвукового датчика, поэтому движение можно обнаружить при срабатывании сигнализации.
Я установил Raspberry Pi в корпус с правой стороны коробки, чтобы мне было проще обновить или заменить его.
Как только это будет сделано, вы можете интегрировать свой T-cobbler и датчики. Я использовал винты и силикон, чтобы убедиться, что все надежно.
ПРИМЕЧАНИЕ. Если вы используете металлические винты для крепления Raspberry Pi, обязательно используйте изоленту.
Шаг 6: Завершающий штрих
Теперь все готово, можете ли вы удалить часть IP в cmdline.txt.
Используйте: sudo nano /boot/cmdline.txt
Рекомендуемые:
Fanair: метеостанция для вашей комнаты: 6 шагов (с изображениями)
Fanair: метеостанция для вашей комнаты: есть бесчисленное множество способов узнать текущую погоду, но тогда вы знаете только погоду на улице. Что, если вы хотите узнать погоду в своем доме, в конкретной комнате? Вот что я пытаюсь решить с помощью этого проекта. Fanair использует муль
ForgetMeNot - Платформа уведомлений для умного дома: 14 шагов (с изображениями)
ForgetMeNot - платформа уведомлений для умного дома: как занятые студенты колледжа, бегающие между уроками, работой и семейными обязанностями, мы склонны забывать о мелочах. День рождения приходит и проходит незаметно для нас, важный дедлайн пропускается из-за явной забывчивости, а иногда просто
Полное дополнение для умного дома: 8 шагов
Дополнение для полного умного дома: мой предыдущий проект "Полный умный дом" успешно работает почти 5 лет без каких-либо проблем. Теперь, когда я решил добавить отзыв к тому же самому без каких-либо изменений существующей схемы и схемы. Так что это дополнение к профи
Концентратор для умного дома ESP32: 11 шагов
ESP32 Smart Home Hub: создание системы, которая может обрабатывать большие объемы данных датчиков, иметь несколько выходов и подключаться к Интернету или локальной сети, требует много времени и больших усилий. Слишком часто люди, желающие создать свою собственную сеть умного дома
Проект умного дома EF230: 7 шагов
Проект умного дома EF230: необходимые детали и материалы: 1 макетная плата Arduino MKR 10003 2 мини-фотоэлементы 1 транзисторы NPN 1 мини-переключатель питания 1 светодиод - RGB (4 контакта) 1 светодиод (цвет на ваш выбор) 1 диод 1N41481 Резисторы 10 кОм5 резистор 100 Ом 1 датчик температуры TMP361 DAGU 48: 1