ዝርዝር ሁኔታ:

MQTT ን በመጠቀም - 8 ደረጃዎች በገመድ አልባ የሙቀት ዳሳሽ በ AWS IoT መጀመር
MQTT ን በመጠቀም - 8 ደረጃዎች በገመድ አልባ የሙቀት ዳሳሽ በ AWS IoT መጀመር

ቪዲዮ: MQTT ን በመጠቀም - 8 ደረጃዎች በገመድ አልባ የሙቀት ዳሳሽ በ AWS IoT መጀመር

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

ቀደም ባሉት አስተማሪዎች ውስጥ እኛ እንደ Azure ፣ Ubidots ፣ ThingSpeak ፣ Losant ወዘተ ባሉ የተለያዩ የደመና መድረኮች ውስጥ አልፈናል። በሁሉም የደመና መድረክ ውስጥ የአነፍናፊ መረጃን ወደ ደመናው ለመላክ የ MQTT ፕሮቶኮል እንጠቀም ነበር። በ MQTT ላይ የበለጠ መረጃ ፣ በኤችቲቲፒ ፕሮቶኮል ላይ ጥቅሞቹ እና ጥቅሞቹ ይህንን አስተማሪ ሊያመለክቱ ይችላሉ።

በዚህ ትምህርት ውስጥ ፣ ወደ ሌላ እና በጣም የታወቀ የደመና መድረክ የአማዞን ድር አገልግሎቶች እንጨምራለን። ብዙዎቻችሁ ከ AWS aka የአማዞን ድር አገልግሎቶች እና በ AWS የቀረበው የደመና ተግባር ያውቃሉ። ለብዙ ዓመታት የድር ልማት ዋና አካል ነው። እየጨመረ በሚሄደው የ IoT አፕሊኬሽኖች ፣ AWS የ AWSIoT መፍትሄን አግኝቷል። AWSIoT የእኛን IoT መተግበሪያዎችን ለማስተናገድ አስተማማኝ መፍትሄ ነው።

ይህንን መመሪያ በመከተል -

  • ለ IoT ማመልከቻዎ የ AWS መለያ ማቀናበር ይችላሉ
  • ESP32 ን ከ AWS IoT ኮር ጋር ማገናኘት ይችላሉ
  • MQTT እና HTTP ፕሮቶኮል በመጠቀም መልዕክቶችን ይላኩ እና ይቀበሉ
  • በ AWS ውስጥ የተላከውን ውሂብ በዓይነ ሕሊናዎ ይመልከቱ

ደረጃ 1 የ AWS መለያ ማቀናበር

የ AWS መለያ ማዋቀር በጣም ቀላል ነው። ሁለት የምስክር ወረቀቶችን መስቀል ፣ ፖሊሲዎችን ከእሱ ጋር ማያያዝ ፣ መሣሪያውን ማስመዝገብ እና በ AWS ውስጥ የአነፍናፊ መረጃ መልዕክቶችን መቀበል መጀመር ብቻ ያስፈልግዎታል።

የ AWS መለያ ለማቋቋም ይህንን አጋዥ ስልጠና ይከተሉ።

ደረጃ 2 የሃርድዌር እና የሶፍትዌር ዝርዝሮች

የሃርድዌር እና የሶፍትዌር ዝርዝሮች
የሃርድዌር እና የሶፍትዌር ዝርዝሮች

የሶፍትዌር ዝርዝር

የ AWS መለያ

የሃርድዌር ዝርዝር መግለጫ

  • ESP32
  • የገመድ አልባ ሙቀት እና የንዝረት ዳሳሽ
  • ዚግሞ ጌትዌይ መቀበያ

ደረጃ 3 የገመድ አልባ ንዝረት እና የሙቀት ዳሳሾች

የገመድ አልባ ንዝረት እና የሙቀት ዳሳሾች
የገመድ አልባ ንዝረት እና የሙቀት ዳሳሾች

ይህ የገመድ አልባ መረብ አውታረ መረብ ሥነ ሕንፃን በመጠቀም እስከ 2 ማይል ክልል የሚኩራራ የረጅም ርቀት ኢንዱስትሪ IoT ሽቦ አልባ ንዝረት እና የሙቀት ዳሳሽ ነው። ባለ 16 ቢት ንዝረት እና የሙቀት ዳሳሽ በማካተት ይህ አነፍናፊ በተጠቃሚ በተገለጹ ክፍተቶች ላይ በጣም ትክክለኛ የንዝረት ውሂብን ያስተላልፋል። የሚከተሉት ባህሪዎች አሉት

  • የኢንዱስትሪ ክፍል 3-ዘንግ የንዝረት ዳሳሽ ከ g 32 ግ ክልል ጋር
  • RMS ፣ MAX እና MIN g ንዝረት ያሰላል
  • ዝቅተኛ ማለፊያ ማጣሪያን በመጠቀም የጩኸት መወገድ
  • የድግግሞሽ ክልል (የመተላለፊያ ይዘት) እስከ 12 ፣ 800 Hz
  • የናሙና ተመን እስከ 25 ፣ 600 ኤች
  • ከ 2 ማይል ሽቦ አልባ ክልል ጋር የተመሰጠረ ግንኙነት
  • የአሠራር የሙቀት መጠን -40 እስከ +85 ° ሴ
  • ግድግዳ ላይ የተጫነ ወይም ማግኔት የተገጠመ IP65 ደረጃ የተሰጠው ማቀፊያ ለቪዥዋል ስቱዲዮ እና ላብቪቪ ምሳሌ
  • የንዝረት ዳሳሽ ከውጭ የምርመራ አማራጭ ጋር
  • ከ 4 AA ባትሪዎች እስከ 500,000 ማስተላለፎች ብዙ በር እና ሞደም አማራጮች አሉ

ደረጃ 4 ESP32 AWS firmware

ከ AWS ጋር ለመገናኘት እና ውሂቡን መላክ ለመጀመር በሚከተሉት ደረጃዎች ውስጥ ይሂዱ

  • ከሚከተለው የ Github ማከማቻ የ AWS ቤተ -መጽሐፍትን ያውርዱ
  • ሪፖሉን ይደብቁ እና የ AWS_IOT ፋይልን ወደ አርዱዲኖ ማውጫ ቤተ -መጽሐፍት አቃፊ ያስቀምጡ

git clone

አሁን በኮዱ ውስጥ እንለፍ -

  • በዚህ ትግበራ ውስጥ የ WiFi ምስክርነቶችን ለማዳን እና በአይፒ ቅንብሮች በኩል ለማንዣበብ ምርኮኛ መግቢያ በር ተጠቅመናል። በምርኮ መግቢያ በር ላይ ለዝርዝሩ መግቢያ ፣ በሚከተለው መመሪያ ውስጥ ማለፍ ይችላሉ።
  • የተያዘው መግቢያ በር በስታቲክ እና በ DHCP ቅንብሮች መካከል የመምረጥ አማራጭ ይሰጠናል። ልክ እንደ የማይንቀሳቀስ አይፒ ፣ ንዑስ ጭንብል ፣ ጌትዌይ እና የገመድ አልባ ዳሳሽ ጌትዌይ ያሉ ምስክርነቶችን በዚያ አይፒ ላይ ይዋቀራሉ።
  • የሚገኝ የ WiFi አውታረ መረቦችን እና እዚያ RSSI ን የሚያሳይ ዝርዝር ባለበት አንድ ድረ -ገጽ እየተስተናገደ ነው። የ WiFi አውታረ መረብ እና የይለፍ ቃል ይምረጡ እና ያስገቡ ያስገቡ። የምስክር ወረቀቶቹ በ EEPROM ውስጥ ይቀመጣሉ እና የአይፒ ቅንብሩ በ SPIFFS ውስጥ ይቀመጣል። በዚህ ላይ የበለጠ በዚህ መመሪያ ውስጥ ይገኛል።

ደረጃ 5 የአነፍናፊ ውሂብን ከገመድ አልባ ንዝረት እና የሙቀት ዳሳሽ ማግኘት

የአነፍናፊ ውሂብን ከገመድ አልባ ንዝረት እና የሙቀት ዳሳሽ ማግኘት
የአነፍናፊ ውሂብን ከገመድ አልባ ንዝረት እና የሙቀት ዳሳሽ ማግኘት
የአነፍናፊ ውሂብን ከገመድ አልባ ንዝረት እና የሙቀት ዳሳሽ ማግኘት
የአነፍናፊ ውሂብን ከገመድ አልባ ንዝረት እና የሙቀት ዳሳሽ ማግኘት

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

ESP32 ለ Serial use ሦስት UART ዎች አሉት

  1. RX0 GPIO 3 ፣ TX0 GPIO 1
  2. RX1 GPIO9 ፣ TX1 GPIO 10
  3. RX2 GPIO 16 ፣ TX2 GPIO 17

እና 3 ሃርድዌር ተከታታይ ወደቦች

  • ተከታታይ
  • ተከታታይ 1
  • ተከታታይ 2

በመጀመሪያ የሃርድዌር ተከታታይ ራስጌ ፋይልን ያስጀምሩ። እዚህ እኛ RX2 እና TX2 aka ን እንጠቀማለን። ተከታታይ መረጃን ለማግኘት የ GPIO 16 እና GPIO 17 የ ESP32 ቦርድ ፒኖች።

#ያካትቱ

# RXD2 16 ን ይግለጹ # TXD2 17 ን ይግለጹ

Serial2.begin (115200 ፣ SERIAL_8N1 ፣ RXD2 ፣ TXD2); // ፒኖች 16 rx2 ፣ 17 tx2 ፣ 19200 bps ፣ 8 ቢት እኩልነት የለም 1 ማቆሚያ ቢት

የሚከተሉት ደረጃዎች እውነተኛውን ዳሳሽ እሴቶችን ለማግኘት የበለጠ ይመራዎታል

  • የሙቀት ፣ እርጥበት ፣ የባትሪ እና የሌሎች አነፍናፊ እሴቶችን ለማከማቸት ተለዋዋጮችን ይፍጠሩ
  • ለሃርድዌር ተከታታይ Rx ፣ tx pin ፣ የባውድ መጠን እና የእኩልነት ቢት ያዘጋጁ
  • በመጀመሪያ Serial1.available () በመጠቀም የሚነበበው ነገር እንዳለ ያረጋግጡ።
  • የ 54 ባይት ፍሬም እናገኛለን።
  • መጀመሪያ ባይት የሆነውን 0x7E ይፈትሹ።
  • የንዝረት መረጃ ለ 3 ዘንግ ፣ ለ 3 ዘንግ አነስተኛ እሴቶችን ፣ ለ 3 ዘንግ ከፍተኛ እሴቶችን የ RMS እሴት ያካትታል።
  • የሙቀት እና የባትሪ እሴቶች 2 ባይት ውሂብ ይይዛሉ
  • የአነፍናፊውን ስም ፣ ዓይነት ፣ የአነፍናፊ ሥሪት 1 ባይት መረጃን ይይዛል እና ከዚያ አድራሻ አድራሻ ማግኘት ይችላል

ከሆነ (Serial2.available ()) {Serial.println ("Serial Read"); ውሂብ [0] = Serial2.read (); መዘግየት (k); ከሆነ (ውሂብ [0] == 0x7E) {Serial.println ("Got Packet"); ሳለ (! Serial2.available ()); ለ (i = 1; i <55; i ++) {data = Serial2.read (); መዘግየት (1); } ከሆነ (ውሂብ [15] == 0x7F) /////// ተደጋጋሚው ውሂብ ትክክል መሆኑን ለማረጋገጥ {ከሆነ (ውሂብ [22] == 0x08) //////// የአነፍናፊውን ዓይነት ያረጋግጡ ትክክል ነው {rms_x = ((uint16_t) (((ውሂብ [24]) << 16) + ((ውሂብ [25]) << 8) + (ውሂብ [26]))/100); rms_y = ((uint16_t) (((ውሂብ [27]) << 16) + ((ውሂብ [28]) << 8) + (ውሂብ [29]))/100); rms_z = ((uint16_t) (((ውሂብ [30]) << 16) + ((ውሂብ [31]) << 8) + (መረጃ [32]))/100); int16_t max_x = ((uint16_t) (((ውሂብ [33]) << 16) + ((ውሂብ [34]) << 8) + (መረጃ [35]))/100); int16_t max_y = ((uint16_t) (((ውሂብ [36]) << 16) + ((ውሂብ [37]) << 8) + (መረጃ [38]))/100); int16_t max_z = ((uint16_t) (((ውሂብ [39]) << 16) + ((ውሂብ [40]) << 8) + (መረጃ [41]))/100);

int16_t min_x = ((uint16_t) (((ውሂብ [42]) << 16) + ((ውሂብ [43]) << 8) + (ውሂብ [44]))/100); int16_t min_y = ((uint16_t) (((ውሂብ [45]) << 16) + ((ውሂብ [46]) << 8) + (መረጃ [47]))/100); int16_t min_z = ((uint16_t) (((ውሂብ [48]) << 16) + ((ውሂብ [49]) << 8) + (ውሂብ [50]))/100);

cTemp = ((((መረጃ [51]) * 256) + ውሂብ [52]))); ተንሳፋፊ ባትሪ = ((ውሂብ [18] * 256) + ውሂብ [19]); ቮልቴጅ = 0.00322 * ባትሪ; Serial.print ("ዳሳሽ ቁጥር"); Serial.println (ውሂብ [16]); senseNumber = ውሂብ [16]; Serial.print (“ዳሳሽ ዓይነት”); Serial.println (ውሂብ [22]); Serial.print (“የጽኑዌር ስሪት”); Serial.println (መረጃ [17]); Serial.print ("የሙቀት መጠን በሴልሲየስ"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("በኤክስ-ዘንግ ውስጥ የ RMS ንዝረት"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("የ RMS ንዝረት በ Y-axis:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("የ RMS ንዝረት በ Z-axis:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("በኤክስ ዘንግ ውስጥ አነስተኛ ንዝረት");

Serial.print (min_x); Serial.println ("mg"); Serial.print ("በ Y- ዘንግ ውስጥ አነስተኛ ንዝረት"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("በዝ-ዘንግ ውስጥ አነስተኛ ንዝረት"); Serial.print (ደቂቃ_ዝ); Serial.println ("mg");

Serial.print ("ADC እሴት:");

Serial.println (ባትሪ); Serial.print ("የባትሪ ቮልቴጅ:"); Serial.print (ቮልቴጅ); Serial.println ("\ n"); ከሆነ (ቮልቴጅ <1) {Serial.println ("ባትሪውን ለመተካት ጊዜ"); }}} ሌላ {ለ (i = 0; i <54; i ++) {Serial.print (ውሂብ ); Serial.print (","); መዘግየት (1); }}}}

ደረጃ 6 ከ AWS ጋር መገናኘት

ከ AWS ጋር በመገናኘት ላይ
ከ AWS ጋር በመገናኘት ላይ
  • ከ AWSIoT ማዕከል ጋር ግንኙነት ለመፍጠር AWS_IOT.h ፣ WiFi.h የራስጌ ፋይሎችን ያካትቱ
  • የአስተናጋጅ አድራሻዎን ፣ የፖሊሲው ስም የሚሆነውን የደንበኛ መታወቂያ ፣ እና የነገር ስም የሆነውን የርዕስ ስም ያስገቡ

// ********* AWS ምስክርነቶች ************* // ቻር HOST_ADDRESS = "a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; ቻር CLIENT_ID = "ncdGatewayPolicy"; char TOPIC_NAME = "ncdGatewayThing";

የእርስዎን JSON ለማከማቸት የቻር ተለዋዋጭ ይፍጠሩ ፣ በዚህ ሁኔታ ፣ JSON ን ለማከማቸት ቅርጸት ፈጥረናል

const char *format = "{" SensorId / ": \"%d / ", \" messageId / ":%d, \" rmsX / ":%d, \" rmsY / ":%d, \" rmsZ / ":%d, \" cTemp / ":%d, \" ቮልቴጅ / ":%. 2f}";

የ AWS_IOT ክፍል ምሳሌ ይፍጠሩ

AWS_IOT esp; // የ AWS_IOT ክፍል ደረጃ

አሁን የሚከተለውን ዘዴ በመጠቀም ከ AWSIoT ማዕከል ጋር ይገናኙ።

ባዶነት ዳግም ማገናኘትMQTT () {ከሆነ (hornbill.connect (HOST_ADDRESS ፣ CLIENT_ID) == 0) {Serial.println («ከ AWS ጋር ተገናኝቷል») ፤ መዘግየት (1000);

ከሆነ (0 == hornbill.subscribe (TOPIC_NAME ፣ mySubCallBackHandler))

{Serial.println («ስኬታማ ስኬታማነት ይመዝገቡ»); } ሌላ {Serial.println («የደንበኝነት ምዝገባ አልተሳካም ፣ የነገሩን ስም እና የምስክር ወረቀቶች ይፈትሹ») ፤ ሳለ (1); }} ሌላ {Serial.println (“የ AWS ግንኙነት አልተሳካም ፣ የአስተናጋጁን አድራሻ ይፈትሹ”) ፤ ሳለ (1); }

መዘግየት (2000);

}

ከእያንዳንዱ 1 ደቂቃ በኋላ የአነፍናፊ መረጃን ያትሙ።

ከሆነ (ምልክት> = 60) // በየ 5 ሰከንዶች ወደ ርዕስ ያትሙ {tick = 0; የቻር ጭነት [PAYLOAD_MAX_LEN]; snprintf (የክፍያ ጭነት ፣ PAYLOAD_MAX_LEN ፣ ቅርጸት ፣ ስሜት ቁጥር ፣ msgCount ++ ፣ rms_x ፣ rms_y ፣ rms_z ፣ cTemp ፣ voltage); Serial.println (የክፍያ ጭነት); ከሆነ (hornbill.publish (TOPIC_NAME ፣ payload) == 0) {Serial.print ("መልዕክት አትም"); Serial.println (የክፍያ ጭነት); } ሌላ {Serial.println («ማተም አልተሳካም»); }} vTaskDelay (1000 / portTICK_RATE_MS); ምልክት ++;

ደረጃ 7 በ AWS ውስጥ መረጃን ማየት

በ AWS ውስጥ መረጃን ማየት
በ AWS ውስጥ መረጃን ማየት
በ AWS ውስጥ መረጃን ማየት
በ AWS ውስጥ መረጃን ማየት
በ AWS ውስጥ መረጃን ማየት
በ AWS ውስጥ መረጃን ማየት
  • ወደ የእርስዎ AWS መለያ ይግቡ።
  • በመሳሪያ አሞሌው ግራ ጥግ ላይ የአገልግሎቶች ትርን ያገኛሉ
  • በዚህ ትር ላይ ጠቅ ያድርጉ እና በነገሮች በይነመረብ ስር IoT Core ን ይምረጡ።
  • QoS ን ይምረጡ እና ቁ. የመልእክቶች ለደንበኝነት ተመዝጋቢዎች። የርዕሱን ስም ያስገቡ።

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

በዚህ Github Repository ላይ አጠቃላይ ኮዱን ማግኘት ይችላሉ።

ምስጋናዎች

  • አርዱዲኖ ጄሰን
  • የገመድ አልባ ሙቀት እና እርጥበት ዳሳሾች
  • ESP32
  • PubSubClient

የሚመከር: