ዝርዝር ሁኔታ:

DHT11/DHT22 ዳሳሽን ከደመናው ጋር በ ESP8266 ላይ የተመሠረተ ቦርድ ማገናኘት 9 ደረጃዎች
DHT11/DHT22 ዳሳሽን ከደመናው ጋር በ ESP8266 ላይ የተመሠረተ ቦርድ ማገናኘት 9 ደረጃዎች

ቪዲዮ: DHT11/DHT22 ዳሳሽን ከደመናው ጋር በ ESP8266 ላይ የተመሠረተ ቦርድ ማገናኘት 9 ደረጃዎች

ቪዲዮ: DHT11/DHT22 ዳሳሽን ከደመናው ጋር በ ESP8266 ላይ የተመሠረተ ቦርድ ማገናኘት 9 ደረጃዎች
ቪዲዮ: КАК ИЗМЕРИТЬ ТЕМПЕРАТУРУ И ВЛАЖНОСТЬ. ДАТЧИКИ DHT11 И DHT22 [Уроки Ардуино #13] 2024, መስከረም
Anonim
DHT11/DHT22 ዳሳሽን ከደመናው ጋር በ ESP8266 ላይ የተመሠረተ ቦርድ ማገናኘት
DHT11/DHT22 ዳሳሽን ከደመናው ጋር በ ESP8266 ላይ የተመሠረተ ቦርድ ማገናኘት

በቀደመው ጽሑፍ ፣ የእኔን ESP8266 ላይ የተመሠረተ የ NodeMCU ቦርድ ከ Cloud4RPi አገልግሎት ጋር አገናኘሁት። አሁን ፣ ለእውነተኛ ፕሮጀክት ጊዜው አሁን ነው!

አቅርቦቶች

የሃርድዌር መስፈርቶች;

  • በ ESP8266 ቺፕ ላይ የተመሠረተ ማንኛውም ሰሌዳ (ለምሳሌ ፣ NodeMCU)
  • አንድ DHT11 ወይም DHT22 ዳሳሽ

ሶፍትዌር እና አገልግሎቶች;

  • የዲኤች ቲ ዳሳሽ ቤተመጽሐፍት በአዳፍ ፍሬ - v1.3.7
  • Adafruit የተዋሃደ ዳሳሽ - v1.0.3
  • cloud4rpi-esp-arduino-v0.1.0
  • Cloud4RPI - ለ IoT መሣሪያዎች የደመና መቆጣጠሪያ ፓነል
  • PlatformIO IDE ለ VSCode

ደረጃ 1 የሙቀት መጠን እና እርጥበት ይለኩ

የሙቀት መጠን እና እርጥበት ይለኩ
የሙቀት መጠን እና እርጥበት ይለኩ

ቀደም ሲል የ DHT11 ዳሳሽ ነበረኝ ፣ ስለዚህ ለሙቀት እና ለእርጥበት ልኬቶች ለመጠቀም ወሰንኩ። የአነፍናፊ ውሂብን ለማንበብ የአርዲኖ ቤተ -መጽሐፍት እንምረጥ።

የአርዱዲኖ መዝገብ ብዙ ቤተ -መጽሐፍትን ይ containsል ፣ ከእዚያም በጣም ታዋቂ የሆነውን መርጫለሁ።

በጊትሆብ ማከማቻቸው መሠረት እኛ ደግሞ የአዳፍ ፍሬዝ የተዋሃደ ዳሳሽ ጥቅል ማከል አለብን።

ደረጃ 2 ፕሮጀክት ይፍጠሩ እና ያዋቅሩ

ፕሮጀክት ይፍጠሩ እና ያዋቅሩ
ፕሮጀክት ይፍጠሩ እና ያዋቅሩ

ቀደም ሲል የ PlatformIO ፕሮጀክት እንዴት እንደሚፈጥር እና በመጀመሪያው ክፍል ውስጥ ቤተ -ፍርግሞችን እንደሚጭኑ ገልጫለሁ። የእኔ ፕሮጀክት “MyNodeMCU” ይባላል። መዋቅሩ ከላይ ይታያል።

ይህ ፕሮጀክት በትንሹ የተሻሻለ የ Cloud4RPi ምሳሌ ነው። ከኮድ ይልቅ የመሣሪያ ማስመሰያ እና የ Wi-Fi ምስክርነቶችን በማዋቀሪያ ፋይል ውስጥ ለማከማቸት ወሰንኩ።

የመድረክ.io ፋይል እንደሚከተለው ይመስላል

[platformio] default_envs = nodemcuv2 [env: nodemcuv2] መድረክ = espressif8266 frame = arduino board = nodemcuv2

ደረጃ 3 ቤተ -ፍርግሞችን ይጫኑ

ቤተ -ፍርግሞችን ይጫኑ
ቤተ -ፍርግሞችን ይጫኑ

የቤተ መፃህፍት መጫኛ በጣም ቀላል ነው። ከ IDE ግራፊክ በይነገጽ ፣ ወይም አስፈላጊውን የቤተመጽሐፍት ስሞች ወደ የመድረክ.io ፋይል lib_deps ክፍል በማድረግ ሊያደርጉት ይችላሉ።

; …… D CLOUD4RPI_TOKEN = / "_ የእርስዎ_መሣሪያ_ቶኬን _ \"

የታከሉ ቤተ -መጽሐፍት በራስ -ሰር ወደ ፕሮጀክት ንዑስ አቃፊ ውስጥ ይጫናሉ።

ዋናው.cpp ራስጌ እንደሚከተለው ይመስላል

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

ደረጃ 4 የ DHT11 ዳሳሽ ያገናኙ

Adafruit የአነፍናፊ ግንኙነት የ DHTtester.ino ምሳሌን ይሰጣል።

ይህ ኮድ አነፍናፊን ያስጀምራል እና የመለኪያ ውጤቱን ለማከማቸት መዋቅርን ይገልጻል (ከተሳካ)

#ጥራት DHTPIN 2 // ከዲኤችቲ ዳሳሽ ጋር የተገናኘ ዲጂታል ፒን#DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN ፣ DHTTYPE) ይገልፃል ፤ dht.begin (); //… መዋቅሩ DHT_Result {float h; ተንሳፋፊ t; }; DHT_ ውጤት dhtResult;

ቀጣዩ ተግባር የአነፍናፊ መረጃን እንዴት ማንበብ እና ከላይ በተገለጸው የውሂብ መዋቅር ውስጥ ማከማቸት እንደሚቻል ያሳያል

ባዶ ንባብ ዳሳሾች () {float h = dht.readHumidity (); // የሙቀት መጠንን እንደ ሴልሺየስ (ነባሪው) ተንሳፋፊ t = dht.readTemperature ();

// ማንኛውም ንባብ ካልተሳካ ያረጋግጡ እና ይውጡ

ከሆነ (isnan (h) || isnan (t)) {Serial.println (F ("ከ DHT ዳሳሽ ማንበብ አልተሳካም!"))); መመለስ; } dhtResult.h = h; dhtResult.t = t; }

ደረጃ 5 - መረጃን ወደ ደመናው መላክ

አንዴ ያንን መረጃ ካገኘን ቀጣዩ ደረጃ ወደ Cloud4RPi አገልግሎት መላክ ነው።

የ Cloud4RPi ለ Arduino ገጽ የሚጠቀሙባቸው ዘዴዎች ስብስብ የሆነውን የቤተ -መጽሐፍቱን ኤፒአይ ይገልፃል-

  • ተለዋዋጮችን መፍጠር ፣ ማንበብ እና ማዘመን ፣
  • የ MQTT ፕሮቶኮልን በመጠቀም ተለዋዋጭ እሴቶችን ወደ ደመናው ይላኩ።

ቤተ -መጽሐፍት ሶስት ተለዋዋጭ ዓይነቶችን ይደግፋል -ቡል ፣ ቁጥራዊ እና ሕብረቁምፊ።

የቤተ መፃህፍቱ የስራ ሂደት የመሣሪያ ማስመሰያውን ከደመና 4rpi.io ድር ጣቢያ በመጠቀም የኤፒአይ ምሳሌን በመፍጠር ይጀምራል (ለዝርዝሩ ጽሑፉን ክፍል 1 ይመልከቱ)።

#ከተገለጸ (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #ኤንዲፍ

ከዚያ ለ DHT11 ንባቦች ተለዋዋጮችን ያውጁ-

c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");

ከዚያ ፣ ከአነፍናፊው ውሂብ ያግኙ ፣ ወደ ተለዋዋጮች ያስቀምጧቸው እና ውሂቡን ወደ Cloud4RPi ያትሙ

c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();

የሙቀት መጠን እና እርጥበት በፍጥነት አይለወጥም ፣ ስለሆነም በ 5 ደቂቃዎች ውስጥ ከአንድ በላይ እሴት መላክ አያስፈልግም።

ደረጃ 6 - ምርመራዎች

Cloud4RPi ከተለዋዋጭ እሴቶች ጋር የምርመራ መረጃን ይደግፋል። እኔ እንደ የመመርመሪያ መረጃ የሰዓት ሰአት ፣ የ Wi-Fi ምልክት ጥንካሬ እና የአይፒ አድራሻ ተጠቀምኩ

c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // የ WiFi ምልክት ጥንካሬ c4r.declareDiagVariable (“Uptime”);

ማሳሰቢያ - በየጊዜውም ~ 50 ቀኖች ጊዜን ወደ ዜሮ ዳግም ማስጀመር የማገለግልበት የሚሊስ ተግባር። ለፕሮጄኬቴ ከበቂ በላይ የሆነው።

የሚከተለው ኮድ የምርመራ ተለዋዋጭ እሴቶችን ያዘጋጃል-

c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();

የ uptimeHumanReadable ተግባር ሚሊሰከንዶችን ወደ ምቹ ቅጽ ይለውጣል።

ሕብረቁምፊ የጊዜ ሰአት የሰው ሊነበብ የሚችል (ያልተፈረመ ረጅም ሚሊሰከንዶች) {static char uptimeStr [32]; ያልተፈረመ ረጅም ሰከንዶች = ሚሊሰከንዶች / 1000; ያልተፈረመ ረጅም ደቂቃዎች = ሰከንድ / 60; ያልተፈረመ int int ሰዓታት = ደቂቃዎች / 60; ያልተፈረሙ int ቀናት = ሰዓታት / 24; ሰከንዶች -= ደቂቃዎች * 60; ደቂቃዎች -= ሰዓታት * 60; ሰዓታት -= ቀናት * 24; sprintf (uptimeStr ፣ “%d ቀናት%2.2d:%2.2d:%2.2d” ፣ (ባይት) ቀናት ፣ (ባይት) ሰዓታት ፣ (ባይት) ደቂቃዎች ፣ (ባይት) ሰከንዶች); ተመለስ ሕብረቁምፊ (uptimeStr); }

ተግባሩ እንግዳ በሆነ ትልቅ ቁጥር ፋንታ እንደዚህ ያለ ሕብረቁምፊን 5 ቀናት 10:23:14 ያወጣል።

ደረጃ 7 - ፕሮጀክቱን ይጀምሩ እና ያርሙ

ፕሮጀክቱን ጀምር እና አርም
ፕሮጀክቱን ጀምር እና አርም

የተፈጠረውን ኮድ አጠናቅቆ ወደ NodeMCU ካበራ በኋላ መሣሪያው ከደመና አገልግሎት ጋር ይገናኛል እና ውሂብ መላክ ይጀምራል።

የ CLOUD4RPI_DEBUG ቅድመ -ፕሮሰሰር ተለዋዋጭ ወደ 1 (በመድረክ.io ፋይል ውስጥ_የፍላጎችን ክፍል ለመገንባት -D CLOUD4RPI_DEBUG = 1 ን በማከል) የምዝግብ ቃላትን (verbosity) ማሳደግ ይችላሉ።

በመቀጠል የደመና4rpi.io ጣቢያውን ይክፈቱ እና አዲሱን መሣሪያ በመስመር ላይ ያስተውሉ። ከመሣሪያው የተቀበሉትን ሁሉንም ተለዋዋጭ እሴቶች ለማየት ይክፈቱት - ዳሳሽ እና ምርመራዎች።

ደረጃ 8 - የዳሽቦርድ ውቅር

የዳሽቦርድ ውቅር
የዳሽቦርድ ውቅር

በዚህ ደረጃ ፣ ከደመናው ጋር ያለው የመረጃ ግንኙነት ይሠራል። አሁን የውሂቡን ምስላዊ ውክልና እናዋቅር።

የሚከተለውን ዳሽቦርድ ለመፍጠር የዳሽቦርድ ውቅር በይነገጽን እጠቀም ነበር።

ዳሽቦርዱ ሊጋራ የሚችል ነው ፣ ስለዚህ ወዲያውኑ ለጓደኛዬ እጋራዋለሁ።

ደረጃ 9 መደምደሚያ

መደምደሚያ
መደምደሚያ

ሙሉ የፕሮጀክቱ ኮድ በአጭሩ ውስጥ ይገኛል።

ለጊዜው ይሄው ነው!

ጥያቄዎች እና አስተያየቶች በአስተያየቶች ውስጥ እንኳን ደህና መጡ።

የሚመከር: