Оглавление:
- Запасы
- Шаг 1. Настройка Raspberry Pi
- Шаг 2: Подключение электроники
- Шаг 3: Дизайн базы данных
- Шаг 4: Настройка Arduino
- Шаг 5: бэкэнд Raspberry Pi
- Шаг 6: Дело
Видео: Wake Me Up - умный будильник: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Разбуди меня - это умный будильник, который также можно использовать как умный свет.
Встроенная светодиодная лента имитирует естественный свет, проникающий в вашу комнату. Это позволяет спокойно и естественно начать свой день.
Будильник также оснащен 4 * 7-сегментным дисплеем для чтения времени, динамиками для пробуждения под любимую музыку, сенсорной кнопкой, индикатором для регулировки яркости светодиодной ленты и датчиком температуры, который вы можете использовать для просмотра температура вашей комнаты.
Запасы
Список точных цен, которые я заплатил, можно найти здесь:
Микроконтроллеры и компьютеры:
Raspberry Pi 4 Я использовал raspberry pi 4 4 ГБ, однако любая модель raspberry pi 3+ подойдет
Ардуино Уно
Arduino используется для управления отображением часов 4 * 7 сегментов.
Датчики:
- TMP36: датчик температуры
- LDR: резистор, зависимый от света
Приводы:
- WS2801: Светодиодная лента с индивидуальным адресом
- ЖК-дисплей: ЖК-дисплей 16 * 2.
- 4 * 7-сегментный дисплей часов
ИС:
- 74HC595: Регистр сдвига для ЖК-дисплея.
- MCP3008: 8-битный аналого-цифровой преобразователь
- Конвертер логического уровня: используется для связи между raspi и arduino
Другие вещи:
- Усилитель adafruit MAX9744 для питания динамиков
- Любая колонка, я использовал широкополосную колонку Visaton 4Ohm 8Watt (арт. № 2240).
- Блок питания на 9 вольт для питания усилителя.
- Источник питания 5 В для питания светодиодной ленты и других компонентов. Помните, что каждый светодиод в светодиодной полосе может потреблять 60 мА, поэтому убедитесь, что вашего источника питания достаточно.
- Несколько резисторов 220 Ом
- Небольшой макет для вашего чемодана.
Инструменты:
- Паяльник.
- Что-нибудь для изготовления корпуса (я использовал 3D-принтер с PLA и PETG и несколько виниловых наклеек, чтобы получить эффект дерева).
Шаг 1. Настройка Raspberry Pi
Raspberry Pi - наш основной микроконтроллер.
Raspberry Pi запускает наш локальный веб-сервер, базу данных, управляет светодиодной лентой, динамиками и т. Д.
Часть 1: Установка Raspbian
Используйте это руководство для установки raspbian:
Убедитесь, что SSH включен
Часть 2: Подключение
Чтобы подключиться к Интернету, вам необходимо получить доступ к терминалу Raspberry Pi. Рекомендую использовать шпатлевку. В терминале типа:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
YourNetwork - это имя вашей сети Wi-Fi, а YourSSID - пароль сети.
После того, как вы добавили сеть, попробуйте перезагрузить Raspberry Pi.
Введите команду ping 8.8.8.8, это отправит пакет на серверы Google, если вы получите ответ, что ваша сеть настроена и работает!
Часть 3: Установите необходимые программы
Нам понадобится установить несколько дополнительных программ, чтобы запустить этот проект.
Прежде чем мы начнем, запустите эти 2 команды, чтобы убедиться, что все обновлено.
sudo apt update
sudo apt upgrade
Это может занять некоторое время.
Apache
sudo apt install apache2 -y
sudo apt установить php libapache2-mod-php -y
MariaDB
sudo apt установить mariadb-server mariadb-client -y
sudo apt установить php-mysql -y
PHPMyAdmin
sudo apt install phpmyadmin -y
Пип Python
Нам нужно установить pip, чтобы включить некоторые библиотеки Python
pip3 установить mysql-connector-python
pip3 установить flask-socketio
pip3 установить flask-cors
pip3 установить gevent
pip3 установить gevent-websocket
Шаг 2: Подключение электроники
Я добавил 2 схемы, 1 - это макетная схема для тестирования. Я рекомендую построить первую схему и попытаться заставить код работать.
Я добавил файлы фритзинга ниже.
Шаг 3: Дизайн базы данных
Это схема базы данных, которую я сделал. Слова на голландском языке, но я подробно объясню каждую таблицу.
Таблица 1: tblMuziek
Это довольно простая таблица. Он сохраняет имя исполнителя, название песни и имя файла песни.
Таблица 2: tblLedstrip
Эта таблица отслеживает текущее состояние светодиодной ленты, она сохраняет состояние светодиодной ленты. Нам это нужно для функции умной подсветки.
Таблица 3: tblSensoren
Эта таблица отслеживает датчики в нашей тревоге. Мы сохраняем название сенсора и канал MCP3008.
Таблица 4: tblMeting
В этой таблице хранятся значения наших датчиков вместе с их временем.
Таблица 5: tblWekker
В этой таблице хранятся пароль и имя вашего будильника (например, в спальне). Эта таблица не является обязательной, но я добавил ее, потому что предполагаю, что в вашем доме будет более одного будильника.
Таблица 6: tblAlarm
Это, наверное, самая важная таблица. Он отслеживает установленные вами будильники и то, что должны делать часы (какую песню проигрывать, какую последовательность светодиодов, в какие дни он должен срабатывать,…). Очень важно отслеживать 2 свидания. 1 дата используется для запоминания, в какой час должен сработать будильник. Другой отслеживает, когда в последний раз срабатывал будильник. Чтобы узнать, в какой день недели он должен сработать, я использовал varchar, содержащий 7 цифр. Первая цифра - понедельник, вторая - вторник… Если это 1, то она должна сработать, если 0, то не должна. Пример: 1111100 это означает, что этот будильник должен срабатывать в понедельник, вторник, среду, четверг и пятницу.
Шаг 4: Настройка Arduino
Этот шаг очень простой. На следующем шаге будет ссылка на мой github, где вы сможете скачать файл arduino.
Что делает программа?
Программа ожидает поступления последовательных данных от пи.
Как только данные получены, он анализирует строку и отправляет подтверждение на пи.
Строка будет примерно такой: «1201», это означает, что сейчас 12:01. Я использовал обычный анодный 7-сегментный дисплей, это означает, что цифры должны быть высокими, а A, B, C, D, E, F, G и DP должны быть низкими, чтобы их включить. Если вы используете обычный катод, просто измените HIGH на LOW и LOW на HIGH.
Вот ссылка с дополнительной информацией о том, как работают 7-сегментные дисплеи. (с использованием библиотеки):
www.instructables.com/id/Using-a-4-digit-7…
Вот ссылка на 7 сегментов, отображаемых без использования библиотеки:
create.arduino.cc/projecthub/SAnwandter1/p…
Шаг 5: бэкэнд Raspberry Pi
Вы можете скачать мой код с помощью Github. (https://github.com/VanHevelNico/WakeMeUp)
Как установить программу:
Бэкэнд написан на python с использованием flask. Вы можете создать службу, которая запускает эту программу (app.py) автоматически.
Вы должны поместить код внешнего интерфейса в html-файл сервера Apache, который мы скачали ранее. (/ var / html)
Как работает программа?
Когда будильник включен, перейдите по IP-адресу ваших часов (он будет отображаться на ЖК-дисплее)
Как только вы перейдете на этот IP-адрес в своем браузере, ваш компьютер отправит запрос socket.io на бэкэнд, сообщив, что клиент подключился. Когда бэкэнд получит это, запустится несколько потоков, которые я объясню ниже.
Настраивать
Это инициализирует все необходимые объекты.
GetTemp
Это считывает канал 0 mcp3008 и преобразует двоичные данные в фактическую температуру и помещает их в базу данных с текущей датой и часом.
GetTempGrafiek
Он получает последние 20 значений датчика температуры и передает их во внешний интерфейс.
tijd_sturen
Этот метод получает текущее время и проверяет, изменилась ли минута. Если он был изменен, программа отправляет новое время на Arduino, используя последовательную связь.
check
Это самый важный метод. Он получает все включенные аварийные сигналы и проверяет, должны ли какие-либо из этих аварийных сигналов исчезнуть с настоящего момента до 5 минут назад (это буфер, чтобы убедиться, что каждый аварийный сигнал срабатывает, когда это необходимо). Если будильник должен сработать, мы включим музыку, светодиодную полосу,… Мы постоянно считываем показания чувствительного к силе резистора, и когда значение упадет ниже 1000 (считайте, что нажата кнопка fsr), мы выключаем будильник и обновляем сигнал тревоги в база данных. Мы устанавливаем дату последнего срабатывания будильника на текущую дату.
statusLight
Этот метод выдает значение светодиодной полосы и включает ее при необходимости.
LichtAanpassen
Это дополнительный способ убедиться, что светодиодная лента и сигнальная лампа не конфликтуют.
Шаг 6: Дело
Ссылку на мои файлы можно найти здесь:
Я распечатал корпус на 3D-принтере. Он напечатан в 4 разных частях:
- Лицевая панель с отверстиями для динамика и некоторые стенки для 7-сегментного дисплея
- Наружное кольцо для светодиодной ленты из прозрачного ПЭТГ.
- Средняя часть
- Задняя панель с отверстием для жк-дисплея и отверстием для кабелей.
В исходной модели не было отверстия для 7-сегментного дисплея, однако это необходимо, потому что в противном случае свет 7-сегментного дисплея не будет светить сквозь него.
Как видите, после того, как я поместил все компоненты внутрь, я использовал виниловые наклейки, имитирующие дерево, чтобы конечный результат выглядел лучше. Дисплей часов просвечивает через наклейку, что создает очень красивый эффект.
Рекомендуемые:
БУДИЛЬНИК DIY: 9 шагов
БУДИЛЬНИК СДЕЛАЙ САМ: Вас когда-нибудь ограбили во сне и чувствовали ли вы, проснулись ли вы или кто-то разбудил вас, вы могли бы предотвратить ограбление, что-то подобное случилось со мной, и это вдохновило меня на создание этого самодельного будильника. Это не на 100% хорошо, но лучше
Будильник Twin Bell из банок с газировкой: 7 шагов (с изображениями)
Будильник с двумя звонками из банок с содовой: в этом руководстве показано, как сделать будильник с двумя звонками из банок с газировкой. В проекте используются банки из-под газировки, из которых были удалены чернила (Ссылка: Удаление чернил из банок из-под газировки). Чтобы сделать этот будильник полностью функциональным, был интегрирован модуль DIY Quartz Clock
Пузырьковый будильник делает пробуждение веселым (ish): 7 шагов (с картинками)
Пузырьковый будильник делает пробуждение забавным (иш): просыпаться под жужжащий будильник - отстой. Я один из тех, кто не любит просыпаться до того, как вышло солнце (или не было дома много часов). Итак, что может быть лучше, чем просыпаться весело, чем вечеринка с пузырями в постели! Используя Arduino и
Будильник "День сурка": 12 шагов (с картинками)
Будильник «День сурка»: Будильник «День сурка» состоит из перекидных часов Panasonic RC-6025, модифицированных для воспроизведения звука из фильма «День сурка», когда срабатывает будильник. и пленка) прошел спец
Будильник Oled: 8 шагов (с картинками)
Будильник Oled: существует много часов Arduino / ESP32, но используют ли они эти красивые и четкие OLED-дисплеи? Я уже некоторое время экспериментировал с Arduino и ESP32, но так и не дожил до готового продукта. Я сделал будильник с 4 1,3-дюймовым мон