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

Մեկ այլ IoT եղանակային կայան ՝ 8 քայլ
Մեկ այլ IoT եղանակային կայան ՝ 8 քայլ

Video: Մեկ այլ IoT եղանակային կայան ՝ 8 քայլ

Video: Մեկ այլ IoT եղանակային կայան ՝ 8 քայլ
Video: «Հողս կանչում ա, ախ, կարոտս տանջում ա». Ուրախ երգ ու պար շնիկի հետ 2024, Հուլիսի
Anonim
Մեկ այլ IoT եղանակային կայան
Մեկ այլ IoT եղանակային կայան
Մեկ այլ IoT եղանակային կայան
Մեկ այլ IoT եղանակային կայան
Մեկ այլ IoT եղանակային կայան
Մեկ այլ IoT եղանակային կայան
Մեկ այլ IoT եղանակային կայան
Մեկ այլ IoT եղանակային կայան

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

Ավելին, այս հրահանգը ցույց է տալիս, թե ինչպես օգտագործել Blynk, Google Sheets կամ երկուսն էլ `սենսորների ընթերցումները վերահսկելու և գրանցելու համար: Ավելին, Google Աղյուսակների գրառումները գրվում են անմիջապես թերթի վրա (առանց կողմնակի ծառայության միջոցով անցնելու):

Ինչ վերաբերում է Սթիվենսոնի էկրանին, առցանց հասանելի են շատերը, որոնք կարող են 3D տպագրվել, օրինակ. https://www.thingiverse.com/thing:1718334: Ես կկառուցեմ այս մեկի վրա այս Ուղեցույցի համար:

Սթիվենսոնի էկրանը «գործիքների ապաստարանն ապաստարան է կամ պարիսպ օդերևութաբանական գործիքներին ՝ տեղումների և արտաքին աղբյուրների անմիջական ջերմային ճառագայթման դեմ, միևնույն ժամանակ թույլ տալով, որ օդը ազատ շրջանառվի իրենց շուրջը»: (Վիքիպեդիա):

Մասեր

  • Wemos LolIn - NodeMCU v3 (1.43 ԱՄՆ դոլար)
  • BME280 (ջերմաստիճանի, ճնշման և խոնավության ցուցիչ) (2.40 ԱՄՆ դոլար)
  • 6V 1000mA արևային վահանակ (9.96 ԱՄՆ դոլար)
  • 5V 1A Micro USB 18650 Լիթիումի մարտկոցի լիցքավորման տախտակ Լիցքավորման մոդուլ+Պաշտպանություն երկակի գործառույթներ TP4056 (0,99 ԱՄՆ դոլար)
  • 4x 1.2V NiMH վերալիցքավորվող մարտկոցներ
  • Մարտկոցի կրիչ (4x AA, կողք կողքի և ծայրից ծայր)
  • Միկրո USB արական միակցիչի վարդակից
  • Մալուխային կապեր
  • 3x թևի ընկույզ
  • Բեւեռ կամ ցախավել-փայտ
  • Էպոքսիդ և/կամ սոսինձ (հետահայաց, սիլիցիումը կարող էր ավելի լավ աշխատել)

Ծրագրային ապահովում

  • Blynk հավելված
  • Google Աղյուսակներ (եթե ցանկանում եք հասանելի լինել պատմական տվյալներին)
  • EasyEDA (սխեմատիկ նկարելու համար)
  • Arduino IDE

Գործիքներ

  • Sոդման երկաթ
  • Sոդող
  • Atերմային նեղացման խողովակ
  • 3D տպիչ
  • Սոսինձ ատրճանակ

Քայլ 1. 3D տպագրություն - Սթիվենսոնի էկրան

3D տպագրություն - Սթիվենսոնի էկրան
3D տպագրություն - Սթիվենսոնի էկրան
3D տպագրություն - Սթիվենսոնի էկրան
3D տպագրություն - Սթիվենսոնի էկրան
3D տպագրություն - Սթիվենսոնի էկրան
3D տպագրություն - Սթիվենսոնի էկրան

Ինչպես արդեն նշվեց, ներբեռնեք ֆայլերը https://www.thingiverse.com/thing:1718334 կայքից և տպեք անհրաժեշտ բիթերը: Հավաքման հրահանգները նույնպես գտնվում են վերը նշված հղման մեջ: Ես որոշ փոփոխություններ կատարեցի (տե՛ս ստորև բերված գրառումները):

Տպագրված մասերն են ՝

  • Top_Cover_for_m3_tapping.stl
  • Middle_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL վերը կցված)
  • Solid_Plate.stl (x1)
  • Solid_Plate_Base.stl (x1)
  • Pole_Mount_1in_Round.stl
  • Sensor_Grid.stl
  • Electronics_Mount.stl
  • My_Solar_Cell_Mount.stl (x2, STL վերը կցված)

Հավաքման կարգը հետևյալն է.

  • Կցեք անցքերը
  • Պտուտակեք M3 շերտերը պտուտակավոր վարդակների մեջ
  • Top_Cover
  • Պինդ_պլատ
  • Միջին_օղակներ
  • Սահեցրեք Sensor_Grid- ում
  • Էլեկտրոնիկայի_շարժ
  • Solid_Plate_Bottom
  • Բևեռ_լեռ
  • My_Solar_Cell_Mounts- ը epoxied են Top_Cover- ի վերևում

Ես անցքեր եմ հորատել Պինդ սալերի վրա, որպեսզի Արևային վահանակից լիցքավորման մալուխը միանա լիցքավորիչին, այնուհետև մեկը `թույլ տալով, որ մալուխը վերահսկիչից անցնի Sensor_Grid ցանցի սենսորին:

Ավարտվելուց հետո սենսորը ծրագրված է եղել յուրաքանչյուր 60 րոպեն մեկ կատարել հետևյալ ընթերցումները.

  • Ջերմաստիճանը
  • Խոնավություն
  • Ճնշում

Նշումներ

  • Ես հարմարեցրել եմ արևային բջիջների ամրակներն ավելի հարմարեցված իմ արևային բջիջը պահելու համար:
  • Ես տեղադրել եմ էլեկտրոնիկան Pole_Mount- ի և Solid_Plate- ի միջև: Կարծես թե դա լավ պաշտպանություն չէր ապահովում էլեկտրոնիկայի համար: Հետևաբար, ես փոխեցի Solid_Plate- ը, որպեսզի այն ունենա կիսաշրջազգեստ, որն այնուհետև կփակի բացը և դրանով իսկ ավելի լավ պաշտպանություն կպարգևի էլեկտրոնիկայի համար: Վերոնշյալ լուսանկարներից մի քանիսն արվել են այս փոփոխությունը կատարելուց առաջ:
  • Իմ էպոքսիդը վայրէջք կատարեց ՝ չպահելով արևային վահանակը, որն այնուհետև նորից ամրացրի գերծանրքաշային սոսինձով: Կարծում եմ, որ ես կհայտնվեմ ՝ ստիպված լինելով սիլիցիում օգտագործել:

Քայլ 2: Շղթան

The Circuit
The Circuit
The Circuit
The Circuit

Միացրեք սխեման, ինչպես ցույց է տրված սխեմատիկայում, LoLin- ը և BME280- ը տեղադրեք եռաչափ տպված ցանցի վրա, ինչպես ցույց է տրված լուսանկարում:

BME280 -> LiLon

  • VCC -> 3.3V
  • GND -> GND
  • SCL -> D1
  • SDA -> D2

LiLon -> LiLon

D0 -> RST (սա անհրաժեշտ է վերահսկիչին խոր քնից արթնացնելու համար, բայց պետք է միացված լինի միայն այն բանից հետո, երբ ծածկագիրը վերբեռնվել է վերահսկիչում)

ՆՇՈՒՄ

Ես մարտահրավերներ ունեցա համապատասխան LiLon մարտկոց ձեռք բերելու համար: Նաև ինչ -ինչ պատճառներով ես հաջողության չեմ հասել VIN- ի միջոցով: Հետևաբար, ես աշխատեցի հետևյալ կերպ.

  • TP4056- ից ելքը միացված էր Արական USB միակցիչին, որն այնուհետև միացված էր տախտակի USB վարդակին `այն սնուցելու համար:
  • B- և B+ TP4056- ի վրա միացված էին AA մարտկոցի ամրակին, որը պահում էր NiMH մարտկոցները:

Քայլ 3. IoT - Blynk

IoT - Բլինք
IoT - Բլինք
IoT - Բլինք
IoT - Բլինք
IoT - Բլինք
IoT - Բլինք
IoT - Բլինք
IoT - Բլինք

«Blynk- ը ապարատային-ագնոստիկ IoT հարթակ է` հարմարեցված բջջային հավելվածներով, մասնավոր ամպով, կանոնների շարժիչով և սարքերի կառավարման վերլուծական վահանակով »: Հիմնականում այն թույլ է տալիս ապահով կերպով կառավարել և վերահսկել հեռավոր սենսորները աշխարհի ցանկացած կետից `ինտերնետի միջոցով: Առևտրային ծառայություն մատուցելիս յուրաքանչյուր հաշիվ ունի 2000 անվճար վարկ: Վարկերը հնարավորություն են տալիս տարբեր չափիչներ, ցուցադրումներ, ծանուցումներ և այլն կապել ձեր տվիչի կամ տվիչների հետ: Բաժանորդագրության գինը դուրս է հոբբիստների բյուջեի սահմաններից, անվճար վարկերը բավարար են այսպիսի պարզ նախագծի համար:

Usingառայությունից օգտվելը սկսելու համար հարկավոր է նախ ներբեռնել Blynk ծրագիրը ձեր հեռախոսում/սարքում, ստեղծել և հաշվարկել (կամ մուտք գործել գոյություն ունեցող հաշիվ), այնուհետև ստեղծել նոր նախագիծ հետևյալ կերպ.

  • Ընտրեք ձեր սարքավորումները
  • Անվանեք ձեր նախագծին անուն (այս դեպքում ես օգտագործել եմ «Եղանակային կայան»):
  • Կտտացրեք «Ստեղծել»
  • Հետո ձեզ էլ. Փոստով ուղարկեք Հեղինակության կոդը:

Անհրաժեշտ չի լինի ավելացնել անհրաժեշտ վիջեթները: Իմ 2000 անվճար վարկերի միջոցով ես ավելացրեցի հետևյալը.

  • 3 չափիչ սարքեր
  • 1 սուպեր գծապատկեր

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

Կարգավորումներն ավարտելուց հետո վերևի աջ մասում խաղալու կոճակը կարող է սեղմվել ՝ հավաքման ամսաթիվը սկսելու համար:

Լրացուցիչ տեղեկությունների համար տե՛ս

docs.blynk.cc/#getting-started.

Քայլ 4: Կոդ - Arduino IDE- ի պատրաստում

Այս նախագիծը ավարտելու համար Arduino IDE- ին պետք է ավելացվեն հետևյալ գրադարանները.

  • https://github.com/adafruit/Adafruit_BME280_Library (ջերմաստիճանի, ճնշման և խոնավության տվիչի անհրաժեշտություն)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (սա ձեզ հնարավորություն է տալիս մուտք գործել ESP8266 տախտակ)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (Բլինկի գրադարանը)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (HTTPSRedicect անհրաժեշտ է Google Աղյուսակներին միանալու համար)

Arduino IDE- ի համար գրադարաններ տեղադրելու վերաբերյալ հրահանգների համար այցելեք

Իմ ապարատային կարգավորումները հետևյալն են.

  • Տախտակ ՝ NodeMCU 1.0 (ESP-12E մոդուլ)
  • Բեռնման արագություն ՝ 115200

Հետևյալ քայլերում կցված ծածկագիրն օգտագործելիս միշտ խնդրում ենք անդրադառնալ ծածկագրի մեկնաբանություններին ՝ հետևյալը ավելացնելու վերաբերյալ.

  • Wifi SID
  • Wifi գաղտնաբառ
  • Բլինկի թույլտվության բանալին
  • Google Script ID
  • Google Աղյուսակի փոխանակման բանալին

Քայլ 5. Կոդ - Բլինք

Տարիներ շարունակ պայքարել եմ, որպեսզի իմ BME280 տվիչը գործի դնի, մինչև չգտա հետևյալ տողը պարունակող օրինակը:

կարգավիճակ = bme.begin (0x76); // Իմ օգտագործած տվիչի I2C հասցեն 0x76 է

Պարզվում է, որ ինձ անհրաժեշտ էր սահմանել սենսորի հասցեն: Երբ ես դա արեցի, ամեն ինչ լավ աշխատեց:

Blynk- ն ունի իսկապես գեղեցիկ բջջային ինտերֆեյս, այն ունի հետևյալ սահմանափակումները.

  • Միայն 2000 անվճար վարկ, ավելի քան պահանջող նախագծեր պահանջում են ամսական թանկարժեք բաժանորդագրություն (եթե դուք չեք ընդունում և պահում ձեր սեփական Blynk սերվերը):
  • Եթե դուք չեք ընդունում ձեր սեփական Blynk սերվերը, դուք չեք կարող արտահանել պատմական տվյալներ:

Վերոնշյալ պատճառներով ես նայեցի, թե ինչպես կարող եմ ինտեգրվել իմ տվյալների հավաքման գործընթացը Google Աղյուսակում: Սա լուսաբանվում է հաջորդ բաժնում:

Քայլ 6: Կոդ - Google Աղյուսակներ

Կոդ - Google Աղյուսակներ
Կոդ - Google Աղյուսակներ
Կոդ - Google Աղյուսակներ
Կոդ - Google Աղյուսակներ
Կոդ - Google Աղյուսակներ
Կոդ - Google Աղյուսակներ

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

Այս մոտեցման հիմնական սահմանափակումները հետևյալն են.

  • Բջջային գեղեցիկ ինտերֆեյս չկա
  • Google Աղյուսակը կարող է ունենալ առավելագույնը 400 000 բջիջ: Այս նախագծի համար սա մեծ խնդիր չէ, քանի որ մինչև այս սահմանը հասնելը կպահանջվի ավելի քան 11 տարի:

Google Աղյուսակը կազմված է հետևյալ կերպ.

Ստեղծեք Google թերթ ՝ երկու թերթիկով:

Թերթ 1: Տվյալներ

Տվյալների թերթիկին անհրաժեշտ է 4 սյունակ `ամսաթիվ/ժամ, ջերմաստիճան, խոնավություն, ճնշում (սյունակներ A- ից D): Սյունակները համապատասխան ձևակերպել, օրինակ. A սյունակը պետք է լինի «Ամսաթվի ժամ», որպեսզի ամսաթիվը և ժամը ցուցադրվեն բջիջներում:

Թերթ 2: Վահանակ

Ստեղծեք Վահանակի թերթիկ ՝ ըստ կից լուսանկարների ՝ մուտքագրելով ստորև նշված բանաձևերը.

  • B2: = հաշվիչ (Տվյալներ! B: B) -1
  • B3: = B1+IMԱՄԱՆԱԿԸ (ՀԱՄԱԿԱՐԳ («00:», տեքստ (G7, «0»)))
  • B6: = հարցում (Տվյալներ. A2: D, «Ընտրել B կարգը ըստ desc limit 1»)
  • C6: = հարցում (Տվյալներ! A2: D, «Ընտրեք C կարգը ըստ desc limit 1»)
  • D6: = հարցում (Տվյալներ. A2: D, "Ընտրեք D կարգը ըստ desc limit 1")
  • B8: = հարցում (Տվյալներ. A2: D, «Ընտրեք կարգը ըստ B desc limit 1»)
  • C8: = հարցում (Տվյալներ. A2: D, «Ընտրեք կարգը ըստ C desc limit 1»)
  • D8: = հարցում (Տվյալներ. A2: D, «Ընտրեք պատվեր ըստ D desc limit 1»)
  • B9: = հարցում (Տվյալներ. A2: D, «Ընտրեք B կարգը ըստ B desc limit 1»)
  • C9: = հարցում (Տվյալներ! A2: D, «Ընտրել C կարգը ըստ C desc limit 1»)
  • D9: = հարցում (Տվյալներ. A2: D, "Ընտրեք D կարգը ըստ D desc limit 1")
  • B11: = հարցում (Տվյալներ. A2: D, «Ընտրել A- ն, որտեղ B- ն անվավեր կարգ չէ ըստ B asc limit 1»)
  • C11: = հարցում (Տվյալներ. A2: D, «Ընտրել A- ն, որտեղ C- ն C անվանումով զրոյական սահմանաչափով անվավեր կարգ չէ»)
  • D11: = հարցում (Տվյալներ. A2: D, «Ընտրել A- ն, որտեղ D- ն անվավեր կարգ չէ ըստ D asc limit 1»)
  • B12: = հարցում (Տվյալներ. A2: D, «Ընտրեք B- ն, որտեղ B- ն անվավեր կարգ չէ ըստ B asc limit 1»)
  • C12: = հարցում (Տվյալներ. A2: D, «Ընտրել C- ն, որտեղ C- ն n անվանական կարգ չէ ըստ C asc limit 1»)
  • D12: = հարցում (Տվյալներ. A2: D, "Ընտրեք D, որտեղ D- ն անվավեր կարգ չէ ըստ D asc limit 1")
  • G3: = 4+B2*4+29+17
  • G4: = (G2-G3)/G2
  • G6: = G2/4 G8: = G7*G6
  • G9: = (G8/60)/24
  • G10: = G9/365
  • G11: = (((((G2-G3)/4)*G7)/60)/24/365)

Google Աղյուսակները կարող են ունենալ առավելագույնը 400,000 բջիջ: Սա օգտագործվում է այն փաստի հետ միասին, որ յուրաքանչյուր ընթերցում օգտագործվում է 4 բջիջ, հաշվարկելու համար, թե որքան տարածք է մնացել և երբ այն կսպառվի:

Հնարավոր է հնարավոր լինի բարելավել այս բանաձևերը: Ես այստեղ երկու բան էի անում, այսինքն `սովորում էի հարցման բանաձևի մասին, այնուհետև գրում էի ինչ -որ բանաձև այնպես, որ օգներ ինձ հիշել դրանց հիմքում ընկած տրամաբանությունը:

«Գծապատկերների խմբագիր» սքրինշոթը ցույց է տալիս ջերմաստիճանի գրաֆիկի հիմնական կարգավորումը: Մյուս գրաֆիկները ստեղծվել են նույն կարգավորման միջոցով: Գրաֆիկների միջև միակ տարբերությունը ուղղահայաց առանցքի նվազագույն արժեքներն էին (գտնված են հարմարեցված ներդիրի տակ): Անհատականացման ներդիրը ունի նաև այլ կարգավորումներ, ինչպիսիք են մուտքի անունները, գրաֆիկի վերնագրերը և այլն:

Այժմ մեզ պետք է Google Script, որը հնարավորություն կտա գրել մեր տվյալները ՝ զանգահարելով URL:

Սցենարի ստեղծում

Google Աղյուսակի URL- ում նշեք «d /» - ի և « / edit» - ի միջև ընկած բանալին: Սա ձեր -Ձեր-Google- Թերթ-Կիսման-բանալին է- և անհրաժեշտ կլինի ստորև նշված կոդի մեջ:

Հաջորդը գնացեք Գործիքներ> Սցենարի խմբագիր և ստեղծեք Google App Script ՝ ծածկագիրը տեղադրելով կցված GS ֆայլում: Թարմացրեք var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/ խմբագրում"); արտացոլելու ձեր համօգտագործման բանալին:

Այժմ հրապարակեք սցենարը ՝ գնալով Հրապարակել> Տեղակայել որպես վեբ հավելված:

Պատճենեք ընթացիկ վեբ ծրագրի URL- ը և պահեք այն ինչ-որ տեղ, քանի որ այն ձեզ անհրաժեշտ կլինի GScriptID- ը (-Your-Google- Script-ID–) հանելու համար: GScriptID- ը տող է «s /» - ի և « / exec?» - ի միջև: Համոզվեք, որ «oneանկացած անձ, նույնիսկ անանուն» հավելվածին հասանելի է: Այս գործընթացի ընթացքում ձեզանից կպահանջվի որոշ թույլտվություններ տրամադրել: Կարևոր է, որ դրանք տրամադրեք:

Նշում. Ամեն անգամ, երբ փոփոխում եք ձեր կոդը, դուք պետք է ստեղծեք «Նոր» նախագծի տարբերակ և հրապարակեք այն, հակառակ դեպքում դուք դեռ կխփեք նույն հին ծածկագրին:

Այժմ կարող եք ստուգել սցենարը ՝ դիտելով https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12 հասցեն: Ամեն անգամ, երբ թարմացնում եք այս հղումը, նոր գրառում պետք է ավելացվի Google Աղյուսակում:

Այս վերը նշվածը վերցված է հետևյալ ձեռնարկից ՝ https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/: Այս ձեռնարկը, սակայն, հնացած է, ուստի հաջորդ բաժնի համապատասխան Arduino ծածկագիրը փոխվել է ՝ վերջին HTTPSRedirect գրադարանները տեղավորելու համար:

Arduino ծածկագիրը

Տես կից կոդը:

Քայլ 7: Կոդ - Blynk և Google Աղյուսակներ

Երկու աշխարհներից լավագույնը ստանալու համար կարելի է համատեղել ինչպես Blynk- ի, այնպես էլ Google Sheets- ի ծածկագիրը:

Տես կից կոդը:

Քայլ 8: Վերջնական մեկնաբանություններ

Վերջնական մեկնաբանություններ
Վերջնական մեկնաբանություններ
Վերջնական մեկնաբանություններ
Վերջնական մեկնաբանություններ

Վերոնշյալներից ոչ մեկը իմ գաղափարները չեն, այլ ավելի շուտ սա նախագիծ է ՝ կառուցված ուրիշների գաղափարների և աշխատանքի վրա: Ինձ դուր եկավ այն ընդհանրապես մեկ տեղ քաշելը: օգտագործելով տարբեր տեխնոլոգիաներ և գործիքներ `մեծ զվարճալի և գործնական նախագիծ իրականացնելու համար: Ինձ հատկապես դուր եկավ սովորել, թե ինչպես պահել իմ ընթերցումները Google Sheet- ում: Դրա համար ուզում եմ շնորհակալություն հայտնել ElectronicsGuy- ին (Sujay Phadke):

Թարմացնել

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

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