Мазмұны:
- Жабдықтар
- 1 -қадам: Raspberry Pi орнату
- 2 -қадам: электрониканы қосу
- 3 -қадам: мәліметтер қорының дизайны
- 4 -қадам: Arduino орнату
- 5 -қадам: Raspberry Pi Backend
- 6 -қадам: іс
Бейне: Мені ояту - ақылды дабыл сағаты: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Мені оятыңыз - ақылды оятқыш, оны ақылды жарық ретінде де қолдануға болады.
Кірістірілген жолақ сіздің бөлмеңізге түсетін табиғи жарықты имитациялайды. Бұл сіздің күнді тыныш және табиғи түрде бастауға мүмкіндік береді.
Оятқыш сонымен қатар уақытты оқуға арналған 4*7 сегменті бар дисплеймен, сүйікті музыкамен оятуға арналған динамиктермен, сенсорлық түймемен, жарық диапазонының жарықтығын реттеуге арналған ldr -мен және көріністі қарау үшін қолдануға болатын температура сенсорымен жабдықталған. сіздің бөлмеңіздің температурасы.
Жабдықтар
Мен төлеген нақты бағалардың тізімін мына жерден табуға болады:
Микроконтроллерлер мен компьютерлер:
Raspberry Pi 4I таңқурай pi 4 4GB қолданды, бірақ кез келген таңқурай pi үлгісі 3+ жақсы болуы керек
Ардуино Уно
Arduino 4*7 сегментті сағат дисплейін басқару үшін қолданылады.
Датчиктер:
- TMP36: температура сенсоры
- LDR: жарыққа тәуелді резистор
Жетектер:
- WS2801: жеке адреске арналған жолақ
- СКД дисплейі: 16*2 СКД дисплейі.
- 4*7 сегментті сағат дисплейі
IC:
- 74HC595: LCD дисплейі үшін Shift тіркеуі
- MCP3008: 8 разрядты аналогты цифрлық түрлендіргіш
- Логикалық деңгей түрлендіргіші: raspi мен arduino арасындағы байланыс үшін қолданылады
Басқа заттар:
- Динамиктерді қуаттандыратын adafruit MAX9744 күшейткіші
- Кез келген динамик, мен Visaton 4Ohm 8Watt толық диапазонды қолдандым (Art. № 2240)
- Күшейткішті қуаттандыру үшін 9 вольтты қуат көзі
- Жарық диодты жолақ пен басқа компоненттерді қамтамасыз ету үшін 5 вольтты қуат көзі. Жарық диапазонындағы әрбір светодиод 60 мА суыта алатынын есте сақтаңыз, сондықтан қуат көзінің жеткілікті екеніне көз жеткізіңіз.
- Бірнеше 220 Ом резисторлар
- Сіздің қапшыққа қоюға болатын кішкене нан тақтасы.
Құралдар:
- Пісіру үтігі.
- Бірдеңе жасауға болатын нәрсе (мен ағаш әсерін алу үшін PLA мен PETG бар 3D принтерді және бірнеше винил жапсырмаларын қолдандым.)
1 -қадам: Raspberry Pi орнату
Таңқурай pi - біздің негізгі микроконтроллер.
Raspberry pi біздің жергілікті веб -серверді, мәліметтер базасын басқарады, жолақтарды, динамиктерді басқарады …
1 -бөлім: Raspbian орнату
Бұл оқулықты raspbian орнату үшін пайдаланыңыз:
SSH қосылғанына көз жеткізіңіз
2 -бөлім: Қосылу
Интернетке қосылу үшін сіз таңқурай пи терминалына кіруіңіз керек. Мен шыбықты қолдануды ұсынамын. Терминал типінде:
wpa_passphrase «YourNetwork» «YourSSID» >> /etc/wpa_supplicant/wpa_supplicant.conf
«YourNetwork» - бұл Wi -Fi желісінің атауы, ал «YourSSID» - желінің құпия сөзі.
Желіні қосқаннан кейін Raspberry Pi -ді қайта жүктеуге тырысыңыз.
'Ping 8.8.8.8' пәрменін енгізіңіз, егер сіз жауап алсаңыз, желі сервистерге пакетті жібереді, егер сіздің желі орнатылған және жұмыс істейді!
3 -бөлім: Қажетті бағдарламаларды орнатыңыз
Бұл жобаны іске қосу үшін бізге қосымша бағдарламалар қажет.
Жұмысқа кіріспес бұрын, бәрі жаңартылғанына көз жеткізу үшін осы 2 команданы орындаңыз.
sudo apt жаңарту
sudo apt жаңарту
Бұл біраз уақыт алуы мүмкін.
Apache
sudo apt install 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 орнату керек
pip3 mysql-Connector-python орнатыңыз
pip3 колба-розеткасын орнатады
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 күн қолданылады. Екіншісі дабылдың соңғы рет қашан өшкенін қадағалайды. Қандай жұмыс күні болатынын білу үшін мен 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)
Бағдарламаны қалай орнатуға болады:
Артқы жағы питонда колба арқылы жазылады. Сіз бұл бағдарламаны (app.py) автоматты түрде бастайтын қызметті жасай аласыз.
Алдыңғы кодты біз бұрын жүктеген apache серверінің html файлына қою керек. (/var/html)
Бағдарлама қалай жұмыс істейді?
Оятқыш қосылған кезде сағаттың IP мекенжайына өтіңіз (ол дисплейде көрсетіледі)
Браузердегі IP мекенжайына кіре салысымен, сіздің компьютеріңіз клиентке қосылды деп socket.io сұрауын жібереді. Артқы жағы мұны алған кезде, мен төменде түсіндіретін бірнеше ағындар басталады.
Орнату
Бұл барлық қажетті объектілерді біріктіреді.
GetTemp
Бұл mcp3008 0 арнасын оқиды және екілік деректерді нақты температураға түрлендіреді және оны ағымдағы күн мен сағатпен мәліметтер базасына енгізеді.
GetTempGrafiek
Бұл температура сенсорының соңғы 20 мәнін алады және оны алдыңғы жаққа шығарады.
tijd_sturen
Бұл әдіс ағымдағы уақытты алады және минуттың өзгергенін тексереді. Егер бағдарлама өзгерсе, онда жаңа уақыт ардуиноға сериялық байланыс арқылы жіберіледі
checkAlarmen
Бұл ең маңызды әдіс. Ол қосылған барлық дабылдарды алады және осы дабылдардың кез келгенінен 5 минут бұрын өтуі керек пе екенін тексереді (бұл қажет болған кезде әр дабылдың өшетініне сенімді болу үшін буфер). Егер дабыл сөнуі керек болса, біз музыканы, жарық диапазонын бастаймыз … Біз күшті сезімтал резисторды үздіксіз оқимыз және мән 1000 -ден төмендегенде (fsr басылғанын оқыңыз) Біз дабылды бұрамыз және сигналды жаңартамыз. дерекқор. Біз дабылдың соңғы рет өшкен күнін ағымдағы күнге орнаттық.
statusLight
Бұл әдіс жарық диодты жолақтың мәнін шығарады және қажет болған жағдайда жолақты қосады.
lichtAanpassen
Бұл жолақ пен дабылдың қарама -қайшы келмейтініне көз жеткізудің қосымша әдісі.
6 -қадам: іс
Менің файлдарыма сілтемені мына жерден табуға болады:
Мен қаптаманы басып шығару үшін 3d принтерді қолдандым. Ол 4 түрлі бөліктен тұрады:
- Динамикке арналған тесіктері бар алдыңғы тақта және 7 сегментті дисплейге арналған қабырғалар
- PETG мөлдір жарық диодты жолағының сыртқы сақинасы.
- Ортаңғы бөлігі
- Артқы тақтасы слот үшін саңылауы бар және кабельдер үшін тесік.
Түпнұсқа модельде 7 сегментті дисплейде тесік жоқ, бірақ бұл қажет, себебі әйтпесе 7 сегментті дисплейдің жарығы жанбайды.
Көріп отырғаныңыздай, барлық компоненттерді салғаннан кейін мен түпкі нәтижені жақсарту үшін ағаштан жасалған винил жапсырмаларын қолдандым. Сағат дисплейі стикер арқылы жарқырайды, бұл өте жақсы әсер етеді.
Ұсынылған:
Көпірші дабыл сағаты оятуды қызықты етеді: 7 қадам (суреттермен)
Көпірші дабыл сағаты оятуды қызықты етеді (дірілдейтін оятқыштан ояту сұмдық. Мен күн шыққанға дейін оянуды ұнатпайтындардың бірімін (немесе бірнеше сағат бойы сыртта болған). Төсекте көпіршікті кеш өткізгеннен гөрі, оянуды көңілді етудің қандай жақсы әдісі бар! Ардуино мен
Дабыл сағаты: 8 қадам (суреттермен)
Oled дабыл сағаты: айналасында arduino/ESP32 сағаттары көп, бірақ олар жақсы және таза OLED -ді қолдана ма? Мен ардуино мен ESP32 -мен біраз уақыт тәжірибе жасап көрдім, бірақ мен оны ешқашан дайын өнімге жеткізе алмадым. Мен 4 1,3 дюйм болатын оятқыш жасадым
DIY Arduino екілік дабыл сағаты: 14 қадам (суреттермен)
DIY Arduino екілік дабыл сағаты: бұл классикалық екілік сағат! Бірақ бұл жолы қосымша функциямен! Бұл нұсқаулықта мен сізге Arduino -мен екілік оятқышты қалай құруға болатынын көрсетемін, ол сізге тек уақытты ғана емес, сонымен қатар күнді, айды, тіпті таймер мен дабылды қызықты көрсете алады
LCD дисплейі мен Bluetooth қосымшасы бар Күннің шығатын дабыл сағаты: 8 қадам
LCD дисплейі мен Bluetooth қосымшасы бар күннің шығатын дабыл сағаты: қыс мезгілі қайғылы болуы мүмкін. Сіз ояндыңыз, қараңғы, сіз төсектен тұруыңыз керек. Сіз естігіңіз келетін соңғы нәрсе - оятқыштың тітіркендіргіш дыбысы. Егер сізде, мен сияқты, таңертең тұру кезінде қиындықтар туындаса, бұл оятқыш сізге қажет
Біреу мені жақсы көреді Орналасу сағаты: 6 қадам (суреттермен)
Біреу мені жақсы көретін жер сағаты: Шетелдегі немесе штаттан тыс жақындарыммен ештеңе айтпайды, мен сен үшін олар қай уақытта екенін білгеннен гөрі жақсы ойлаймын! Менің зейнеткер қайын жұртым Берлинде, Германияда шіркеу миссиясына қызмет етуге дайындалып жатыр еді, ал менің әйелім