ዝርዝር ሁኔታ:

Arduino UNO ን በመጠቀም የአየር ሁኔታ ጣቢያ 7 ደረጃዎች
Arduino UNO ን በመጠቀም የአየር ሁኔታ ጣቢያ 7 ደረጃዎች

ቪዲዮ: Arduino UNO ን በመጠቀም የአየር ሁኔታ ጣቢያ 7 ደረጃዎች

ቪዲዮ: Arduino UNO ን በመጠቀም የአየር ሁኔታ ጣቢያ 7 ደረጃዎች
ቪዲዮ: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, ሀምሌ
Anonim
Arduino UNO ን በመጠቀም የአየር ሁኔታ ጣቢያ
Arduino UNO ን በመጠቀም የአየር ሁኔታ ጣቢያ

የተፈጠረው በ: ሃዘል ያንግ

ይህ ፕሮጀክት የውሂብ ፍሰትን ለመቆጣጠር የ Arduino UNO ሰሌዳ ፣ ውሂቡን ለመሰብሰብ የ DHT22 ዳሳሽ እና ውሂቡን ለማሳየት የ OLED ማያ ገጽን በመጠቀም የአየር ሁኔታ ጣቢያ ነው።

ደረጃ 1: የእቃ ዝርዝር

የእቃ ዝርዝር
የእቃ ዝርዝር

1. ማያ-OLED ፣ 1.3 ማሳያ SH1106 ፣ I2C ነጭ ቀለም ---- PID: 18283

2. ዳሳሽ-ዲጂታል እርጥበት እና የሙቀት ዳሳሽ DHT22 ---- PID: 7375

3. ያገናኛል-የጁምፐር ሽቦዎች ---- PID: 10316 ወይም 10318 ወይም 10312 (እንደ ርዝመቱ ይወሰናል) ወይም ጠንካራ ሽቦ 22 AWG ---- PID: 22490 መጠቀም ይችላሉ

የዳቦ ሰሌዳ ---- PID-10686 ወይም 10698 ወይም 103142 (በመጠን ላይ የሚመረኮዝ)

4. ኃይል - ይህ ገመድ ከኮምፒዩተር ዩኤስቢ ወደብ ጋር ብቻ ሊገናኝ የሚችል ሲሆን ገመዱም በ IDE እና በአርዱዲኖ ቦርድ መካከል ለውሂብ ዝውውር ያገለግላል። የዩኤስቢ ኬብል ፣ ሀ ለ ፣ ኤም/ኤም ፣ 0.5 ሜ (1.5FT) ---- PID: 29862

ወይም ይህንን ተጠቅመው ቦርዱን ለማብራት 5V 2A AC/DC Adapter ---- PID: 10817.

ደረጃ 2 - አንጻራዊ መግቢያ

አንጻራዊ መግቢያ
አንጻራዊ መግቢያ
አንጻራዊ መግቢያ
አንጻራዊ መግቢያ

የማያ ገጽ መግቢያ - 1.3 ኢንች OLED ማሳያ ነጭ

1. መሰረታዊ ቅንብሩን እና መግለጫዎችን የሚያሳይ ሰነድ ማግኘት ይችላሉ

የአነፍናፊ መግቢያ - እርጥበት እና የሙቀት ዳሳሽ DHT22 1. መግለጫዎቹን የሚያሳየውን ሰነድ ማግኘት ይችላሉ-

ደረጃ 3: ወረዳውን ያገናኙ

ወረዳውን ያገናኙ
ወረዳውን ያገናኙ

የ DHT22 ዳሳሽ ተከታታይ መረጃን ወደ ሚስማር ይልካል 2. ስለዚህ ፣ ሁለተኛውን ፒን ከግራ በኩል ያገናኙ ፣ የ “ኤስዲኤ” ፒን ከፒን 2 ጋር መገናኘት አለበት።

ለ SSH1106 ማሳያ ለማስተላለፍ የአናሎግ ፒን ይጠቀማል። የማያ ገጹ ወረዳው ለአርዱዲኖ “A5” እና “SDA” ፒን ለአርዱዲኖ “A4” “SCL” ፒን ይሆናል። የፒክሴል አቀማመጥ መረጃ ያለማቋረጥ እያስተላለፈ ሳለ በፕሮግራሙ ውስጥ ያለው የማሳያ ተግባር ውሂቡን ከአነፍናፊው በሚያነብበት ጊዜ አንድ ጊዜ ትዕዛዙን ብቻ ያነቃቃል።

ሁለቱም ዳሳሽ እና ማያ ገጹ በአርዲኖ ላይ እንደ ዲሲ የኃይል ግብዓት 3.3V ን መጠቀም ይችላሉ። ለኃይል ፣ ሁለቱንም የ “ቪሲሲ” ፒኖችን ከአርዱዲኖ “3.3 ቪ” ጋር ማገናኘት አለብን። እና “GND” ፒኖች በአርዱዲኖ ሰሌዳ ላይ ካለው “GND” ፒን ጋር በቀላሉ ሊገናኙ ይችላሉ።

የዩኤስቢ ሀ ለ ቢ ገመድ ይጠቀሙ ፣ አርዱዲኖን ከኮምፒዩተር ጋር ያገናኙ።

ደረጃ 4 - ለማጠናቀር ይዘጋጁ

“u8glib” ለ SSH1106 ማያ ገጽ ከ Olikraus።

“DHT ዳሳሽ ቤተ -መጽሐፍት” ለ DHT22 ዳሳሽ ከአዳፍ ፍሬ። ሁለቱን ቤተ-መጻሕፍት ማውረድ አለብዎት-DHT22 ዳሳሽ ቤተ-መጽሐፍት-

U8glib:

እና እንዳይገለበጡ ለማድረግ በ IDE ውስጥ “ቤተ -መጽሐፍትን ያስተዳድሩ” ይጠቀሙ። ቤተመፃሕፍትን የማስተዳደር የመስመር ላይ መመሪያ

ደረጃ 5 ለ DHT22 ዳሳሽ ተከታታይ ወደብ የሙከራ ኮድ

ለ DHT22 ዳሳሽ ተከታታይ ወደብ (በ DHT22 ቤተ -መጽሐፍት ውስጥ >> ምሳሌዎች) የሙከራ ኮይ

(ይህንን ክፍል መዝለል ይችላሉ።)

እሱ የ DHT22 ዳሳሹን በመደበኛነት መረጃን ያነባል።

#ያካትቱ

#ያካትቱ

#ያካትቱ

#ያካትቱ

#ያካትቱ

#DHTPIN 2 ን መለየት

#ገላጭ DHTTYPE DHT22

DHT dht (DHTPIN ፣ DHTTYPE);

ባዶነት ማዋቀር () {

Serial.begin (9600);

Serial.println (ኤፍ ("DHT22 ፈተና!"));

dht.begin ();

}

ባዶነት loop () {

// በመለኪያዎቹ መካከል ጥቂት ሰከንዶች ይጠብቁ።

መዘግየት (2000);

// የንባብ ሙቀት ወይም እርጥበት ወደ 250 ሚሊሰከንዶች ይወስዳል!

// የዳሳሽ ንባቦች እንዲሁ እስከ 2 ሰከንዶች ያረጁ ሊሆኑ ይችላሉ (በጣም ቀርፋፋ ዳሳሽ ነው)

ተንሳፋፊ h = dht.read እርጥበት ();

// ሙቀትን እንደ ሴልሺየስ ያንብቡ (ነባሪው)

ተንሳፋፊ t = dht.readTemperature ();

// የሙቀት መጠንን እንደ ፋራናይት (isFahrenheit = true) ያንብቡ

ተንሳፋፊ f = dht.read ሙቀት (እውነት);

// ማንኛውም ንባብ ካልተሳካ ያረጋግጡ እና ቀደም ብለው ይውጡ (እንደገና ለመሞከር)።

ከሆነ (ኢስናን (ሸ) || ኢስናን (t) || ኢስናን (ረ)) {

Serial.println (ኤፍ ("ከ DHT ዳሳሽ ማንበብ አልተሳካም!"));

መመለስ;

}

// በፋራናይት (ነባሪ) ውስጥ የሙቀት መረጃ ጠቋሚውን ያስሉ

ተንሳፋፊ ሂፍ = dht.computeHeatIndex (ረ ፣ ሸ);

// በሴልሲየስ ውስጥ የሙቀት መረጃ ጠቋሚውን ያስሉ (isFahreheit = false)

ተንሳፋፊ hic = dht.computeHeatIndex (t ፣ h ፣ ሐሰት);

Serial.print (ኤፍ ("እርጥበት:"));

Serial.print (ሸ);

Serial.print (F ("% ሙቀት:"));

Serial.print (t);

Serial.print (F ("° C"));

Serial.print (ረ);

Serial.print (F ("° F Heat index:"));

Serial.print (hic);

Serial.print (F ("° C"));

Serial.print (hif);

Serial.println (F ("° F"));

}

// ፕሮግራሙን ካጠናቀቁ በኋላ ውሂቡን ለመፈተሽ TOOLS >> SERIAL MONITOR ን ጠቅ ያድርጉ።

// የሙከራ ፕሮግራሙ መጨረሻ።

ደረጃ 6 ለፕሮጀክቱ ኮድ

#ያካትቱ

#ያካትቱ

#ያካትቱ

#ያካትቱ

#ያካትቱ

#DHTPIN 2 ን መለየት

#ገላጭ DHTTYPE DHT22

#"U8glib.h" ን ያካትቱ

U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);

DHT ዳሳሽ (DHTPIN ፣ DHTTYPE);

ባዶ ባዶ (ባዶ) {

u8g.setFont (u8g_font_unifont);

ተንሳፋፊ h = sensor.readHumidity ();

// ሙቀትን እንደ ሴልሺየስ ያንብቡ (ነባሪው)

ተንሳፋፊ t = sensor.readTemperature ();

// ማንኛውም ንባብ ካልተሳካ ያረጋግጡ እና ቀደም ብለው ይውጡ (እንደገና ለመሞከር)።

ከሆነ (ኢስናን (ሸ) || ኢስናን (t)) {

u8g.print ("ስህተት.");

ለ (;;;);

መመለስ;

}

u8g.setPrintPos (4, 10);

u8g.print ("ሙቀት (C):");

u8g.setPrintPos (4, 25);

u8g.print (t);

u8g.setPrintPos (4, 40);

u8g.print ("እርጥበት (%):"));

u8g.setPrintPos (4, 55);

u8g.print (ሸ);

}

ባዶነት ማዋቀር (ባዶ) {

u8g.setRot180 ();

Serial.begin (9600);

sensor.begin ();

}

ባዶነት loop (ባዶ) {

// የምስል loop

u8g.firstPage ();

መ ስ ራ ት {

መሳል ();

} ሳለ (u8g.nextPage ());

// ከተወሰነ መዘግየት (2000) በኋላ ስዕሉን እንደገና ይገንቡ።

}

// የዋናው ፕሮግራም መጨረሻ።

ደረጃ 7: መግለጫ

መግለጫ
መግለጫ

ከዚያ ለአርዱዲኖ ቦርድ የፒን ወረዳውን ያስጀምሩ። ምክንያቱም ዳሳሽ ቤተ -መጽሐፍት ነገሩን ለማወጅ ውሂቡን ይፈልጋል።

እና “Serial.print ()” የተባለውን ተግባር በመጠቀም የውጤቱን መረጃ በዲጂታል ፒን 2 በኩል በመከታተል የአነፍናፊውን ውሂብ መሞከር ይችላሉ። የውሂብ ማስተላለፉ ድግግሞሽ በግምት 1 ንባብ በየ 2 ሰከንዶች (ይህም 0.5 Hz ነው) ፣ በአርዱዲኖ አይዲኢ ውስጥ ፕሮግራም ሲደረግ ፣ በሉፕ ተግባሩ ውስጥ መዘግየቱን ከ 2 ሰከንዶች በላይ እንዲሆን ማድረግ አለብን። ስለዚህ በ loop ተግባር ውስጥ “መዘግየት (2000)” አለ። ይህ ውሂቡ በተደጋጋሚ እንደሚታደስ ያረጋግጣል። በ “ስዕል” ተግባር ውስጥ ውሂቡን ከተከታታይ የውሂብ ወደብ ያግኙ እና የ “readHumidity” እና “readTemperature” ተግባሮችን በመጠቀም ቁጥሮችን እንዲንሳፈፉ ያድርጓቸው።

በ “u8glib” ፋይል ውስጥ የህትመት ተግባሩን በመጠቀም እርጥበት እና የሙቀት መጠን ያትሙ። በ “setPrintPos” ተግባር ውስጥ ቁጥሩን በመቀየር ቦታውን ማስተካከል ይችላሉ። የህትመት ተግባሩ ጽሑፉን እና ቁጥሮችን በቀጥታ ሊያሳይ ይችላል።

ሃርድዌርን ለማዋቀር ፣ ተከታታይ ወደቡን ለ 10 ሰከንዶች መዘግየት ይስጡ። ከዚያ የመነሻውን ተግባር ለአነፍናፊው ይደውሉ። በወረዳዬ መሠረት ማያዬ ተገልብጦ ነበር። ስለዚህ ማሳያውን ለማሽከርከር የ “setRot180” ተግባርም አካትቻለሁ።

የአርዱዲኖ ቦርድ የሉፕ ተግባር ዋና ተግባር ነው። አነፍናፊው በሚታደስበት ጊዜ ሁሉ ጽሑፉን እና ውሂቡን ለማሳየት የስዕል ተግባሩን መጥራቱን ይቀጥላል።

ማያ ገጹ እንደዚህ ይመስላል

የ Arduino UNO ን ከኮምፒዩተርዎ ማለያየት እና ከ 2.1 ሚሜ የኃይል መሰኪያ ጋር የሚገናኝ የ 5 ቮ ዲሲ የኃይል አስማሚ በመጠቀም ኃይል መስጠት ይችላሉ። ፕሮግራሙን በእሱ ድራይቭ ውስጥ ያከማቻል እና ከኃይል በኋላ ፕሮግራሙን ያለማቋረጥ እንደገና ማስኬድ ይችላል።

የሚመከር: