ዝርዝር ሁኔታ:

የ THINGSPEAK የሙቀት እና የእብሪት ትግበራ ESP8266 ን በመጠቀም 9 ደረጃዎች
የ THINGSPEAK የሙቀት እና የእብሪት ትግበራ ESP8266 ን በመጠቀም 9 ደረጃዎች

ቪዲዮ: የ THINGSPEAK የሙቀት እና የእብሪት ትግበራ ESP8266 ን በመጠቀም 9 ደረጃዎች

ቪዲዮ: የ THINGSPEAK የሙቀት እና የእብሪት ትግበራ ESP8266 ን በመጠቀም 9 ደረጃዎች
ቪዲዮ: Prototype 1 (Proteus simulation and Arduino code) - SOLAR TRACKER 2024, ህዳር
Anonim
የ THINGSPEAK የሙቀት መጠን እና የእብሪት ትግበራ ESP8266 ን በመጠቀም
የ THINGSPEAK የሙቀት መጠን እና የእብሪት ትግበራ ESP8266 ን በመጠቀም

ከኤሌክትሮኒክ ዕቃዎቼ ጋር እያወራሁ ፣ በድር ላይ የተመሠረተ የአየር ሁኔታ መተግበሪያን ለመሥራት ይህንን ሀሳብ አገኘሁ። ይህ የድር መተግበሪያ የእውነተኛ ጊዜ የሙቀት መጠን እና የእርጥበት መረጃን ለማግኘት የ SHT31 ዳሳሹን ይጠቀማል። እኛ ፕሮጀክታችንን በ ESP8266 WiFi ሞዱል ላይ አሰማርተናል። በመስመር ላይ ወይም ከመስመር ውጭ! መጨነቅ አያስፈልግዎትም ፣ በመስመር ላይም ሆነ ከመስመር ውጭ የአየር ሁኔታ ዝመናዎችን ከየትኛውም ቦታ እና በማንኛውም ጊዜ ያገኛሉ። ይህ የድር መተግበሪያ ውሂብን ለአካባቢያዊ የድር አገልጋይ እንዲሁም ለደመና ይለጥፋል። ለደመና ክወናዎች ፣ ThingSpeak API ን እየተጠቀምን ነው። SHT31 ውሂቡን ከአነፍናፊው ለማግኘት I2C ን ይጠቀማል።

SHT 31 በ Sensirion የተሰራ የሙቀት እና እርጥበት ዳሳሾች ነው። SHT31 ± 2% አርኤች አካባቢ ከፍተኛ ትክክለኝነትን ይሰጣል። የእርጥበት መጠኑ ከ 0 እስከ 100% እና የሙቀት መጠኑ ከ -40 እስከ 125 ° ሴ ነው። በ 8 ሰከንዶች የአነፍናፊ ምላሽ ጊዜ በጣም የበለጠ አስተማማኝ እና ፈጣን ነው። የእሱ ተግባራዊነት የተሻሻለ የምልክት ማቀነባበር እና I2C ተኳሃኝነትን ያካትታል። እሱ ኃይል ቆጣቢ የሚያደርግ የተለያዩ የአሠራር ሁነታዎች አሉት።

በዚህ መማሪያ ውስጥ SHT 31 ን ከአዳፍ ፍሬ ሁዛ ቦርድ ጋር አገናኝተናል። የሙቀት እና እርጥበት እሴቶችን ለማንበብ እኛ ESP8266 I2C ጋሻ ተጠቅመናል። ይህ አስማሚ ሁሉንም ፒኖች ለተጠቃሚው ተደራሽ ያደርገዋል እና ለተጠቃሚ ምቹ I2C አካባቢን ይሰጣል።

ደረጃ 1 ሃርድዌር ያስፈልጋል

ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል

ይህንን ተግባር ለማጠናቀቅ የሚያገለግል ሃርድዌር

  1. SHT 31
  2. አዳፍሩት ሁዛ ESP8266
  3. ESP8266 I2C አስማሚ
  4. I2C ገመድ

ደረጃ 2 የሃርድዌር ግንኙነቶች

የሃርድዌር ግንኙነቶች
የሃርድዌር ግንኙነቶች

ይህ ደረጃ የሃርድዌር ማያያዣ መመሪያን ያጠቃልላል። ይህ ክፍል በመሠረቱ በአነፍናፊው እና በ ESP8266 መካከል የሚፈለጉትን የሽቦ ግንኙነቶች ያብራራል። ግንኙነቶቹ እንደሚከተለው ናቸው።

  1. SHT31 ከ I2C በላይ ይሠራል። ከላይ ያለው ምስል በ ESP8266 እና SHT31 ሞዱል መካከል ያለውን ግንኙነት ያሳያል። እኛ ለእሱ I2C ገመድ እንጠቀማለን ፣ ወይም 4 F እስከ F jumper ሽቦዎችን መጠቀም እንችላለን።
  2. አንድ ሽቦ ለቪሲሲ ፣ ሁለተኛው ሽቦ ለ GND እና ሌሎች ሁለት ለ SDA እና ለ SCL ጥቅም ላይ ይውላል
  3. በ ES28266 ቦርድ I2C አስማሚ ፒን 2 እና ፒን 14 መሠረት እንደ SDA እና SCL በቅደም ተከተል ያገለግላሉ

ደረጃ 3 - ለተግባር መርሃ ግብር ኮድ

የተግባር መርሐግብር ኮድ
የተግባር መርሐግብር ኮድ

በዚህ መማሪያ ውስጥ ሶስት ቀዶ ጥገናዎችን እያደረግን ነው

  • I2C ፕሮቶኮልን በመጠቀም ከ SHT11 ውሂቡን ያንብቡ
  • የድር አገልጋዩን ያስተናግዱ እና አነፍናፊውን ለድረ -ገጹ ያንብቡ
  • የአነፍናፊ ንባቦችን ወደ ThingSpeak ኤፒአይ ይለጥፉ

ይህንን ለማሳካት TaskScheduler ቤተ -መጽሐፍትን እየተጠቀምን ነው። እኛ ሦስት የተለያዩ የቁጥጥር ሥራዎችን የሚያመለክቱ ሦስት የተለያዩ ሥራዎችን መርሐግብር አውጥተናል። ይህ እንደሚከተለው ይከናወናል

  • ተግባር 1 የ 10 ሴኮንድ ጊዜ እስኪያልቅ ድረስ ይህ ተግባር ለ 1 ሴኮንድ የሚሄድ የአነፍናፊ እሴት ለማንበብ ነው።
  • ተግባር 1 ጊዜው ሲያልቅ ተግባር 2 ነቅቷል እና ተግባር 1 ተሰናክሏል።
  • በዚህ ጥሪ መልሶ ማግኛ ውስጥ ከኤፒ ጋር እንገናኛለን ፣ በ STA እና AP መካከል ያለውን መቀያየር ለመንከባከብ ሁለት ቡሊያን ተለዋዋጮች ይወሰዳሉ

  • በተግባር 2 የድር አገልጋይ በ 192.168.1.4 እያስተናገድን ነው። የጊዜ ገደቡ እስኪደርስ ድረስ ይህ ተግባር በየ 5 ሰከንድ ይሠራል
  • ተግባር 2 የጊዜ ማብቂያ ላይ ሲደርስ ተግባር 3 ነቅቷል እና ተግባር 2 ተሰናክሏል።
  • በዚህ አመላካች ውስጥ ከ STA (አካባቢያዊ አይፒ) ጋር እንገናኛለን ተግባር 3 ውስጥ ዳሳሹን ንባብ ወደ ደመና ThingSpeak ኤፒአይ እንለጥፋለን
  • ተግባር 3 ጊዜውን እስኪያልቅ ድረስ በየአምስት ሰከንዶች ማለትም 50 ሰከንድ ይሠራል
  • ተግባር 3 ጊዜው ሲያልቅ ተግባር 1 እንደገና ነቅቷል እና ተግባር 3 ተሰናክሏል።
  • መልሶ ጥሪ ካልተጠራ ወይም መሣሪያው ስራ ፈት በሚሆንበት ጊዜ ወደ ብርሃን እንቅልፍ በመሄድ ኃይልን ይቆጥባል።

ባዶ ተግባርI2CCallback ();

ባዶ ተግባር I2CDisable (); ባዶ ተግባርAPCallback (); ባዶ ተግባርAPDisable (); ባዶ ተግባር WiFiCallback (); ባዶ ተግባር WiFiDisable (); // ተግባራት ለ i2c ፣ የድር አገልጋይን ማስተናገድ እና በነገሮች ላይ መለጠፍ ተግባር tI2C (1 * TASK_SECOND ፣ TASK_FOREVER ፣ & taskI2CCallback ፣ & ts ፣ ሐሰት ፣ NULL ፣ እና taskI2CDisable); ተግባር tI2C (1 * TASK_SECOND ፣ TASK_FOREVER ፣ & taskI2CCallback ፣ & ts ፣ ሐሰት ፣ NULL ፣ እና taskI2CDisable); ተግባር tAP (5*TASK_SECOND ፣ TASK_FOREVER ፣ እና ተግባርAPCallback ፣ & ts ፣ ሐሰት ፣ NULL ፣ እና ተግባር APDisable); ተግባር tWiFi (5* TASK_SECOND ፣ TASK_FOREVER ፣ & taskWiFiCallback ፣ & ts ፣ ሐሰት ፣ NULL እና taskWiFiDisable) ፤ ለተግባሮች/ጊዜ ማብቂያ tI2C.setTimeout (10 * TASK_SECOND); tAP.setTimeout (50 * TASK_SECOND); tWiFi.setTimeout (50 * TASK_SECOND); // I2C ተግባርን ያንቁ tI2C.enable ();

ደረጃ 4 የሙቀት እና እርጥበት እሴቶችን ለማንበብ ኮድ

የንባብ የሙቀት መጠን እና እርጥበት እሴቶች
የንባብ የሙቀት መጠን እና እርጥበት እሴቶች

የሙቀት እና እርጥበት እሴቶችን ለማንበብ የ Wire.h ቤተ -መጽሐፍትን እየተጠቀምን ነው። ይህ ቤተ -መጽሐፍት በአነፍናፊው እና በዋናው መሣሪያ መካከል የ i2c ግንኙነትን ያመቻቻል። 0x44 ለ SHT31 የ I2C አድራሻ ነው።

SHT31 በተለየ የአሠራር ሁኔታ ውስጥ ይሠራል። ለዚያ የውሂብ ሉህ ማመልከት ይችላሉ። ለአንድ ጥይት ቀዶ ጥገና በቅደም ተከተል 0x2C እና 0x06 ን እንደ MSB እና LSB እየተጠቀምን ነው።

// I2C የተግባር ጥሪ ጥሪ ባዶ ተግባርI2CCallback () {Serial.println (“taskI2CStarted”); ያልተፈረመ int ሥር [6]; // ከ 0x44 ማስተላለፍ ይጀምሩ ፣ Wire.begin ማስተላለፊያ (Addr); // ለአንድ ተኩስ ማስተላለፍ በከፍተኛ ተደጋጋሚነት 0x2C (MSB) እና 0x06 (LSB) Wire.write (0x2C) እንጠቀማለን። Wire.write (0x06); // ማብቂያ ማስተላለፍ Wire.endTransmission (); // የጥያቄ ባይት ከ 0x44 Wire.begin ማስተላለፊያ (አድሪ); Wire.endTransmission (); Wire.requestFrom (Addr, 6); ከሆነ (Wire.available () == 6) {// data [0] እና ውሂብ [1] 16 ቢት የሙቀት መጠን ይ containsል። ሥር [0] = Wire.read (); ሥር [1] = Wire.read (); // ውሂብ [2] 8 ቢት የ CRC ሥር [2] = Wire.read (); // ውሂብ [3] እና ውሂብ [4] 16 ቢት እርጥበት ሥር [3] = Wire.read (); ሥር [4] = Wire.read (); // ውሂብ [5] 8 ቢት የ CRC ሥር [5] = Wire.read (); } int temp = (ሥር [0] * 256) + ሥር [1]; // MSB ን በ 8 ቢት ይቀይሩ LSB ተንሳፋፊ cTemp = -45.0 + (175.0 * temp /65535.0); ተንሳፋፊ fTemp = (cTemp * 1.8) + 32.0; // MSB ን በ 8 ቢት ይለውጡ LSB ን በእሱ ሙሉ ጥራት እና * 100 መቶ በመቶ ተንሳፋፊ እርጥበት = (100.0 * ((ሥር [3] * 256.0) + ስር [4])) /65535.0; tempC = cTemp; tempF = fTemp; እርጥበት = እርጥበት; Serial.print ("የሙቀት መጠን በ C: / t"); Serial.println (ሕብረቁምፊ (cTemp, 1)); Serial.print ("ሙቀት በ F: / t"); Serial.println (ሕብረቁምፊ (fTemp, 1)); Serial.print ("እርጥበት ፦ / t"); Serial.println (ሕብረቁምፊ (እርጥበት ፣ 1)); }

ደረጃ 5 የድር አገልጋዮችን ለማስተናገድ ኮድ

ዌብሳይቨርን ለማስተናገድ ኮድ
ዌብሳይቨርን ለማስተናገድ ኮድ
ዌብሳይቨርን ለማስተናገድ ኮድ
ዌብሳይቨርን ለማስተናገድ ኮድ

በማይንቀሳቀስ አይፒ ላይ የድር አገልጋይን ከመሣሪያችን አስተናግደናል።

ESP8266WebServer ቤተ -መጽሐፍት የድር አገልጋዩን ለማስተናገድ ያገለግላል

  • የእኛን የማይንቀሳቀስ አይፒ ለመፍጠር በመጀመሪያ የአይፒ አድራሻ ፣ የጌትዌይ እና ንዑስ አውታረ መረብ ጭንብል ማወጅ አለብን
  • አሁን ለእርስዎ የመዳረሻ ነጥብ ssid እና የይለፍ ቃል ያውጁ። ከማንኛውም STA መሣሪያ ወደ የመዳረሻ ነጥብ ያገናኙ
  • ለበይነመረብ ግንኙነት ፕሮቶኮል ነባሪ ወደብ በሆነው ወደብ 80 ላይ አገልጋዩን ያስተናግዳል ፣ የሃይፐርቴክስ ማስተላለፍ ፕሮቶኮል (ኤችቲቲፒ) በድር አሳሽዎ ውስጥ ወደ መግቢያ ድረ -ገጽ 192.168.1.4 ያስገቡ እና 192.168.1.4/ ለሴንሰር ንባብ ድረ -ገጽ እሴት

// የማይንቀሳቀስ አይፒ ለኤፒአይ አድራሻ አድራሻ ap_local_IP (192 ፣ 168 ፣ 1 ፣ 4) ፤ IPAddress ap_gateway (192 ፣ 168 ፣ 1 ፣ 254) ፤ IPAddress ap_subnet (255, 255, 255, 0); // ssid እና AP በ STA ሞድ const char WiFissid ውስጥ ለአካባቢያዊ WiFi = "*********"; const char WiFipass = "*********"; // ssid እና ለ AP const char APssid = "********"; const char APpass = "********"; ESP8266WebServer አገልጋይ (80); ባዶነት ማዋቀር {server.on ("/", onHandleDataRoot); server.on ("/እሴት" ፣ onHandleDataFeed); server.onNotFound (onHandleNotFound);} ባዶ ተግባርAPCallback () {Serial.println ("taskAP ተጀምሯል"); server.handleClient (); } በ HandandDataRoot () ላይ ባዶነት {server.send (200 ፣ “ጽሑፍ/html” ፣ PAGE1); } በ HandandDataFeed () {server.send (200 ፣ “ጽሑፍ/html” ፣ PAGE2) ላይ ባዶነት; } ባዶ ላይ በ ‹HandleNotFound () {ሕብረቁምፊ መልእክት = ‹ፋይል አልተገኘም / n / n› ፤ መልዕክት += "URI:"; መልዕክት += server.uri (); መልዕክት += "\ n ዘዴ:"; መልዕክት += (server.method () == HTTP_GET)? "GET": "POST"; መልዕክት += "\ n ክርክሮች:"; መልዕክት += server.args (); መልዕክት += "\ n"; server.send (404 ፣ “ጽሑፍ/ተራ” ፣ መልእክት); } ባዶነት ዳግም ግንኙነት APWiFi () {WiFi.mode (WIFI_AP_STA); መዘግየት (100); WiFi. ግንኙነት ያቋርጡ (); ቡሊያን ሁኔታ = WiFi.softAPConfig (ap_local_IP ፣ ap_gateway ፣ ap_subnet); ከሆነ (ሁኔታ == እውነት) {Serial.print (“soft-AP…”); ቡሊያን ap = WiFi.softAP (APssid ፣ APpass); ከሆነ (ap == እውነት) {Serial.print ("ከ / t" ጋር ተገናኝቷል); // IPAddress myIP = WiFi.softAPIP (); Serial.println (WiFi.softAPIP ()); } server.begin ();

}

ደረጃ 6: የነገሮች አቀማመጥ ማዋቀር

የነገር ነገሮች ቅንብር
የነገር ነገሮች ቅንብር
የነገር ነገሮች ቅንብር
የነገር ነገሮች ቅንብር
የነገር ነገሮች ቅንብር
የነገር ነገሮች ቅንብር

ThingSpeak የ IoT መድረክ ነው። ThingSpeak በደመና ውስጥ የአነፍናፊ መረጃን ለመሰብሰብ እና ለማከማቸት የሚያስችል ነፃ የድር አገልግሎት ነው።

በዚህ ደረጃ ፣ የንግግር ተናጋሪ መለያዎን ለማዋቀር አጭር አሰራር እሰጥዎታለሁ

  • በ ThingSpeak ውስጥ ለአዲስ የተጠቃሚ መለያ ይመዝገቡ
  • ሰርጦችን ፣ የእኔን ሰርጦች ፣ እና ከዚያ አዲስ ሰርጥን በመምረጥ አዲስ ሰርጥ ይፍጠሩ
  • መስኮችዎን ያርትዑ
  • እነዚህ መስኮች የእርስዎን ዳሳሽ ውሂብ ይዘዋል
  • የጽሑፍ ኤፒአይ ቁልፍን እና የሰርጥ መታወቂያውን ልብ ይበሉ
  • በእርስዎ አርዱinoኖ ንድፍ ላይ የ ThingSpeak ቤተ -መጽሐፍትን ለአርዱዲኖ መጠቀም ይችላሉ ወይም ውሂቡን በቀጥታ ወደ ThingSpeak ኤፒአይ መለጠፍ ይችላሉ
  • ቀጣዩ ደረጃ ይዘቱን ወደ Thing Speak ኤፒአይ ስለ መለጠፍ ያብራራል

ደረጃ 7 - ወደ ተናገር መረጃን ለመለጠፍ ኮድ

ወደ ተናገር ውሂብን ለመለጠፍ ኮድ
ወደ ተናገር ውሂብን ለመለጠፍ ኮድ
ወደ ተናገር ውሂብን ለመለጠፍ ኮድ
ወደ ተናገር ውሂብን ለመለጠፍ ኮድ
ወደ ተናገር ውሂብን ለመለጠፍ ኮድ
ወደ ተናገር ውሂብን ለመለጠፍ ኮድ
ወደ ተናገር ውሂብን ለመለጠፍ ኮድ
ወደ ተናገር ውሂብን ለመለጠፍ ኮድ

እዚህ የአነፍናፊ ንባቦችን ወደ Thing Speak እንለጥፋለን። ይህንን ተግባር ለማጠናቀቅ የሚከተሉት እርምጃዎች ያስፈልጋሉ-

  • በንግግር ውስጥ መለያዎን ይፍጠሩ የአነፍናፊ ውሂብዎን ለማከማቸት ሰርጦችን እና መስኮችን ይፍጠሩ
  • እኛ የ ESP ን ወደ ነገር መናገር እና መለጠፍ እንችላለን እና በተቃራኒው የ GET እና POST ጥያቄዎችን ወደ api በመጠቀም።
  • እንደሚከተለው ለ ThingSpeak ውሂባችንን መለጠፍ እንችላለን

መታወቂያ ተግባር WiFiFiCallback () {WiFiClient wifiClient; ከሆነ (wifiClient.connect (hostId, 80)) {String postStr = apiKey; postStr += "& field1 ="; postStr += ሕብረቁምፊ (እርጥብ); postStr += "& field2 ="; postStr += ሕብረቁምፊ (tempC); postStr += "& field3 ="; postStr += ሕብረቁምፊ (tempF); postStr += "\ r / n / r / n"; wifiClient.print ("POST /update HTTP /1.1 / n"); wifiClient.print ("አስተናጋጅ: api.thingspeak.com / n"); wifiClient.print ("ግንኙነት ፦ ዝጋ / n"); wifiClient.print ("X-THINGSPEAKAPIKEY:"+apiKey+"\ n"); wifiClient.print ("የይዘት-አይነት: ትግበራ/x-www-form-urlencoded / n"); wifiClient.print ("የይዘት-ርዝመት:"); wifiClient.print (postStr.length ()); wifiClient.print ("\ n / n"); wifiClient.print (postStr); } wifiClient.stop (); }

ደረጃ 8 - አጠቃላይ ኮድ

ጠቅላላው ኮድ በእኔ GitHub ማከማቻ ውስጥ ይገኛል

ደረጃ 9: ክሬዲቶች

  • አርዱዲኖ ጄሰን
  • ESP826 ድር አገልጋይ
  • የተግባር መርሐግብር
  • SHT 31
  • I2C ቅኝት
  • HIH6130 አስተማሪ ትምህርቶች
  • ሽቦ
  • NCD.io

የሚመከር: