ዝርዝር ሁኔታ:

የአቅራቢያ መለኪያ - 5 ደረጃዎች
የአቅራቢያ መለኪያ - 5 ደረጃዎች

ቪዲዮ: የአቅራቢያ መለኪያ - 5 ደረጃዎች

ቪዲዮ: የአቅራቢያ መለኪያ - 5 ደረጃዎች
ቪዲዮ: TUDev's Tech Talk! Procedural Generation Presentation by William Power 2024, ታህሳስ
Anonim
የአቅራቢያ መለኪያ
የአቅራቢያ መለኪያ

በዚህ መማሪያ ውስጥ የአዳራሽ ዳሳሽ እና የ esp32 ልማት ቦርድ በመጠቀም የአንድ መሣሪያን ቅርበት መለካት እና እሴቶቹን ወደ Thingsai ፣ io ደመና መድረክ ላይ ማተም እገልጻለሁ።

የአዳራሽ ውጤት ዳሳሽ የመግነጢሳዊ መስክን መጠን ለመለካት የሚያገለግል መሣሪያ ነው። የእሱ የውጤት ቮልቴጅ በእሱ በኩል ካለው መግነጢሳዊ መስክ ጥንካሬ ጋር በቀጥታ ተመጣጣኝ ነው። የአዳራሽ ውጤት ዳሳሾች ለቅርብ ዳሰሳ ፣ ለአቀማመጥ ፣ ለፈጣን ማወቂያ እና ለአሁኑ ዳሳሽ መተግበሪያዎች ያገለግላሉ።

ደረጃ 1: አካላት

ክፍሎች
ክፍሎች
ክፍሎች
ክፍሎች
ክፍሎች
ክፍሎች

የሃርድዌር ክፍሎች;

1. የአዳራሽ ዳሳሽ

2. esp32 የልማት ቦርድ

3. ዝላይ ሽቦዎች

የሶፍትዌር ክፍሎች

1. አርዱዲኖ አይዲኢ

2. ThingsIO. AI

ደረጃ 2 ፦ ግንኙነቶች ፦

ግንኙነቶች
ግንኙነቶች

የአዳራሽ ዳሳሽ ---------------------- esp32

አቁማ ------------------------------ ቁ

Gnd ----------------------------- Gnd

ቪሲሲ ------------------------------ 3V3

ደረጃ 3 ፦ ኮዲንግ ፦

#ያካትቱ

#ያካትቱ

#ያካትቱ

int count = 0, i, m, j, k;

int መለካት;

int outputpin = A0; // ds18b20

///////////////////////////////

ለክብር /////////////////////////

const char* አስተናጋጅ = "api.thingsai.io"; // ወይም አስተናጋጅ =

devapi2.thethingscloud.com

const char* post_url = "/መሣሪያዎች/deviceData"; // ወይም

/api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; // ይህ የጊዜ ማህተምን ለመለወጥ ነው

const int httpPort = 80;

const int httpsPort = 443;

const char* አገልጋይ =

"api.thingsai.io"; // የአገልጋይ ዩአርኤል

የቻር የጊዜ ማህተም [10];

WiFiMulti WiFiMulti;

// የ TCP ግንኙነቶችን ለመፍጠር የ WiFiClient ክፍልን ይጠቀሙ

የ WiFi ደንበኛ ደንበኛ;

/////////////////////////////

የስሌት ተግባር //////////////////////////

int GiveMeTimestamp ()

{

ያልተፈረመ ረጅም

የእረፍት ጊዜ = ሚሊስ ();

// የ WiFi ደንበኛ ደንበኛ;

እያለ

(ደንበኛ. ይገኛል () == 0)

{

ከሆነ (ሚሊ () -

ማብቂያ ጊዜ> 50000)

{

client.stop ();

መመለስ 0;

}

}

ሳለ (ደንበኛ. ይገኛል) ()

{

ሕብረቁምፊ መስመር =

ደንበኛ.readStringUntil ('\ r'); // indexOf () smthng ን ለመፈለግ መዝናኛ ነው ፣ ካልተገኘ -1 ይመለሳል

int pos =

line.indexOf ("\" timestamp / ""); // ከምላሹ መጀመሪያ ጀምሮ "\" የጊዜ ማህተም / "" ይፈልጉ እና ከዚያ በኋላ ሁሉንም ውሂብ ይቅዱ ፣ የእርስዎ የጊዜ ማህተም ይሆናል

ከሆነ (pos> =

0)

{

int j = 0;ለ (j = 0; j <10; j ++)

{የጊዜ ማህተም [j] = መስመር [pos + 12 + j];

}

}

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////

ባዶነት ማዋቀር ()

{Serial.begin (115200);

መዘግየት (10);

// እኛ እንጀምራለን

ከ WiFi አውታረ መረብ ጋር በመገናኘት ላይ

WiFiMulti.addAP ("wifi_name" ፣

"wifi_password");

Serial.println ();

Serial.println ();Serial.print ("ለ WiFi ይጠብቁ …");ሳለ (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

መዘግየት (500);

}Serial.println ("");Serial.println ("WiFi ተገናኝቷል");Serial.println ("IP አድራሻ:");

Serial.println (WiFi.localIP ());

መዘግየት (500);

}

ባዶነት loop ()

{

int analogValue =

analogRead (outputpin);

{

///////////////////////////////////// ጥያቄውን ይላኩ እና

ምላሹን ተቀበሉ ///////////////////////

int መለካት

= 0;

መለኪያ =

hallRead ();Serial.print ("የአዳራሽ ዳሳሽ መለኪያ:");Serial.println (መለኪያ);

መዘግየት (1000);Serial.print ("ወደ ማገናኘት");Serial.println (አስተናጋጅ); // የተገለበጠ ተገልብጦ- አስተናጋጅ = devapi2.thethingscloud.com ወይም 139.59.26.117

///////////////////////////////////////

/////////////////////////

Serial.println ("ውስጡን የጊዜ ማህተም / n" ያግኙ);

ከሆነ

(! client.connect (የጊዜ_አገልጋይ ፣

{

መመለስ;

//*-*-*-*-*-*-*-*-*-*

}client.println ("GET/api/timestamp HTTP/1.1"); // ይህ ክፍል ምን እያደረገ ነው ፣ አላገኘሁምclient.println ("አስተናጋጅ: baas.thethingscloud.com");client.println ("መሸጎጫ-መቆጣጠሪያ: ምንም መሸጎጫ");client.println ("ፖስትማን-ማስመሰያ ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // ተግባሩን ይጠራል

የሰዓት ማህተም ምላሽ ከአገልጋዩ ያገኛል

Serial.println ("የጊዜ ማህተም የተቀበለ");

Serial.println (የጊዜ ማህተም);Serial.println ("በ ThingsCloudPost ውስጥ");

ሕብረቁምፊ PostValue =

"{" device_id / ": 61121696007 ፣ \" slave_id / ": 2";

PostValue =

PostValue + ", \" dts / ":" + timestamp;

PostValue =

PostValue +", \" data / ": {" proximity / ":" +measurement +"}" +"}";Serial.println (PostValue);

/ * የ WiFiClientSecure ምሳሌን ይፍጠሩ */

የ WiFiClientSecure ደንበኛ;Serial.println ("ወደብ 443 በኩል ከአገልጋይ ጋር ይገናኙ");

ከሆነ

(! client.connect (አገልጋይ ፣ 443)) {Serial.println ("ግንኙነቱ አልተሳካም!");

} ሌላ {Serial.println ("ከአገልጋይ ጋር ተገናኝቷል!");

/* HTTP ይፍጠሩ

ጥያቄ */

client.println ( POST

/መሣሪያዎች/መሣሪያ ውሂብ HTTP/1.1”);client.println ("አስተናጋጅ: api.thingsai.io");//client.println ("ግንኙነት: ዝጋ");client.println ("የይዘት-ዓይነት: ትግበራ/json");client.println ("መሸጎጫ-ቁጥጥር: ምንም መሸጎጫ");

client.println ( ፍቃድ ፦

ተሸካሚ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AGclient.print ("ይዘት-ርዝመት:");client.println (PostValue.length ());

client.println ();client.println (PostValue);

/////////////////////////

ደመና ተከናውኗል እና አሁን የምላሽ ቅጽ የደመና አገልጋይ ////////////////////

Serial.print («ምላሽ በመጠበቅ ላይ

);

እያለ

(! ደንበኛ. ይገኛል ()) {

መዘግየት (50);

//Serial.print (".");

}

/* ውሂብ ከሆነ

የሚገኝ ከዚያም ወደ ተርሚናል */ ይቀበሉ እና ያትሙ

እያለ

(ደንበኛ. ይገኛል ()) {

ቻር c =

ደንበኛ.ንባብ ();Serial.write (ሐ);

}

/ * አገልጋዩ ከተቋረጠ ደንበኛውን ያቁሙ */

ከሆነ

(! client.connected ()) {Serial.println ();Serial.println ("አገልጋይ ተቋርጧል");client.stop ();

}

}

Serial.println ( //////////////////////// መጨረሻው

///////////////////// );

መዘግየት (3000);

}}

ደረጃ 4 ፦ ውጤት ፦

ውጤት ፦
ውጤት ፦

ከአነፍናፊው የሚነበቡት እሴቶች በተሳካ ሁኔታ ወደ IOT ደመና እየተላኩ ሲሆን ግራፉ እንደ ጊዜ እና እንደ ቅርበት እየተፈጠረ ነው። በዚህ መሠረት የአነፍናፊው ሥራ ተንትኖ በተፈለገው የትግበራ መስኮች መሠረት ጥቅም ላይ ይውላል።

ደረጃ 5 የተሟላ የማጠናከሪያ ትምህርት

ይህ የአዳራሽ ዳሳሽ esp32 እና thingsai.io የደመና መድረክን በመጠቀም የመሣሪያውን ቅርበት ለመለካት የተሟላ ፕሮጀክት ነው። አመሰግናለሁ

የሚመከር: