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

Խելացի ահազանգ ՝ 6 քայլ
Խելացի ահազանգ ՝ 6 քայլ

Video: Խելացի ահազանգ ՝ 6 քայլ

Video: Խելացի ահազանգ ՝ 6 քայլ
Video: Էմոցիաների կառավարման 6 քայլ 2024, Նոյեմբեր
Anonim
Խելացի ահազանգ
Խելացի ահազանգ

Դպրոցից ստացա նախագիծ պատրաստելու հանձնարարությունը: Ես ընտրեցի Smart ազդանշանը, որովհետև ես միշտ քնում եմ իմ ահազանգի միջով և այն ժամանակ կարոտում եմ դպրոցը: Դուք կարող եք սպանել ձեր ահազանգը միայն այն դեպքում, եթե կա լույս, ձայն և շարժում, որպեսզի չկարողանաք հետ քնել կամ հետաձգել այն ՝ առանց ձեր աչքերը բացելու: Կա նաև կայք, որտեղ կարող եք դիտել ձեր քնի ռեժիմը, տեղադրել ահազանգեր և կատարել նոր ահազանգեր:

Պարագաներ

Նախագծի կառուցման համար անհրաժեշտ են որոշ նյութեր: ստորև կարող եք գտնել ցուցակ: Դուք կարող եք նաև ամեն ինչ հետ գտնել նյութերի օրինագծում, ներառյալ գինը:

  1. Ազնվամորի պի 3
  2. T-cobbler բեկման տախտակ
  3. PIR- ցուցիչ
  4. Լույսի ցուցիչ
  5. Ձայնի հայտնաբերման ցուցիչ
  6. Բզզոց
  7. LCD էկրան
  8. Կոճակ

Քայլ 1: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ

Մինչև ամեն ինչ կառուցելը ես պատրաստել էի 2 սխեմա (1 էլեկտրական և 1 հացահատիկի վրա) սառեցման վրա և վերահսկում էի դրանք ՝ համոզվելու, որ դրանում սխալներ չկան: Երբ համոզվեցի, որ ամեն ինչ կարգին է, սկսեցի նախագծից: Նախևառաջ ես սկսեցի ազդանշանը և կոճակը, քանի որ դրանք ամենահեշտ բաղադրիչներն էին: Դրանից հետո ես իմ էկրանը միացրեցի ազնվամորի պիին: Վերջում ես միացրեցի իմ տվիչները: լույսի սենսորը և շարժման տվիչը հեշտ են, քանի որ ձեզ այլ բան պետք չէ, բայց PIR սենսորին լրացուցիչ բան է պետք: Որպեսզի PIR- ը կարճ միացում չկատարի, անհրաժեշտ է օգտագործել լարման կամուրջ: Դա նշանակում է, որ դուք պետք է օգտագործեք 1k ohm և 2k ohm լրացուցիչ դիմադրություն `համոզվելու համար, որ ամեն ինչ լավ է ընթանում: Քորոցների ճշգրիտ օգտագործումը և ինչպես ամեն ինչ pi- ին միացնելը կարող եք գտնել սխեմաներում:

Քայլ 2: Տվյալների բազա

Տվյալների շտեմարան
Տվյալների շտեմարան

Բոլոր տվյալները պահելու համար ինձ անհրաժեշտ էր տվյալների բազա:

Իմ տվյալների բազան բաղկացած է 6 աղյուսակից:

  1. Սենսոր
  2. Պատմության_սենսորներ
  3. Անձ
  4. Ահազանգ_մարդիկ
  5. Քուն_հայրիկ
  6. Alaարթուցիչ

տվյալների բազայում կա 2 մաս: 1 սենսորների և 1 անձի և նրա բոլոր վիճակագրության համար:

Սենսորային աղյուսակը պարունակում է ID և անուն: Այս աղյուսակը կապված է History_sensors- ի հետ, որն ունի ID, արժեք, Sensor_id և անուն: sensor_id- ը անհրաժեշտ է իմանալու համար, թե որն է սենսորը արժեք, և ամսաթիվը անհրաժեշտ է իմանալու համար, թե երբ է սենսորը չափել այն:

Աղյուսակի անձը պարունակում է ID, անուն և գաղտնաբառ: Գաղտնաբառը և անունը անհրաժեշտ են մուտք գործելու համար, որպեսզի ոչ ոք չկարողանա ձեզ համար ահազանգ տեղադրել: Այս աղյուսակը միացված է sleep_pattern սեղանին և Alarm_person սեղանին: Sleep_patern աղյուսակը պարունակում է ID, Hours_sleep, Date, Person_id, Bedtime և Wake_up_time: Այսպիսով, ահա այն տվյալները, որոնք պահվում են ձեր քնի հայրիկի մասին գրաֆիկական պատկեր ստեղծելու համար:

Alarm_person աղյուսակը պարունակում է Person_id, Alarm_id և ժամանակը: Այս աղյուսակը անհրաժեշտ է, քանի որ տարբեր մարդիկ կարող են միաժամանակ օգտագործել ահազանգ, իսկ 1 անձ կարող է օգտագործել բազմաթիվ ահազանգեր: Վերջին սեղանը ահազանգման սեղանն է: Այս մեկը պարունակում է ID և նկարագրություն:

Քայլ 3: Հետին վերջ

Back-end
Back-end
Back-end
Back-end

Հետևում ես ստիպված էի գրել տարբեր գործառույթներ:

  1. խնդրեք սեղանի տվիչները
  2. խնդրեք սեղանի պատմության_սենսորների համար
  3. խնդրեք քնի ռեժիմը
  4. տեղադրել նոր ահազանգ
  5. խնդրեք սեղանի ահազանգը
  6. գրանցել օգտվողին
  7. մուտք
  8. տվիչների արժեքները դրեք աղյուսակում history_sensors

Ես օգտագործեցի pycharm և ծածկագիրը գրեցի python- ում:

բոլոր գործառույթների համար ես օգտագործում եմ @app.route- ը, այնուհետև հասցեն: ամեն անգամ, երբ անհրաժեշտ է օգտագործել այլ հասցե, քանի որ հակառակ դեպքում այն չի աշխատի: Դրանից հետո ես գրում եմ if գործառույթը `մեթոդով որպես արժեք, այնպես որ, երբ դա ճիշտ է, նա կատարում է ծածկագիրը: if արժեքի մեջ կան try catch և sql հայտարարություն ՝ տվյալները ստանալու կամ տվյալները հեռացնելու համար:

Սենսորների գործառույթների համար դա այլ է: Այստեղ ես չեմ օգտագործել @app.route- ը, այլ պարզապես գործառույթ եմ դարձրել սենսորի համար: այստեղ դուք հայտարարում եք ձեր կապում և կատարում հետադարձ կապի գործառույթ: Այս կերպ ամեն անգամ, երբ սենսորը հայտնաբերում է ինչ -որ բան, որը գործառույթը կատարվում է: Հետադարձ կապի գործառույթում ես օգտագործել եմ, եթե դա աշխատում է, երբ սենսորը ինչ -որ բան է հայտնաբերում: If- ում կանգնած է sql հայտարարությամբ տվյալները աղյուսակում տեղադրելու կոդը: Դրա մեջ կա նաև քուն, որովհետև հակառակ դեպքում աղյուսակում չափազանց մեծ արժեքներ կդներ ընդամենը 1 հայտնաբերման համար:

Իմ github- ում կարող եք գտնել նախագծի ամբողջական ծածկագիրը:

Քայլ 4: Վեբ կայք

Կայք
Կայք
Կայք
Կայք
Կայք
Կայք

Իմ վեբ կայքի համար ես աշխատել եմ html- ով և css- ով իմ կայքը պարունակում է 11 html էջ:

Այնքան շատ էջեր կան, քանի որ ամեն ինչ աշխատում է վեբ կայքի միջոցով: կարող եք զարթուցիչ տեղադրել, ահազանգ ավելացնել և ջնջել մեկը: Կարգավորումների էջում կարող եք փոխել ձեր գաղտնաբառը և էլ. Դուք ունեք քնի ռեժիմի էջ: Կարող եք ավելացնել նաև այն պահը, երբ քնել եք և երբ արթնանում եք: Դրականն այն է, որ յուրաքանչյուր էջ ունի նույն տեսքը և օգտագործում է հիմնականում նույն բաները, այնպես որ css- ը հաճախ նույնն է յուրաքանչյուր էջում:

Քայլ 5: Front-end

-Ակատային մասը գրված է javascript- ով:

Քայլ 6: Գործ

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

Իմ դեպքում ես ընտրեցի փայտ օգտագործել: Կտրելն այնքան էլ դժվար չէ, այն գեղեցիկ տեսք ունի: Իմ պատյանը 26 սմ է 14 սմ -ի վրա, բարձրությունը ՝ 7, 5 սմ: Դա այնքան մեծ է, որովհետև ամեն ինչ անհրաժեշտ է տեղավորվելու համար: Ես անցքեր եմ արել սենսորների, կոճակի և LCD- ի համար, որպեսզի ժամանակը տեսանելի լինի, և սենսորները կարողանան հայտնաբերել շարժում կամ լույս: Սրանք պատրաստելու համար ես օգտագործեցի լազերահատ: Գործի ներսում նստած է իմ տախտակը և ազնվամորու պին:

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