ዝርዝር ሁኔታ:

MQTT ን በመጠቀም የገመድ አልባ ግፊት ዳሳሽ ውሂብን ማተም 7 ደረጃዎች
MQTT ን በመጠቀም የገመድ አልባ ግፊት ዳሳሽ ውሂብን ማተም 7 ደረጃዎች

ቪዲዮ: MQTT ን በመጠቀም የገመድ አልባ ግፊት ዳሳሽ ውሂብን ማተም 7 ደረጃዎች

ቪዲዮ: MQTT ን በመጠቀም የገመድ አልባ ግፊት ዳሳሽ ውሂብን ማተም 7 ደረጃዎች
ቪዲዮ: አርክቴክቸር ካታ #1 - ትንታኔ ከባለሙያ ጋር [እውነተኛ የመፍትሄው አርክቴክት እንዴት እንደሚሰራ] #ityoutubersru 2024, ህዳር
Anonim
MQTT ን በመጠቀም የገመድ አልባ ግፊት ዳሳሽ ውሂብን ማተም
MQTT ን በመጠቀም የገመድ አልባ ግፊት ዳሳሽ ውሂብን ማተም

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
  • የገመድ አልባ ግፊት እና የሙቀት ዳሳሽ

የሶፍትዌር ዝርዝር

  • አርዱዲኖ አይዲኢ
  • XCTU
  • የላብቪይ መገልገያ

ደረጃ 2 የገመድ አልባ ግፊት እና የሙቀት ዳሳሾች

የገመድ አልባ ግፊት እና የሙቀት ዳሳሾች
የገመድ አልባ ግፊት እና የሙቀት ዳሳሾች
የገመድ አልባ ግፊት እና የሙቀት ዳሳሾች
የገመድ አልባ ግፊት እና የሙቀት ዳሳሾች
የገመድ አልባ ግፊት እና የሙቀት ዳሳሾች
የገመድ አልባ ግፊት እና የሙቀት ዳሳሾች

ዋና መለያ ጸባያት

  • የኢንዱስትሪ ደረጃ ዳሳሽ ረጅም ክልል ገመድ አልባ ግፊት የሙቀት ዳሳሽ
  • የአሠራር ክልል ከ 0 እስከ 14000 ሜባ -40 ° እስከ +85 ° ሴ (-40 ° እስከ 185 ° F)
  • ሊዋቀር የሚችል የውስጥ ስሌት ግፊት ጥራት ከ 0.012 እስከ 0.065 ሜባ
  • ሊዋቀር የሚችል የውስጥ ስሌት የሙቀት መጠን ጥራት ከ 0.002 እስከ 0.012 ° ሴ
  • ትክክለኛነት ± 2.5 ሜባ ፣ ± 2 ° ሴ
  • ፍፁም ጫና ፣ አንጻራዊ ጫና እና አንጻራዊ ከፍታ ለውጦችን ለውጦችን
  • 2 ማይል መስመር-የእይታ ክልል በቦርድ አንቴና
  • ከከፍተኛ ጌይ አንቴናዎች ጋር እስከ 28 ማይሎች ድረስ የላቀ የሎስ ክልል
  • ወደ Raspberry Pi ፣ Microsoft® Azure® ፣ Arduino እና ተጨማሪ በይነገጽ
  • DigiMesh® ን በመጠቀም የገመድ አልባ ሜሽ አውታረ መረብ

Labview Utility እና XCTU ን በመጠቀም የገመድ አልባ ግፊት እና የሙቀት ዳሳሽ ማዋቀር

ዳሳሹ በሁለት ሁነታዎች ይሠራል

  • የማዋቀሪያ ሁናቴ - የፓን መታወቂያውን ያዋቅሩ ፣ መዘግየትን ፣ የድግግሞሾችን ቁጥር ወዘተ … በዚህ ላይ ተጨማሪ ከዚህ አስተማሪው ወሰን በላይ ነው እና በሚቀጥለው መመሪያ ውስጥ ይብራራል።
  • የአሂድ ሁናቴ - መሣሪያውን በሩጫ ሁነታ ላይ እያሄድን ነው። እና እነዚህን እሴቶች ለመተንተን እኛ የላብቪው መገልገያ እንጠቀማለን

ይህ የላብቪይ በይነገጽ እሴቶቹን በጥሩ ግራፎች ውስጥ ያሳያል። የአሁኑን እና ያለፉትን እሴቶች ያሳያል። የላብቪዥን በይነገጽን ለማውረድ ወደዚህ አገናኝ መሄድ ይችላሉ። ወደ አሂድ ሁኔታ ለመሄድ ከመድረሻ ገጽ ምናሌው ላይ አሂድ አዶውን ጠቅ ያድርጉ።

ደረጃ 3 ከ WiFi ጋር መገናኘት

ከ WiFi ጋር በመገናኘት ላይ
ከ WiFi ጋር በመገናኘት ላይ
ከ WiFi ጋር በመገናኘት ላይ
ከ WiFi ጋር በመገናኘት ላይ

የ WiFi ምስክርነቶችን ለማዳን እና በአይፒ ቅንብሮች በኩል ለማንዣበብ የታሰረውን በር እንጠቀማለን። በምርኮ መግቢያ በር ላይ ለዝርዝሩ መግቢያ ፣ በሚከተለው መመሪያ ውስጥ ማለፍ ይችላሉ።

የተያዘው መግቢያ በር በስታቲክ እና በ DHCP ቅንብሮች መካከል የመምረጥ አማራጭ ይሰጠናል። ልክ እንደ የማይንቀሳቀስ አይፒ ፣ ንዑስ ጭንብል ፣ ጌትዌይ እና የገመድ አልባ ዳሳሽ ጌትዌይ ያሉ ምስክርነቶችን በዚያ አይፒ ላይ ይዋቀራሉ።

የሚገኝ የ WiFi አውታረ መረቦችን እና እዚያ RSSI ን የሚያሳይ ዝርዝር ባለበት አንድ ድረ -ገጽ እየተስተናገደ ነው። የ WiFi አውታረ መረብ እና የይለፍ ቃል ይምረጡ እና ያስገቡ ያስገቡ። የምስክር ወረቀቶቹ በ EEPROM ውስጥ ይቀመጣሉ እና የአይፒ ቅንብሩ በ SPIFFS ውስጥ ይቀመጣል። በዚህ ላይ የበለጠ በዚህ መመሪያ ውስጥ ይገኛል።

ደረጃ 4 - UbiDots ን በ ESP32 ላይ ማቀናበር

በ ESP32 ላይ UbiDots ን ማቀናበር
በ ESP32 ላይ UbiDots ን ማቀናበር

የሙቀት መጠኑን እና የእርጥበት መረጃን ለማግኘት በ 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 ባይት ፍሬም እያገኘን ነው። ትክክለኛው የሙቀት መጠን እና የእርጥበት መረጃን ለማግኘት ይህ ክፈፍ ተስተካክሏል።

ከሆነ (Serial1.available ())

{data [0] = Serial1.read (); መዘግየት (k); ከሆነ (ውሂብ [0] == 0x7E) {ሳለ (! Serial1.available ()); ለ (i = 1; i <36; i ++) {data = Serial1.read (); መዘግየት (1); } ከሆነ (ውሂብ [15] == 0x7F) /////// ተደጋጋሚው ውሂብ ትክክል መሆኑን ለማረጋገጥ {ከሆነ (ውሂብ [22] == 0x06) //////// የአነፍናፊውን ዓይነት ያረጋግጡ ትክክል ነው {int cTemp = ((((ውሂብ [24]) * 256) + ውሂብ [25]))); int16_t abs_pressure = ((((uint16_t) (ውሂብ [26]) << 8) | ውሂብ [27])*0.001); int rlt_pressure = ((((ውሂብ [28]) * 256) + ውሂብ [29]) * 0.001); int16_t delta_alt = ((((uint16_t) (ውሂብ [30]) << 8) | ውሂብ [31])*0.01); ተንሳፋፊ ባትሪ = ((ውሂብ [18] * 256) + ውሂብ [19]); ተንሳፋፊ ቮልቴጅ = 0.00322 * ባትሪ; Serial.print ("ዳሳሽ ቁጥር"); Serial.println (ውሂብ [16]); Serial.print (“ዳሳሽ ዓይነት”); Serial.println (ውሂብ [22]); Serial.print (“የጽኑዌር ስሪት”); Serial.println (መረጃ [17]); Serial.print ("የሙቀት መጠን በሴልሲየስ"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("ፍጹም ግፊት:"); Serial.println (abs_pressure); Serial.print ("mbar"); Serial.print ("አንጻራዊ ጫና:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("ዴልታ ከፍታ:"); Serial.println (delta_alt); Serial.print ("ሜትር"); Serial.print ("ADC እሴት:"); Serial.println (ባትሪ); Serial.print ("የባትሪ ቮልቴጅ:"); Serial.print (ቮልቴጅ); Serial.println ("\ n"); ከሆነ (ቮልቴጅ <1) {Serial.println ("ባትሪውን ለመተካት ጊዜ"); }}} ሌላ {ለ (i = 0; i <36; i ++) {Serial.print (ውሂብ ); Serial.print (","); መዘግየት (1); }}}}

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

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

#ያካትቱ

ለ MQTT እንደ ደንበኛ ስም ፣ የደላላ አድራሻ ፣ የማስመሰያ መታወቂያ ያሉ ሌሎች ተለዋዋጮችን ይግለጹ

#ጥራት ያለው TOKEN “BBFF-***********************************” // የእርስዎ Ubidots TOKEN#ይወስኑ MQTT_CLIENT_NAME "****************************"

char mqttBroker = "things.ubidots.com";

የቻር ክፍያ [100]; የቻር ርዕስ [150]; // ማስመሰያ መታወቂያ ቶክን ለማከማቸት ተለዋዋጭ ይፍጠሩ

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

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

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

#ተለዋዋጭ 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 ያትማል።

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

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

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

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

ምስጋናዎች

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

የሚመከር: