Სარჩევი:

სხვა IoT ამინდის სადგური: 8 ნაბიჯი
სხვა IoT ამინდის სადგური: 8 ნაბიჯი

ვიდეო: სხვა IoT ამინდის სადგური: 8 ნაბიჯი

ვიდეო: სხვა IoT ამინდის სადგური: 8 ნაბიჯი
ვიდეო: ლუკა და მარიამი 2024, ივლისი
Anonim
სხვა IoT ამინდის სადგური
სხვა IoT ამინდის სადგური
სხვა IoT ამინდის სადგური
სხვა IoT ამინდის სადგური
კიდევ ერთი IoT ამინდის სადგური
კიდევ ერთი IoT ამინდის სადგური
კიდევ ერთი IoT ამინდის სადგური
კიდევ ერთი IoT ამინდის სადგური

შემდეგი იყო დაბადების დღის საჩუქარი მამაჩემისთვის; შთაგონებული სხვა ინსტრუქციით, რომელიც მე ვნახე და თავდაპირველად გამიზნული იყო მისთვის დამტკიცებულიყო როგორც თვითშენების ნაკრები. თუმცა ამ პროექტზე მუშაობის დაწყებისთანავე მე ძალიან სწრაფად მივხვდი, რომ საწყისი გაკვეთილი, რომელმაც საჩუქარი შთააგონა, მოძველებული იყო და რომ ბევრ სხვა ონლაინ გაკვეთილს ჰქონდა მნიშვნელოვანი ხარვეზები მათ ახსნაში. ამიტომაც გადავწყვიტე გამომექვეყნებინა კიდევ ერთი IoT ამინდის სადგური, რომელიც იმედია ადვილად დაიცვას თავიდან ბოლომდე.

გარდა ამისა, ეს ინსტრუქცია გიჩვენებთ თუ როგორ გამოიყენოთ Blynk, Google Sheets ან ორივე სენსორის კითხვის მონიტორინგისა და ჩაწერისთვის. უფრო მეტიც, Google Sheets ჩანაწერები იწერება პირდაპირ ფურცელზე (მესამე მხარის სერვისის გავლის გარეშე).

რაც შეეხება სტივენსონის ეკრანს, ინტერნეტში ბევრი ხელმისაწვდომია, რომელთა 3D ბეჭდვა შესაძლებელია მაგ. https://www.thingiverse.com/thing:1718334. მე ავაშენებ ამ ერთს ამ ინსტრუქციისთვის.

სტივენსონის ეკრანი არის "ინსტრუმენტების თავშესაფარი არის თავშესაფარი ან დანართი მეტეოროლოგიური ინსტრუმენტებისგან ნალექებისა და პირდაპირი წყაროებიდან გარე სითბოს გამოსხივების წინააღმდეგ, ხოლო ჰაერი კვლავ თავისუფლად ბრუნავს მათ გარშემო". (ვიკიპედია).

ნაწილები

  • Wemos LolIn - NodeMCU v3 (1.43 აშშ დოლარი)
  • BME280 (ტემპერატურის, წნევის და ტენიანობის სენსორი) (2.40 აშშ დოლარი)
  • 6V 1000mA მზის პანელი ($ 9.96)
  • 5V 1A მიკრო USB 18650 ლითიუმის ბატარეის დამტენი დაფის დამტენი მოდული+დაცვა ორმაგი ფუნქციები TP4056 (0.99 აშშ დოლარი)
  • 4x 1.2V NiMH დატენვის ბატარეები
  • ბატარეის დამჭერი (4x AA, გვერდიგვერდ და ბოლოდან ბოლომდე)
  • მიკრო USB მამაკაცის კონექტორის დანამატი
  • Საკაბელო კავშირები
  • 3x ფრთის თხილი
  • ბოძი ან ცოცხი-ჯოხი
  • ეპოქსიდური და/ან სუპერ წებო (შემდგომში სილიციუმი უკეთესად იმუშავებდა)

პროგრამული უზრუნველყოფა

  • ბლინკის აპლიკაცია
  • Google Sheets (თუ გსურთ გქონდეთ წვდომა ისტორიულ მონაცემებზე)
  • EasyEDA (სქემატური ხატვისთვის)
  • Arduino IDE

ინსტრუმენტები

  • გასაყიდი რკინა
  • Solder
  • სითბოს შემცირების მილები
  • 3D პრინტერი
  • წებო იარაღი

ნაბიჯი 1: 3D ბეჭდვა - სტივენსონის ეკრანი

3D ბეჭდვა - სტივენსონის ეკრანი
3D ბეჭდვა - სტივენსონის ეკრანი
3D ბეჭდვა - სტივენსონის ეკრანი
3D ბეჭდვა - სტივენსონის ეკრანი
3D ბეჭდვა - სტივენსონის ეკრანი
3D ბეჭდვა - სტივენსონის ეკრანი

როგორც უკვე აღვნიშნეთ, გადმოწერეთ ფაილები https://www.thingiverse.com/thing:1718334 და დაბეჭდეთ საჭირო ბიტები. ასამბლეის ინსტრუქციები ასევე მოცემულია ზემოთ მოცემულ ბმულზე. მე გავაკეთე გარკვეული ცვლილებები (იხ. შენიშვნები ქვემოთ).

ნაწილები დაბეჭდილია:

  • Top_Cover_mor_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 ბარები ხრახნიანი სოკეტებში
  • ზედა_საფარი
  • მყარი_პლატა
  • შუა_ ბეჭდები
  • სლაიდი Sensor_Grid- ში
  • ელექტრონიკა_მთა
  • მყარი_პლატა_ბოლო
  • Pole_Mount
  • My_Solar_Cell_Mounts ეპოქსიდურია ზედა_საფარის თავზე

მე გავაღე ხვრელები მყარ ფირფიტებზე, რათა მზის პანელიდან დამტენი კაბელი დამერთებოდა დამტენს და შემდეგ ერთი კაბელის გასაშვებად კონტროლერიდან სენსორულ ქსელში სენსორამდე.

დასრულების შემდეგ, სენსორი დაპროგრამდა, რომ მიიღოს შემდეგი მაჩვენებლები ყოველ 60 წუთში:

  • ტემპერატურა
  • ტენიანობა
  • წნევა

შენიშვნები

  • მე შევქმენი მზის უჯრედის საყრდენები, რომ უფრო შესაფერისი იყოს ჩემი მზის უჯრედის შესანახად.
  • მე დავაყენე ელექტრონიკა Pole_Mount- სა და Solid_Plate- ს შორის. როგორც ჩანს, ეს არ უზრუნველყოფდა ელექტრონიკის კარგ დაცვას. ამიტომ მე შევიცვალე Solid_Plate– ზე ისე, რომ მას ჰქონდა ქვედაკაბა, რომელიც შემდეგ დახურავს უფსკრული და ამით უზრუნველყოფს უკეთეს დაცვას ელექტრონიკისთვის. ზოგიერთი ზემოთ ჩამოთვლილი ფოტო გადაღებულია ამ ცვლილების განხორციელებამდე.
  • ჩემი ეპოქსია დაეშვა და არ ეჭირა მზის პანელი, რომელიც შემდეგ ხელახლა დავამატე სუპერ წებოთი. ვფიქრობ, სილიკონის გამოსაყენებლად მივაღწევ ადგილს.

ნაბიჯი 2: წრე

წრე
წრე
წრე
წრე

შეაერთეთ სქემა სქემატურად ნაჩვენები, დააინსტალირეთ LoLin და BME280 3D დაბეჭდილ ბადეზე, როგორც ეს ნაჩვენებია ფოტოში.

BME280 -> ლილონი

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

ლილონი -> ლილონი

D0 -> RST (ეს საჭიროა იმისათვის, რომ გაიღვიძოს კონტროლერი ღრმა ძილიდან, მაგრამ უნდა იყოს დაკავშირებული მხოლოდ მას შემდეგ, რაც კოდი აიტვირთება კონტროლერში)

ᲨᲔᲜᲘᲨᲕᲜᲐ

მე მქონდა გამოწვევები შესაფერისი LiLon ბატარეის მიღებაში. ასევე რატომღაც მე ვერ მივიღე წარმატება VIN– ის საშუალებით. ამიტომ, მე ვმუშაობ შემდეგნაირად:

  • TP4056– დან გამომავალი კავშირი იყო მამრობითი USB კონექტორთან, რომელიც შემდეგ შედიოდა დაფის USB ბუდეში, რათა გაეძლიერებინა იგი.
  • B- და B+ TP4056– ზე იყო დაკავშირებული AA ბატარეის დამჭერთან, რომელიც იტევდა NiMH ბატარეებს.

ნაბიჯი 3: IoT - ბლინკი

IoT - ბლინკი
IoT - ბლინკი
IoT - ბლინკი
IoT - ბლინკი
IoT - ბლინკი
IoT - ბლინკი
IoT - ბლინკი
IoT - ბლინკი

"ბლინკი არის ტექნიკური აგნოსტიკური IoT პლატფორმა, პერსონალურად მორგებული მობილური აპლიკაციებით, პირადი ღრუბელით, წესების ძრავით და მოწყობილობების მართვის ანალიტიკური დაფით". ძირითადად ის გაძლევთ საშუალებას უსაფრთხოდ მართოთ და გააკონტროლოთ დისტანციური სენსორები მსოფლიოს ნებისმიერი ადგილიდან ინტერნეტის საშუალებით. კომერციული სერვისის მიუხედავად, თითოეულ ანგარიშს აქვს 2000 უფასო კრედიტი. კრედიტები საშუალებას გაძლევთ დააკავშიროთ სხვადასხვა მაჩვენებლები, ეკრანები, შეტყობინებები და ა. მიუხედავად იმისა, რომ სააბონენტო ფასი ჰობიების ბიუჯეტის ფარგლებს გარეთაა, უფასო კრედიტები საკმარისია ამ მარტივი პროექტისთვის.

სერვისის გამოყენების დასაწყებად თქვენ ჯერ უნდა გადმოწეროთ 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 Sheets– თან დასაკავშირებლად)

Arduino IDE– სთვის ბიბლიოთეკების დაყენების ინსტრუქციისთვის ეწვიეთ

ჩემი აპარატურის პარამეტრები შემდეგია:

  • დაფა: NodeMCU 1.0 (ESP-12E მოდული)
  • ატვირთვის სიჩქარე: 115200

თანდართული კოდის გამოყენებისას შემდეგ საფეხურებში, გთხოვთ, ყოველთვის მიმართოთ კომენტარებს კოდში, შემდეგის დამატებასთან დაკავშირებით:

  • Wifi SID
  • Wifi პაროლი
  • ბლინკის ავტორიზაციის გასაღები
  • Google Script ID
  • Google Sheet გაზიარების გასაღები

ნაბიჯი 5: კოდი - ბლინკი

საუკუნეების განმავლობაში ვიბრძოდი, რომ ჩემი BME280 სენსორი იმუშავა, სანამ არ ვიპოვე მაგალითი, რომელიც შეიცავს შემდეგ ხაზს.

სტატუსი = bme.begin (0x76); // სენსორის I2C მისამართი, რომელსაც მე ვიყენებ არის 0x76

როგორც ჩანს, მჭირდებოდა სენსორის მისამართის დაყენება. მას შემდეგ რაც გავაკეთე ეს ყველაფერი კარგად მუშაობდა.

ბლინკს აქვს მართლაც ლამაზი მობილური ინტერფეისი, მაგრამ აქვს შემდეგი შეზღუდვები:

  • მხოლოდ 2000 უფასო კრედიტი, პროექტები, რომლებიც მოითხოვს მეტს, მოითხოვს ძვირადღირებულ ყოველთვიურ ხელმოწერას (თუ თქვენ არ უმასპინძლებთ და არ შეინარჩუნებთ საკუთარ ბლინკის სერვერს).
  • თუ თქვენ არ მასპინძლობთ თქვენს საკუთარ Blynk სერვერს, თქვენ ვერ მოახდენთ ისტორიული მონაცემების ექსპორტს.

ზემოაღნიშნული მიზეზების გამო მე შევხედე როგორ შემიძლია ჩემი მონაცემების შეგროვების პროცესის ინტეგრირება Google Sheet– ში. ეს განხილულია შემდეგ ნაწილში.

ნაბიჯი 6: კოდი - Google Sheets

კოდი - Google Sheets
კოდი - Google Sheets
კოდი - Google Sheets
კოდი - Google Sheets
კოდი - Google Sheets
კოდი - Google Sheets

იმისათვის, რომ ჩაწეროთ თქვენი კითხვები ისე, რომ მოგვიანებით გაანალიზოთ ისტორიული მონაცემები, თქვენ უნდა ჩაწეროთ იგი რაიმე სახის მონაცემთა ბაზაში. HTTPSRedirect ბიბლიოთეკა ამის საშუალებას გვაძლევს ჩვენი მონაცემების Google Sheet- ში ჩაწერით.

ამ მიდგომის ძირითადი შეზღუდვები შემდეგია:

  • არ არის ლამაზი მობილური მომხმარებლის ინტერფეისი
  • Google Sheet– ს შეიძლება ჰქონდეს მაქსიმუმ 400 000 უჯრედი. ამ პროექტისთვის ეს არ არის დიდი საკითხი, რადგან ამ ლიმიტის მიღწევამდე სულ რაღაც 11 წელი დასჭირდება.

Google Sheet დაყენებულია შემდეგნაირად.

შექმენით Google Sheet ორი ფურცლით.

ფურცელი 1: მონაცემები

მონაცემთა ფურცელს სჭირდება 4 სვეტი, ანუ თარიღი/დრო, ტემპერატურა, ტენიანობა, წნევა (სვეტები A– დან D– მდე). სვეტების შესაბამისი ფორმატირება მაგ. სვეტი A იყოს "თარიღის დრო" ისე, რომ თარიღი და დრო ნაჩვენებია უჯრედებში.

ფურცელი 2: დაფა

შექმენით დაფის ფურცელი თანდართული ფოტოების მიხედვით, შეიყვანეთ ფორმულები ქვემოთ ჩამოთვლილი:

  • B2: = counta (მონაცემები! B: B) -1
  • B3: = B1+TIMEVALUE (CONCATENATE ("00:", Text (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 არ არის null ბრძანება B asc limit 1")
  • C11: = მოთხოვნა (მონაცემები! A2: D, "აირჩიეთ A, სადაც C არ არის null ბრძანება C აღმავალი ლიმიტით 1")
  • D11: = მოთხოვნა (მონაცემები! A2: D, "აირჩიეთ A, სადაც D არ არის null ბრძანება D აღმავალი ლიმიტით 1")
  • B12: = მოთხოვნა (მონაცემები! A2: D, "აირჩიეთ B სადაც B არ არის null ბრძანება B asc limit 1")
  • C12: = მოთხოვნა (მონაცემები! A2: D, "აირჩიეთ C სადაც C არ არის null ბრძანება C აღმავალი ლიმიტით 1")
  • D12: = მოთხოვნა (მონაცემები! A2: D, "აირჩიეთ D სადაც D არ არის null ბრძანება D აღმავალი ლიმიტით 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 Sheets შეიძლება შეიცავდეს მაქსიმუმ 400,000 უჯრედს. ეს გამოიყენება იმის გათვალისწინებით, რომ თითოეული კითხვა იყენებს 4 უჯრედს, გამოთვლის რამდენი სივრცე დარჩა და როდის ამოიწურება.

შეიძლება შესაძლებელი იყოს ამ ფორმულების გაუმჯობესება. მე აქ ვაკეთებდი ორ საქმეს, ანუ ვსწავლობდი შეკითხვის ფორმულას და შემდეგ ვწერდი ფორმულას ისე, რომ დამეხმარა იმახსოვრებდე მათ უკან არსებულ ლოგიკას.

"დიაგრამის რედაქტორის" ეკრანის ანაბეჭდი აჩვენებს ტემპერატურის გრაფიკის ძირითად პარამეტრებს. სხვა გრაფიკები შეიქმნა ერთი და იგივე კონფიგურაციის გამოყენებით. გრაფიკებს შორის ერთადერთი განსხვავება იყო ვერტიკალური ღერძის მინიმალური მნიშვნელობები (ნაპოვნია მორგებული ჩანართის ქვეშ). მორგებულ ჩანართს ასევე აქვს სხვა პარამეტრები, როგორიცაა წვდომის სახელები, გრაფიკის სათაურები და ა.

ჩვენ ახლა გვჭირდება Google Script, რომელიც მოგვცემს საშუალებას დავწეროთ ჩვენი მონაცემები URL– ით დარეკვით.

სკრიპტის შექმნა

Google Sheet URL– ში ჩაწერეთ გასაღები „d /“- სა და „ / edit“- ს შორის. ეს არის თქვენი-თქვენი-Google-Sheet-გაზიარების-გასაღები-და საჭირო იქნება ქვემოთ მოცემულ კოდში.

შემდეგ გადადით Tools> Script Editor და შექმენით Google App Script, ჩასვით კოდი თანდართულ GS ფაილში. განაახლეთ var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); ასახავს თქვენს გაზიარების გასაღებს.

ახლა გამოაქვეყნეთ სკრიპტი Publish> Deploy as Web App.

დააკოპირეთ მიმდინარე ვებ პროგრამის URL და შეინახეთ სადმე, როგორც ეს დაგჭირდებათ GScriptID (-Your-Google-Script-ID–) ამოსაღებად. GScriptID არის სტრიქონი "s /" - სა და " / exec?" - ს შორის. დარწმუნდით, რომ "ნებისმიერს, თუნდაც ანონიმურს" აქვს წვდომა აპლიკაციაზე. ამ პროცესის განმავლობაში თქვენ მოგეთხოვებათ გარკვეული ნებართვების მინიჭება. მნიშვნელოვანია, რომ მიანიჭოთ ეს.

შენიშვნა: როდესაც თქვენ შეცვლით თქვენს კოდს, თქვენ უნდა შექმნათ "ახალი" პროექტის ვერსია და გამოაქვეყნოთ იგი, წინააღმდეგ შემთხვევაში თქვენ კვლავ შეხვდებით იმავე ძველ კოდს.

ახლა შეგიძლიათ სცადოთ სკრიპტის დათვალიერება https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12. ყოველ ჯერზე, როდესაც განაახლებთ ამ ბმულს, ახალი ჩანაწერი უნდა დაემატოს Google Sheet- ს.

ეს ზემოთ აღებულია შემდეგი გაკვეთილიდან: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. ეს გაკვეთილი მოძველებულია და ამიტომ Arduino– სთან დაკავშირებული კოდი შეიცვალა მომდევნო განყოფილებაში, რათა განთავსდეს უახლესი HTTPSRedirect ბიბლიოთეკები.

არდუინოს კოდი

იხილეთ თანდართული კოდი.

ნაბიჯი 7: კოდი - Blynk & Google Sheets

ორივე სამყაროსგან საუკეთესოს მისაღებად, შეგიძლიათ დააკავშიროთ კოდი როგორც ბლინკის, ასევე Google Sheets– ისთვის.

იხილეთ თანდართული კოდი.

ნაბიჯი 8: საბოლოო კომენტარები

საბოლოო კომენტარები
საბოლოო კომენტარები
საბოლოო კომენტარები
საბოლოო კომენტარები

არცერთი ზემოთ ჩამოთვლილი არ არის ჩემი იდეა, არამედ ეს არის პროექტი, რომელიც აგებულია სხვების იდეებსა და მუშაობაზე. მე მსიამოვნებდა მისი ერთ ადგილას გადატანა. სხვადასხვა ტექნოლოგიებისა და ინსტრუმენტების გამოყენებით სახალისო და პრაქტიკული პროექტის განხორციელებისთვის. მე განსაკუთრებით მომეწონა იმის სწავლა, თუ როგორ შევინახო ჩემი წაკითხული Google Sheet– ში. ამისათვის მინდა მადლობა გადავუხადო ElectronicsGuy (სუჯა ფადკე).

განახლება

ამ პროექტის დასრულების შემდეგ დამჭირდა უკაბელო პარამეტრების შეცვლა. მე სხვა კომპიუტერზე ვმუშაობდი. ცვლილებების ატვირთვის შემდეგ, პროექტმა მუშაობა შეწყვიტა. პრობლემების მოგვარების შემდეგ დავასკვენი, რომ ღრმა ძილის ფუნქცია ვერ ხერხდება. მე მივიღე პროექტი სახლში და ავტვირთე იქ (იგივე კოდის გამოყენებით) და ის მუშაობდა. ამიტომ მე დავასკვენი, რომ რაღაც უნდა შეიცვალოს ბიბლიოთეკებში, რომლებიც მე დავამატე. ამიტომ ამ განყოფილებას დავამატე ბიბლიოთეკები, რომლებიც ამჟამად ჩემი სახლის კომპიუტერზეა; მხოლოდ იმ შემთხვევაში, თუ ვინმე შეხვდება ამ საკითხს.

გირჩევთ: