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

Bluetooth ջերմաչափ ՝ 8 քայլ
Bluetooth ջերմաչափ ՝ 8 քայլ

Video: Bluetooth ջերմաչափ ՝ 8 քայլ

Video: Bluetooth ջերմաչափ ՝ 8 քայլ
Video: Zigbee/Bluetooth Smart Brightness Thermometer Light Sensitive Temperature and Humidity Detector 2024, Հուլիսի
Anonim
Bluetooth ջերմաչափ
Bluetooth ջերմաչափ
Bluetooth ջերմաչափ
Bluetooth ջերմաչափ
Bluetooth ջերմաչափ
Bluetooth ջերմաչափ

Այս հրահանգը մանրամասնում է պարզ 2 -ալիքային ջերմաչափի պատրաստումը `օգտագործելով 100K տերմիստոր զոնդեր, Bluetooth մոդուլ և սմարթֆոն: Bluetooth մոդուլը LightBlue Bean է, որը նախատեսված էր պարզեցնելու Bluetooth Low Energy հավելվածի զարգացումը ՝ օգտագործելով մոդուլը ծրագրավորելու համար ծանոթ Arduino միջավայրը:

Որոշ ժամանակ սայթաքելուց հետո ՝ պարզելու, թե ինչպես կարելի է ջերմաստիճանի տվյալները ստանալ Bluetooth մոդուլից դեպի iPhone, գտա EvoThings անունով ծրագիր, որը զգալիորեն պարզեցրեց ծրագրի զարգացման կողմը: Ես չունեմ Mac (գիտեմ, ցնցող է), որը սահմանափակում է iPhone- ի ծրագիր մշակելու իմ ունակությունը, և ես ժամանակ չունեմ վերծանելու Microsoft- ի նոր գործիքները, որոնք ակնհայտորեն աջակցում են խաչաձև հարթակի մշակմանը iOS- ի և Android- ի համար: Ես կատարել եմ մի քանի HTML5 ոճի հավելվածներ, բայց Bluetooth- ի տվյալները ստանալու միակ միջոցը Cordova- ի համար նախատեսված հավելումներն են, որոնք ավելի շատ մարտահրավեր էին թվում, քան ժամանակ ունեի: EvoThings- ը տրամադրում է շատ հեշտ օգտագործման գործիքների շարք, որոնք Bluetooth-to-iPhone մարտահրավերը վերածեցին թխվածքաբլիթի: Եվ ես սիրում եմ տորթ:

Ընդհանուր առմամբ, ես գտա, որ Lightblue Bean- ի և EvoThings- ի համադրությունը շատ գործնական լուծում է `ցածր ներդրումներով:

Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի

Իրեր, որոնք ձեզ պետք կգան
Իրեր, որոնք ձեզ պետք կգան
Իրեր, որոնք ձեզ պետք կգան
Իրեր, որոնք ձեզ պետք կգան
Իրեր, որոնք ձեզ պետք կգան
Իրեր, որոնք ձեզ պետք կգան

Ես օգտագործել եմ մեկ ալիքի առևտրային հասանելի թերմիստորային զոնդ, քանի որ ցանկանում էի, որ թերմիստորը կնքված լինի հեղուկների մեջ ընկղմվելու համար: Երկրորդ ալիքի համար ես պատրաստեցի մի հիմնական զոնդ թերմիստորից, մոտ 26 չափիչ մետաղալարից և ականջակալների 3.5 մմ վարդակից: Դուք ազատ եք օգտագործել ցանկացած թերմիստոր, որը ցանկանում եք, և կարող եք ինքներդ պատրաստել զոնդեր ջերմահաղորդիչ էպոքսիդից և պլաստմասե ծղոտներից/սուրճի խառնիչներից, օրինակ: Այն, ինչ հետևում է, այն է, ինչ ես օգտագործել եմ. Այն նախատեսված չէ ցուցումներ տալու համար:

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

  • 1 x 100K Thermistor զոնդեր: Մոդել Extech TP890: Սրանք սովորաբար հասանելի են ebay- ում և amazon- ում:
  • 2 x 2.5 մմ ստերեո խցիկ, որը համապատասխանում է Extech զոնդերի 2.5 մմ խրոցակին: Ես հին համակարգչից մաքրեցի 3.5 մմ վարդակներ, այնպես որ ես կտրեցի վարդակը Extech զոնդից և այն փոխարինեցի 3.5 մմ խրոցակով: Դուք պետք է խուսափեք դրանից պարզապես 2.5 մմ խցիկներ օգտագործելու կամ 2.5-ից 3.5 մմ ստերեո ադապտեր խրոցակի օգտագործմամբ:
  • 100K թերմիստորի ուլունք գումարած 26 չափիչ մետաղալար գումարած 3.5 մմ ստերեո վարդակից, եթե ցանկանում եք ինքներդ սարքել զոնդը: Եթե ոչ, գնեք երկրորդ Extech զոնդը:
  • 1 x Lightblue Bean by Punch Through Designs: Սա Bluetooth մոդուլ է `ծրագրավորվող որպես Arduino զարգացման տախտակ: Մոդուլը մի փոքր թանկ է, բայց այն հեռացնում է շատ բարդություններ: Նրանք իրականացնում են Kickstarter արշավ հաջորդ սերնդի սարքի համար, որը գուցե արժե հաշվի առնել:
  • 2 x 1/4W 100K ռեզիստորներ, որոնք օգտագործվում են թերմիստորների համար հղման լարումը բաժանելու համար: Ես օգտագործել եմ 5% ռեզիստորներ, բայց ավելի բարձր հանդուրժողականության դիմադրողները, ընդհանուր առմամբ, ավելի քիչ զգայուն են ջերմաստիճանի համար և կապահովեն ավելի լավ կատարում: 1% -ը դրա համար լավ հանդուրժողականության արժեք է:
  • Oldոդման երկաթ և զոդ
  • Հաղորդալար կտրիչներ և մի փոքր երկարություններ ՝ 26 կամ 28 չափիչ կապող մետաղալարով:

Softwareրագրակազմ և ծրագրակազմ

  • Bean- ը ծրագրավորելու համար ձեզ հարկավոր կլինի Bean Loader ծրագիրը: Ես օգտագործել եմ պատուհաններ, այնպես որ բոլոր հղումները կլինեն Windows- ի համար հատուկ: Այն ամենը, ինչ ձեզ հարկավոր է Bean- ով սկսելու համար, ներառյալ Arduino- ի առանձնահատկությունները, հասանելի են LightBlueBean կայքից
  • Սմարթֆոնների հավելվածի համար նախատեսված EvoThings աշխատասեղանը հասանելի է այստեղ: «Սկսելու» բոլոր փաստաթղթերը հասանելի են նաև այնտեղ: Շատ լավ փաստագրված է:

Քայլ 2. Շղթայի և էլեկտրական շինարարություն

Շղթայական և էլեկտրական շինարարություն
Շղթայական և էլեկտրական շինարարություն
Շղթայական և էլեկտրական շինարարություն
Շղթայական և էլեկտրական շինարարություն
Շղթայական և էլեկտրական շինարարություն
Շղթայական և էլեկտրական շինարարություն

Թերմիստորը ջերմաստիճանից կախված դիմադրություն է: Extech զոնդը ունի բացասական ջերմաստիճանի գործակից, ինչը նշանակում է, որ ջերմաստիճանի բարձրացման հետ մեկտեղ դիմադրությունը նվազում է: Դիմադրության արժեքը չափվում է մի պարզ սխեմայով, որը մի ոտքում թերմիստորով ստեղծում է լարման բաժանարար, իսկ մյուսում `ֆիքսված 100K դիմադրություն: Բաժանված լարումը սնվում է Bean- ի անալոգային մուտքի ալիքով և նմուշառում է որոնվածը:

Շղթան կառուցելու համար ես հին կոտրված համակարգչից մաքրեցի 3.5 մմ ձայնային խցիկներ: PCB- ի երկու կետերը որոշելու համար, որոնք համապատասխանում էին զոնդի ծայրին և առաջին գոտուն, օգտագործվել է բազմաչափ: Լարերը կպցվել էին աուդիո խցիկներին և Bean- ին, ինչպես ցույց է տրված նկարներում: Աուդիո խցիկները խրված էին Լոբի նախատիպի տարածքի վրա `օգտագործելով երկկողմանի ժապավեն: Իմ օգտագործած ժապավենը ավտոմոբիլային դասի երեսպատման ժապավեն է, որը շատ ամուր կապ է ստեղծում քարշակների մասերի միջև:

Քայլ 3: Հետաքննության գործակիցներ

Հետաքննության գործակիցներ
Հետաքննության գործակիցներ

Որքան էլ սովորական է Extech զոնդը, Շտայնհարթ-Հարթի գործակիցները չեն հրապարակվում ոչ մի տեղ, որտեղ ես կարող էի գտնել: Բարեբախտաբար, կա առցանց հաշվիչ, որը որոշելու է ձեր տրամադրած ջերմաստիճանի 3 չափիչ գործակիցները:

Ո՞ր գործակիցներն են այն հիմնական ընթացակարգը, որով ես գործակիցներին հասնելու համար էի: Ոճի համար ոչ մի միավոր չեմ վաստակի, բայց այնքան լավ, որ կստիպի ձեզ ասել +/- 1 աստիճան ճշգրիտ (ընդհանուր առմամբ `մեծ հարված իմ կողմից)… իհարկե, կախված ձեր տեղեկանքային ջերմաչափի և բազմաչափի ճշգրտությունից: Իմ մուլտիմետրը էժան անանուն բրենդային միավոր է, որը ես գնել եմ շատ տարիներ առաջ, երբ փողը սուղ էր: Փողը դեռ սուղ է և դեռ աշխատում է:

Կալիբրացման համար մեզ պետք է դիմադրության երեք ընթերցում 3 ջերմաստիճանից:

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

    Ջերմաստիճանը Դիմադրություն
    5.6 218K
    21.0 97.1 Կ
    38.6 43.2

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

Այս գրանցված արժեքները վեբ հաշվիչի մեջ միացնելը տալիս է հետևյալը.

Պատկեր
Պատկեր

Գործակիցները (A, B և C) միացված են Ստենհարթ-Հարթի հավասարմանը `ջերմաստիճանը նմուշառված դիմադրության արժեքից ապակայունացնելու համար: Հավասարումը սահմանվում է որպես (աղբյուր ՝ wikipedia.com)

Պատկեր
Պատկեր

Որտեղ T = Kերմաստիճանը Կելվինում

A, B և C- ը Շտայնհարտ-Հարթի հավասարման գործակիցներն են, որոնք մենք փորձում ենք որոշել. R- ը T ջերմաստիճանի դիմադրությունն է

Այս հաշվարկը կկատարի որոնվածը:

Քայլ 4: Fրագրակազմ

Որոնվածը
Որոնվածը
Որոնվածը
Որոնվածը

Թերմիստորի լարումները նմուշառվում են, փոխակերպվում ջերմաստիճանի և Bluetooth- ի միջոցով ուղարկվում սմարթֆոնի վրա աշխատող EvoThings հավելվածին:

Լարը Bean- ի սահմաններում դիմադրության արժեքի փոխարկելու համար օգտագործվում է պարզ գծային հավասարում: Հավասարման ածանցումը տրվում է որպես պատկեր: Ընտրանքային արժեքը լարման փոխարկելու փոխարեն, քանի որ թե՛ ADC- ն, թե՛ մուտքային լարումը վերաբերում են մարտկոցի միևնույն լարման, մենք կարող ենք օգտագործել ADC- ի արժեքը լարման փոխարեն: 10bit Bean ADC- ի դեպքում մարտկոցի լիարժեք լարումը կհանգեցնի ADC- ի 1023 արժեքի, ուստի մենք օգտագործում ենք այս արժեքը որպես Vbat: Բաժանման դիմադրության փաստացի արժեքը կարեւոր նկատառում է: Չափեք 100K բաժանարար դիմադրության իրական արժեքը և օգտագործեք չափված արժեքը հավասարման մեջ `դիմադրության հանդուրժողականության պատճառով սխալների անհարկի աղբյուրից խուսափելու համար:

Երբ դիմադրության արժեքը հաշվարկվում է, դիմադրության արժեքը փոխակերպվում է ջերմաստիճանի `օգտագործելով Շտայնհարթ-Հարթի հավասարումը: Այս հավասարումը մանրամասն նկարագրված է Վիքիպեդիայում:

Քանի որ մենք ունենք 2 զոնդ, իմաստ ուներ զոնդի ֆունկցիոնալությունը պարունակել C ++ դասի մեջ:

Դասը ներառում է Շտայնհարթ-Հարթի հավասարման գործակիցները, բաժանարար դիմադրության անվանական արժեքը և անալոգային պորտը, որին միացված է թերմիստորը: Մեկ մեթոդ ՝ ջերմաստիճան (), փոխակերպում է ADC արժեքը դիմադրության արժեքի, այնուհետև օգտագործում է Շտայնհարթ-Հարթի հավասարումը ՝ Կելվինի ջերմաստիճանը որոշելու համար: Վերադարձի արժեքը բացարձակ զրոյից (273.15K) հանում է հաշվարկված ջերմաստիճանից `provideելսիուսի արժեքը ապահովելու համար:

Lightblue Bean- ի հզորությունն ակնհայտ է նրանով, որ Bluetooth- ի բոլոր գործառույթներն ըստ էության կիրառվում են 1 տող կոդում, որը ընտրանքային ջերմաստիճանի արժեքները գրում է Bluetooth հիշողության քերծվածքային տվյալների տիրույթում:

Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) և ջերմաստիճան [0], 12);

Նմուշառվող ջերմաստիճանի յուրաքանչյուր արժեքը ներկայացված է բոցով, որը զբաղեցնում է 4 բայթ: Քերծվածքների տվյալների տարածքը կարող է պահել 20 բայթ: Մենք օգտագործում ենք դրանցից ընդամենը 12 -ը: Կան 5 զրոյական տվյալների տարածք, այնպես որ կարող եք փոխանցել մինչև 100 բայթ տվյալներ `օգտագործելով քերծվածքային տվյալները:

Իրադարձությունների հիմնական հոսքը հետևյալն է.

  • Ստուգեք ՝ արդյոք ունենք Bluetooth կապ
  • Եթե այո, ապա ընտրեք ջերմաստիճանը և գրեք դրանք քերծվածքների տվյալների տարածքում
  • Քնել 200ms և կրկնել ցիկլը:

Եթե միացված չէ, որոնվածը երկար ժամանակ քնեցնում է ATMEGA328P չիպը: Քնի ցիկլը կարևոր է ուժը պահպանելու համար: ATMEGA328P չիպը անցնում է ցածր էներգիայի ռեժիմի և մնում այնտեղ, մինչև չընդհատվի LBM313 Bluetooth մոդուլով: LBM313- ը կստեղծի ընդմիջում `ATMEGA328P- ն արթնացնելու համար` պահանջվող քնի ժամանակաշրջանի ավարտին, կամ երբ Bluetooth կապ է ստեղծվում Bean- ի հետ: WakeOnConnect ֆունկցիոնալությունը միացված է ՝ հստակ (Bean.enableWakeOnConnect (ճշմարիտ) զանգահարելու դեպքում) ():

Կարևոր է նշել, որ որոնվածը կաշխատի ցանկացած BLE հաճախորդի ծրագրի հետ: Հաճախորդին մնում է միայն քերծվածքների տվյալների բանկից հանել ջերմաստիճանի բայթերը և դրանք նորից հավաքել լողացող կետերի թվերի `ցուցադրման կամ մշակման համար: Ինձ համար ամենահեշտ հաճախորդների ծրագիրը EvoThings- ի օգտագործումն էր:

Քայլ 5: Սմարթֆոնների հավելված

Սմարթֆոնների հավելված
Սմարթֆոնների հավելված

Evo Things- ի ընտրանքային հավելվածը շատ մոտ է այն ամենին, ինչ ինձ պետք էր, միայն չնչին ջանքերով, որոնք պահանջվում էին ավելացնել լրացուցիչ ցուցադրման տարրեր `3 ալիքի ջերմաստիճանի չափման սարքը լրացնելու համար:

EvoThings պլատֆորմի տեղադրումը և հիմնական շահագործումը շատ լավ փաստաթղթավորված են Evo Things վեբ կայքում, այնպես որ այստեղ դա կրկնելը արժեք չունի: Այն, ինչ ես այստեղ կներկայացնեմ, այն հատուկ փոփոխություններն են, որոնք ես կատարել եմ իրենց նմուշի կոդի մեջ `ջերմաստիճանի տեղեկատվության 3 ալիք ցուցադրելու համար, որոնք քաղված են Bluetooth քերծվածքների տվյալների տարածքից:

EvoThings Workbench- ը տեղադրելուց հետո այստեղ կգտնեք Lightblue Bean- ի օրինակը (Windows 64 բիթանոց համակարգիչների վրա).

ThisPC / Documents / EvothingsStudio_Win64_1. XX / Examples / Lightblue-bean-basic / app

Դուք կարող եք index.html և app.js ֆայլերը փոխարինել այս քայլին կցված ֆայլերով: Jacascript ֆայլում կատարված փոփոխությունները քաղում են 3 լողացող կետի ջերմաստիճանի արժեքները `կազմելով քերծվածքների տվյալների տարածքը և HTML ֆայլում ստեղծված նոր տարրերի ներքին HTML- ն:

գործառույթը onDataReadSuccess (տվյալներ) {

var temperatureData = նոր Float32Array (տվյալներ);

var բայթ = նոր Uint8Array (տվյալներ);

var ջերմաստիճան = temperature Տվյալներ [0];

console.log ('readերմաստիճանը կարդալ ՝' + ջերմաստիճան '' C ');

document.getElementById ('temperatureAmbient'). innerHTML = temperatureData [0].toFixed (2) + "C °";

document.getElementById ('temperature1'). innerHTML = temperatureData [1].փաստագրված (2) + "C °";

document.getElementById ('temperature2'). innerHTML = temperatureData [2].փաստագրված (2) + "C °";

}

Քայլ 6: Շրջափակում

Պարիսպ
Պարիսպ
Պարիսպ
Պարիսպ
Պարիսպ
Պարիսպ
Պարիսպ
Պարիսպ

Պարիսպը պարզ տպված տուփ է: Ես դիզայնը ստեղծելու համար օգտագործեցի Cubify Design- ը, բայց 3D մոդելավորման ցանկացած ծրագիր բավական կլինի: STL ֆայլը կցված է ձեր սեփականը տպելու համար: Եթե ես ստիպված լինեի դա ավարտել, ես պատերը կդարձնեի մի փոքր ավելի հաստ, քան այժմ են, և կփոխեի ամրակի դիզայնը, որն ամրացնում է տախտակը տեղում: Տեսահոլովակները շատ հեշտությամբ են կոտրվում, քանի որ սթրեսը գտնվում է smae հարթությունում, քանի որ եռաչափ տպված շերտերն են, որն ամենաթույլ կողմնորոշումն է 3D տպված մասերի համար: Պատերը շատ բարակ են, այնպես որ սեղմման մեխանիզմը մի փոքր թույլ կողմում է: Տուփը փակ պահելու համար ես օգտագործեցի թափանցիկ ժապավեն, քանի որ պատերը չափազանց անթափանց էին `ոչ էլեգանտ, բայց աշխատում է:

Քայլ 7: Համակարգչի կարգավորումներ և Bluetooth կազմաձևում

Համակարգչի կարգավորումներ և Bluetooth կազմաձևում
Համակարգչի կարգավորումներ և Bluetooth կազմաձևում

Bean- ի համար որոնվածի կառուցման և վերբեռնման ցիկլն ամբողջությամբ կատարվում է Bluetooth- ի միջոցով: Միաժամանակ կարող է լինել միայն մեկ ակտիվ Bluetooth կապ: Bean Loader- ը հասանելի է Windows App Store- ից

Հիմնական ցիկլը, որն օգտագործում եմ զուգավորման և միացման համար (և վերանորոգման և նորից միացման դեպքում, երբ ինչ -որ բան սխալ է լինում), հետևյալն է. Կառավարման վահանակից;/Bluetooth- ի կարգավորումները, դուք պետք է տեսնեք հետևյալ էկրանը.

Պատկեր
Պատկեր

Ի վերջո, պատուհանները կհայտնեն «Ready to pair»: Այս պահին կարող եք կտտացնել Bean պատկերակին և որոշ վայրկյաններ անց Windows- ը ձեզ հուշում է մուտքագրել գաղտնաբառ: Լոբու համար կանխադրված գաղտնաբառ է `00000

Պատկեր
Պատկեր

Եթե ծածկագիրը ճիշտ մուտքագրված է, Windows- ը ցույց կտա, որ սարքը պատշաճ կերպով միացված է: Դուք պետք է այս վիճակում լինեք, որպեսզի կարողանաք ծրագրավորել Bean- ը:

Պատկեր
Պատկեր

Youուգակցվելուց և միանալուց հետո օգտագործեք Bean Loader- ը ՝ որոնվածը լոբու վրա բեռնելու համար: Ես գտա, որ սա ավելի հաճախ է ձախողվում, քան ոչ, և թվում էր, որ դա կապված է իմ համակարգչին մոտ լինելու հետ: Տեղափոխեք Bean- ը, մինչև չգտնեք ձեզ համար հարմար վայր: Կան ժամանակներ, երբ ոչինչ չի աշխատի, և Bean Loader- ը կառաջարկի նորից զուգավորել սարքը: Սովորաբար նորից զուգավորման գործընթացի միջոցով նորից կվերականգնվի կապը: Նախքան նորից զուգակցելը, դուք պետք է «Հեռացրեք սարքը»:

Պատկեր
Պատկեր

The Bean Loader գործողությունը խիստ է և լավ փաստաթղթավորված իրենց կայքում: Bean Loader- ը բացված վիճակում ընտրեք « րագիր» ընտրացանկի տարրը ՝ երկխոսություն բացելու համար ՝ այս հրահանգվողի որոնվածի քայլում ներկայացված Hex ֆայլին ծանոթանալու համար:

Պատկեր
Պատկեր

Երբ որոնվածը բեռնված է, ՓԱԿԵՔ Bean Loader- ը, որպեսզի Bean Loader- ի և Bean սարքավորման միջև կապը դադարեցվի: Դուք կարող եք միաժամանակ ունենալ միայն մեկ կապ: Այժմ բացեք EvoThings աշխատասեղանը և գործարկեք EvoThings հաճախորդը սմարթֆոնի կամ պլանշետի վրա:

Պատկեր
Պատկեր

Երբ կտտացնում եք «Գործարկել» կոճակին, EvoThings հաճախորդը ինքնաբերաբար կբեռնի ջերմաչափի html էջը: Սեղմեք Connect կոճակը ՝ Bean- ին միանալու համար, և դուք պետք է տեսնեք ցուցադրվող ջերմաստիճանը: Հաջողություն:

Քայլ 8: Եզրակացություն

Եզրակացություն
Եզրակացություն

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

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