ዝርዝር ሁኔታ:

የበር እና የሙቀት ሁኔታ ሁኔታ ምዝግብ ማስታወሻ ፕሮጀክት 21 ደረጃዎች
የበር እና የሙቀት ሁኔታ ሁኔታ ምዝግብ ማስታወሻ ፕሮጀክት 21 ደረጃዎች

ቪዲዮ: የበር እና የሙቀት ሁኔታ ሁኔታ ምዝግብ ማስታወሻ ፕሮጀክት 21 ደረጃዎች

ቪዲዮ: የበር እና የሙቀት ሁኔታ ሁኔታ ምዝግብ ማስታወሻ ፕሮጀክት 21 ደረጃዎች
ቪዲዮ: Мэр копатель ► 2 Прохождение Silent Hill: Homecoming 2024, ህዳር
Anonim
የበር እና የሙቀት ሁኔታ ሁኔታ ምዝግብ ማስታወሻ ፕሮጀክት
የበር እና የሙቀት ሁኔታ ሁኔታ ምዝግብ ማስታወሻ ፕሮጀክት

ይህ አስተማሪ ESP8266 NodeMCU ፣ DHT11 የሙቀት መጠን እና የእርጥበት ዳሳሽ ፣ የበር/የመስኮት ዘንግ መቀየሪያ ፣ የ 10 ኬ ohm resistor እና አንዳንድ የማያያዣ ሽቦን በመጠቀም ከ 10.00 ዶላር በታች ቀላል የበር እና የሙቀት ሁኔታ ምዝግብ ማስታወሻ እንዴት እንደሚሠሩ ያሳየዎታል።

እኔ ስለ አርዱinoኖ ተኳሃኝ EPS8266 NodeMCU ብዙ እያነበብኩ ስለነበር የዚህ ፕሮጀክት ዘረኝነት በአርዱዲኖ ቦርድ የበለጠ የቤት አውቶማቲክ ለማድረግ ካለው ፍላጎት የመጣ ነው ፣ አንዳንድ ሙከራዎችን ለማድረግ ይህ ቦርድ ፍጹም ዝቅተኛ ዋጋ ያለው ቦርድ እንደሚሆን ወሰንኩ። የ ESP8266 ቦርዶችን በመጠቀም የቤት አውቶማቲክ ፕሮጄክቶችን በይነመረቡን ከፈለግኩ በኋላ ለመጀመሪያው ሙከራዬ የሙቀት እና የበሩን ሁኔታ ምዝግብ ማስታወሻ በማጣመር ላይ ቆየሁ። ውሎ አድሮ ይህ ፕሮጀክት ከ 50 ዓመታት በፊት አያቴ የተቀየሰውን እና የሠራውን ትንሽ የግሪን ሃውስ በራስ -ሰር ለማሠራት ከ servos ፣ ከእርጥበት ዳሳሾች እና ከሌሎች ኤሌክትሮኒክስ ጋር ይደባለቃል። የሙቀት አነፍናፊው የማሞቂያ ስርዓቱ መሳተፍ ወይም መላቀቅ እንዳለበት እንዲሁም አስፈላጊ በሚሆንበት ጊዜ የአየር ማስወጫ ስርዓቱን እንዲከፍት እና እንዲዘጋ ለማድረግ ሰርቦሶቹን ምልክት እንዲያደርግ ይጠቅማል። በመግነጢሳዊው ሸምበቆ መቀየሪያዎች በመጠቀም የአየር ማናፈሻ ስርዓቱ ሁኔታ ቁጥጥር ይደረግበታል። በመጨረሻም የእርጥበት ዳሳሾች የውሃ ስርዓት በራስ -ሰር ለማገልገል ያገለግላሉ።

ደረጃ 1 የኃላፊነት ማስተባበያ

ይህንን አስተማሪ በመከተል ለሚከሰቱ ነገሮች ምንም ሀላፊነት እንደማንወስድ ለመግለፅ ፈጣን ማስተባበያ ብቻ። ማንኛውንም ነገር በሚገነቡበት ጊዜ የአምራቾችን መመሪያዎች እና የደህንነት ሉሆችን መከተል ሁል ጊዜ የተሻለ ነው ስለዚህ እባክዎን የራስዎን ለመገንባት ለሚጠቀሙባቸው ማናቸውም ክፍሎች እና መሳሪያዎች እነዚያን ሰነዶች ያማክሩ። እኛ የእኛን ለመፍጠር በተጠቀምንበት እርምጃዎች ላይ መረጃን ብቻ እያቀረብን ነው። እኛ ባለሙያዎች አይደለንም። እንደ እውነቱ ከሆነ በዚህ ግንባታ ከተሳተፉት ግለሰቦች መካከል 2 ቱ 3 ልጆች ናቸው።

ደረጃ 2: ነፃ የ IFTTT መለያ ያዋቅሩ

ነፃ የ IFTTT መለያ ያዋቅሩ
ነፃ የ IFTTT መለያ ያዋቅሩ

አስቀድመው ከሌለዎት ወደ መነሻ ገፃቸው በመሄድ ነፃ የ IFTTT መለያ ለማቀናበር ጊዜው አሁን ነው። IFTTT የሚያመለክተው If This then That እና በይነመረብ ላይ የተመሠረቱ አገልግሎቶችን በአዲስ መንገዶች ለማገናኘት የሚያስችል ነፃ መድረክ ነው። እነዚያን አገልግሎቶች በአዲስ መንገዶች እንዲጠቀሙ ያስችሉዎታል። ለዚህ ፕሮጀክት አንድ ESP8266 በ Google ሉሆች ሰነድ ውስጥ በ DHT11 ዳሳሽ በኩል በሸምበቆ ማብሪያ እና የሙቀት መጠን እና እርጥበት በኩል በር እንዲገባ ለማስቻል IFTTT ን እንጠቀማለን።

ደረጃ 3 የ IFTTT አፕልትን ይፍጠሩ

የ IFTTT አፕሌት ይፍጠሩ
የ IFTTT አፕሌት ይፍጠሩ

አሁንም በ IFTTT ውስጥ እያለ ወደ “የእኔ አፕልቶች” ክፍል ይሂዱ እና “አዲስ አፕሌት” ቁልፍን ጠቅ በማድረግ አዲስ አፕሌት ይፍጠሩ።

ደረጃ 4 - የአፕሌትዎን “ይህንን” ክፍል ያዋቅሩ።

ን ያዋቅሩ
ን ያዋቅሩ

በሰማያዊ ቀለም ውስጥ ባለው “ይህ” ቃል ላይ ጠቅ ያድርጉ - ከላይ በስዕሉ ላይ እንደተመለከተው።

ደረጃ 5: የ WebHooks አገልግሎትን ወደ የእርስዎ አፕሌት ያክሉ።

የ WebHooks አገልግሎትን ወደ የእርስዎ አፕሌት ያክሉ።
የ WebHooks አገልግሎትን ወደ የእርስዎ አፕሌት ያክሉ።

በፍለጋ አሞሌው ውስጥ “ዌብሆክስ” የሚለውን አገልግሎት ይፈልጉ እና የዌብሆክስ አዶን ይምረጡ።

አንዴ “ዌብሆክስ” አገልግሎቱን ካገኙ በኋላ ጠቅ ያድርጉት።

ደረጃ 6: የድር ጥያቄን የሚቀሰቅስ ተቀባይን ያዋቅሩ።

የድር ጥያቄን የሚቀሰቅስ ተቀባይን ያዋቅሩ።
የድር ጥያቄን የሚቀሰቅስ ተቀባይን ያዋቅሩ።

“የድር ጥያቄ ተቀበል” የሚለውን ቀስቃሽ ይምረጡ።

ደረጃ 7 - የክስተት ስም ያቅርቡ

የክስተት ስም ያቅርቡ
የክስተት ስም ያቅርቡ

በጽሑፍ ሳጥኑ ውስጥ አዲሱን አፕሌትዎን የክስተት ስም ያቅርቡ። “የውሂብ ማስመዝገቢያ” መርጫለሁ ፣ ግን የሚወዱትን መምረጥ ይችላሉ።

ደረጃ 8 - የአፕሌትዎን “ያንን” ክፍል ያዋቅሩ።

ን ያዋቅሩ
ን ያዋቅሩ

በሰማያዊ ቀለም ውስጥ ባለው “ያ” ቃል ላይ ጠቅ ያድርጉ - ከላይ በስዕሉ ላይ እንደተመለከተው።

ደረጃ 9 - የድርጊት አገልግሎትን ያዋቅሩ

የድርጊት አገልግሎትን ያዋቅሩ
የድርጊት አገልግሎትን ያዋቅሩ

በፍለጋ ሳጥኑ ውስጥ “የጉግል ሉሆች” አገልግሎትን ይፈልጉ እና የ Google ሉሆችን አዶ ጠቅ ያድርጉ።

ደረጃ 10 ከ Google ሉሆች ጋር ይገናኙ

ከ Google ሉሆች ጋር ይገናኙ
ከ Google ሉሆች ጋር ይገናኙ

እርስዎ አስቀድመው ካላደረጉት የ IFTTT መለያዎን ከ Google ሉሆች ጋር ማገናኘት ያስፈልግዎታል። ከላይ የሚታየውን የግንኙነት ቁልፍን ይጫኑ እና የማያ ገጽ ላይ መመሪያዎችን ይከተሉ።

ደረጃ 11 - አንድ እርምጃ ይምረጡ

አንድ እርምጃ ይምረጡ
አንድ እርምጃ ይምረጡ

“ወደ የተመን ሉህ ረድፍ አክል” ላይ ጠቅ ያድርጉ።

ደረጃ 12 - እርምጃውን ያዋቅሩ

እርምጃውን ያዋቅሩ
እርምጃውን ያዋቅሩ

በ “ተመን ሉህ ስም” የጽሑፍ ሳጥን ውስጥ ስም ያቅርቡ። ወጥነት ለማግኘት “Data_Logger” ን ለመጠቀም እመርጣለሁ። ቀሪውን ቅንብር ብቻውን ይተዉት (በሌላ መቼት በእነዚያ ቅንብር ሙከራ ማድረግ ይችላሉ) እና ከዚያ በማያ ገጹ ታችኛው ክፍል ላይ “እርምጃ ፍጠር” የሚለውን ቁልፍ ይጫኑ።

ደረጃ 13 - የእርስዎን አፕሌት ይገምግሙ እና ያጠናቅቁ።

የእርስዎን Applet ይገምግሙ እና ያጠናቅቁ።
የእርስዎን Applet ይገምግሙ እና ያጠናቅቁ።

አንዴ በአፕሌት ውቅርዎ ከረኩ በኋላ “ጨርስ” የሚለውን ቁልፍ ይጫኑ።

ደረጃ 14 - በኋላ ላይ የሚያስፈልገውን የውቅረት መረጃ ሰርስረው ያውጡ።

በኋላ የሚፈለገውን የውቅር መረጃ ሰርስረው ያውጡ።
በኋላ የሚፈለገውን የውቅር መረጃ ሰርስረው ያውጡ።

ከላይ እንደተደመደመው “ዌብሆክስ” ላይ ጠቅ ያድርጉ።

ደረጃ 15 - ለኤፒአይ ቁልፍ ወደ የድር መንጠቆዎች ሰነድ ይቀጥሉ

ለኤፒአይ ቁልፍ ወደ ዌብሆክስ ሰነዶች ይቀጥሉ
ለኤፒአይ ቁልፍ ወደ ዌብሆክስ ሰነዶች ይቀጥሉ

እንግዳ ሊመስል ይችላል ነገር ግን በልዩ ኤፒአይ ቁልፍዎ ወደ ገጹ ለመቀጠል በላይኛው ቀኝ ጥግ ላይ ባለው የሰነድ አገናኝ ላይ ጠቅ ያድርጉ።

ደረጃ 16 የኤፒአይ ቁልፍን ያስቀምጡ

የኤፒአይ ቁልፍን ያስቀምጡ
የኤፒአይ ቁልፍን ያስቀምጡ
የኤፒአይ ቁልፍን ያስቀምጡ
የኤፒአይ ቁልፍን ያስቀምጡ

የሰነድ ማሳያ የመጀመሪያው መስመር የእርስዎን ልዩ የኤፒአይ ቁልፍ ያሳያል። በኋላ ላይ ለመጠቀም ይህን ቁልፍ ይቅዱ እና ያስቀምጡ።

እንዲሁም አፕልቱን እዚህ መሞከር ጥሩ ሀሳብ ነው። ያስታውሱ {ክስተቱን} ወደ Data_Logger ወይም ማንኛውንም ክስተትዎን የሰየሙትን እና በ 3 ባዶ እሴቶች ላይ የተወሰነ ውሂብ ማከል እና ከዚያ በገጹ ታችኛው ክፍል ላይ ያለውን “ይሞክሩት” የሚለውን ቁልፍ ጠቅ ያድርጉ። “ክስተት ተቀስቅሷል” የሚል አረንጓዴ መልእክት ማየት አለብዎት። ከሆነ ወደ ጉግል ሰነዶች ይቀጥሉ እና በሙከራ ገጹ ውስጥ ያስገቡት ውሂብ በ Google ሉሆች ሰነድ ውስጥ መታየቱን ያረጋግጡ።

ደረጃ 17: ክፍሎቹን ይሰብስቡ

አካላቱን ሰብስብ
አካላቱን ሰብስብ
አካላቱን ሰብስብ
አካላቱን ሰብስብ
አካላቱን ሰብስብ
አካላቱን ሰብስብ

ጥቂት ክፍሎች ብቻ ያስፈልግዎታል።

1) ESP8266 NodeMcu ልማት ቦርድ

2) DHT11 የሙቀት/እርጥበት ዳሳሽ

3) በር/የመስኮት ዘንግ መቀየሪያ

4) 10k Ohm Resistor

5) የማያያዣ ሽቦ

ደረጃ 18: ክፍሎቹን ይሰብስቡ

1) በ ESP8266 ላይ ካለው 3v3 ፒን አንዱን በ DHT11 ላይ ካለው vcc ፒን ጋር ያገናኙ።

2) በ ESP8266 ላይ ከመሬት ካስማዎች አንዱን በ DHT11 ላይ ካለው መሬት ፒን ጋር ያገናኙ።

3) በ EST8266 ላይ በ ‹DT11› ላይ ካለው የመረጃ ፒን D4 (በአይዲኤ ውስጥ ፒን 2)።

4) በ ESP8266 ላይ ሌላ 3v3 ፒን ከበሩ/የመስኮት ሸምበቆ ማብሪያ/ማጥፊያ ጋር ያገናኙ።

5) በ ESP8266 ላይ በበሩ/የመስኮት ሸምበቆ ማብሪያ/ማብሪያ/ማብሪያ/ማብሪያ/ማብሪያ/ማብሪያ/ማብሪያ/ማብሪያ/ማብሪያ/ማብሪያ/ማጥፊያ/መሽከርከሪያ D5 (በ IDE ውስጥ ፒን 14)።

6) የ 10k ohm resistor ሌላውን ጎን በ ESP8266 ላይ ከሌላ የመሬት ፒን ጋር ያገናኙ።

ለ ESP8266 የፒን ምርጫዎች እባክዎን ይህንን አጋዥ ሥዕላዊ መግለጫ ወይም በጣም ጠቃሚ ቪዲዮን ይመልከቱ።

ደረጃ 19 የአርዲኖን ኮድ ይፃፉ

የአርዱዲኖ ኮድ ይፃፉ
የአርዱዲኖ ኮድ ይፃፉ

ከዚህ በታች ያለውን ኮድ ወደ አርዱዲኖ አይዲኢ ይቅዱ እና ይለጥፉ።

#አካትት #አካትት "DHT.h" ን አካት

#ዲኤችፒፒን 2 // ምን ዓይነት ዲጂታል ፒን ተገናኝተናል

#መግለፅ DOORPIN 14 // የበሩ ማብሪያ / ማጥፊያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማብሪያ / ማጥፊያ በርቷል።

#ጥራት DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN ፣ DHTTYPE);

int ቆጠራ = 1;

const char* ssid = "some_ssid"; // የእርስዎን ssid const char* password = "some_password" ለመጠቀም ይህንን ይለውጡ ፤ // የይለፍ ቃልዎን int sleepTime = 100 ለመጠቀም ይህንን ይለውጡ።

// ሰሪ Webhooks IFTTT

const char* server = "maker.ifttt.com";

// የ IFTTT ዩአርኤል ሀብት

const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // የአገልግሎት ስምዎን እና የኤፒአይ ቁልፍዎን መጠቀሙን ያረጋግጡ።

የገመድ በርStatus = "ተዘግቷል";

ተለዋዋጭ bool stateChanged = ሐሰት;

// ለሰዓታት ተኝተው ከሆነ በ hr * 60 ደቂቃዎች * 60 ሰከንዶች * 1000 ሚሊሰከንዶች የጊዜ ክፍተት ያዘጋጁ

const ረጅም ክፍተት = 1.0 * 60 * 60 * 1000; // 1 ሰዓት ያልተፈረመ ረጅም ቀዳሚ ሚሊሊስ = 0 - (2 * ክፍተት);

ባዶነት ማዋቀር () {

Serial.begin (115200); አባሪ ማቋረጫ (digitalPinToInterrupt (DOORPIN) ፣ eventTriggered ፣ CHANGE); pinMode (በር ፣ መግቢያ); // የበር ዳሳሽ dht.begin (); WiFi.begin (ssid ፣ የይለፍ ቃል);

Serial.print ("\ n በማገናኘት ላይ..");

ሳለ (WiFi.status ()! = WL_CONNECTED) {መዘግየት (1000); Serial.print ("."); } Serial.print ("\ n"); }

ባዶነት ክስተትTriggered () {

stateChanged = እውነት; Serial.println ("በሩን መፈተሽ!"); ከሆነ (digitalRead (DOORPIN) == HIGH) // በሩ ክፍት መሆኑን ለማየት ይፈትሹ {Serial.println ("በር ተዘግቷል!"); doorStatus = "ተዘግቷል"; } ሌላ {Serial.println (“በሩ ክፍት ነው!”) ፤ doorStatus = "ተከፈተ"; }}

ባዶ የቼክ ሁኔታ () {

(WiFi.status () == WL_CONNECTED) {// የ WiFi ግንኙነት ሁኔታን ይፈትሹ // የንባብ ሙቀት ወይም እርጥበት 250 ሚሊሰከንዶች ይወስዳል! // የዳሳሽ ንባቦች እንዲሁ እስከ 2 ሰከንዶች ያረጁ (በጣም ቀርፋፋ ዳሳሽ) ተንሳፋፊ h = dht.read እርጥበት (); // የሙቀት መጠንን እንደ ሴልሺየስ (ነባሪው) ተንሳፋፊ t = dht.readTemperature (); // የሙቀት መጠንን እንደ ፋራናይት (isFahrenheit = true) ተንሳፋፊ f = dht.readTemperature (እውነት); // ማንኛውም ንባብ ካልተሳካ ያረጋግጡ እና ቀደም ብለው ይውጡ (እንደገና ለመሞከር)። (ኢስናን (ሸ) || ኢስናን (ቲ) || ኢስናን (ረ)) {Serial.println ("ከ DHT ዳሳሽ ማንበብ አልተሳካም!"); //Serial.print ("."); // ከ DHT ዳሳሽ ማንበብ አልተሳካም! መመለስ; } // በፋራናይት (ነባሪው) ተንሳፋፊ ሂፍ = dht.computeHeatIndex (f ፣ h) ውስጥ የሙቀት መረጃ ጠቋሚውን ያስሉ ፤ // በሴልሲየስ (isFahreheit = false) ተንሳፋፊ ሂክ = dht.computeHeatIndex (t ፣ h ፣ ሐሰት) ላይ ያስሉ።

Serial.print ("\ n");

Serial.print ("ሙቀት:"); Serial.print (ረ); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print ("የሙቀት መረጃ ጠቋሚ"); Serial.print (hif); Serial.print (" *F (")); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("እርጥበት:"); Serial.println (ሸ);

ከሆነ (digitalRead (DOORPIN) == HIGH) // በሩ ክፍት መሆኑን ለማየት ይፈትሹ

{Serial.println ("በር ተዘግቷል!"); doorStatus = "ተዘግቷል"; } ሌላ {Serial.println (“በሩ ክፍት ነው!”) ፤ doorStatus = "ተከፈተ"; } ሕብረቁምፊ jsonObject = ሕብረቁምፊ ("{" value1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTPClient http; ሕብረቁምፊ ተጠናቅቋል = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (አገልጋይ); http.addHeader (“የይዘት-ዓይነት” ፣ “ትግበራ/json”); http. POST (jsonObject); http.writeToStream (& ተከታታይ); http.end (); // ዝጋ ግንኙነት

stateChanged = ሐሰት;

int sleepTimeInMinutes = ክፍተት / 1000/60; Serial.print ("\ n / n ወደ መተኛት ሂድ"); Serial.print (sleepTimeInMinutes); Serial.println ("ደቂቃ (ቶች)…"); }}

ባዶነት loop () {

ያልተፈረመ ረዥም የአሁኑ ሚሊሊስ = ሚሊስ (); መዘግየት (4000); // ካለፈው ጊዜ በላይ ከሆንን የበሩን እና የሙቀት መጠኑን ቼክ ያስገድዱ። ከሆነ (currentMillis - previousMillis> = interval) {stateChanged = true; previousMillis = currentMillis; Serial.print (መቁጠር ++); Serial.println (") ካለፈው ጊዜ የተነሳ ማጣራት!"); } ሌላ ከሆነ (stateChanged) {Serial.print (count ++); Serial.println (") በመንግስት ለውጥ ምክንያት መፈተሽ!"); }

// ግዛት ከተለወጠ በሩን እና የአየር ሁኔታን ይፈትሹ።

ከሆነ (stateChanged) {checkStatus (); }

መዘግየት (የእንቅልፍ ጊዜ);

}

ደረጃ 20 ውጤቶች

ውጤቶች
ውጤቶች

በቀዳሚው ደረጃ ውስጥ የምንጭ ኮዱን አንዴ ከሰቀሉ ከላይ እንደሚታየው ምሳሌ ያሉ ውጤቶች ሊኖሯቸው ይገባል።

ደረጃ 21: ክሬዲቶች

ከ Random Nerd አጋዥ ሥልጠናዎች ብዙ ጠቃሚ ፍንጮችን እና ምክሮችን አግኝቻለሁ እናም ለእነሱ ሁሉ ላመሰግናቸው እፈልጋለሁ። በተለይም የዚህ አስተማሪ ዋና ዋና ክፍሎች የተመሠረቱባቸው በ ESP32 ESP8266 ላይ የአነፍናፊ ንባቦችን ወደ ጉግል ሉሆች ያትሙ።

በተጨማሪም ፣ ከ ‹Circuit› ያለው DHT11 Instructable ይህንን በጣም ርካሽ ግን ሳቢ የሆነ ትንሽ ዳሳሽ እንዴት እንደሚጠቀም እንድረዳ ረድቶኛል።

በተጨማሪም ፣ እንደ ጋራጅ በር መቆጣጠሪያ እና ሌላ ከ Random Ner Tutorials ያሉ በሮችዎን ከመቆጣጠር ጋር የሚዛመዱ ብዙ ትምህርቶች አሉ። የሸምበቆ መቀየሪያዬን በትክክል እንዴት መሥራት እንደሚቻል ለመረዳት እንዲረዳኝ የእነዚህን ቁርጥራጮች እና ቁርጥራጮች እጠቀም ነበር።

በመጨረሻም ፣ በዚህ መረጃ እንዲሁም በበይነመረብ ዙሪያ ባገኘኋቸው ሌሎች ዝርዝሮች ፍላጎቶቼን የሚያሟላ ስርዓት መፍጠር ችያለሁ። ይህንን አስተማሪ ጠቃሚ ሆኖ አግኝተው ከራስዎ አንዱን እንደሚገነቡ ተስፋ አደርጋለሁ።

የሚመከር: