Სარჩევი:

IDC2018IOT GarbageCan-Online: 7 ნაბიჯი
IDC2018IOT GarbageCan-Online: 7 ნაბიჯი

ვიდეო: IDC2018IOT GarbageCan-Online: 7 ნაბიჯი

ვიდეო: IDC2018IOT GarbageCan-Online: 7 ნაბიჯი
ვიდეო: Marvel's Spider-man: Miles Morales (ფილმი) 2024, დეკემბერი
Anonim
Image
Image
საჭირო ნაწილები
საჭირო ნაწილები

შესავალი

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

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

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

Ძირითადი მახასიათებლები

  1. მონიტორინგის დაფა:

    • მთავარი განყოფილება:

      • თითოეული ნაგვის ურნის სისრულის დონე.
      • თითოეული ნაგვის ურნის ტემპერატურა და ტენიანობა.
    • სტატისტიკის განყოფილება:

      • ყველაზე ნაგვის ურნა.
      • ყველაზე ცხელი ნაგვის ურნა.
  2. შეტყობინებებისა და შეტყობინებების სისტემა:

    • მხარდაჭერილია შემდეგი ღონისძიებები:

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

    • კალიბრაციის ღილაკის გამოყენებით შესაძლებელია სისტემის მორგება სხვადასხვა ნაგვის ურნებზე, განსხვავებული სიმძლავრით.
    • შედარებით ნაგვის ურნების დამატება შედარებით ადვილია. შეიძლება ერთი და იგივე სისტემა შეიკრიბოს ახალ ნაგვის ურნაზე, დააყენოთ ნაგვის ურნის იდენტიფიკაცია და დაკალიბრება (ღილაკის დაჭერა). 3 -ზე მეტი ნაგვის ურნის არსებობას დასჭირდება დაფის გაფართოება (ადვილი შესასრულებელი ამოცანა).

Ვინ ვართ ჩვენ?

ეს პროექტი შეიქმნა (სიყვარულით და თავდადებით!) რომ ცინკინატუსმა და დანიელ ალიმამ - IDC Herzliya– ს სტუდენტებმა, როგორც ჩვენი IoT კურსის ფინალური პროექტი. ჩვენ ვიმედოვნებთ, რომ თქვენ ნახავთ ჩვენს სამუშაოს სასარგებლო და ისიამოვნებთ მისი გამოყენებით!

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

სისტემის შესაქმნელად თქვენ გექნებათ შეძენის შემდეგი კომპონენტები და ნაწილები:

  1. ნაგვის ურნა (სასურველია სახურავით): ეს იქნება გამოყენებული … კარგად.. იცით რას ვაპირებთ ამ ერთით, არა?;)
  2. პურის დაფა: დააკავშიროთ ყველა განსხვავებული კომპონენტი შედუღების გამოყენების გარეშე.
  3. NodeMCU (ESP-8266): პასუხისმგებელია სენსორების კითხვაზე და ინფორმაციის ღრუბელში გაგზავნაზე.
  4. მანძილის IR სენსორი - მკვეთრი 0A41SK: ეს სენსორი გაზომავს ნაგვის რაოდენობას (სისავსის დონე) ქილაში.
  5. ტემპერატურისა და ტენიანობის სენსორი - DHT11: ეს სენსორი გაზომავს ნაგვის ურნის შიგნით ტემპერატურასა და ტენიანობას.
  6. მომენტალური გადართვა: გამოყენებული იქნება მანძილის სენსორის დაკალიბრებისთვის ნაგვის ურნის ზომის მიხედვით.
  7. ალუმინის კილიტა: გამოყენებული იქნება სახურავის სტატუსის დეტექტორის შესაქმნელად - გახსნილია თუ დახურული.
  8. Jumper მავთულები: მიიღეთ უამრავი, და სხვადასხვა სიგრძისა და ფერის. დააკავშირებს ყველაფერს ერთმანეთთან.
  9. სადინარის ფირზე: ჩვენ მოგვიწევს ნივთების ადგილზე მიმაგრება.
  10. მიკრო USB კაბელი: დაუკავშირეთ NodeMCU თქვენს კომპიუტერს პროგრამირებისათვის, მოგვიანებით კი კვების ბლოკისთვის.
  11. USB კვების ბლოკი (სმარტფონის დამტენი): უზრუნველყოფს NodeMCU- ს ენერგიას ნაგვის ურნაზე დაყენებისას.

ნაბიჯი 2: გაყვანილობა და შეკრება

გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა

გაყვანილობა

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

  • მანძილის IR სენსორი - მკვეთრი 0A41SK:

    • ვინი (წითელი) ვინი
    • GND (შავი) GND
    • Vout (ყვითელი) A0
  • ტემპერატურისა და ტენიანობის სენსორი - DHT11:

    • Vin (წითელი) 3V3
    • GND (შავი) GND
    • მონაცემები (ყვითელი) D4
  • მომენტალური გადართვა:

    • Pin1 D3
    • Pin2 GND
  • სახურავის სტატუსი (გახსნა / დახურვა) მავთულები:

    • მავთული 1 D2
    • მავთული 2 GND

შეკრება

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

  1. განათავსეთ IR დისტანციის სენსორი სახურავის შუაგულში (შიდა მხრიდან!). დარწმუნდით, რომ დაიცავით იგი სწორად, წინააღმდეგ შემთხვევაში თქვენ წააწყდებით ცრუ კითხვას!
  2. განათავსეთ ტემპერატურისა და ტენიანობის სენსორი ნაგვის ურნის შიგნით. დაიცავით ფირზე.
  3. დაფარეთ სახურავის მხარე და ნაგვის ურნის წვერი ალუმინის ფოლგით. დარწმუნდით, რომ არის კარგი კონტაქტი სახურავის დახურვისას. ეს სიგნალს მისცემს სისტემას, რომ ნაგვის ურნა გახსნილი ან დახურულია. შემდეგ ჩადეთ თითოეული სახურავის სტატუსი ერთ ალუმინის კილიტაში და დააფიქსირეთ ლენტით.

ნაბიჯი 3: დააყენეთ MQTT, Node-RED და IFTTT

დააყენეთ MQTT, Node-RED და IFTTT
დააყენეთ MQTT, Node-RED და IFTTT
დააყენეთ MQTT, Node-RED და IFTTT
დააყენეთ MQTT, Node-RED და IFTTT
დააყენეთ MQTT, Node-RED და IFTTT
დააყენეთ MQTT, Node-RED და IFTTT

პროექტის ლოგიკის უმეტესი ნაწილი რეალურად ხორციელდება ღრუბელში. NodeMCU აგზავნის მონაცემებს MQTT სერვერზე და Node-RED მოიხმარს მას და იყენებს მის ლოგიკას (უფრო მეტი არქიტექტურის შესახებ წინ). და ბოლოს, სმარტფონზე push შეტყობინებების (სიგნალების) გადასაცემად, ჩვენ გამოვიყენეთ IFTTT.

ჩვენ გამოვიყენებთ CloudMQTT და FRED ღრუბლოვან სერვისებს, როგორც ჩვენს MQTT და Node-RED სერვერებს, შესაბამისად, ჩვენ გამოვიყენებთ IFTTT push შეტყობინებებისათვის.

  1. დარეგისტრირდით CloudMQTT– ზე უფასო გეგმით. გაითვალისწინეთ თქვენი რწმუნებათა სიგელები MQTT სერვერზე (მომხმარებლის სახელი და პაროლი).
  2. დარეგისტრირდით IFTTT– ზე. შექმენით "Webhooks IFTTT აპლიკაციის შეტყობინების" ახალი აპლეტი. გამოიყენეთ "მობილური ტელეფონის შეტყობინება" როგორც WebHookds ღონისძიების სახელი. გაიარეთ კონსულტაცია ზემოთ მოცემულ სურათზე წვრილმანი წვრილმანი დეტალებისთვის. გაითვალისწინეთ თქვენი მწარმოებლის API გასაღები.
  3. ჩამოტვირთეთ IFTTT აპლიკაცია თქვენს ტელეფონში და შედით თქვენი რწმუნებათა სიგელებით. ეს საშუალებას მოგცემთ მიიღოთ push შეტყობინებები.
  4. დარეგისტრირდით FRED– ზე უფასო გეგმით.
  5. მას შემდეგ რაც FRED მაგალითი ამოქმედდება, შემოიტანეთ მასში თანდართული ნაკადები (3 ბარი ღილაკი იმპორტი ბუფერში). უბრალოდ ჩასვით თითოეული ფაილის შინაარსი (widgest.json, alerts.json, statistics.json) და შემოიტანეთ იგი.
  6. შეცვალეთ ერთი MQTT კვანძი (ერთი საკმარისია) თქვენი CloudMQTT სერთიფიკატების განახლებისთვის.
  7. შეცვალეთ IFTTT კვანძი თქვენი IFTTT მწარმოებლის API გასაღების გასაახლებლად.

ნაბიჯი 4: პროგრამირება NodeMCU და Garbage Can Capacity Calibration

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

  1. ჩამოტვირთეთ და დააინსტალირეთ Arduino IDE აქედან.
  2. დააინსტალირეთ და დააყენეთ NodeMCU დაფის ტიპი, როგორც ეს განმარტებულია ქვემოთ მოცემული ინსტრუქციის დასაწყისში.
  3. დააინსტალირეთ შემდეგი ბიბლიოთეკები (ესკიზი მოიცავს ბიბლიოთეკების მართვას ბიბლიოთეკები …):

    1. Adafruit MQTT ბიბლიოთეკა (ავტორი Adafruit)
    2. DHT სენსორების ბიბლიოთეკა (ავტორი Adafruit)
    3. SharpIR (ჯუზეპე მასინოს მიერ)
    4. EEPROMA არაფერი - ახსნა აქ.
  4. გახსენით GarbageCanOnline.ino ფაილი და განაახლოთ შემდეგი:

    1. თქვენი WiFi სერთიფიკატები (WLAN_SSID, WLAN_PASS)
    2. თქვენი CloudMQTT სერთიფიკატები (MQTT_USERNAME, MQTT_PASSWORD)
    3. თუ ეს მეორე ნაგვის ურნაა ან მეტი, შეცვალეთ ნაგვის ურნის ID (GARBAGECAN_ID)
  5. ატვირთეთ განახლებული ესკიზი თქვენს NodeMCU– ში.
  6. გახსენით სერიული მონიტორის ფანჯარა (Ctrl+M) და დარწმუნდით, რომ ის ახერხებს სენსორების მონაცემების გამოქვეყნებას CloudMQTT- ში.
  7. ახლა, როდესაც სახურავი დახურულია და ნაგვის ურნა ცარიელია, ხანგრძლივად დააჭირეთ კალიბრაციის ღილაკს ნაგვის ურნის მოცულობის დასაკალიბრებლად.
  8. ნაგვის ურნა მზადაა. შეგიძლიათ გათიშოთ კომპიუტერიდან და დაუკავშიროთ იგი დანიშნულ ადგილას USB დენის წყაროს გამოყენებით.

ნაბიჯი 5: სისტემის გამოყენება

სისტემის გამოყენება
სისტემის გამოყენება
სისტემის გამოყენება
სისტემის გამოყენება
სისტემის გამოყენება
სისტემის გამოყენება

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

ჩვენ ვივარაუდოთ, რომ თქვენ მხოლოდ ერთი ნაგვის ურნა გაქვთ დაკავშირებული, მაგრამ ადვილია მოგვიანებით დაამატოთ მეტი!

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

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

როდესაც სისავსის დონე აღწევს 85% -90% (ზუსტი ბარიერი დამოკიდებულია ტემპერატურასა და ტენიანობაზე), ან მოხდა სენსორის შეცდომა, თქვენ მიიღებთ შეტყობინებას თქვენი სასურველი მეთოდ (ებ) ის საშუალებით. თქვენ მიიღებთ შეტყობინებას საათში ერთხელ ნაგვის ურნაზე.

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

ნაბიჯი 6: ნაკადის გაგება

ნაკადის გაგება
ნაკადის გაგება
ნაკადის გაგება
ნაკადის გაგება
ნაკადის გაგება
ნაკადის გაგება
ნაკადის გაგება
ნაკადის გაგება

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

პირველ რიგში, ჩვენ გვაქვს ნაგვის ურნა NodeMCU და მისი სენსორებით. ჩვენ შეგვიძლია გვქონდეს უამრავი მათგანი - უბრალოდ ერთმანეთის "ასლები".

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

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

Node-RED– ის შიგნით ჩვენ შევქმენით ინფორმაციის 3 ძირითადი ნაკადი:

  1. ვიჯეტები - სენსორული ინფორმაცია, რომელიც იკვებება Node -RED– ში, ნაჩვენებია დაფაზე გაზომვებისა და გრაფიკების საშუალებით.
  2. გაფრთხილებები - სენსორული ინფორმაცია დამუშავებულია იმის დასასრულებლად, უნდა მოხდეს თუ არა გაფრთხილება (დაფაზე ან სმარტფონის აპლიკაციაზე). სისავსის დონე, ტემპერატურა და ტენიანობა მხედველობაში მიიღება იმისათვის, რომ გადაწყვიტოს აცნობოს მომხმარებელს, რომ ნაგვის ურნა სავსეა. ასევე, სენსორული შეცდომები იტყობინება ერთი და იგივე დინებით.
  3. სტატისტიკა - სენსორული ინფორმაცია გაერთიანებულია სრული და ცხელი ნაგვის ურნების საჩვენებლად.

იმისათვის, რომ Node-RED გამოაგზავნოს push შეტყობინება, ის უკავშირდება სერვისს სახელწოდებით IFTTT (HTTP პროტოკოლით). ის ააქტიურებს გარკვეულ IFTTT მოვლენას შესაბამისი შეტყობინების ტექსტით და IFTTT აგზავნის შეტყობინებას ჩვენს სმარტფონზე (HTTP & XMPP პროტოკოლები).

გაეცანით ზემოთ მოცემულ სურათებს, რომ უკეთ გაიგოთ (ა) სისტემის ზოგადი სტრუქტურა და (ბ) 3 განსხვავებული ინფორმაცია მიედინება Node-RED- ის შიგნით

ნაბიჯი 7: გამოწვევები, შეზღუდვები და სამომავლო გეგმები…

გამოწვევები

ამ პროექტის მთავარი გამოწვევები იყო ძირითადად MQTT და Node-RED სერვისების დამუშავება. ჩვენ პირველად გამოვიყენეთ AdafruitIO, მაგრამ მისი პერსონალური MQTT განხორციელება ჩვენთვის არ იყო კარგი. ეს არ იყო მოსახერხებელი Node-RED- ის შიგნით მისი "არხებით" მუშაობით. ამიტომ ჩვენ საბოლოოდ ავირჩიეთ CloudMQTT, რომელიც ემყარება Mosquitto MQTT სერვერს და ბევრად უფრო სტანდარტულია. შემდეგ ჩვენ გადავედით Node-RED– ის მართვაში, რაც საკმაოდ რთული იყო, ძირითადად იმიტომ, რომ Node-RED არის მხეცი. მაგალითად, ის ბევრად უფრო ყოვლისმომცველი და პროფესიონალია ვიდრე IFTTT ჩვენი თვალსაზრისით. ჩვენ უნდა შევასწოროთ და ვისწავლოთ როგორ გამოვიყენოთ მისი ნაკადზე დაფუძნებული დიზაინის მიდგომა სისტემის საჭირო მახასიათებლების შესაქმნელად. უფრო მეტიც, მისი ერთ -ერთი ყველაზე დიდი უპირატესობა არის javascript კოდის მხარდაჭერა, მაგრამ დრო დასჭირდა შეჩვევას, რადგან ჩვენ არ ვართ javascript პროგრამისტები. მიუხედავად ყველაფრისა, ჩვენ ძალიან ვისიამოვნეთ ამ კონკრეტულ ინსტრუმენტთან მუშაობით და აღმოვაჩინეთ, რომ ეს იყო ძალიან საინტერესო და სასარგებლო.

შეზღუდვები

რაც შეეხება შეზღუდვებს, პირველი იქნება ის ფაქტი, რომ ჩვენ ვიყენებდით მხოლოდ უფასო სერვისებს და ისინი არ დაუშვებენ სრულმასშტაბიან რეჟიმში წასვლას. CloudMQTT უფასო გეგმა არ დაუშვებს 5-ზე მეტ პარალელურ კავშირს, რაც იმას ნიშნავს, რომ ჩვენ შეგვიძლია გვქონდეს მხოლოდ 4 ნაგვის ურნა და Node-RED. FRED Node-RED უფასო გეგმა მხოლოდ 24 საათის პირდაპირ გამოყენების საშუალებას იძლევა, რის შემდეგაც ხელით უნდა შეხვიდეთ სისტემაში და გადატვირთოთ ტაიმერი. თუმცა, ეს საკითხები მარტივად მოგვარდება ან ამ სერვისების ადგილობრივად გაშვებით, ან ცოტაოდენი თანხის გადახდით შეზღუდვების მოხსნისთვის. მეორე შეზღუდვა არის ის, რომ როდესაც მეოთხე ნაგვის ურნას დაამატებთ და შემდეგ, მან ხელით უნდა შეასწოროს ვიჯეტის ნაკადები Node-RED– ში, რომ დაამატოს შესაბამისი ვიჯეტები.

Გეგმები მომავლისთვის

ჩვენ გვქონდა იდეები ჩვენი სისტემის კიდევ უფრო გასაძლიერებლად და გაფართოებისთვის:

  1. გადადით არა-უფასო ღრუბლოვან სერვისებზე. (ერთი სამუშაო დღე).
  2. ნაგვის ურნაში ნაგვის კომპრესორის დამატება, რითაც მცირდება მისი დაცლის სიხშირე. (4 თვის სამუშაო)
  3. ურბანული და სამრეწველო ნაგვის ურნებთან მუშაობა ქალაქის სატვირთო მანქანების ეფექტურობის გასაუმჯობესებლად, რომლებიც ამუშავებენ ნაგავს ქალაქში. ეს იმას ნიშნავს, რომ მნიშვნელოვნად გააუმჯობესოს დაფა და შეტყობინებების სისტემა, რათა სატვირთო მანქანების მძღოლებმა ნაგვის გატარებისას ბევრად უკეთ დაგეგმონ თავიანთი მარშრუტი. (6 თვის სამუშაო).
  4. ნაგვის ურნაში გადამუშავების შესაძლებლობების დამატება, მაგალითად ნაგავში სპეციალური ბიოლოგიური ხსნარების ჩაყრის უნარი და მისი გადამუშავება ნაგვის ურნის შიგნით ყოფნისას. ეს შეიძლება გამოყენებულ იქნას ადგილობრივად, მაგალითად, ბაღებისთვის კომპოსტის წარმოებისთვის, მაგრამ აშკარად შეიძლება გამოყენებულ იქნას ასევე სამრეწველო ქილაზე. (6 თვის სამუშაო).

გირჩევთ: