ዝርዝር ሁኔታ:

UbiDots-ESP32 ን በማገናኘት እና በርካታ የስሜት ዳሳሽ መረጃን ማተም 6 ደረጃዎች
UbiDots-ESP32 ን በማገናኘት እና በርካታ የስሜት ዳሳሽ መረጃን ማተም 6 ደረጃዎች

ቪዲዮ: UbiDots-ESP32 ን በማገናኘት እና በርካታ የስሜት ዳሳሽ መረጃን ማተም 6 ደረጃዎች

ቪዲዮ: UbiDots-ESP32 ን በማገናኘት እና በርካታ የስሜት ዳሳሽ መረጃን ማተም 6 ደረጃዎች
ቪዲዮ: ESP32 Tutorial 10 - Digital counter using Seven Segment Display 74HC595 -ESP32 IoT Learnig kit 2024, ህዳር
Anonim
ኡቢዶቶች-አንድ ESP32 ን በማገናኘት እና በርካታ የስሜት ዳሳሽ መረጃን ማተም
ኡቢዶቶች-አንድ ESP32 ን በማገናኘት እና በርካታ የስሜት ዳሳሽ መረጃን ማተም

ESP32 እና ESP 8266 በ IoT መስክ ውስጥ በጣም የታወቀ ሶሲ ነው። እነዚህ ለ IoT ፕሮጀክቶች ጥሩ ዓይነት ናቸው። ESP 32 የተቀናጀ WiFi እና BLE ያለው መሣሪያ ነው። የእርስዎን SSID ፣ የይለፍ ቃል እና የአይፒ ውቅሮች ብቻ ይስጡ እና ነገሮችን በደመና ውስጥ ያዋህዱ። እዚህ በዚህ አስተማሪ ውስጥ እንደ IoT መድረክ ፣ MQTT ፣ ምርኮኛ መግቢያዎች ወዘተ ባሉ አንዳንድ የአይኦ መሰረታዊ ቃላትን እናሰላስላለን ስለዚህ እናልፈው

  • IoT አርክቴክቸር በጣም ቀላል በሆኑ ቃላት ውስጥ መሣሪያውን በደመና ውስጥ ለማስቀመጥ የተከተተ መሣሪያ እና IoT መድረክን ያካትታል። የአነፍናፊውን ውሂብ በዓይነ ሕሊናችን ለማየት እዚህ እኛ UbiDots IoT መድረክን እንጠቀማለን።
  • የአይፒ ቅንብሮችን እና የተጠቃሚ ምስክርነቶችን ማስተዳደር ለተጠቃሚው ራስ ምታት ሊሆን ይችላል። ተጠቃሚው የ WiFi ምስክርነቶችን መለወጥ ቢፈልግስ? ተጠቃሚው የ DHCP/Static IP ቅንብሮችን ለመቀየር ቢፈልግስ? ESP32 ን ሁል ጊዜ ማብራት አስተማማኝ እና ለእነዚህ ችግሮች መፍትሄም አይደለም። ስለዚህ የ WiFi ምስክርነቶችን እና የሌሎችን ውቅሮች ለማዳን በግዞት በር በኩል እንሄዳለን።
  • MQTT አሁን በ IoT ዓለም ውስጥ በጣም የተለመደ ቃል እየሆነ ነው። በፈጣን ፣ ጠንካራ እና ዘገምተኛ ሥነ ሕንፃ ምክንያት በሕትመት እና በደንበኝነት ጥያቄ እና ምላሾችን (ኤችቲቲፒ) አልpassል።

እዚህ በዚህ መመሪያ ውስጥ እኛ ለማሳየት እንሄዳለን።

  • ምርኮኛ ፖርታልን በመጠቀም የ WiFi እና የ MQTT ምስክርነቶችን መስጠት።
  • በርካታ የአነፍናፊ ውሂብን ወደ UbiDots ማተም እና መመዝገብ።
  • የአነፍናፊ መረጃን ከገመድ አልባ ሙቀት እና እርጥበት ዳሳሾች ማንበብ።
  • የድር ቅጽ ከ ESP32 ማስተናገድ።
  • ከ SPIFFS ESP32 ማንበብ እና መጻፍ።

ደረጃ 1 የሃርድዌር እና የሶፍትዌር ዝርዝር

የሃርድዌር እና የሶፍትዌር ዝርዝር
የሃርድዌር እና የሶፍትዌር ዝርዝር
  • ESP32 WiFi/BLE
  • የገመድ አልባ ሙቀት እና እርጥበት ዳሳሽ

የሶፍትዌር ዝርዝር

አርዱዲኖ አይዲኢ

ደረጃ 2 - ምርኮኛ ፖርታል መፍጠር

ምርኮኛ ፖርታል መፍጠር
ምርኮኛ ፖርታል መፍጠር
ምርኮኛ ፖርታል መፍጠር
ምርኮኛ ፖርታል መፍጠር
ምርኮኛ ፖርታል መፍጠር
ምርኮኛ ፖርታል መፍጠር

ምርኮኛ ፖርታል ለአውታረ መረብ ሀብቶች ሰፊ መዳረሻ ከመስጠታቸው በፊት ለአዲስ የተገናኙ ተጠቃሚዎች የሚታየውን የድር ገጽ ነው። በ DHCP እና በስታቲክ አይፒ ቅንብሮች መካከል ለመምረጥ እዚህ ሶስት የድር ገጾችን እያቀረብን ነው። የአይፒ አድራሻውን ለ ESP በሁለት መንገዶች መግለፅ እንችላለን።

  • የ DHCP አይፒ አድራሻ- የአይፒ አድራሻውን ለመሣሪያው በተለዋዋጭ የመመደብ መንገድ ነው። የ ESP ነባሪ IP አድራሻ 192.168.4.1 ነው
  • የማይንቀሳቀስ አይፒ አድራሻ- ለአውታረ መረብ መሣሪያችን ቋሚ የአይፒ አድራሻ መመደብ። የማይንቀሳቀስ አይፒን ለመሣሪያው የአይፒ አድራሻውን ፣ የመግቢያ አድራሻውን እና ንዑስ መረብ ጭምብልን ለመግለፅ ያስፈልገናል።

የመጀመሪያው ድረ -ገጽ በ 192.168.1.77 እየተስተናገደ ነው። በ DHCP እና በስታቲክ አይፒ ቅንብሮች መካከል ለመምረጥ እዚህ ተጠቃሚው የሬዲዮ አዝራሮችን ይሰጣል። በሚቀጥለው ድረ -ገጽ ፣ የበለጠ ለመቀጠል ከአይፒ ጋር የተዛመደ መረጃ ማቅረብ አለብን።

የኤችቲኤምኤል ኮድ

ለድር ገጾች የኤችቲኤምኤል ኮድ በዚህ የ Github ማከማቻ ውስጥ ሊገኝ ይችላል። እንደ ኤችቲኤምኤል ድረ -ገጾችን ለመስራት እንደ Sublime ወይም Notepad ++ ማንኛውንም IDE ወይም የጽሑፍ አርታኢ መጠቀም ይችላሉ።

  • በ DHCP እና በስታቲክ አይፒ ቅንብሮች መካከል ለመምረጥ በመጀመሪያ ሁለት የሬዲዮ ቁልፎችን የያዘ የኤችቲኤምኤል ድረ -ገጽ ይፍጠሩ።
  • አሁን ምላሽዎን ለማስገባት አዝራሩን ይፍጠሩ
  • ለሬዲዮ አዝራሮች የተወሰነ ስም ይስጡ።
  • የ ESP ድር አገልጋይ ክፍል እነዚህን ስሞች እንደ ነጋሪ እሴት ወስዶ እነዚህን ክርክሮች በመጠቀም የሬዲዮ ቁልፎቹን ምላሽ ያገኛል
  • አሁን ምላሹን ወደ መሣሪያው ለመላክ የ «SUBMIT» አዝራርን ያስገቡ። በሌሎች ድረ -ገጾች ውስጥ የጽሑፍ ሳጥኖች አሉን።
  • ለጽሑፍ ሳጥኑ የስም እሴቱን እና የግቤት ዓይነቱን ይስጡ እና ምላሹን ወደ ‹አስገባ› የማስረከቢያ ቁልፍ ያክሉ።
  • የጽሑፍ መስክ ይዘትን ዳግም ለማስጀመር የ «ዳግም አስጀምር» ቁልፍን ይፍጠሩ።

ደረጃ 3 - WiFi እና UbiDots ምስክርነቶችን ማቅረብ

WiFi እና UbiDots ምስክርነቶችን ማቅረብ
WiFi እና UbiDots ምስክርነቶችን ማቅረብ

የ WiFi ምስክርነቶችን በሚያስተዳድሩበት ጊዜ ዋናው ችግር ይከሰታል። ምንም እንኳን እኛ ብዙ SSIDs እና የይለፍ ቃላትን ለመሣሪያው መስጠት የምንችልበት ለዚያ WiFiMulti ቤተ -መጽሐፍት ቢኖረን እና መሣሪያው ከሚገኘው አውታረ መረብ ጋር ይገናኛል። ግን ፣ አውታረ መረቡ በ WiFiMulti ዝርዝር ውስጥ ባይገኝስ? የ ESP32 መሣሪያን ሁል ጊዜ ማብራት አስተማማኝ መፍትሔ አይደለም።

ይህንን ችግር ለመፍታት ተጠቃሚው የተገኘውን አውታረ መረብ SSID እና የይለፍ ቃል የሚያቀርብበት ድረ -ገጽ እያስተናገድን ነው። እንደሚከተለው ይሠራል።

  • ድህረ ገጹ በተጠቂው አይፒ ወይም በዲኤችሲፒ አይፒ ላይ በተስተናጋጁ በተጠቃሚው ከተመረጠው መግቢያ በር ተመርጧል
  • ይህ ድረ -ገጽ መሣሪያውን ከኡቢዶቶች ጋር ለማገናኘት SSID ፣ የይለፍ ቃል እና UBIDOTS token መታወቂያ ለማስገባት የጽሑፍ መስኮችን ይ containsል።
  • በግቤት መስኮች ውስጥ የአከባቢዎን WiFi SSID እና የይለፍ ቃል ያስገቡ ፣ የ UbiDot ማስመሰያ መታወቂያ ያስገቡ እና አስገባን ያስገቡ።
  • እነዚህ ምስክርነቶች በ ESP32 EEPROM ውስጥ ተቀምጠዋል
  • ከ 60 ሰከንድ በኋላ መሣሪያ በራስ-ሰር ከኤ.ፒ
  • መሣሪያውን ሲያበሩ በሚቀጥለው ጊዜ ተጠቃሚው ይህንን የአሠራር ሂደት መከተል የለበትም ፣ መሣሪያው የተጠቃሚ ምስክርነቶችን ከ EEPROM አምጥቶ ዳሳሽ ንባቦችን ለኡቢዶቶች በማተም ይቀጥላል።

ደረጃ 4 የአነፍናፊ ንባቦችን ለኡቢዶቶች ማተም

የሙቀት መጠኑን እና የእርጥበት መረጃን ለማግኘት በ ESP 32 መሣሪያ የገመድ አልባ የሙቀት እና የእርጥበት ዳሳሾችን እንጠቀማለን። የ MQTT ፕሮቶኮሉን በመጠቀም ውሂቡን ወደ UbiDots እንልካለን። MQTT ያንን ጥያቄ እና ምላሽ ሳይሆን የህትመት እና የደንበኝነት ምዝገባ ዘዴን ይከተላል። ከኤችቲቲፒ ይልቅ ፈጣን እና አስተማማኝ ነው። ይህ እንደሚከተለው ይሠራል።

  • እንደ ዳሳሾች መረጃ ማምጣት ፣ የአነፍናፊ ንባቦችን ማተም ፣ ለ MQTT ርዕስ መመዝገብን የመሰሉ ተግባሩን ለማቀድ የተግባር መርሐግብርን እንጠቀማለን።
  • በመጀመሪያ የተግባር መርሐግብር ራስጌ ፋይሎችን ያካትቱ ፣ እሱ ምሳሌ ነው እና ተግባሮቹን መርሐግብር ያስይዛል።
  • ሁለት የተለያዩ የቁጥጥር ሥራዎችን የሚያመለክቱ ሁለት ተግባሮችን መርሐግብር አውጥተናል።

#መለየት _TASK_TIMEOUT#ያካትቱ

የጊዜ መርሐግብር ts;

// --------- ተግባራት ------------ // ተግባር tSensor (4 * TASK_SECOND ፣ TASK_FOREVER ፣ & taskSensorCallback ፣ & ts ፣ ሐሰት ፣ NULL ፣ እና taskSensorDisable); ተግባር tWiFi (10* TASK_SECOND ፣ TASK_FOREVER ፣ & taskWiFiCallback ፣ & ts ፣ ሐሰት ፣ NULL እና taskWiFiDisable) ፤

ተግባር 1 የ 10 ሴኮንድ ጊዜ እስኪያልቅ ድረስ ይህ ተግባር ለ 1 ሴኮንድ የሚሄድ የአነፍናፊ እሴት ለማንበብ ነው።

  • ተግባሩ 1 ጊዜው ሲያልቅ ከአካባቢያዊ Wifi እና MQTT ደላላ ጋር እየተገናኘን ነው።
  • አሁን ተግባር 2 ነቅቷል እና ተግባር 1 ን እያሰናከልን ነው
  • ተግባር 2 የአነፍናፊ መረጃን ለ UbiDots MQTT ደላላ ለማተም ነው ይህ ተግባር 20 ሰከንዶች እስኪያልቅ ድረስ ለ 20 ሰከንዶች ያህል ይሠራል።
  • ተግባር 2 ጊዜው ሲያልቅ ተግባር 1 እንደገና ነቅቷል እና ተግባር 2 ተሰናክሏል። እዚህ እንደገና ፣ የዘመነውን እሴት እያገኘን ነው እና ሂደቱ ይቀጥላል።

የ I2C ዳሳሽ ውሂብን ማንበብ

ከገመድ አልባ የአየር ሙቀት እና እርጥበት ዳሳሾች የ 29 ባይት ፍሬም እያገኘን ነው። ትክክለኛው የሙቀት መጠን እና የእርጥበት መረጃን ለማግኘት ይህ ክፈፍ ተስተካክሏል።

uint8_t ውሂብ [29];

ውሂብ [0] = Serial1.read (); መዘግየት (k); // chck ለጀማሪ ባይት ከሆነ (ውሂብ [0] == 0x7E) {እያለ (! Serial1.available ()); ለ (i = 1; i <29; i ++) {data = Serial1.read (); መዘግየት (1); } ከሆነ (ውሂብ [15] == 0x7F) /////// ተደጋጋሚው ውሂብ ትክክል መሆኑን ለማረጋገጥ {ከሆነ (ውሂብ [22] == 1) //////// የአነፍናፊውን ዓይነት ያረጋግጡ ትክክል ነው {

እርጥበት = ((((መረጃ [24]) * 256) + ውሂብ [25]) /100.0); እርጥበት /=10.0; cTempint = (((uint16_t) (ውሂብ [26]) << 8) | ውሂብ [27]); cTemp = (ተንሳፋፊ) cTempint /100.0; cTemp /= 10.0; fTemp = cTemp * 1.8 + 32; fTemp /= 10.0; ባትሪ = በዘፈቀደ (100 ፣ 327); ቮልቴጅ = ባትሪ/100; nodeId = ውሂብ [16];}

ከ UbiDots MQTT ኤፒአይ ጋር በመገናኘት ላይ

ለ MQTT ሂደት የራስጌ ፋይልን ያካትቱ።

#ያካትቱ

እንደ ደንበኛ ስም ፣ የደላላ አድራሻ ፣ የምልክት መታወቂያ ያሉ ለ MQTT ሌሎች ተለዋዋጮችን ይግለጹ (የምልክት መታወቂያውን ከ EEPROM እያመጣን ነው)

#መግለፅ MQTT_CLIENT_NAME "ደንበኛ ቪቢኤች ሰዓት 123"

char mqttBroker = "things.ubidots.com";

የቻር ጭነት [100] ፤ የቻር ርዕስ [150];

// የማስታወሻ መታወቂያ ለማከማቸት ተለዋዋጭ ይፍጠሩ

ሕብረቁምፊ tokenId;

የተለያዩ የአነፍናፊ ውሂብን ለማከማቸት እና ርዕሱን ለማከማቸት የቻር ተለዋዋጭ ለመፍጠር ተለዋዋጮችን ይፍጠሩ

#ተለዋዋጭ VARIABLE_LABEL_TEMPF "tempF" // ተለዋዋጭ ስያሜ መስጠት #VARIABLE_LABEL_TEMPC "tempC" ን ይገልፃል / ተለዋዋጭ መለያውን #መለየት VARIABLE_LABEL_BAT "የሌሊት ወፍ" #ገላጭ VARIABLE_LABEL_HUMID "እርጥብ መለያ" // ተለዋዋጭ ተለዋዋጭ

ቻር ርዕስ 1 [100]; ቻር ርዕስ 2 [100]; ቻር ርዕስ 3 [100];

ውሂቡን ወደተጠቀሰው የ MQTT ርዕስ ያትሙ የክፍያ ጫናው {"tempc": {value: "tempData"}}

sprintf (ርዕስ 1 ፣ “%s” ፣””); sprintf (ርዕስ 1 ፣ “%s%s” ፣”/v1.6/devices/” ፣ DEVICE_LABEL); sprintf (የክፍያ ጭነት ፣ “%s” ፣””); // የደመወዝ ጭማሪን (የክፍያ ጭነት ፣ “{”%s \”:” ፣ VARIABLE_LABEL_TEMPC) ያጸዳል ፤ // የእሴቱን sprintf (የክፍያ ጭነት ፣ “%s {” እሴት \”:%s}” ፣ የክፍያ ጭነት ፣ str_cTemp) ያክላል ፤ // የእሴቱን sprintf (የክፍያ ጭነት ፣ “%s}” ፣ የክፍያ ጭነት) ያክላል ፤ // መዝገበ -ቃላት ቅንፎችን ይዘጋል Serial.println (የክፍያ ጭነት); Serial.println (client.publish (topic1, payload)? "Published": "notpublished");

// ለሌላ ርዕስም እንዲሁ ያድርጉ

client.publish () ውሂቡን ለ UbiDots ያትማል።

ደረጃ 5 - ውሂቡን ማየት

ውሂቡን በማየት ላይ
ውሂቡን በማየት ላይ
ውሂቡን በማየት ላይ
ውሂቡን በማየት ላይ
ውሂቡን በማየት ላይ
ውሂቡን በማየት ላይ
  • ወደ Ubidots ይሂዱ እና ወደ መለያዎ ይግቡ።
  • ከላይ ከተዘረዘረው የውሂብ ትር ወደ ዳሽቦርዱ ይሂዱ።
  • አዲሶቹን መግብሮች ለማከል አሁን “+” አዶውን ጠቅ ያድርጉ።
  • ከዝርዝሩ ውስጥ መግብርን ይምረጡ እና ተለዋዋጭ እና መሳሪያዎችን ያክሉ።
  • የተለያዩ ንዑስ ፕሮግራሞችን በመጠቀም የዳሽቦርዱ ዳሳሽ ዳሳሽ ላይ ሊታይ ይችላል።

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

ለኤችቲኤምኤል እና ለ ESP32 የ Over ኮድ በዚህ የ GitHub ማከማቻ ውስጥ ይገኛል።

ምስጋናዎች

  • ncd ESP32 መለያየት ቦርድ።
  • ncd ገመድ አልባ የሙቀት መጠን እና የእርጥበት ዳሳሾች።
  • pubsubclient
  • ኡቢዶቶች
  • የተግባር መርሐግብር

የሚመከር: