Բովանդակություն:

Wake Me Up - խելացի զարթուցիչ `6 քայլ
Wake Me Up - խելացի զարթուցիչ `6 քայլ

Video: Wake Me Up - խելացի զարթուցիչ `6 քայլ

Video: Wake Me Up - խելացի զարթուցիչ `6 քայլ
Video: «Մի անգամ դպրոցում» ֆիլմ | Mi angam dprotsum | Full Movie 2024, Նոյեմբեր
Anonim
Wake Me Up - Խելացի rmարթուցիչ
Wake Me Up - Խելացի rmարթուցիչ

Wake me up- ը խելացի զարթուցիչ է, որը կարող է օգտագործվել նաև որպես խելացի լույս:

Ներկառուցված լուսարձակը նմանեցնում է ձեր սենյակ մտնող բնական լույսը: Սա հնարավորություն է տալիս հանգիստ, բնական ճանապարհով սկսել ձեր օրը:

Alarmարթուցիչը հագեցած է նաև 4*7 հատվածի էկրանով ՝ ժամանակը կարդալու համար, բարձրախոսներ ՝ ձեր նախընտրած երաժշտությամբ արթնանալու համար, հպման կոճակ, լուսադիոդ ՝ լուսամփոփի պայծառությունը հարմարեցնելու և ջերմաստիճանի տվիչ, որը կարող եք օգտագործել դիտելու համար: ձեր սենյակի ջերմաստիճանը:

Պարագաներ

Իմ վճարած ճշգրիտ գների ցանկը կարելի է գտնել այստեղ.

Միկրոկոնտրոլերներ և համակարգիչներ.

Ազնվամորի Pi 4I- ն օգտագործել է ազնվամորի pi 4 4GB- ն, այնուամենայնիվ, ցանկացած ազնվամորի pi 3+ մոդելը պետք է լավ լինի:

Արդուինո Ունո

Արդուինոն օգտագործվում է 4*7 հատվածի ժամացույցի ցուցադրումը վերահսկելու համար:

Սենսորներ:

  • TMP36: ջերմաստիճանի տվիչ
  • LDR: Լույսի կախված դիմադրություն

Գործարկիչներ.

  • WS2801. Անհատապես հասցեվող լուսամփոփ
  • LCD էկրան ՝ 16*2 LCD էկրան:
  • 4*7 հատվածի ժամացույցի ցուցադրում

IC- ները `

  • 74HC595. Shiftregister LCD էկրանին
  • MCP3008: 8-բիթ անալոգային թվային փոխարկիչ
  • Տրամաբանական մակարդակի փոխարկիչ. Օգտագործվում է raspi- ի և arduino- ի միջև հաղորդակցվելու համար

Այլ իրեր.

  • Բարձրախոսներին սնուցող adafruit MAX9744 ուժեղացուցիչ
  • Speakerանկացած բարձրախոս, ես օգտագործել եմ Visaton 4 Օմ 8 Վտ հզորությամբ բարձրախոս (արվեստ. Թիվ 2240)
  • 9 վոլտ հզորություն ՝ ուժեղացուցիչին սնուցելու համար
  • 5 վոլտ էլեկտրամատակարարում ՝ լուսամփոփի և այլ բաղադրիչների մատակարարման համար: Հիշեք, որ լուսարձակի յուրաքանչյուր հոսանք կարող է նվազել 60 մԱ, այնպես որ համոզվեք, որ ձեր էներգիայի մատակարարումը բավարար է:
  • Մի քանի 220 Օմ դիմադրություն
  • Մի փոքրիկ տախտակ ՝ ձեր պատյանում դնելու համար:

Գործիքներ:

  • Soldոդման երկաթ:
  • Գործը դարձնելու համար ինչ -որ բան (փայտե էֆեկտ ստանալու համար ես օգտագործել եմ 3D տպիչ PLA և PETG և վինիլային կպչուն պիտակներ):

Քայլ 1: Ազնվամորու Pi- ի կարգավորում

Ազնվամորու pi- ն մեր հիմնական միկրո վերահսկիչն է:

Ազնվամորու pi- ն վարում է մեր տեղական վեբ սերվերը, տվյալների բազան, վերահսկում է ledstrip- ը, բարձրախոսները,…

Մաս 1. Raspbian- ի տեղադրում

Օգտագործեք այս ձեռնարկը ՝ raspbian- ը տեղադրելու համար ՝

Համոզվեք, որ SSH- ն միացված է

Մաս 2: Միացում

Ինտերնետին միանալու համար հարկավոր է մուտք գործել ձեր ազնվամորի պի տերմինալ: Խորհուրդ եմ տալիս օգտագործել ծեփոն: Տերմինալի տեսակում.

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

«YourNetwork» - ը ձեր wifi ցանցի անունն է, իսկ «YourSSID» - ը ՝ ցանցի գաղտնաբառը:

Addedանցը ավելացնելուց հետո փորձեք վերագործարկել Raspberry Pi- ն:

Մուտքագրեք «ping 8.8.8.8» հրամանը: Սա փաթեթ կուղարկի google սերվերներին, եթե պատասխան ստանաք, ձեր ցանցը կազմաձևված է և աշխատում է:

Մաս 3: Տեղադրեք անհրաժեշտ ծրագրերը

Այս նախագիծը գործարկելու համար մեզ անհրաժեշտ կլինի տեղադրել լրացուցիչ ծրագրեր:

Սկսելուց առաջ գործարկեք այս 2 հրամանը `համոզվելու համար, որ ամեն ինչ արդիականացված է:

sudo apt թարմացում

sudo apt բարելավում

Սա կարող է որոշ ժամանակ տևել:

Ապաչի

sudo apt տեղադրել apache2 -y

sudo apt տեղադրել php libapache2-mod-php -y

ՄարիաԴԲ

sudo apt տեղադրել mariadb-server mariadb-client -y

sudo apt տեղադրել php -mysql -y

PHPMyAdmin

sudo apt տեղադրել phpmyadmin -y

Python pip

Մենք պետք է տեղադրենք pip, որպեսզի հնարավորություն տանք որոշ պիթոնային գրադարաններ

pip3 տեղադրել mysql-connector-python

pip3 տեղադրել flask-socketio

pip3 տեղադրել flask-cors

pip3 տեղադրել gevent

pip3 տեղադրել gevent-websocket

Քայլ 2: Էլեկտրոնիկայի միացում

Էլեկտրոնիկայի միացում
Էլեկտրոնիկայի միացում
Էլեկտրոնիկայի միացում
Էլեկտրոնիկայի միացում

Ես ավելացրել եմ 2 սխեմա, 1 -ը փորձարկման նպատակների համար նախատեսված տախտակի սխեման է: Ես խորհուրդ եմ տալիս կառուցել առաջին սխեման և փորձել ստանալ կոդը:

Ստորև ես ավելացրել եմ ցնցող ֆայլերը:

Քայլ 3: Տվյալների բազայի ձևավորում

Տվյալների բազայի ձևավորում
Տվյալների բազայի ձևավորում

Սա իմ պատրաստած տվյալների բազայի սխեման է: Բառերը հոլանդերեն են, բայց ես մանրամասն կբացատրեմ յուրաքանչյուր աղյուսակ:

Աղյուսակ 1. tblMuziek

Սա բավականին հիմնական սեղան է: Այն փրկում է նկարչի անունը, երգի անունը և երգի ֆայլի անունը:

Աղյուսակ 2: tblLedstrip

Այս աղյուսակը հետևում է ledstrip- ի ներկա վիճակին, այն փրկում է ledstrip- ի վիճակը: Սա մեզ անհրաժեշտ է խելացի լուսավորության գործառույթի համար:

Աղյուսակ 3: tblSensoren

Այս աղյուսակը հետևում է մեր ահազանգի սենսորներին: Մենք պահում ենք սենսորի անունը և MCP3008- ի ալիքը

Աղյուսակ 4: tbl Հանդիպում

Այս աղյուսակը պահում է մեր տվիչների արժեքները ՝ դրանց ժամանակի հետ միասին:

Աղյուսակ 5: tblWekker

Այս սեղանը պահում է ձեր զարթուցիչի գաղտնաբառը և անունը (օրինակ ՝ ննջասենյակ) Այս սեղանը պարտադիր չէ, բայց ես այն ավելացրել եմ, քանի որ ենթադրում եմ, որ ձեր տանը կունենաք ավելի քան 1 զարթուցիչ:

Աղյուսակ 6: tblAlarrm

Սա թերևս ամենակարևոր սեղանն է: Այն հետևում է ձեր տեղադրած ահազանգերին և այն, ինչ պետք է անի ժամացույցը (ո՞ր երգը նվագել, որն է հաջորդականությունը, ո՞ր օրերին պետք է անջատվի,…): Շատ կարևոր է 2 ամսաթվերին հետևելը: 1 ամսաթիվ օգտագործվում է պահելու համար, թե որ ժամին պետք է ազդանշանը միանա: Մյուսը հետևում է, թե երբ է վերջին անգամ ահազանգ եղել: Որպեսզի իմանամ, թե որ աշխատանքային օրը պետք է անջատվի, ես օգտագործեցի մի varchar, որը պարունակում է 7 թվանշան: Առաջին նիշը երկուշաբթի է, երկրորդ երեքշաբթի,… Եթե դա 1 է, ապա այն պետք է անջատվի, եթե 0 է ՝ չպետք է: Օրինակ ՝ 1111100 սա նշանակում է, որ այս ահազանգը պետք է անջատվի երկուշաբթի, երեքշաբթի, չորեքշաբթի, հինգշաբթի և ուրբաթ օրերին:

Քայլ 4: Arduino- ի կարգավորում

Այս քայլը շատ հեշտ է: Հաջորդ քայլին կլինի իմ github- ի հղումը, որտեղից կարող եք ներբեռնել arduino ֆայլը:

Ի՞նչ է անում ծրագիրը:

Waրագիրը սպասում է սերիական տվյալների մուտքին 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: Ազնվամորի Պի հետընթաց

Ազնվամորի Պի հետընթաց
Ազնվամորի Պի հետընթաց

Դուք կարող եք ներբեռնել իմ կոդը Github- ի միջոցով: (https://github.com/VanHevelNico/WakeMeUp)

Ինչպես տեղադրել ծրագիրը

Հետին պլանը գրված է պիթոնում `օգտագործելով տափաշիշ: Կարող եք կատարել ծառայություն, որն ինքնաբերաբար սկսում է այս ծրագիրը (app.py):

Դուք պետք է տեղադրեք առջևի ծածկագիրը apache սերվերի html ֆայլում, որը մենք ներբեռնել էինք ավելի վաղ: (/var/html)

Ինչպե՞ս է աշխատում ծրագիրը:

Երբ զարթուցիչը միացված է, գնացեք ձեր ժամացույցի IP հասցեն (այն կցուցադրվի LCD- ում)

Հենց որ ձեր դիտարկիչում մուտք գործեք այդ IP հասցեն, ձեր համակարգիչը socket.io- ի հարցումը կուղարկի backend- ին ՝ ասելով, որ հաճախորդը միացել է: Երբ հետնապահը ստանա սա, մի քանի թեմա կսկսվի, որոնք ես կբացատրեմ ստորև:

Կարգավորում

Սա intializes բոլոր անհրաժեշտ օբյեկտները.

GetTemp

Սա կարդում է mcp3008 ալիքը 0 և երկուական տվյալները փոխակերպում է իրական ջերմաստիճանի և տվյալների բազայում դնում ընթացիկ ամսաթվով և ժամով:

GetTempGrafiek

Սա ստանում է ջերմաստիճանի տվիչի վերջին 20 արժեքները և թողարկում այն դեպի առջև:

tijd_sturen

Այս մեթոդը ստանում է ընթացիկ ժամանակը և ստուգում, թե արդյոք րոպեն փոխվել է: Եթե այն փոխվել է, ծրագիրը սերիական հաղորդակցության միջոցով նոր ժամանակ է ուղարկում arduino- ին

checkAlarmen

Սա ամենակարևոր մեթոդն է: Այն ստանում է միացված բոլոր ահազանգերը և ստուգում է, թե արդյոք այս ահազանգերից որևէ մեկը պետք է գործի այս պահից մինչև 5 րոպե առաջ (սա բուֆեր է `համոզվելու համար, որ յուրաքանչյուր ահազանգը դուրս է գալիս անհրաժեշտության դեպքում): Եթե ահազանգը պետք է անջատվի, մենք կսկսենք երաժշտությունը, լուսարձակը,… Մենք անընդհատ կարդում ենք ուժային զգայուն դիմադրություն, և երբ արժեքը իջնում է 1000 -ից ցածր (կարդալ fsr սեղմված է) Մենք շրջում ենք ահազանգը և ահազանգը թարմացնում տվյալների բազա: Մենք զարթուցիչի վերջին ազդանշանի ամսաթիվը սահմանել ենք ընթացիկ ամսաթվի:

statusLight

Այս մեթոդը թողարկում է ledstrip- ի արժեքը և անհրաժեշտության դեպքում միացնում է ledstrip- ը:

lichtAanpassen

Սա լրացուցիչ մեթոդ է `համոզվելու համար, որ լուսադիոդային և ազդանշանային լույսը չեն հակասում:

Քայլ 6: Գործ

Գործ
Գործ
Գործ
Գործ
Գործ
Գործ

Իմ ֆայլերի հղումը կարող եք գտնել այստեղ ՝

Ես պատյան տպելու համար օգտագործել եմ 3D տպիչ: Այն տպագրված է 4 տարբեր մասերով.

  1. Առջևի ափսեը բարձրախոսի համար անցքերով և որոշ պատերով ՝ 7 հատվածի ցուցադրման համար
  2. Արտաքին օղակ `թափանցիկ PETG- ի լուսարձակի համար:
  3. Միջին հատվածը
  4. Հետևի սալիկը `LCD- ի համար անցք և մալուխների համար անցք:

Սկզբնական մոդելում 7 հատվածի ցուցադրման համար անցք չկար, սակայն դա անհրաժեշտ է, քանի որ հակառակ դեպքում 7 հատվածի ցուցադրման լույսը չի շողա:

Ինչպես տեսնում եք, բոլոր բաղադրամասերը դնելուց հետո ես փայտե տեսքով վինիլային կպչուն պիտակներ օգտագործեցի, որպեսզի վերջնական արդյունքն ավելի լավ տեսք ունենա: Clockամացույցի էկրանը փայլում է կպչուկի միջով, ինչը ստեղծում է շատ գեղեցիկ արտաքին տեսք:

Խորհուրդ ենք տալիս: