Мазмуну:

Мени ойгот - акылдуу будильник: 6 кадам
Мени ойгот - акылдуу будильник: 6 кадам

Video: Мени ойгот - акылдуу будильник: 6 кадам

Video: Мени ойгот - акылдуу будильник: 6 кадам
Video: ТОРТЫ И ИСТОРИИ #84 Истории от Натали 2024, Ноябрь
Anonim
Мени ойгот - акылдуу ойготкуч саат
Мени ойгот - акылдуу ойготкуч саат

Мени ойгот - бул акылдуу ойготкуч саат, аны акылдуу жарык катары да колдонсо болот.

Камтылган LEDstrip сиздин бөлмөгө кирүүчү табигый жарыкты туурайт. Бул сиздин күндү баштоо үчүн тынч, табигый жол берет.

Ойготкуч саат да окуу үчүн 4*7 сегменттүү дисплей, сүйүктүү музыкаңыз менен ойгонуу үчүн колонкалар, сенсордук баскыч, LED тилкесинин жарыктыгын ыңгайлаштыруу үчүн ldr жана температура сенсору менен жабдылган. сиздин бөлмө температурасы.

Жабдуулар

Мен төлөгөн так баалардын тизмесин бул жерден тапса болот:

Микроконтроллерлер жана компьютерлер:

Raspberry Pi 4I малина pi 4 4GB колдонгон, бирок 3+ малина пи модели жакшы болушу керек

Arduino Uno

Arduino 4*7 сегменттүү дисплейди башкаруу үчүн колдонулат.

Сенсорлор:

  • TMP36: температура сенсору
  • LDR: Жарыкка көз каранды резистор

Аткаруучулар:

  • WS2801: Жекече адрестелүүчү LED тилкеси
  • ЖК дисплей: 16*2 ЖК дисплей.
  • 4*7 сегменттүү дисплей

IC:

  • 74HC595: LCD дисплейи үчүн Shiftregister
  • MCP3008: 8-разряддуу аналогдук санариптик которгучка
  • Логикалык деңгээлдеги конвертер: raspi менен arduino ортосунда баарлашуу үчүн колдонулат

Башка нерселер:

  • Динамиктерди кубаттоо үчүн adafruit MAX9744 күчөткүчү
  • Кайсы спикер болбосун, мен Visaton 4Ohm 8Watt толук спикерди колдонгом (Art. No 2240)
  • Күчөткүчтү иштетүү үчүн 9 вольттук электр энергиясы
  • 5 вольттук электр энергиясы менен камсыз кылуу үчүн лентаны жана башка компоненттерди камсыз кылыңыз. Эстен чыгарбаңыз, ар бир сызык 60мАга чөгүп кетиши мүмкүн, андыктан сиздин электр менен камсыздооңуз жетиштүү.
  • Бир нече 220Ohm резисторлор
  • Сиздин ишиңизге коюу үчүн кичинекей нан.

Куралдар:

  • Бир ширетүүчү темир.
  • Ишти жасоо үчүн бир нерсе (мен PLA жана PETG менен 3D принтерди жана жыгач эффектин алуу үчүн винилдик стикерлерди колдондум.)

1 -кадам: Raspberry Pi орнотуу

Малина пи биздин негизги микро контроллерибиз.

Малина пи биздин жергиликтүү веб -серверибизди, маалымат базасын башкарат, лентаны, динамиктерди,…

1 -бөлүк: Raspbian орнотуу

Бул үйрөткүчтү raspbian орнотуу үчүн колдонуңуз:

SSH иштетилгенин текшериңиз

2 -бөлүк: Туташуу

Интернетке туташуу үчүн, малина пи терминалына кирүү керек. Мен паста колдонууну сунуштайм. Терминалдын түрүндө:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

"YourNetwork" - бул wifi тармагыңыздын аталышы жана "YourSSID" - бул тармактын сырсөзү.

Тармакты кошкондон кийин, Raspberry Pi'ни кайра жүктөөгө аракет кылыңыз.

"Пинг 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 install mariadb-server mariadb-client -y

sudo apt php -mysql -y орнотуу

PHPMyAdmin

sudo apt install phpmyadmin -y

Python пипи

Кээ бир python китепканаларын иштетүү үчүн пипти орнотушубуз керек

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

Бул таблицада ойготкуч саатыңыздын сырсөзү жана аталышы сакталат (мисалы, уктоочу бөлмө)

Таблица 6: tblAlarm

Бул, балким, эң маанилүү стол. Бул сиз койгон ойготкучту жана сааттын эмне кылышын көзөмөлдөйт (кайсы ырды ойнотуу керек, кайсы ырааттуулукту алып келген, кайсы күндөрдө өчүшү керек,…). 2 датаны көзөмөлдөө абдан маанилүү. Ойготкуч саат канчада өчүшү керек экенин сактоо үчүн 1 дата колдонулат. Экинчиси сигнализациянын акыркы жолу качан басылганын эсепке алат. Жуманын кайсы күнү өчүшү керек экенин билүү үчүн мен 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 Backend

Raspberry Pi Backend
Raspberry Pi Backend

Сиз менин кодумду Github аркылуу жүктөп алсаңыз болот. (https://github.com/VanHevelNico/WakeMeUp)

Программаны кантип орнотсо болот:

Арткы бөлүгү колбанын жардамы менен питондо жазылган. Сиз бул программаны (app.py) автоматтык түрдө баштай турган кызматты жасай аласыз.

Сиз алдыңкы кодду биз мурда жүктөп алган apache серверинин html файлына салышыбыз керек. (/var/html)

программа кантип иштейт?

Ойготкуч саат күйгүзүлгөндө, саатыңыздын IP дарегине өтүңүз (ал lcdде көрсөтүлөт)

Браузериңиздеги ошол IP дарегине бараарыңыз менен, сиздин компьютер кардарга туташты деп socket.io өтүнүчүн жөнөтөт. Арткы жагы муну алганда, мен төмөндө түшүндүрө турган бир нече тема башталат.

Жайгашуу

Бул керектүү бардык объектилерди интеллектуалдаштырат.

GetTemp

Бул mcp3008 каналын 0 окуйт жана бинардык маалыматты чыныгы температурага айландырат жана учурдагы датасы жана сааты менен маалымат базасына киргизет.

GetTempGrafiek

Бул температура сенсорунун акыркы 20 маанисин алат жана аны алдыңкы жагына чыгарат.

tijd_sturen

Бул ыкма учурдагы убакытты алат жана мүнөт өзгөргөнүн текшерет. Эгерде ал өзгөргөн болсо, программа жаңы убакытты сериялык байланышты колдонуу менен arduinoго жөнөтөт

checkAlarmen

Бул эң маанилүү ыкма. Ал күйгүзүлгөн бардык ойготкучтарды алат жана бул ойготуулардын бирөөсү 5 мүнөттөн мурун иштеши керекпи же жокпу текшерет (бул ар бир сигнал керек болгондо иштей тургандыгын текшерүү үчүн буфер). Эгерде ойготкуч өчүшү керек болсо, анда биз музыканы, лентаны баштайбыз … Биз күчкө сезгич резисторду үзгүлтүксүз окуйбуз жана мааниси 1000ден төмөн болгондо (fsr басылганын окуйбуз) Биз сигналды бурабыз жана сигналды жаңыртабыз маалымат базасы. Биз акыркы жолу ойготкуч өчкөн күндү учурдагы датага койдук.

statusLight

Бул ыкма LED тилкесинин маанисин чыгарат жана керек болсо лентаны күйгүзөт.

lichtAanpassen

Бул кошумча тилке жана сигналдык чырак карама -каршы келбешине ынануу үчүн.

6 -кадам: Case

Case
Case
Case
Case
Case
Case

Менин файлдарыма шилтемени бул жерден тапса болот:

Корпусту басып чыгаруу үчүн 3d принтер колдондум. Ал 4 бөлүктөн турат:

  1. Динамик үчүн тешиктери бар алдыңкы табак жана 7 сегменттүү дисплей үчүн кээ бир дубалдар
  2. Тунук тунук PETGдеги лентанын сырткы шакеги.
  3. Ортоңку бөлүгү
  4. ЖК үчүн тешиги жана кабелдер үчүн тешиги бар арткы такта.

Оригиналдуу моделде 7 сегменттүү дисплей үчүн тешик болгон эмес, бирок бул керек, анткени антпесе 7 сегменттүү дисплейдин жарыгы жаркырабайт.

Көрүп турганыңыздай, бардык компоненттерди салгандан кийин, акыркы натыйжаны жакшыраак кылуу үчүн жыгачтан жасалган винил стикерлерди колдондум. Сааттын дисплейи наклейка аркылуу жаркырайт, бул абдан жакшы көрүнүүчү эффектти түзөт.

Сунушталууда: