CPC դասի աղտոտման ստուգիչ ՝ 10 քայլ
CPC դասի աղտոտման ստուգիչ ՝ 10 քայլ
Anonim
CPC դասի աղտոտման ստուգիչ
CPC դասի աղտոտման ստուգիչ
CPC դասի աղտոտման ստուգիչ
CPC դասի աղտոտման ստուգիչ
CPC դասի աղտոտման ստուգիչ
CPC դասի աղտոտման ստուգիչ

Ողջույն, ես ուսանող եմ Բելգիայից և սա իմ առաջին մեծ ծրագիրն է բակալավրիատի համար: Այս հրահանգը այն մասին է, թե ինչպես պատրաստել օդափոխության հաշվիչ փակ սենյակների, հատկապես դասարանների համար:

Լսում եմ, որ մտածում եք, թե ինչու է այս նախագիծը: Դե, ամեն ինչ սկսվեց, երբ ես գնացի ավագ դպրոց: Կեսօրին լավ ճաշից և ընդմիջումից հետո դասերը նորից սկսվում են: Բայց մի խնդիր կա. Ուսուցչուհին մոռացավ բացել պատուհանը, մինչ մենք ճաշում էինք, այնպես որ շոգ է, քրտնած և չես կարող կենտրոնանալ, քանի որ քուն ես մտնում: Դա պայմանավորված է նրանով, որ օդում շատ CO2 կա:

Իմ նախագիծը կլուծի այս խնդիրը և կդարձնի բոլոր ուսանողներին ավելի կենտրոնացած դասերի ընթացքում:

Պարագաներ

1 x Ազնվամորի Pi 4 (55 €)

1 x steppenmotor վարորդով (5 եվրո)

2 x 12v 6800 mAh մարտկոց (2x 20 €)

2 x հետընթաց մոդուլ (2x 5 եվրո)

1 x 16x2 LCD (1,5 €)

Սենսորներ ՝ 1x MQ8, 1x MQ4, 1x MQ7, 1x MQ135, 1x HNT11, 1x TMP36 (1 x 23 եվրո)

IC- ներ ՝ 1x MCP3008, 2x 74hc595AG (1x € 2.30, 2x € 0.40)

LED- ները ՝ 2x կանաչ, 2x կարմիր, 3x դեղին (հայտնաբերված են հին սարքավորումներում, նորմալ ՝ 0,01 եվրո յուրաքանչյուրը)

Մարտկոցների միակցիչ (2 x 0.35 €)

40 f-to-f միակցիչ մալուխներ (1,80 եվրո)

40 f-to-m միակցիչ մալուխներ (1,80 եվրո)

20 մ-ից-մ միակցիչ մալուխներ (1,80 եվրո)

2 x PCB զոդման համար (2x 0,70 €)

Գործիքներ:

Sոդման երկաթ (նախընտրելի է 60 Վտ)

Թիթեղը զոդման համար

Ալյումինե թերթ 50x20

Պատյան (ես օգտագործել եմ հին մինի համակարգչի պատյան)

Սա կարող է հեշտությամբ լինել ինչ -որ MDF կամ սեփական գաղափարներ:

Քայլ 1: Կարգավորեք ձեր RPi- ն

Ձեր RPi- ի կարգավորում
Ձեր RPi- ի կարգավորում

Այսպիսով, մեր սիրտը, մեր ուղեղը և մեր հոգին գտնվում են այս արտադրանքի մեջ: Լավ սպառնացեք դրան, քանի որ դա կարող է ձեզ ինչ -որ կերպ վնասել: Ես օգտագործում եմ RPi 4B 4gb, մյուս մոդելները պետք է լավ աշխատեն: Դուք կարող եք ակնկալել ավելի ուշացում հին մոդելների նկատմամբ:

Մենք OS- ն ստացանք մեր դպրոցից `նախապես տեղադրված ծրագրակազմով, օրինակ` phpMyAdmin:

Առաջին հերթին համոզվեք, որ ssh- ի միջոցով կարող եք միանալ ձեր Raspberry Pi- ին, մեզ դա շատ ժամանակ կպահանջվի:

Այսպիսով, նախ մենք պետք է միացնենք SPI ավտոբուսը, GPIO- կապերը և անջատենք այլ ավտոբուսներ, դրանք մեզ պետք չեն գալու:

Դուք կարող եք դա անել raspi-config ընտրացանկում: Նավարկեք դեպի միջերեսներ և սովորաբար միացրեք GPIO- ն և SPI- ը: Անհրաժեշտ չի լինի, քանի դեռ այստեղ եք, ընդլայնեք ձեր պահեստը `անցնելով առաջադեմին, այնուհետև սեղմեք enter- ի ընդլայնման պահեստի վրա:

Այժմ վերագործարկեք: Մեզ անհրաժեշտ կլինեն որոշ ընդարձակումներ ՝ մեր pi- ում VS կոդն օգտագործելու, մեր սերվերն ու տվյալների բազան գործարկելու համար:

VS Code Extension- ի տեղադրման գործընթացը կարող եք գտնել այստեղ:

Այժմ մենք տեղադրելու ենք ընդարձակումներ մեր սերվերի և տվյալների բազայի համար: Օգտագործեք տերմինալը և տիպի «python install flask, flask-cors, mysql-python-connector, eventlet» սպասեք մինչև ավարտը:

Այժմ մենք կարող ենք սկսել նախագծի ստեղծումից:

Քայլ 2: MCP3008 + TMP36

MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36

Այսպիսով, մենք ունենք 6 տվիչ ՝ 4 գազ, 1 խոնավություն + ջերմաստիճան և 1 ջերմաստիճանի տվիչ: Իրական խնդիր է նրանց աշխատեցնելը: Բոլոր սենսորները անալոգային տվիչներ են, ուստի մենք պետք է անալոգային ազդանշանը վերածենք թվային ազդանշանի: Դա պայմանավորված է նրանով, որ RPi- ն (Rasberry Pi) կարող է «հասկանալ» միայն թվային ազդանշանները: Լրացուցիչ տեղեկությունների համար կտտացրեք այստեղ:

Այդ առաջադրանքը կատարելու համար ձեզ հարկավոր կլինի MCP3008, սա հիանալի կկատարի աշխատանքը:

Այն ունի 16 նավահանգիստ ՝ հաշվելով վերևից (փոքր պղպջակը) ձախ, ներքև, մյուս կողմը և վերևը: Pin1-8- ը մեր տվիչներից անալոգային ազդանշանի մուտքերն են: Մյուս կողմում գտնվող 9 -ը GND է, այն պետք է միացված լինի ամբողջական սխեմայի GND- ին, հակառակ դեպքում դա չի աշխատի: 10-13 կապը պետք է ավելի ուշադիր միացվի, դրանք տվյալներ կփոխանցեն դեպի RPi և դեպի այն: 14 -րդ կապը մեկ այլ GND է, իսկ 15 -րդ և 16 -րդ կապերը VCC- ն են, դրանք պետք է կապված լինեն շղթայի դրական կողմին:

Ահա էլեկտրագծերի տեղադրման դասավորությունը.

  • MCP3008 VDD դեպի արտաքին 3.3V MCP3008 VREF դեպի արտաքին 3.3V
  • MCP3008 AGND արտաքին GND- ին
  • MCP3008 DGND դեպի externalGND
  • MCP3008 CLK դեպի Raspberry Pi կապում 18
  • MCP3008 DOUT դեպի Raspberry Pi կապ 23
  • MCP3008 DIN մինչև Raspberry Pi կապում 24
  • MCP3008 CS/SHDN մինչև Raspberry Pi կապում 25

Սա նաև լավ ժամանակ է GND- ն RPI- ից արտաքին GND- ին միացնելու համար: Սա կդարձնի էլեկտրիկություն հոսող RPi- ից:

Ահա, թե ինչպես ճիշտ միացնել այն:

Համոզվեք, որ ճիշտ ուղին եք միացնում, հակառակ դեպքում կարող եք ամեն ինչ կարճ միացնել:

Կոդի առաջին կտորը տեղադրվում է այստեղ:

Դուք կարող եք պատճենել իմ կոդը իմ նախագծի github- ից մոդելների տակ: Analog_Digital:

Էջի ներքևում կգտնեք այն աշխատելու աղբյուրի կոդը:

Բայց մեզ պետք է մեր առաջին սենսորը, որպեսզի կարողանանք փորձարկել:

Մենք պետք է փորձարկենք մեր տվիչը, եթե այն աշխատում է: Միացրեք 3.3 Վ կամ 5 Վ սնուցման սարքը TMP36- ի դրական կողմին: Չմոռանաք այն միացնել նաև GND- ին, սա գուցե հիմարություն է, բայց հավատացեք ինձ: Դա իրականություն է;) Ձեր բազմիմետրով կարող եք ստուգել տվիչի ելքը, սա միջին քորոցն է: Այս պարզ հավասարման միջոցով դուք կարող եք ստուգել ջերմաստիճանը ° C- ում: ((միլիվոլտ*մուտքային լարումը) -500)/10 և voila donne! Yeտեսություն Դե, ոչ, հա, մեզ պետք է MCP3008: Միացրեք ձեր TMP36- ի անալոգային քորոցը MCP3008- ի առաջին մուտքագրիչին: Սա 0 փին է:

Այս MCP դասի համար կարող եք օգտագործել ներքևի օրինակը: Կամ մի բան, որը դուք կգտնեք առցանց, աշխատանքը լավ կանի:

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

Այսպիսով, մենք, որ կարող ենք կարդալ մեր առաջին սենսորում, պետք է այն մուտքագրենք տվյալների բազա: Սա մեր ուղեղի հիշողությունն է: Ես նախագծել եմ այս տվյալների բազան `ընդարձակվող և հեշտությամբ փոփոխելի ապագա փոփոխությունների համար:

Այսպիսով, նախ մենք պետք է մտածենք, թե ինչ ենք ստանալու որպես մուտքագրում, և եթե մենք պետք է մուտքագրենք որոշակի իրեր, ինչպիսիք են որոշ օբյեկտների կարգավիճակը:

Իմ պատասխանը կլինի. Մուտքագրում 6 սենսորից, այնպես որ մենք պետք է կազմենք սենսորային սեղան, այս սենսորներով մենք արժեքներ կստեղծենք: Ի՞նչն է կապված արժեքի հետ: Ինձ համար դա պատուհանի կարգավիճակն է, բաց է, թե փակ, մինչդեռ սենսորը չափում էր արժեքը: Բայց գտնվելու վայրը նաև գործոն է իմ արժեքի համար, ուստի մենք դրան կավելացնենք: Արժեքի ժամանակը և ամսաթիվը նույնպես կարևոր են, ուստի ես դրան կավելացնեմ:

Հետագա ընդլայնման համար ես ավելացրեցի օգտվողների աղյուսակ:

Աղյուսակների արժեքները, սեղանի հասցեն (կապված սենյակի հետ), սեղանի սենյակը (կապված արժեքի հետ), սեղանի պատուհանը (կապված արժեքի հետ), սեղանի ցուցիչը (կապված արժեքի հետ) և աղյուսակը վայրի բնության համար օգտվողներ:

Ինչ վերաբերում է աղյուսակները միմյանց կապելուն: Յուրաքանչյուր արժեքի համար անհրաժեշտ է մեկ սենսոր, մեկ պատուհան, սենսորի համար մի արժեք, նույնականացում, որպեսզի մենք կարողանանք արժեքը դարձնել եզակի, ժամկետային նշան այն արժեքի համար, երբ այն պատրաստվել է, և վերջին հաշվով մեզ անհրաժեշտ չէ սենյակ, որն ընտրովի է, բայց կարող է լինել ավելացվել է:

