Съдържание:
- Консумативи
- Стъпка 1: Настройка на Raspberry Pi
- Стъпка 2: Свързване на електрониката
- Стъпка 3: Дизайн на база данни
- Стъпка 4: Настройка на Arduino
- Стъпка 5: Raspberry Pi Backend
- Стъпка 6: Дело
Видео: Събуди ме - интелигентен будилник: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Събуди ме е интелигентен будилник, който може да се използва и като интелигентна лампа.
Вградената LED лента симулира естествената светлина, идваща в стаята ви. Това дава възможност за спокоен, естествен начин да започнете деня си.
Будилникът също е оборудван с 4*7 сегментен дисплей за отчитане на времето, високоговорители за събуждане с любимата ви музика, сензорен бутон, ldr за адаптиране на яркостта на лентата и температурен сензор, който можете да използвате, за да видите температурата на вашата стая.
Консумативи
Списък на точните цени, които платих, можете да намерите тук:
Микроконтролери и компютри:
Raspberry Pi 4I използва малиновото pi 4 4GB, но всеки малинов pi модел 3+ трябва да е наред
Arduino Uno
Arduino се използва за управление на 4*7 сегментния часовник.
Сензори:
- TMP36: температурен сензор
- LDR: Резистор, зависим от светлината
Задвижващи механизми:
- WS2801: Лентови ленти с индивидуален адрес
- LCD дисплей: 16*2 LCD дисплей.
- 4*7 сегментен часовник
ИС:
- 74HC595: Регистър Shift за LCD дисплея
- MCP3008: 8-битов аналогово-цифров преобразувател
- Конвертор на логическо ниво: Използва се за комуникация между raspi и arduino
Други неща:
- Адапрутен усилвател MAX9744 за захранване на високоговорителите
- Всеки високоговорител, използвах високоговорител Visaton 4Ohm 8Watt с пълен обхват (Арт. № 2240)
- 9 -волтово захранване за захранване на усилвателя
- 5 -волтово захранване за захранване на светодиодната лента и други компоненти. Имайте предвид, че всеки светодиод в лентата може да удави 60 mA, така че се уверете, че захранването ви е достатъчно.
- Няколко 220Ohm резистора
- Малка дъска за поставяне във вашия калъф.
Инструменти:
- Поялник.
- Нещо, което да направи кутията (използвах 3D принтер с PLA и PETG и някои винилови стикери, за да постигна дървения ефект.)
Стъпка 1: Настройка на Raspberry Pi
Малина pi е нашият основен микроконтролер.
Raspberry pi управлява нашия локален уеб сървър, база данни, контролира лентата, високоговорителите, …
Част 1: Инсталиране на Raspbian
Използвайте този урок, за да инсталирате raspbian:
Уверете се, че SSH е активиран
Част 2: Свързване
За да се свържете с интернет, трябва да получите достъп до терминала на вашето малиново пи. Препоръчвам да използвате шпакловка. В типа терминал:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
„YourNetwork“е името на вашата wifi мрежа, а „YourSSID“е паролата на мрежата.
След като добавите мрежата, опитайте да рестартирате Raspberry Pi.
Въведете командата "ping 8.8.8.8", която ще изпрати пакет до сървърите на Google, ако получите отговор, че мрежата ви е настроена и работи!
Част 3: Инсталирайте необходимите програми
Ще имаме нужда от инсталиране на някои допълнителни програми, за да стартираме този проект.
Преди да започнем, изпълнете тези 2 команди, за да се уверите, че всичко е надстроено.
sudo apt актуализация
sudo apt ъпгрейд
Това може да отнеме известно време.
Apache
sudo apt инсталирате apache2 -y
sudo apt инсталирате php libapache2-mod-php -y
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt инсталирате php -mysql -y
PHPMyAdmin
sudo apt install phpmyadmin -y
Python pip
Трябва да инсталираме pip, за да активираме някои библиотеки на python
pip3 инсталирайте mysql-конектор-python
pip3 инсталирайте flask-socketio
pip3 инсталирайте колба-кор
pip3 инсталирайте gevent
pip3 инсталирайте gevent-websocket
Стъпка 2: Свързване на електрониката
Добавих 2 схеми, 1 е макет за целите на тестването. Препоръчвам да изградите първата схема и да се опитате да накарате кода да работи.
Добавих фризиращите файлове по -долу.
Стъпка 3: Дизайн на база данни
Това е схемата на базата данни, която направих. Думите са на холандски, но ще обясня всяка таблица подробно.
Таблица 1: tblMuziek
Това е доста основна маса. Той запазва името на изпълнителя, името на песента и името на файла на песен.
Таблица 2: tblLedstrip
Тази таблица следи текущото състояние на лентата, запазва състоянието на лентата. Нуждаем се от това за функцията smartlight.
Таблица 3: tblSensoren
Тази таблица следи сензорите в нашата аларма. Съхраняваме името на сензора и канала на MCP3008
Таблица 4: tblMeting
Тази таблица съхранява стойностите на нашите сензори заедно с времето им.
Таблица 5: tblWekker
Тази таблица съхранява паролата и името на вашия будилник (напр. Спалня) Тази таблица не е задължителна, но я добавих, защото предполагам, че ще имате повече от 1 будилник в къщата си.
Таблица 6: tblAlarm
Това е може би най -важната таблица. Той следи алармата, която сте настроили, и какво трябва да прави часовникът (коя песен да се пусне, коя водеща последователност, в кои дни трябва да изгасне …). Много е важно да следите 2 дати. 1 дата се използва за съхраняване в колко часа трябва да се включи алармата. Другият следи последния път, когато алармата се е включила. За да знам кой делничен ден трябва да излезе, използвах varchar, който съдържа номер от 7 цифри. Първата цифра е понеделник, вторият вторник, … Ако е 1, трябва да изгасне, ако е 0, не трябва. Пример: 1111100 това означава, че тази аларма трябва да се включи в понеделник, вторник, сряда, четвъртък и петък.
Стъпка 4: Настройка на Arduino
Тази стъпка е много лесна. На следващата стъпка ще има връзка към моя github, където можете да изтеглите файла arduino.
Какво прави програмата?
Програмата изчаква серийните данни да дойдат от pi.
Веднага щом данните бъдат получени, той анализира низа и изпраща обратно потвърждение на pi.
Низът ще бъде нещо подобно: '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 Backend
Можете да изтеглите моя код с помощта на Github. (https://github.com/VanHevelNico/WakeMeUp)
Как да инсталирате програмата:
Бекендът е написан на python с помощта на flask. Можете да направите услуга, която автоматично стартира тази програма (app.py).
Трябва да поставите интерфейсния код в html файла на сървъра apache, който сме изтеглили по -рано. (/var/html)
Как работи програмата?
Когато будилникът е включен, отидете на ip адреса на вашия часовник (той ще се покаже на lcd)
Веднага щом отидете на този ip адрес във вашия браузър, компютърът ви ще изпрати socket.io заявка към бекенда, казвайки, че клиентът е свързан. Когато бекендът получи това, ще започнат няколко теми, които ще обясня по -долу.
Настройвам
Това инициализира всички необходими обекти.
GetTemp
Това отчита канала mcp3008 0 и преобразува двоичните данни в действителната температура и ги поставя в базата данни с текущата дата и час.
GetTempGrafiek
Това получава последните 20 стойности на температурния сензор и го излъчва към фронтенда.
tijd_sturen
Този метод получава текущото време и проверява дали минутата се е променила. Ако се е променило, програмата изпраща новото време на arduino, използвайки серийна комуникация
checkAlarmen
Това е най -важният метод. Той получава всички аларми, които са включени, и проверява дали някоя от тези аларми трябва да премине между сега и преди 5 минути (това е буфер, за да се увери, че всяка аларма се включва, когато трябва). Ако алармата трябва да се включи, ще стартираме музиката, светодиодната лента, … Четем непрекъснато чувствителния към силата резистор и когато стойността падне под 1000 (прочетете fsr е натиснат) Включваме алармата и актуализираме алармата в база данни. Зададохме датата, на която алармата е задействана за последен път, към текущата дата.
statusLight
Този метод излъчва стойността на лентата и включва, ако е необходимо.
lichtAanpassen
Това е допълнителен метод, за да сте сигурни, че светодиодната лента и алармената светлина не противоречат.
Стъпка 6: Дело
Връзката към моите файлове може да се намери тук:
Използвах 3D принтер за отпечатване на корпуса. Той е отпечатан в 4 различни части:
- Предната плоча с отвори за високоговорителя и някои стени за 7 -сегментния дисплей
- Външният пръстен за светодиодната лента в прозрачен PETG.
- Средната част
- Задната плоча с отвор за LCD и отвор за кабелите.
В оригиналния модел нямаше дупка за 7 -сегментния дисплей, но това е необходимо, защото в противен случай светлината на 7 -сегментния дисплей няма да свети.
Както можете да видите, след като поставих всички компоненти, използвах винилови стикери с дървен вид, за да изглежда крайният резултат по -добър. Дисплеят на часовника блести през стикера, което създава много приятен ефект.
Препоръчано:
Будилник с две звънчета от консерви за сода: 7 стъпки (със снимки)
Будилник с двойна камбана от консерви за сода: Тази инструкция ви показва как да направите аларма с две камбани от сода. За да стане този будилник напълно функционален, беше интегриран модул за кварцов часовник „направи си сам“
Буден будилник: 3 стъпки
Шумен будилник: Аз съм 13 -годишен студент в Тайван. Правя неща за първи път с Arduino, ако можете да ми кажете как да подобря тази работа, моля, оставете коментари за мен, за да мога да направя по -добрата. (Благодаря ) Този часовник може да ви събуди, когато подремнете, но аз
Буферният будилник прави събуждането забавно (ish): 7 стъпки (със снимки)
Буферният будилник прави събуждането забавно (иш): Събуждането до бръмчене на будилника е гадно. Аз съм от хората, които не обичат да се събуждат преди слънцето да е излязло (или е излязло много часове). И така, какъв по -добър начин да направите събуждането забавно от това да правите парти с балончета в леглото! Използване на arduino и
Будилник за деня на Groundhog: 12 стъпки (със снимки)
Будилник за деня на бабака: Будилникът за деня на бабака се състои от флип часовник на Panasonic RC-6025, модифициран да възпроизвежда звука от филма Ден на бабака, когато алармата изгасне. и филм) притежава спецификации
Нощен будилник с будилник MP3: 6 стъпки (със снимки)
Нощен алармен будилник с букви за MP3: За този проект исках да направя удобен и напълно функционален часовник за нощна аларма. Моите лични предпоставки за нощен будилник са: Четене при всяка светлина, без да заслепява през нощта MP3 мелодии за аларма Привличане