Мазмұны:

Мені ояту - ақылды дабыл сағаты: 6 қадам
Мені ояту - ақылды дабыл сағаты: 6 қадам

Бейне: Мені ояту - ақылды дабыл сағаты: 6 қадам

Бейне: Мені ояту - ақылды дабыл сағаты: 6 қадам
Бейне: Басқа тышты деген осы 😡 2024, Қараша
Anonim
Мені оятыңыз - ақылды дабыл
Мені оятыңыз - ақылды дабыл

Мені оятыңыз - ақылды оятқыш, оны ақылды жарық ретінде де қолдануға болады.

Кірістірілген жолақ сіздің бөлмеңізге түсетін табиғи жарықты имитациялайды. Бұл сіздің күнді тыныш және табиғи түрде бастауға мүмкіндік береді.

Оятқыш сонымен қатар уақытты оқуға арналған 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

Raspberry Pi артқы жағы
Raspberry Pi артқы жағы

Сіз менің кодты 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 түрлі бөліктен тұрады:

  1. Динамикке арналған тесіктері бар алдыңғы тақта және 7 сегментті дисплейге арналған қабырғалар
  2. PETG мөлдір жарық диодты жолағының сыртқы сақинасы.
  3. Ортаңғы бөлігі
  4. Артқы тақтасы слот үшін саңылауы бар және кабельдер үшін тесік.

Түпнұсқа модельде 7 сегментті дисплейде тесік жоқ, бірақ бұл қажет, себебі әйтпесе 7 сегментті дисплейдің жарығы жанбайды.

Көріп отырғаныңыздай, барлық компоненттерді салғаннан кейін мен түпкі нәтижені жақсарту үшін ағаштан жасалған винил жапсырмаларын қолдандым. Сағат дисплейі стикер арқылы жарқырайды, бұл өте жақсы әсер етеді.

Ұсынылған: