Სარჩევი:

ARDUINO ENERGY METER: 10 ნაბიჯი (სურათებით)
ARDUINO ENERGY METER: 10 ნაბიჯი (სურათებით)

ვიდეო: ARDUINO ENERGY METER: 10 ნაბიჯი (სურათებით)

ვიდეო: ARDUINO ENERGY METER: 10 ნაბიჯი (სურათებით)
ვიდეო: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, ნოემბერი
Anonim
Image
Image
ARDUINO ENERGY METER
ARDUINO ENERGY METER
ARDUINO ENERGY METER
ARDUINO ENERGY METER

[ვიდეოს დაკვრა]

მე ვეკუთვნი ინდოეთის სოფელ ოდიშას, სადაც ხშირია ელექტროენერგიის გათიშვა. ეს აფერხებს თითოეული ადამიანის ცხოვრებას. ჩემი ბავშვობის დღეებში შებინდების შემდეგ სწავლის გაგრძელება ნამდვილი გამოწვევა იყო. ამ პრობლემის გამო მე შევქმენი მზის სისტემა ჩემი სახლისთვის ექსპერიმენტულ საფუძველზე. მე გამოვიყენე მზის პანელი 10 ვატიანი, 6 ვოლტიანი რამდენიმე ნათელი LED- ის გასანათებლად. მას შემდეგ, რაც ბევრი სირთულის წინაშე დადგა პროექტი წარმატებული აღმოჩნდა. შემდეგ გადავწყვიტე სისტემაში ჩართული ძაბვის, დენის, სიმძლავრის და ენერგიის მონიტორინგი. ამან წარმოშვა ენერგეტიკული მეტრის შემუშავების იდეა. მე გამოვიყენე ARDUINO, როგორც ამ პროექტის გული, რადგან მისი IDE- ში კოდის დაწერა ძალიან ადვილია და ინტერნეტში არის დიდი რაოდენობის ღია ბიბლიოთეკა, რომლის გამოყენებაც შესაძლებელია მოთხოვნა. მე ექსპერიმენტი გავუკეთე პროექტს ძალიან მცირე რეიტინგული (10 ვატი) მზის სისტემისთვის, მაგრამ ეს შეიძლება ადვილად მოდიფიცირდეს უფრო მაღალი შეფასების სისტემის გამოსაყენებლად.

თქვენ შეგიძლიათ ნახოთ ჩემი ყველა პროექტი:

თვისება: ენერგიის მონიტორინგი 1. LCD დისპლეით 2. ინტერნეტის საშუალებით (Xively ატვირთვა) 3. SD ბარათში მონაცემების ჩაწერა

თქვენ შეგიძლიათ ნახოთ ჩემი ახალი სასწავლო ARDUINO MPPT SOLAR CHARGE CONTROLLER (ვერსია -3.0)

თქვენ ასევე შეგიძლიათ ნახოთ ჩემი სხვა ინსტრუქციები

ARDUINO SOLAR CHARGE CONTROLLER (ვერსია 2.0)

ARDUINO SOLAR CHARGE CONTROLLER (ვერსია -1)

ნაბიჯი 1: საჭირო ნაწილები:

საჭირო ნაწილები
საჭირო ნაწილები

1. ARDUINO UNO (ამაზონი) 2. ARDUINO ETHERNET SHIELD (ამაზონი)

3. 16x2 CHARACTER LCD (ამაზონი)

4. ACS 712 CURRENT SENSOR (ამაზონი) 4. წინააღმდეგობები (10k, 330ohm) (ამაზონი) 5. 10K პოტენციომეტრი (ამაზონი) 6. JUMPER WIRES (ამაზონი) 7. ETHERNET CABLE (ამაზონი) 8. პურის დაფა (ამაზონი)

ნაბიჯი 2: ძალა და ენერგია

სიმძლავრე: სიმძლავრე არის ძაბვის (ვოლტი) და დენის (ამპერი) P = VxI სიმძლავრის ერთეული არის Watt ან KW ენერგია: ენერგია არის სიმძლავრის (ვატი) და დრო (საათი) E = Pxt ენერგიის ერთეული არის ვატი საათი ან კილოვატი საათი (კვტსთ) ზემოაღნიშნული ფორმულადან ნათელია, რომ ენერგიის გასაზომად ჩვენ გვჭირდება სამი პარამეტრი 1. ძაბვა 2. დენი 3. დრო

ნაბიჯი 3: ძაბვის გაზომვა

ძაბვის გაზომვა
ძაბვის გაზომვა
ძაბვის გაზომვა
ძაბვის გაზომვა
ძაბვის გაზომვა
ძაბვის გაზომვა

ძაბვა იზომება ძაბვის გამყოფი მიკროსქემის დახმარებით. ვინაიდან ARDUINO- ს ანალოგური პინის შეყვანის ძაბვა შემოიფარგლება 5V- მდე, მე დავამუშავე ძაბვის გამყოფი ისე, რომ მისგან გამომავალი ძაბვა იყოს 5V- ზე ნაკლები. ჩემი ბატარეა გამოიყენება მზის პანელის სიმძლავრე შეფასებულია 6v, 5.5Ah. ასე რომ, მე უნდა დავტოვო ეს 6.5 ვ ძაბვის ქვემოთ 5V. მე გამოვიყენე R1 = 10k და R2 = 10K. R1 და R2 შეიძლება იყოს დაბალი, მაგრამ პრობლემა ის არის, რომ როდესაც წინააღმდეგობა დაბალია, მასში უფრო მაღალი დენი გადის, რის შედეგადაც დიდი რაოდენობით ენერგია (P = I^2R) იშლება სითბოს სახით. ასე რომ, წინააღმდეგობის განსხვავებული მნიშვნელობა შეიძლება შეირჩეს, მაგრამ ზრუნვა უნდა იქნას მიღებული, რათა შემცირდეს სიმძლავრის დაკარგვა წინააღმდეგობის გასწვრივ. Vout = R2/(R1+R2)*Vbat Vbat = 6.5 სრულად დამუხტვისას R1 = 10k და R2 = 10k Vout = 10/(10+10)*6.5 = 3.25v რაც 5 ვ -ზე დაბალია და შესაფერისია ARDUINO ანალოგური პინისთვის შენიშვნა I ნაჩვენებია 9 ვოლტიანი ბატარეა გაშლილი დაფის წრეში, მაგალითად, მავთულის დასაკავშირებლად. მაგრამ ფაქტობრივი ბატარეა, რომელიც მე გამოვიყენე არის 6 ვოლტიანი, 5.5Ah ტყვიის მჟავა ბატარეა. ძაბვის კალიბრაცია: როდესაც ბატარეა სრულად დატენულია (6.5 ვ) ჩვენ მივიღებთ a Vout = 3.25 ვ და დაბალი მნიშვნელობა ბატარეის სხვა ქვედა ძაბვისთვის. AEDUINO ADC გარდაქმნის ანალოგურ სიგნალს შესაბამის ციფრულ მიახლოებით. როდესაც ბატარეის ძაბვა არის 6.5 ვ მივიღე 3.25 ვ ძაბვის გამყოფიდან და ნიმუში 1 = 696 სერიულ მონიტორში, სადაც ნიმუში 1 არის ADC მნიშვნელობა შეესაბამება 3.25 ვ. უკეთესი გაგებისთვის მე დავამატე რეალურ დროში სიმულაცია 123 დ -ით. ძაბვის გაზომვის სქემა კალიბრაცია: 3.25 ვ 696 1 -ის ექვივალენტი 3.25/696 = 4.669 მვ და შემდეგ საშუალოდ შეგროვებული ნიმუშების მონაცემები (int i = 0; i <150; i ++) {sample1 = sample1+analogRead (A2); // წაიკითხეთ ძაბვა გამყოფი წრის დაყოვნებიდან (2); } sample1 = sample1/150; ძაბვა = 4.669*2*ნიმუში 1/1000;

ნაბიჯი 4: მიმდინარე გაზომვა

მიმდინარე გაზომვა
მიმდინარე გაზომვა
მიმდინარე გაზომვა
მიმდინარე გაზომვა

მიმდინარე გაზომვისთვის მე გამოვიყენე Hall Effect– ის მიმდინარე სენსორი ACS 712 (20 A). ბაზარზე არსებობს სხვადასხვა მიმდინარე დიაპაზონის ACS712 სენსორი, ასე რომ შეარჩიეთ თქვენი მოთხოვნის შესაბამისად. პურის დაფის დიაგრამაში მე ვაჩვენე LED როგორც დატვირთვა, მაგრამ ფაქტობრივი დატვირთვა განსხვავებულია. სამუშაო პრინციპი: დარბაზის ეფექტი არის ძაბვის სხვაობის წარმოქმნა (დარბაზის ძაბვა) ელექტრო გამტარზე, გამტარში ელექტრული დენის გადაკვეთა და დენის პერპენდიკულარული მაგნიტური ველი. Hall Effect სენსორის შესახებ მეტი რომ იცოდეთ დააწკაპუნეთ აქ ACS 712 სენსორის მონაცემების ფურცელი მოცემულია აქ მონაცემების ფურცლიდან 1. ACS 712 გაზომეთ დადებითი და უარყოფითი 20 ამპერი, შეესაბამება ანალოგურ გამომუშავებას 100mV/A 2. გამომავალი ძაბვის მეშვეობით არ არის საცდელი დენი VCC/2 = 5v/2 = 2.5V კალიბრაცია: ანალოგური წაკითხვა აწარმოებს მნიშვნელობას 0-1023, უტოლდება 0v- დან 5V- მდე, ასე რომ ანალოგური წაკითხვა 1 = (5/1024) V = 4.89mv მნიშვნელობა = (4.89*ანალოგური წაკითხვის მნიშვნელობა)/ 1000 V მაგრამ მონაცემების ფურცლების მიხედვით ოფსეტური არის 2.5V (როდესაც მიმდინარე ნულოვანი თქვენ მიიღებთ 2.5V სენსორის გამომავალიდან) ფაქტობრივი მნიშვნელობა = (მნიშვნელობა-2.5) V დენი ამპერში = ფაქტობრივი მნიშვნელობა*10ARDUINO კოდი: // 150 ნიმუშის აღება სენსორები 2 წამის ინტერვალით და შემდეგ საშუალო მონაცემების შეგროვებისთვის (int i = 0; i <150; i ++) {sample2+= analogRead (A3); // წაიკითხეთ მიმდინარეობა სენსორის დაყოვნებიდან (2); } sample2 = sample2/150; val = (5.0*ნიმუში 2)/1024.0; ფაქტობრივი = val-2.5; // ოფსეტური ძაბვა არის 2.5 ვ ამპერი = ფაქტობრივი დენი*10;

ნაბიჯი 5: დროის გაზომვა

დროის გაზომვისთვის არ არის საჭირო გარე აპარატურა, რადგან ARDUINO- ს აქვს ჩაშენებული ტაიმერი. Millis () ფუნქცია აბრუნებს მილიწამების რაოდენობას მას შემდეგ რაც Arduino დაფამ დაიწყო მიმდინარე პროგრამის გაშვება. ARDUINO კოდი: long milisec = millis (); // გამოთვალეთ დრო მილიწამებში გრძელი დრო = მილიწამი/1000; // გადაიყვანეთ მილიწამი წამში

ნაბიჯი 6: როგორ გამოთვლის ARDUINO ენერგიას და ენერგიას

ტოტამპები = ტოტამპები+ამპერები; // გამოვთვალოთ მთლიანი გამაძლიერებლები avgamps = totamps/დრო; // საშუალო ამპერი amphr = (avgamps*დრო)/3600; // ამპტ-საათი ვატი = ძაბვა*ამპერი; // სიმძლავრე = ძაბვა*მიმდინარე ენერგია = (ვატი*დრო)/3600; Watt-sec კვლავ გარდაიქმნება Watt-Hr– ით 1hr (3600sec) // ენერგიის = (watt*დრო)/(1000*3600) გაყოფით; kWh– ში კითხვისთვის

ნაბიჯი 7: ვიზუალური გამომავალი

ვიზუალური გამომავალი
ვიზუალური გამომავალი

ყველა შედეგი შეიძლება ვიზუალიზდეს სერიულ მონიტორზე ან LCD– ის გამოყენებით. მე გამოვიყენე 16x2 პერსონაჟის LCD წინა ნაბიჯების ყველა შედეგის საჩვენებლად. სქემატებისთვის იხილეთ პურის დაფის სქემა ზემოთ ნაჩვენები. შეაერთეთ LCD ARDUINO– სთან ერთად ქვემოთ: LCD -> Arduino 1. VSS -> Arduino GND 2. VDD - > Arduino + 5v 3. VO -> Arduino GND pin + რეზისტორი ან პოტენომეტრი 4. RS -> Arduino pin 8 5. RW -> Arduino pin 7 6. E -> Arduino pin 6 7. D0 -> Arduino -არ არის დაკავშირებული 8. D1 -> Arduino -არ არის დაკავშირებული 9. D2 -> Arduino -არ არის დაკავშირებული 10. D3 -> Arduino -არ არის დაკავშირებული 11. D4 -> Arduino pin 5 12. D5 -> Arduino pin 4 13. D6 -> Arduino pin 3 14. D7 -> Arduino pin 2 15. A -> Arduino Pin 13 + რეზისტორი (შუქნიშნის სიმძლავრე) 16. K -> Arduino GND (Backlight ground) ARDUINO კოდი: სერიული მონიტორისთვის:

Serial.print ("ვოლტაჟი:"); სერიული. ბეჭდვა (ძაბვა); Serial.println ("ვოლტი"); Serial.print ("CURRENT:"); სერიული. ბეჭდვა (ამპერი); Serial.println ("ამპერები"); Serial.print ("POWER:"); სერიული. ბეჭდვა (ვატი); Serial.println ("ვატი"); Serial.print ("ენერგეტიკული მოხმარებული:"); სერიული. ბეჭდვა (ენერგია); Serial.println ("ვატ-საათი"); Serial.println (""); // ამობეჭდოთ პარამეტრების შემდეგი ნაკრები ცარიელი ხაზის დაყოვნების შემდეგ (2000); LCD– ისთვის: LCD ეკრანისთვის თქვენ ჯერ უნდა შემოიტანოთ კოდი "LiquidCrystal" ბიბლიოთეკა. LequidCrystal ბიბლიოთეკის შესახებ მეტი რომ იცოდეთ დააწკაპუნეთ აქ LCD სამეურვეო პროგრამისთვის clickhere შემდეგი კოდი არის ფორმატი, რომელიც LCD– ში აჩვენებს ყველა გამოთვლას სიმძლავრისა და ენერგიის შესახებ #ჩართეთ LCD (8, 7, 6, 5, 4, 3, 2); int backLight = 9; void setup () {pinMode (backLight, OUTPUT); // დააყენეთ pin 9 გამომავალი analogWrite (backLight, 150); // აკონტროლებს შუქის ინტენსივობას 0-254 ლკდ. დასაწყისი (16, 2); // სვეტები, რიგები. ეკრანის ზომა lcd.clear (); // ეკრანის გასუფთავება} void loop () {lcd.setCursor (16, 1); // კურსორის დაყენება ჩვენების რაოდენობის გარეთ lcd.print (""); // ამობეჭდვა ცარიელი სიმბოლოების დაყოვნება (600); ////////////////////////////////////////// ბეჭდვა ძალა და ენერგია LCD– ზე/ ////////////////////////////////////////////////cc.setCursor (1, 0); // კურსორის დაყენება 1 სვეტზე და 1 რიგის lcd.print (watt); lcd.print ("W"); lcd. ბეჭდვა (ძაბვა); lcd.print ("V"); lcd.setCursor (1, 1); // კურსორის დაყენება 1 სვეტზე და მეორე რიგის lcd.print (ენერგია); lcd.print ("WH"); lcd. ბეჭდვა (ამპერი); lcd.print ("A"); }

ნაბიჯი 8: მონაცემების ატვირთვა Xively.com– ზე

მონაცემთა ატვირთვა Xively.com– ზე
მონაცემთა ატვირთვა Xively.com– ზე
მონაცემთა ატვირთვა Xively.com– ზე
მონაცემთა ატვირთვა Xively.com– ზე
მონაცემთა ატვირთვა Xively.com– ზე
მონაცემთა ატვირთვა Xively.com– ზე

იხილეთ ზემოთ მოცემული ეკრანის ანაბეჭდები უკეთესი მდგომარეობისთვის. მონაცემების ატვირთვისთვის xively.com– ზე შემდეგი ბიბლიოთეკა უნდა გადმოიტვირთოს HttpClient: დააწკაპუნეთ აქ Xively: დააწკაპუნეთ აქ SPI: იმპორტი arduino IDE– დან (ესკიზი -> ბიბლიოთეკის იმპორტი…..) Ethernet: იმპორტი arduino– დან IDE ((ესკიზი -> ბიბლიოთეკის იმპორტი…..) ანგარიშის გახსნა https://xively.com– ით (ყოფილი pachube.com და cosm.com) დარეგისტრირდით დეველოპერის უფასო ანგარიშზე

აირჩიეთ მომხმარებლის სახელი, პაროლი, მიუთითეთ თქვენი მისამართი და დროის ზონა და ა.შ. თქვენ მიიღებთ დადასტურების ელ.წერილს;

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

  • დააჭირეთ ღილაკს +მოწყობილობის დამატება
  • მიეცით სახელი თქვენს მოწყობილობას და აღწერას (მაგ. ენერგიის მონიტორინგი) ·
  • აირჩიეთ პირადი ან საჯარო მონაცემები (მე ვირჩევ პირადს) ·
  • დააწკაპუნეთ მოწყობილობის დამატებაზე

მოწყობილობის დამატების შემდეგ თქვენ გადახვალთ ახალ გვერდზე, სადაც ბევრი მნიშვნელოვანი ინფორმაციაა

  • პროდუქტის ID, პროდუქტის საიდუმლო, სერიული ნომერი, აქტივაციის კოდი ·
  • Feed ID, FeedURL, API End Point (არხის ID გამოიყენება ARDUINO კოდში)
  • არხების დამატება (IChoose ENERGY და POWER, მაგრამ თქვენ შეგიძლიათ აირჩიოთ თქვენი არჩევანის მიხედვით) მიუთითეთ ერთეული და სიმბოლო პარამეტრისთვის ·
  • დაამატეთ თქვენი ადგილი ·
  • API გასაღებები (გამოიყენება ARDUINO კოდში, მოერიდეთ ამ ნომრის გაზიარებას) ·
  • გამომწვევები (პინგის მოწინავე გვერდი, როდესაც მოვლენა მოხდა, მაგალითად, როდესაც ენერგიის მოხმარება აღემატება გარკვეულ ზღვარს)

ნაბიჯი 9: Xively და ARDUINO კოდი

აქ დავამატე ენერგიის მრიცხველის სრული კოდი (ბეტა ვერსია) SD ბარათის მონაცემების აღრიცხვის გარდა, რომელიც ცალკეა მიმაგრებული მომდევნო ეტაპზე. / ** ენერგიის მონიტორინგის მონაცემები ატვირთულია xively **/ #include #include #include #include #define API_KEY "xxxxxxxx" // შეიყვანეთ თქვენი Xively API გასაღები #განსაზღვრეთ FEED_ID xxxxxxxxx // შეიყვანეთ თქვენი Xively საკვების ID // MAC მისამართი თქვენი Ethernet shield byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // ანალოგური პინი, რომელსაც ჩვენ ვაკვირდებით (0 და 1 გამოიყენება Ethernet ფარის მიერ) int sensorPin = 2; ხელმოუწერელი long lastConnectionTime = 0; // ბოლო დროს ჩვენ დავუკავშირდით Cosm const unsigned long connectionInterval = 15000; // შეფერხება Cosm– თან დაკავშირებას შორის მილიწამებში // Cosm ბიბლიოთეკის ინიციალიზაცია // განსაზღვრეთ სტრიქონი ჩვენი datastream ID char sensorId = "POWER"; char sensorId2 = "ენერგია"; XivelyDatastream მონაცემთა გადაცემები = {XivelyDatastream (sensorId, strlen (sensorId), DATASTREAM_FLOAT), XivelyDatastream (sensorId2, strlen (sensorId2), DATASTREAM_FLOAT), DATASTREAM_FLOAT),}; // გადაიტანეთ მონაცემთა ნაკადის წყარო XivelyFeed არხში (FEED_ID, datastreams, 2/ * ნომერი datastreams */); EthernetClient კლიენტი; XivelyClient xivelyclient (კლიენტი); void setup () {Serial.begin (9600); Serial.println ("ქსელის ინიციალიზაცია"); while (Ethernet.begin (mac)! = 1) {Serial.println ("შეცდომა IP მისამართის მიღებისას DHCP საშუალებით, ცდა ისევ …"); დაგვიანება (15000); } Serial.println ("ქსელის ინიციალიზაცია"); Serial.println (); } void loop () {if (millis () - lastConnectionTime> connectionInterval) {sendData (); // მონაცემების გაგზავნა xively getData- ში (); // წაიკითხეთ მონაცემთა გადაცემა xively lastConnectionTime = millis (); // განაახლეთ კავშირის დრო, ასე რომ ჩვენ დაველოდებით ხელახლა დაკავშირებამდე}} void sendData () {int sensor1 = watt; int სენსორი 2 = ენერგია; datastreams [0].setFloat (სენსორი 1); // დენის მნიშვნელობა datastreams [1].setFloat (სენსორი 2); // ენერგეტიკული ღირებულება Serial.print ("Read power"); Serial.println (datastreams [0].getFloat ()); Serial.print ("ენერგიის წაკითხვა"); Serial.println (datastreams [1].getFloat ()); Serial.println ("ატვირთვის Xively"); int ret = xivelyclient.put (არხი, API_KEY); Serial.print ("PUT დაბრუნების კოდი:"); Serial.println (ret); Serial.println (); } // მიიღეთ მონაცემთა ნაკადის მნიშვნელობა xively– დან, დაბეჭდეთ ის მნიშვნელობა, რომელიც მივიღეთ void getData () {Serial.println ("მონაცემების კითხვა Xively- დან"); int ret = xivelyclient.get (არხი, API_KEY); Serial.print ("მიიღეთ დაბრუნების კოდი:"); Serial.println (ret); if (ret> 0) {Serial.print ("Datastream არის:"); Serial.println (არხი [0]); Serial.print ("სიმძლავრის მნიშვნელობა არის:"); Serial.println (feed [0].getFloat ()); Serial.print ("Datastream არის:"); Serial.println (არხი [1]); Serial.print ("ენერგეტიკული ღირებულება არის:"); Serial.println (feed [1].getFloat ()); } Serial.println ();

ნაბიჯი 10: მონაცემთა შესვლა SD ბარათში

SD ბარათში მონაცემების შესანახად თქვენ უნდა შემოიტანოთ SD ბიბლიოთეკა სამეურვეო პროგრამისთვის დააწკაპუნეთ აქ SD ბიბლიოთეკის შესახებ მეტი ინფორმაციისათვის დააწკაპუნეთ აქ SD ბარათზე მონაცემების შენახვის კოდი ცალკეა დაწერილი, რადგან არ მაქვს საკმარისი მეხსიერება ჩემს ARDUINO UNO– ში LCD კოდის ჩაწერა და მონაცემების ატვირთვა xively.com. მაგრამ მე ვცდილობ გავაუმჯობესო ბეტა ვერსიის კოდი ისე, რომ ერთი კოდი შეიცავდეს ყველა მახასიათებელს (LCD ეკრანი, Xively მონაცემების ატვირთვა და SD ბარათში მონაცემების შენახვა). მონაცემთა ჟურნალის კოდი მოცემულია ქვემოთ. თუ ვინმე დაწერს უკეთესი კოდი ჩემი კოდის შეცვლით გთხოვთ გამიზიაროთ. ეს არის ჩემი პირველი ტექნიკური ინსტრუქცია, თუ ვინმემ აღმოაჩინა რაიმე შეცდომა მასში, მოგერიდებათ კომენტარი.. ასე რომ მე შემიძლია საკუთარი თავის გაუმჯობესება. თუ ამ პროექტში გაუმჯობესების სფეროებს აღმოაჩენთ გთხოვთ კომენტარებში ან მომწერეთ, ასე რომ, პროექტი უფრო მძლავრი იქნება. მე ვფიქრობ, რომ ის სასარგებლო იქნება როგორც სხვებისთვის, ასევე ჩემთვის.

123D სქემების კონკურსი
123D სქემების კონკურსი
123D სქემების კონკურსი
123D სქემების კონკურსი

მესამე პრიზი 123D სქემების კონკურსში

გირჩევთ: