
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

Еще со школы мне дали задание сделать проект. Я выбрал умный будильник, потому что я всегда сплю по будильнику и тогда скучаю по школе. Вы можете отключить будильник, только если есть свет, звук и движение, поэтому вы не можете заснуть или отложить его, не открывая глаза. Существует также веб-сайт, на котором вы можете просматривать свой режим сна, устанавливать будильники и создавать новые будильники.
Запасы
Для постройки проекта нужны материалы. вы можете найти список ниже. Вы также можете найти все обратно в ведомости материалов, включая цену.
- Малина пи 3
- Коммутационная панель t-cobbler
- ИК-датчик
- Световой датчик
- Датчик обнаружения звука
- Зуммер
- ЖК дисплей
- Кнопка
Шаг 1. Аппаратное обеспечение

Перед тем, как я начал собирать все, я сделал 2 схемы (1 электрическая и 1 на макете) на фритзинге и проверил их, чтобы убедиться, что в нем нет неисправностей. Убедившись, что все в порядке, я приступил к проекту. В первую очередь я начал с зуммера и кнопки, потому что это были самые простые компоненты. После этого я подключил свой дисплей к Raspberry Pi. В конце я подключил свои датчики. датчик освещенности и датчик движения просты, потому что вам больше ничего не нужно, но датчику PIR нужно что-то дополнительное. Чтобы избежать короткого замыкания PIR, необходимо использовать мост напряжения. Это означает, что вам нужно использовать дополнительный резистор на 1 кОм и 2 кОм, чтобы убедиться, что все идет хорошо. Точное использование контактов и то, как все подключить к пи, вы можете найти в схемах.
Шаг 2: База данных

Для хранения всех данных мне нужна была база данных.
Моя база данных состоит из 6 таблиц.
- Датчик
- History_sensors
- Человек
- Alarm_person
- Sleep_patern
- Тревога
в базе 2 части. 1 для датчиков и 1 для человека и всей его статистики.
Таблица датчиков содержит идентификатор и имя. Эта таблица связана с History_sensors, у которых есть ID, значение, Sensor_id и имя. sensor_id необходим, чтобы знать, какой датчик получил значение, а дата необходима, чтобы знать, когда датчик его измерил.
Таблица person содержит идентификатор, имя и пароль. Пароль и имя необходимы для входа в систему, чтобы никто другой не мог поставить за вас сигнал тревоги. Эта таблица связана с таблицей sleep_pattern и таблицей Alarm_person. Таблица Sleep_patern содержит ID, Hours_sleep, Date, Person_id, Bedtime и Wake_up_time. Итак, вот данные, которые хранятся для графического изображения вашего сна.
Таблица Alarm_person содержит Person_id, Alarm_id и время. Эта таблица необходима, потому что разные люди могут использовать будильник одновременно, а один человек может использовать несколько будильников. Последняя таблица - это таблица аварийных сигналов. Он содержит идентификатор и описание.
Шаг 3. Серверная часть


В back-end пришлось писать разные функции.
- спросите датчики стола
- запросить таблицу history_sensors
- спроси режим сна
- поставить новую сигнализацию
- попросить настольную сигнализацию
- зарегистрировать пользователя
- авторизоваться
- занести значения датчиков в таблицу history_sensors
Я использовал pycharm и написал код на python.
для всех функций я использую @ app.route, а затем адрес. каждый раз вам нужно использовать другой адрес, иначе это не сработает. После этого я пишу функцию if с методом в качестве значения, поэтому, когда это правда, он выполняет код. в значении if есть попытка catch и оператор sql для получения или удаления данных.
Для функций с датчиками все иначе. Здесь я не использовал @ app.route, а просто сделал функцию для датчика. здесь вы объявляете свои контакты и выполняете функцию обратного вызова. Таким образом, каждый раз, когда датчик что-то обнаруживает, функция выполняется. В функции обратного вызова я использовал if, который работает, когда датчик что-то обнаруживает. В if стоит код для помещения данных в таблицу с помощью оператора sql. В нем также есть сон, потому что в противном случае он поместил бы слишком много значений в таблицу только для одного обнаружения.
В моем гитхабе вы можете найти полный код проекта.
Шаг 4: Веб-сайт



Для своего сайта я работал с html и css, мой сайт содержит 11 страниц html.
Страниц столько, потому что на сайте все работает. вы можете установить будильник, добавить будильник и удалить его. На странице настроек вы можете изменить свой пароль и электронную почту. У вас есть страница с вашим режимом сна. Вы также можете добавить момент, когда вы заснули и когда проснулись. Положительным моментом является то, что каждая страница имеет одинаковый вид и в основном использует одни и те же вещи, поэтому CSS часто одинаков на всех страницах.
Шаг 5: интерфейс
Интерфейс написан на javascript.
Шаг 6: Дело


В моем случае я решил использовать дерево. Стричь не так уж и сложно, выглядит красиво. Мой футляр 26см на 14см при высоте 7,5см. Он такой большой, потому что все необходимое помещается внутрь. Я проделал отверстия для датчиков, кнопки и ЖК-дисплея, чтобы время было видно, а датчики могли обнаруживать движение или свет. Для их изготовления я использовал лазерный резак. Внутри корпуса находится мой макет и Raspberry Pi.
Рекомендуемые:
Умный будильник с использованием Magicbit (Arduino): 10 шагов

Умный будильник с использованием Magicbit (Arduino): в этом руководстве показано, как сделать умный будильник с помощью OLED-дисплея на плате Magicbit dev без использования какого-либо модуля RTC
WakeupNow - умный будильник: 8 шагов

WakeupNow - Умный будильник: Как всем известно, жизнь студентов очень тяжелая, у них длинный день с лекциями, много домашних заданий и в целом у них сумасшедшая жизнь. У них нет времени ни на что, и если вы предложите им добавить несколько часов в день, они будут рады. Unfo
Wake Me Up - умный будильник: 6 шагов

Умный будильник «Разбуди меня»: «Разбуди меня» - это умный будильник, который также можно использовать как умный свет. Встроенная светодиодная полоса имитирует естественный свет, проникающий в вашу комнату. Это позволяет спокойно и естественно начать свой день. Будильник также оборудован сегм
Умный будильник: умный будильник на Raspberry Pi: 10 шагов (с изображениями)

Умный будильник: умный будильник на Raspberry Pi: вы когда-нибудь хотели умные часы? Если да, то это решение для вас! Я сделал Smart Alarm Clock, это часы, в которых вы можете менять время будильника в соответствии с веб-сайтом. При срабатывании будильника раздастся звуковой сигнал (зуммер) и загорятся 2 лампочки
GOOB - умный будильник: 15 шагов (с картинками)

GOOB - умный будильник: GOOB - это аббревиатура от «Get Out Of Bed», подходящее название для моего проекта. Я хотел создать устройство, которое поможет разбудить меня по утрам, потому что это не самая простая задача. Основная идея в том, что будильник не останавливает сигнал