Այսպիսով, այսպիսին է հիմա: Սա այն է, ինչ ես օգտագործում եմ իմ մնացած նախագծի համար:

Քայլ 4: HNT11, իսկական տղաների համար

Այսպիսով, քանի որ մեզ թույլ չէին տալիս օգտագործել ցանկացած տեսակի գրադարաններ: Մենք պետք է ամեն ինչ ինքներս ծրագրենք:

HNT11- ը միալար համակարգ է, այնպես որ դա նշանակում է, որ դուք ունեք GND և VCC, ինչպես ցանկացած այլ էլեկտրոնային սարք, բայց 3-րդ քորոցը մուտքի և ելքի քորոց է: Այնպես որ, դա տարօրինակ է, բայց ես շատ բան եմ սովորել դրանից:

Միացրեք VCC- ն արտաքին 3.3V- ին և GND- ը արտաքին GND- ին:

DHT11- ի տվյալների թերթիկը պարունակում է ամեն ինչ այս տվիչներից օգտվելու համար:

Մենք կարող ենք որոշել, որ բարձր բիտը պարունակում է ցածր և բարձր բիթ: Բայց բարձր մասի տևողությունը իրականում որոշում է բիթը: Եթե բարձր մասը արտանետվում է ավելի քան 100μs (նորմալ 127μs), բիթը բարձր է: Բիթը 100 մկ -ից կարճ է (նորմալ 78 մկ -ի սահմաններում) բիթը ցածր է:

Երբ HNT11- ը միացված է, այն կսկսի ազդակներ արձակել: Սա միշտ 41 բիթ է: Այն սկսվում է սկզբից, սա ոչինչ չի նշանակում, որպեսզի կարողանանք բաց թողնել այս մեկը: Առաջին 16 բիթ/ 2 բայթը խոնավության ամբողջ և բոց մասն է: Նույնն է վերջին 2 բայթերի համար, բայց հիմա ջերմաստիճանի համար է:

Այսպիսով, մենք միայն պետք է հաշվարկենք յուրաքանչյուր բիտի տևողությունը, որից հետո մենք ավարտված ենք:

DHT11- ի տակ գտնվող կոդի մեջ դուք կգտնեք այս խնդիրը լուծելու իմ մեթոդը:

Քայլ 5: Գազի տվիչներ (միայն լեգենդներ)

Գազի տվիչներ (միայն լեգենդներ)
Գազի տվիչներ (միայն լեգենդներ)
Գազի տվիչներ (միայն լեգենդներ)
Գազի տվիչներ (միայն լեգենդներ)

Այսպիսով, նախագծի սկզբում ես մտածեցի, որ շատ սենսորներ օգտագործելը հիանալի գաղափար կլիներ: Գործելուց և տեղական գնումներ կատարելուց առաջ մտածեք, սա ձեզ կփրկի քնի շատ ժամեր: Քանի որ դուք կարող եք սկսել ավելի վաղ, և դա ավելի պատրաստակամ կդարձնեք դրան գնալ:

Այսպիսով, ես ունեմ 4 գազի տվիչ: Այս բոլոր սենսորները MQ135, MQ8, MQ4 և MQ7 ունեն հատուկ գազեր, որոնք նրանք չափում են ամենալավը: Բայց դրանք բոլորը տարբեր են իրենց կազմաձևով:

Այսպիսով, սկզբում ես օգտագործեցի տվյալների թերթիկը, սա ինձ ոչ մի ցանկություն չդրեց: Հետո ես փնտրեցի կոդի օրինակներ: Այն, ինչ գտա, մեկ գրադարան էր Ադաֆրուտից: Փորձեցի հնարավորինս լավ կրկնել այն: Այն աշխատել է չորս սենսորներից մեկի հետ:

Թողեցի որոշ ժամանակ հանգստանա և վերադարձա դրան:

Այն, ինչ ես արեցի, որպեսզի այն աշխատի այդ մեկ սենսորի համար.

- Ես օգտագործել եմ տվյալների թերթիկը `նշելու գազի այն կետերը, որոնք ցանկանում էի չափել: Այսպիսով, 1 ռ/օր մինչև 400 էջ/րոպե, 1,2 -ից 600 էջ/րոպե…

- Հետո ես այդ բոլոր կետերը դրեցի գերազանցության մեջ և հանեցի կորի բանաձևը: Ես դա պահեցի իմ տվյալների բազայում:

- Տվյալների թերթիկից ես կարդացի նաև նորմալ դիմադրությունը և մաքուր օդի դիմադրությունը: Այս արժեքները նույնպես պահվում են տվյալների բազայում:

Այս ամենը լցրեցի ինչ -որ կոդի մեջ, սա կարող եք գտնել որպես MCP3008 դասի վերջին երեք գործառույթներ: Բայց սա դեռ ավարտված չէ, ցավոք, ես բավարար ժամանակ չունեի:

Քայլ 6. Shiftregister, 74HC595AG

Shiftregister, 74HC595AG
Shiftregister, 74HC595AG
Shiftregister, 74HC595AG
Shiftregister, 74HC595AG
Shiftregister, 74HC595AG
Shiftregister, 74HC595AG
Shiftregister, 74HC595AG
Shiftregister, 74HC595AG

Այսպիսով, սա IC է: Եվ դա առանձնահատուկ բան է անում, այս սարքով հնարավոր է ավելի քիչ GPIO ելքեր օգտագործել նույն ելքային ազդանշանի համար: Ես սա օգտագործեցի LCD (Liquid Crystal Display) և իմ լուսարձակների համար: Ես ցույց կտամ IP հասցեն LCD- ում, որպեսզի բոլորը կարողանան զննել կայքը:

LED- ները իմաստուն կերպով ընտրում են 2 կարմիր, 3 դեղին և 2 կանաչ: Սա ցանկացած պահի ցույց կտա սենյակի օդի որակը:

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

Ինչպե՞ս օգտագործել IC- ն: Դե, դուք ունեք 5 մուտք և 9 ելք: 8 տրամաբանական ելք 8 կապի համար, այնուհետև 9 -րդ փին ՝ մնացած տվյալների փոխանցումն այլ shiftregister- ին:

Այսպիսով, մենք կապում ենք 16 -րդ կապը արտաքին VCC- ին, հաջորդ փինն առաջին ելքն է, ուստի LCD- ի համար մենք դրա կարիքը կունենանք: Pin 14 -ը տվյալների գիծ է, այստեղ մենք տվյալներ կուղարկենք: 13 -րդ կապը անջատիչի միացումն է, ցածր ազդանշանը թույլ է տալիս IC- ին, այն անջատելու համար անհրաժեշտ է բարձր ազդանշան: Պին 12 -ը այն քորոցն է, որտեղ մենք կարող ենք որոշել, թե երբ է բիթը ուղարկվել, երբ դուք այն իջեցնում եք ներքևից այնպես, որ բարձրից ցածր այն կարդա 13 -րդ կապի ազդանշանի կարգավիճակը և պահի այն իր 8 բիթանոց հիշողության մեջ: Պին 11 -ը նման է, երբ այս քորոցը բարձր է դրված, այնուհետև ցածր այն դուրս է բերում 8 բիթ իր պորտին: Եվ վերջին քորոցը, 10 -ը հիմնական վերակայումն է, այս քորոցը պետք է բարձր մնա, հակառակ դեպքում այն չի աշխատի: Վերջին կապը GND կապ 8 -ն է, որը մենք պետք է միացնենք արտաքին GND- ին:

Այսպիսով, այժմ կապեք կապերը, թե ինչպես ձեզ դուր կգա ազնվամորի պիին: Ինչպես ես դա արեցի, դա նրանց հնարավորինս սերտ կապելն էր ՝ համոզվելու համար, որ ես գիտեի, թե որտեղ են նրանք:

Երբ ճիշտ ելք ես ստանում: Դուք կարող եք այն զոդել PCB- ով `LED- ների միջոցով: և 220 Օմ դիմադրիչներ: IC- ի ելքը միացրեք համապատասխան led- ին: Այժմ դուք պետք է ունենաք նման բան:

Դուք կարող եք գտնել իմ փորձարկման կոդը այստեղ Shiftregister- ում: Երբ աշխատում եք 74HC595N- ով, ձեզ MR- ի կարիք չի լինի, որպեսզի կարողանաք այն միացված չթողնել:

LCD- ն գրեթե նույնն է: Բավականին հեշտ է օգտագործել այն shiftregister- ի հետ, որովհետև LCD- ի մուտքը հենց մուտքային հերթափոխի գրանցիչն է:

LCD- ի համար կա այլ կոդ, որն այն դարձնում է աշխատող, բայց դա բավականին նույնն է, ինչ պարզապես shifregister- ը: Փորձարկման կոդը կարող եք գտնել այստեղ ՝ LCD- ի ներքո:

Քայլ 7: Frontend, արժեքավոր դաս

Այսպիսով, այստեղ ես կթափառեմ: Սա մի հատված է, թե ինչպես պետք է դա անել: Սա սովորած շատ արժեքավոր բան է:

Կատարեք ֆրոնտենտը հետնապահից առաջ !!!!

Ես դա արեցի հակառակը: Ես անիմաստ զանգեր եմ կատարել իմ տվյալների բազայի համար, ես շատ ժամանակ եմ ծախսում դրա վրա:

Վայրէջքի էջում ինձ անհրաժեշտ էր ընթացիկ ջերմաստիճանը և խոնավությունը և բոլոր գազի տվիչների արժեքները գեղեցիկ գծապատկերում: Նաև պետք է ցույց տամ RPi- ի ip հասցեն:

Սենսորների էջում ինձ անհրաժեշտ է մեկ սենսորի ընտրություն և ընտրության ժամանակ: Ես ընտրեցի մեկ օր ընտրելու համար, այնուհետև այդ օրվանից սկսած ժամանակահատվածը: Դա ինձ համար շատ ավելի հեշտացրեց, քանի որ ես կարող էի ավելի շատ վերահսկել այն:

Վերջնական էջում, կարգավորումների էջում հնարավոր է կառավարել որոշակի արժեքներ, ինչպիսիք են առողջ վտանգավոր կամ վտանգավոր գազերի և ջերմաստիճանի մակարդակները: Կարող եք նաև կատարել RPi- ի վերագործարկում, եթե դրա կարիքը զգում եք:

Այսպիսով, նախ ես ձևավորեցի դիզայն, որպեսզի հեշտությամբ սկսեի աշխատել ծածկագրման մասի վրա: Ես աստիճանաբար առաջընթաց գրանցեցի մեկ առ մեկ: Առաջադրանքը առաջին հերթին շարժական էր, այնպես որ ես առաջին հերթին կկենտրոնանամ դրա վրա: Հետո ես ճանապարհ կընկնեմ դեպի ավելի մեծ էկրաններ:

Դուք կարող եք գտնել իմ էջերը, css և js իմ Github- ում:

Քայլ 8: Հետնապահ

Այս մասը այն հատվածն է, որը ես խառնել եմ ֆրոնտենդի հետ: Երբ ես ինչ -որ բան պատրաստեցի ֆրոնտենդի համար, այն ստիպեցի աշխատել հետին պլանի վրա: Այսպիսով, այն հետագայում վերանայման կարիք չի ունենա: Սա այն էր, ինչ ես ի սկզբանե չէի անում, և դրա պատճառով, անշուշտ, 2 շաբաթ ժամանակ կորցրեցի: Հիմար ինձ! Բայց մի դաս, որը ես ուրախությամբ վերցնում եմ այլ նախագծերի:

Այսպիսով, երբ պատրաստում եք հետին պլան, պատրաստեք մի բան, որը կօգտագործեք: Բայց դարձրեք այն ապագա ապացույց ՝ դարձնելով այն բազմակի օգտագործման և ոչ կոշտ կոդավորված: Այսպիսով, երբ ինձ պետք են իմ DHT11- ի վերջին 50 արժեքները, ես ստուգելու եմ, որ արժեքներ ստեղծվու՞մ են: Այո, ինչպես կարող եմ դրանք տեղադրել տվյալների բազայում: Ինչպես կարող եմ դրանք հանել տվյալների բազայից: Ինչպե՞ս ցույց տամ դա: Գրաֆիկ, գրաֆիկ, թե՞ պարզապես պարզ տվյալներ: Հետո ես նոր երթուղի եմ պատրաստում ՝ տարբեր պարամետրերով և հատկություններով, ինչպիսիք են ամսաթվերը, հատուկ զգայական անունները կամ այն, ինչ ես կանչելու եմ: Ես նկատի ունեմ, որ ես կանչում եմ բոլոր արժեքները MQ սենսորներից, թե՞ ես անվանում եմ MQ ունեցող բոլոր տվիչներին իր անունով: Այնուհետև ես որոշ սխալների կառավարում եմ մտցնում: Երբ զանգի խնդրանքը ճիշտ մեթոդ է, այնուհետև այն կարող է շարունակվել, հակառակ դեպքում այն ստանում է գեղեցիկ սխալ:

Նաև այստեղ են գտնվում թելերը, դրանք ծրագրաշարի կտորներ են, որոնք թույլ են տալիս գործարկել զուգահեռ ծածկագիր: Կարող եք գործարկել վեբ կայքերի զանգերը, արժեքների ստեղծման գործառույթը և led+shiftregister- ը: Այս գործառույթները գործում են միմյանցից լիովին անկախ:

Այսպիսով, առաջնորդների համար: Ես կազմել եմ CO2- ի ստորին/ առողջ արժեքը: Այս արժեքը եկավ կառավարական բազմաթիվ աղբյուրներից: Դասարանների համար առողջ արժեքը կազմում է 600 ppm CO2- ից մեկ խորանարդ մետրի համար: Անառողջ արժեքը 2000 ppm- ից բարձր ամեն ինչ է: Այսպիսով, LED- ները կամուրջ են ստեղծում: Եթե MQ4 սենսորի արժեքը 1400 է, այն ավտոմատ կերպով կհաշվարկվի, թե վտանգի որ մակարդակում է այն: 2000 - 600 = 1400, այնպես որ ընդհանուր տիրույթը 1400 /7 = 200 է: Այսպիսով, երբ արժեքը հասնում է 550 -ի, այն ցույց է տալիս կանաչ լեդ: 750 -ը ցույց է տալիս 2 կանաչ լեդ, 950 1 դեղին 2 կանաչ լեդ: Եվ այսպես շարունակ:

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

Մենք կարող ենք նաև ծխի գազեր հայտնաբերել, երբ հրդեհ է բռնկվում: Այն նաև գրանցում է սա: Երբ այն անցնում է որոշակի արժեքից, ահազանգը միանում է, և LED- ը թարթում է:

LCD- ը հիմնականում այնտեղ է ՝ IP հասցեն ցույց տալու համար, որպեսզի կարողանաք թերթել կայքը:

Դուք կարող եք գտնել ամեն ինչ + ծածկագիր իմ Githubin app.py- ի ներսում

Քայլ 9: Պատյան պատրաստելը

Գործի պատրաստում
Գործի պատրաստում
Գործի պատրաստում
Գործի պատրաստում
Գործի պատրաստում
Գործի պատրաստում

Ես գտա համակարգչի փոքրիկ պատյան ՝ իմ բոլոր բաղադրիչների համար:

Ես կտրեցի ալյումինե թերթը չափի մեջ: Եվ մի քանի անցք բացեց, որտեղ թերթիկը կհանգստանար: Սա համապատասխանում է մայր տախտակի անցքերին:

Հետո ես նայեցի, թե ինչպես է ամեն ինչ տեղավորվում պատյանի ներսում: Ես ամեն ինչ դրեցի և սկսեցի շարժվել:

Երբ ես գոհ էի, թե ինչպես է այն աշխատելու, ես սկսեցի նշել այն անցքերը, որոնք ինձ անհրաժեշտ էին սենսորների, RPi- ի, PCB- ի, հզորության և ստեպենոմոտորային մոդուլի համար: Անցքերը նախատեսված են PCB- ի փակման համար: Սա որոշակի տարածք կբարձրացնի, որպեսզի մետաղական մասերը շփման մեջ չլինեն ալյումինե թերթի հետ: Այն նաև տալիս է գեղեցիկ տեսք:

Ես յուրաքանչյուր IC- ից կամ այլ սարքից բռնեցի մալուխները և դրանք կապեցի իրար: Սա այն պատճառով է, որ ես կարող էի տեսնել, թե ինչ մալուխներ են ինչի համար: Ես ամեն ինչ գեղեցիկ տեղադրեցի որոշ կանգառների վրա և օգտագործեցի մի քանի ընկույզ և պտուտակներ ՝ ամեն ինչ գեղեցիկ տեղում պահելու համար:

Այս ամենը սնուցելու համար ես օգտագործեցի 2 մարտկոց: Սրանք մեծ էներգիա են տալիս, բայց դրանք դեռ մարտկոցներ են, ուստի դրանք ժամանակի ընթացքում կսպառվեն: Ես դրանք տեղադրեցի որոշ Velcro- ով: Ես օգտագործեցի velcro, քանի որ այդ ժամանակ ես հեշտությամբ կարող էի փոխարինել կամ ազատվել մարտկոցներից:

Տափաստանի շարժիչը, LCD- ն ու LED- ները դուրս կգան պատյանի վերևից: Այսպիսով, ես զգուշորեն դրեցի գործի կափարիչը վերևում և նշեցի անցքերը և դրանք փորեցի փորվածքով: Այսպիսով, մենք հեշտությամբ կարող ենք տեսնել ամեն ինչ:

Երբ գործն ավարտված է, մենք պետք է ամեն ինչ լարենք, այստեղ կարող եք գտնել էլեկտրագծերի սխեման:

Քայլ 10. Գնահատում և եզրակացություն

Գնահատում և եզրակացություն
Գնահատում և եզրակացություն

Այսպիսով, սա/էր իմ առաջին նախագիծը:

Կարծում եմ, նորմալ է թվում:

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

Կենտրոնացեք միաժամանակ 1 բանի վրա: Wantանկանու՞մ եք ջերմաստիճանը ձեր էկրանին: Արեք սա, սա և այն: Մի սպասեք և մի փորձեք թույլ տալ, որ այն անցնի: Դա չի օգնի: Եվ դա կկորցնի ձեզ այդքան թանկարժեք ժամանակը:

Նաև 4 շաբաթը շատ ժամանակ է թվում: Բայց ավելի քիչ է ճշմարիտ: Սա պարզապես ճիշտ չէ: Դուք ունեք ընդամենը 4 շաբաթ: Առաջին 2 շաբաթը իրականում այնքան էլ ճնշում չէր: 3 շաբաթ ավարտելը և 4 շաբաթը անքուն գիշեր: Ահա թե ինչպես չպետք է դա անեք:

Ես գուցե մի փոքր հավակնոտ էի. Ես սուպեր փոքր պատյան եմ, սենսորներ, մարտկոցներ օգտագործելը հեշտ չէ … Դարձրեք այն շատ ավելի պարզ, այնուհետև աստիճանաբար ավելի ու ավելի դժվարացրեք, միայն այդ դեպքում դուք կստանաք լավ նախատիպ/ ապրանք:

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