Სარჩევი:

კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ : 6 ნაბიჯი (სურათებით)
კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ : 6 ნაბიჯი (სურათებით)

ვიდეო: კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ : 6 ნაბიჯი (სურათებით)

ვიდეო: კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ : 6 ნაბიჯი (სურათებით)
ვიდეო: ლუკა და მარიამი 2024, ივნისი
Anonim
Image
Image
კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ…
კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ…
კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ…
კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ…
კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ…
კიდევ ერთი ჭკვიანი ამინდის სადგური, მაგრამ…

კარგი, მე ვიცი, რომ ამდენი ამინდის სადგური არსებობს ყველგან, მაგრამ რამდენიმე წუთი დაუთმეთ განსხვავების დანახვას…

  • დაბალი სიმძლავრე
  • 2 ელექტრონული ქაღალდის ჩვენება…
  • მაგრამ 10 განსხვავებული ეკრანი!
  • ESP32 დაფუძნებული
  • ამაჩქარებელი და ტემპერატურის / ტენიანობის სენსორები
  • Wifi განახლება
  • 3D დაბეჭდილი ქეისი

და ბევრი სხვა სასარგებლო ხრიკი …

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

მარაგები

როგორც ხედავთ, სისტემა შედგება 2 ელექტრონული ქაღალდის ეკრანისა და 3D დაბეჭდილი ყუთისაგან. მაგრამ მასში ბევრი რამ არის:

  • ESP32
  • ერთი MPU6050 ამაჩქარებელი
  • DHT22 სენსორი
  • LiPo ბატარეა
  • PCB მთელ ნივთთან დასაკავშირებლად
  • ხელნაკეთი duPont ძაფები

და Wi-Fi კავშირი. ფაქტობრივად, გამოცხადებულია 3 ქსელი, სისტემა მათ სათითაოდ ამოწმებს, სანამ არ მიაღწევს კავშირს.

ნაბიჯი 1: რატომ სხვა ამინდის სადგური?

რატომ სხვა ამინდის სადგური?
რატომ სხვა ამინდის სადგური?
რატომ სხვა ამინდის სადგური?
რატომ სხვა ამინდის სადგური?
რატომ სხვა ამინდის სადგური?
რატომ სხვა ამინდის სადგური?
რატომ სხვა ამინდის სადგური?
რატომ სხვა ამინდის სადგური?

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

ამაჩქარებელი ადგენს მოძრაობას და ორიენტაციას და იწვევს ჩვენებებს.

ენერგიის დაზოგვის მიზნით, მე ავირჩიე ელექტრონული ქაღალდის ეკრანები (იხილეთ ქვემოთ მითითებული ცნობები), რომლებიც ინახავს ეკრანს მაშინაც კი, თუ ისინი აღარ იკვებება. ESP32– ის მსგავსად, მე ავირჩიე Lolin32 მოდული (რომელიც ცნობილია თავისი ეკონომიურობით) და მე უნდა ვისწავლო როგორ ვმართო ღრმა ძილი და გაღვიძება ამაჩქარებლის მიერ შექმნილ შეფერხებებზე.

ეკრანები დაკავშირებულია SPI– ით, მე საკმაოდ ვეძებე სანამ ვიპოვიდი სწორ ქინძისთავებს ESP32– თან დასაკავშირებლად, ვიცოდი რომ მე ასევე მჭირდება I2C ამაჩქარებლისთვის, პინი რომ წავიკითხო DHT22 და 2 სხვა ბატარეის ძაბვის გაზომვისთვის. ESP32 თითქმის სრულად დატენულია! იმის ცოდნა, რომ ზოგიერთი ქინძისთავები მხოლოდ წასაკითხია (მე გამოვიყენე ისინი DHT სენსორისთვის), ზოგი არ შეიძლება გამოყენებულ იქნას Wifi– სთან ერთად, ცოტა რთული იყო სწორი კონფიგურაციის პოვნა.

ყუთი შეიძლება იყოს 4 მიმართულებით ორიენტირებული, პლუს ბრტყელი. საერთო ჯამში, რაც 4*2+2 = 10 შესაძლო ტიპის ინფორმაციას აჩვენებს მხოლოდ 2 ეკრანით. ეს საშუალებას გაძლევთ აჩვენოთ ბევრი რამ:

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

ნაბიჯი 2: რა გჭირდებათ?

Რა გჭირდება ?
Რა გჭირდება ?
Რა გჭირდება ?
Რა გჭირდება ?
Რა გჭირდება ?
Რა გჭირდება ?
  • ESP32: Lolin32 მოდული (ძალიან დაბალი სიმძლავრის, აღჭურვილი ბატარეის კონექტორით, შეუძლია ბატარეის დატენვა USB პლუს საშუალებით)
  • 2 ეკრანის ეკრანი: 4.2 ინჩი და 2.9 ინჩი. მე ავირჩიე მოდელები Good Display მაღაზიიდან.
  • DHT22 სენსორი
  • MCU6050 ამაჩქარებელი - გირომეტრი I2C სენსორი
  • LiPo ბატარეა
  • ბატარეის ძაბვის გაზომვისთვის: 2 10k რეზისტორი, 1 100k რეზისტორი, 1 100nF კონდენსატორი, 1 MOSFET ტრანზისტორი
  • Solder და soldering რკინის, დაბეჭდილი მიკროსქემის დაფა
  • 3D პრინტერზე წვდომა საქმისთვის

თანდართული სურათი გვიჩვენებს ყველა კომპონენტის პოზიციას PCB- ზე: მე უნდა დამეზოგა ადგილი, რომ მოერგო კეისში, რომელიც არ უნდა იყოს ძალიან დიდი.

ამინდის მონაცემების მისაღებად, თქვენ ასევე უნდა დარეგისტრირდეთ ამინდის API– ზე და განათავსოთ თქვენი გასაღებები სწორ ადგილას „Variables.h“ფაილში (იხ. ქვემოთ).

ამინდის ვებსაიტები:

  • აპიქსუ
  • ამინდი

ნაბიჯი 3: ამ პროექტმა დამაფიქრა და ბევრი ისწავლა…

ამ პროექტმა დამაფიქრა და ბევრი ისწავლა…
ამ პროექტმა დამაფიქრა და ბევრი ისწავლა…
ამ პროექტმა დამაფიქრა და ბევრი ისწავლა…
ამ პროექტმა დამაფიქრა და ბევრი ისწავლა…
ამ პროექტმა დამაფიქრა და ბევრი ისწავლა…
ამ პროექტმა დამაფიქრა და ბევრი ისწავლა…

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

ყუთი შეიძლება იყოს 4 მიმართულებით ორიენტირებული, უფრო ბრტყელი. მთლიანობაში ეს არის 4*2+2 = 10 შესაძლო სახის ინფორმაციის ჩვენება. ეს საშუალებას გაძლევთ გააკეთოთ ბევრი რამ: თარიღი და დღის წმინდანი, დრო, დღევანდელი ამინდის პროგნოზი, ამინდის პროგნოზი უახლოესი საათების ან დღეებისათვის, ბატარეის დატენვის დონე და შემთხვევითი ციტატა სპეციალიზებული ვებ – გვერდიდან.

ბევრია ინტერნეტში მოსაძებნი და მოგეხსენებათ: WiFi არის ენერგიის დაზოგვის მტერი…

ასე რომ, ჩვენ უნდა გავაკონტროლოთ კავშირი, რათა აჩვენოთ უახლესი ინფორმაცია, მაგრამ კავშირისთვის ზედმეტი დროის დახარჯვის გარეშე. კიდევ ერთი საკმაოდ რთული პრობლემა: საკმაოდ ზუსტი დროის დაცვა. მე არ მჭირდება RTC, რადგან ინტერნეტში ვპოულობ დროს, მაგრამ ESP32– ის შიდა საათი საკმაოდ ხშირად მოძრაობს, განსაკუთრებით ძილის დროს. მე უნდა ვიპოვო გზა, რომ დავრჩენილიყავი საკმარისად ზუსტი, სანამ ველოდებოდი საათის გადატვირთვას ინტერნეტით. მე ხელახლა ვასინქრონიზირებ მას ინტერნეტში ყოველ საათში.

ასე რომ, არსებობს კომპრომისი ავტონომიას (ინტერნეტ კავშირების სიხშირე) და ნაჩვენები ინფორმაციის სიზუსტეს შორის.

კიდევ ერთი პრობლემა, რომელიც უნდა მოგვარდეს არის მეხსიერება. როდესაც ESP32 ღრმა ძილშია, მეხსიერება იკარგება, გარდა იმისა, რასაც ეწოდება RTC RAM. ეს მეხსიერება 4 მბ სიგანისაა, აქედან მხოლოდ 2 შეიძლება გამოყენებულ იქნას პროგრამისთვის. ამ მეხსიერებაში, მე უნდა შევინახო პროგრამის სხვადასხვა ცვლადები, რომლებიც უნდა შენარჩუნდეს ერთი შესრულებიდან მეორეზე, ძილის ფაზის შემდეგ: ამინდის პროგნოზი, დრო და თარიღი, ხატის ფაილის სახელები, ციტატები და ა.შ. მე უნდა ვისწავლო ამის მოგვარება რა

ხატებზე საუბრისას, ისინი ინახება SPIFFS- ში, ESP32 ფაილურ სისტემაში. Wunderground– ის ამინდის ამინდის უფასო API– ის დახურვის შემდეგ, მე უნდა მომეძებნა სხვა უფასო ამინდის პროვაიდერები. მე შევარჩიე ორი: ერთი მიმდინარე დღის ამინდისთვის, 12 საათიანი პროგნოზით და მეორე მრავალდღიანი პროგნოზებისთვის. ხატები არ არის ერთი და იგივე, რამაც ორი ახალი პრობლემა შემიქმნა:

  • აირჩიეთ ხატების ნაკრები
  • შეადარე ეს ხატები 2 საიტის პროგნოზირების კოდებს

ეს მიმოწერა ასევე ინახება RTC ოპერატიულ მეხსიერებაში ისე, რომ ყოველ ჯერზე მისი გადატვირთვა არ მოხდეს.

ბოლო პრობლემა ხატებთან დაკავშირებით. შეუძლებელია ყველა მათგანის შენახვა SPIFFS– ში. სივრცე ძალიან მცირეა ჩემი ყველა ფაილისთვის. საჭირო იყო სურათის შეკუმშვის გაკეთება. მე დავწერე სკრიპტი პითონში, რომელიც კითხულობს ჩემს ხატის ფაილებს და შეკუმშავს მათ RLE- ში, შემდეგ კი შენახულ ფაილებს შევინახავ SPIFFS- ში. იქ გაიმართა.

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

ინტერნეტში წაკითხული მონაცემები ხშირად json ფორმატშია: ამინდის მონაცემები, დღის წმინდანი. ამისათვის (arduinoJson) ბიბლიოთეკას ვიყენებ. მაგრამ ციტატები ასე არ არის. მე ვიღებ მათ გამოყოფილი საიტიდან, ამიტომ უნდა წავიკითხო ისინი ვებ გვერდის შინაარსის პირდაპირ შესწავლით. ამისათვის მე უნდა დავწერო კონკრეტული კოდი. ყოველდღე, შუაღამისას, პროგრამა მიდის ამ საიტზე და კითხულობს ათამდე შემთხვევით ციტატას და ინახავს მათ RTC ოპერატიულ მეხსიერებაში. ერთი შემთხვევით არის ნაჩვენები მათ შორის, როდესაც კორპუსი ორიენტირებულია დიდ ეკრანზე ზემოთ.

მე გაგიზიარებთ აქცენტირებული სიმბოლოების ჩვენების პრობლემას (უკაცრავად, მაგრამ ციტატები ფრანგულ ენაზეა)….

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

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

იხილეთ იმპლანტაციის რუკა: "აკრძალული ზონა" არის ტერიტორია, რომელიც დაცულია USB კაბელის დასაკავშირებლად. Lolin32 მოდული საშუალებას გაძლევთ დატენოთ ბატარეა USB- ის საშუალებით: ბატარეა იტენება თუ USB კაბელი დაკავშირებულია და მოდული მუშაობს ამავე დროს.

ბოლო წერტილი: შრიფტები. სხვადასხვა ზომის, თამამი თუ არა, ისინი უნდა შეიქმნას და შეინახოს. Adafruit GFX ბიბლიოთეკა კარგად ზრუნავს ამაზე, მას შემდეგ რაც დააინსტალირეთ შრიფტის ფაილები სწორ დირექტორიაში. ფაილების შესაქმნელად, მე გამოვიყენე შრიფტის გადამყვანის საიტი, ძალიან მოსახერხებელი!

დარწმუნდით, რომ შეარჩიეთ:

  • გადახედვის ჩვენება: TFT 2.4"
  • ბიბლიოთეკის ვერსია: Adafruit GFX ფონტი

მოკლედ რომ ვთქვათ: დიდი პროექტი, რამაც საშუალება მომცა ბევრი რამ მესწავლა

ნაბიჯი 4: ელექტრონული ქაღალდის მონიტორების გამოყენება

ელექტრონული ქაღალდის მონიტორების გამოყენება
ელექტრონული ქაღალდის მონიტორების გამოყენება

ამ ეკრანების მთავარი მინუსი აშკარად ჩანს ვიდეოზე: ეკრანის განახლებას ერთი ან ორი წამი სჭირდება და ხდება ციმციმით (ორი ეკრანის ნორმალური და ინვერსიული ვერსიების ალტერნატიული ჩვენება). ეს მისაღებია ამინდის ინფორმაციისთვის, რადგან მე მას ხშირად არ ვაახლებ (ყოველ საათში, გარდა ყუთის ორიენტაციის შეცვლისა). მაგრამ არა იმ დროისათვის. ამიტომაც (და მოხმარების შეზღუდვის მიზნით) მე მაინც ვიყენებ HH: MM ეკრანს (არა წამს).

ამიტომ მე მომიწია სხვა გზების ძებნა ეკრანის განახლებისთვის. ეს ეკრანები (ზოგი მათგანი) მხარს უჭერს ნაწილობრივ განახლებას (ვრცელდება ეკრანის ფართობზე, ან მთელ ეკრანზე …), მაგრამ ეს არ იყო კარგი ჩემთვის, რადგან ჩემი დიდი ეკრანი (რომელიც აჩვენებს დროს) ინახავს პიქსელების მოჩვენებებს რომლებიც იცვლება. მაგალითად, როდესაც გადახვალთ 10:12 საათიდან 10:13 საათზე, '2' ოდნავ ჩანს '3' - ის შიგნით და ის კიდევ უფრო თვალსაჩინო ხდება '4' - ის, '5' - ის შემდეგ და ა.შ. მე მინდა აღვნიშნო, რომ ეს ასეა ჩემი ეკრანისთვის: მე განვიხილე ის ელექტრონული ქაღალდის ჩვენების ბიბლიოთეკის ავტორთან GxEPD2, რომელმაც მითხრა, რომ ის არ აკვირდებოდა ამ ფენომენს საკუთარი ეკრანებით. ჩვენ შევეცადეთ პარამეტრების შეცვლა მოჩვენებებზე ნადირობის გარეშე.

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

ნაბიჯი 5: მისი დამზადება

მიღების იგი
მიღების იგი
მიღების იგი
მიღების იგი
მიღების იგი
მიღების იგი
მიღების იგი
მიღების იგი

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

მალე დავაყენებ გარე USB მიკროფონის კონექტორს, ასე რომ არ მომიწევს ქეისის გახსნა ბატარეის დასატენად.

შესაძლოა, მეც დაინტერესებული ვიყო OTA– ს განახლებით, რომ ეს ყველაფერი სრულყოფილი იყოს….

ნაბიჯი 6: კოდი და ფაილები

Image
Image

მოცემულია სამი არქივი:

  • ამინდის სადგური. Zip: Arduino კოდი, რომ ატვირთოთ Arduino IDE გამოყენებით
  • Boite ecran.zip: CAD და 3D პრინტერის ფაილები საქმისთვის
  • data.zip: ფაილები, რომლებიც უნდა აიტვირთოს ESP32– ის SPIFFS– ში.

თუ არ იცით როგორ ატვირთოთ ფაილები ESP32– ის SPIFFS– ში, უბრალოდ წაიკითხეთ ეს სახელმძღვანელო, სადაც მოცემულია ძალიან სასარგებლო მოდული და როგორ გამოვიყენოთ იგი Arduino IDE– ში.

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

ზოგიერთი ინიციალიზაციის ფაზა უნდა განხორციელდეს მხოლოდ ერთხელ პირველი შესრულების დროს (როგორიცაა დროის მიღება, ამინდის მონაცემები, ციტატები და ა.შ.), ასე რომ ESP32– მა უნდა იცოდეს, ახლანდელი გაღვიძება არის პირველი თუ არა: ამისათვის, გამოსავალი არის ცვლადის შენახვა RTC ოპერატიულ მეხსიერებაში (რომელიც აქტიური რჩება ღრმა ძილის ფაზებშიც), რომელიც იზრდება ყოველ გაღვიძებისას. თუ ის უდრის 1 -ს, მაშინ ეს არის პირველი შესრულება და ESP32 იწყებს ინიციალიზაციის ფაზას, წინააღმდეგ შემთხვევაში ეს ეტაპი გამოტოვებულია.

ESP32– ის გამოსაღვიძებლად, არსებობს რამდენიმე შესაძლებლობა:

  • ტაიმერის გაღვიძება: კოდი ითვლის ძილის წინ ღრმა ძილის ხანგრძლივობას. ეს გამოიყენება დღის ციტატებისა და წმინდანის დროის (ყოველ 1, 2, 3 ან 5 წუთში) ან ამინდის მონაცემების (ყოველ 3 ან 4 საათში) განახლების მიზნით (ყოველ 24 საათში)
  • გაღვიძების შეწყვეტა: ამაჩქარებელი აგზავნის სიგნალს, რომელიც გამოიყენება ESP32– ის გამოსაღვიძებლად. იგი გამოიყენება ორიენტაციის ცვლილების გამოსავლენად და ჩვენების განახლებისთვის
  • შეხების სენსორის გაღვიძება: ESP32 აღჭურვილია რამოდენიმე ქინძისთავით, რომლებიც მოქმედებენ როგორც შეხების სენსორები, მაგრამ მათი გამოყენება არ შეიძლება ტაიმერის გაღვიძებით, ამიტომ მე ეს არ გამომიყენებია.

კოდში სხვაგან არის პროგრამირების სხვა ხრიკები, რათა დრო დაზოგოს ენერგიის დაზოგვისას (ანუ არ დაუკავშიროთ NTP სერვერი ყოველ წუთს), ამოიღოთ აქცენტები, რომლებიც არ არის მხარდაჭერილი Adafruit GFX ბიბლიოთეკის მიერ, რათა თავიდან აიცილოთ ეკრანის განახლება, თუ არ არის აუცილებელი, დააწესოთ ამაჩქარებლის პარამეტრი განსაკუთრებით გაღვიძების შეწყვეტისთვის, ზუსტად გამოთვალოთ ძილის დრო ტაიმერის გაღვიძების შემთხვევაში, მოერიდეთ სერიულ კონსოლს, თუ ის არ არის დაკავშირებული IDE– სთან (ენერგიის კვლავ დაზოგვის მიზნით), გათიშვა wifi როდესაც არ არის საჭირო და ა.შ … და კოდი სავსეა კომენტარებით, რომლებიც გვეხმარება ფუნქციების გაგებაში.

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

სენსორების კონკურსი
სენსორების კონკურსი

მეორე ადგილი სენსორების კონკურსში

გირჩევთ: