Агуулгын хүснэгт:

Esp32 болон Thingsio.ai платформ ашиглан температур хэмжилт: 6 алхам
Esp32 болон Thingsio.ai платформ ашиглан температур хэмжилт: 6 алхам

Видео: Esp32 болон Thingsio.ai платформ ашиглан температур хэмжилт: 6 алхам

Видео: Esp32 болон Thingsio.ai платформ ашиглан температур хэмжилт: 6 алхам
Видео: P2 Blynk NodeMCU - The Code - PSU Series (Subtittled) 2024, Арваннэгдүгээр
Anonim
Esp32 болон Thingsio.ai платформ ашиглан температурын хэмжилт
Esp32 болон Thingsio.ai платформ ашиглан температурын хэмжилт

Энэхүү гарын авлагад би орчны температурыг хэмжих талаар esp32 хөгжлийн самбарт суурилуулсан температур мэдрэгчийг ашиглан тайлбарлах болно. esp32 нь ойрхон мэдрэгч, мэдрэгч, температур мэдрэгч болгон ашигладаг танхимын мэдрэгч гэх мэт олон мэдрэгчтэй. Энэ гарын авлагад бид температур мэдрэгчийн талаар ярилцах болно.

Алхам 1: Бүрэлдэхүүн хэсгүүд:

Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд

Техник хангамж:

1.esp32 хөгжүүлэх самбар

Програм хангамж:

1. Arduino IDE

2. Thingsio.ai

Алхам 2: Esp32 -ийн диаграмыг Блоклох

Esp32 -ийн BLOCK DIAGRAM ТӨЛӨӨЛӨГЧ
Esp32 -ийн BLOCK DIAGRAM ТӨЛӨӨЛӨГЧ

Алхам 3: Кодлох:

#оруулах

#оруулах

#оруулах

#оруулах

#оруулах

#ifdef _cplusplus

гадаад "C" {

#endif

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#endif

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

/////////////////////////////////////////// БҮХ МЭДЭГДЭЛ

CLOUD -ийн хувьд ////////////////////////////////

const char* хост = "api.thingsai.io"; // OR хост =

devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; //

OR/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"; // Серверийн URL

цаг хугацааны тэмдэг [10];

WiFiMulti WiFiMulti;

// TCP холболт үүсгэхийн тулд WiFiClient класс ашиглана уу

WiFiClient үйлчлүүлэгч;

////////////////////////////////////////// TIMESTAMP

Тооцоолох функц ////////////////////////////////////////

int GiveMeTimestamp ()

{

гарын үсэг зураагүй урт

завсарлага = millis ();

// WiFiClient үйлчлүүлэгч;

байхад

(client.available () == 0)

{

хэрэв (миллис () -

завсарлага> 50000)

{

client.stop ();

буцаах 0;

}

}

while (client.available ())

{

Мөр мөр =

client.readStringUntil ('\ r'); // indexOf () нь smthng хайх функц бөгөөд олдохгүй бол -1 буцаана

int pos =

line.indexOf ("\" цагийн тэмдэг / ""); // хариултын эхэн үеэс эхлэн "\" timestamp / "" гэж хайгаад дараа нь бүх өгөгдлийг хуулж авбал энэ нь таны цаг хугацааны тэмдэг болно

хэрэв (pos> =

0)

{

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

{цагийн тэмдэг [j] = мөр [pos + 12 + j];

}

}

}

}

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

хүчингүй тохиргоо ()

{Цуваа.begin (115200);

саатал (10);

tzset ();

// Бид эхэлж байна

WiFi сүлжээнд холбогдохWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

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);

}

uint8_t temp_farenheit;

float temp_celsius;

char strftime_buf [64];

time_t now = 0;

бүтэц tm timeinfo;

char buf [256];

хоосон давталт ()

{

// int analogValue =

analogRead (outputpin);

{

////////////////////////////////////////// Асуулгыг илгээх ба

Хариултыг хүлээн авна уу ///////////////////////

//

t1 = (analogValue/1024.0) *5000;

//

Serial.print ("temp:");

// Serial.println (t1);

/

/ t2 = (t1/ 10);

//

Serial.print ("celc:");

//

Serial.println (t2);

/

/ t3 = ((t2 *

9)/5 + 32);

//

Serial.print ("fhrn:");

//

Serial.println (t3); // завсарлага;localtime_r (& одоо, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "scan start%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

Цуваа.хэвлэх

(алдаа);

temp_farenheit =

temprature_sens_read ();

temp_celsius = (temp_farenheit - 32) / 1.8;Serial.print ("Temp onBoard");Цуваа.хэвлэх (temp_farenheit);Цуваа.хэвлэх ("° F");Цуваа.хэвлэх (temp_celsius);Serial.println ("° C");

саатал (1000);

одоо ++;

Serial.print ( холбож байна

руу );Serial.println (хост); // дээшээ тодорхойлсон:- хост = devapi2.thethingscloud.com эсвэл 139.59.26.117

//////////////////////////////////////// TIMESTAMP CODE SNIPPET

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

Serial.println ("дотор цаг хугацааны тэмдэг авах / n");

хэрэв

(! client.connect (time_server, {

буцах;

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

}client.println ("GET/api/timestamp HTTP/1.1"); // Энэ хэсэг юу хийж байна, би ойлгосонгүйclient.println ("Хөтлөгч: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Шууданч-Токен: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // үүнийг дуудах болно

серверээс цагийн тэмдгийн хариуг авах функц

Serial.println ("цагийн тэмдэг хүлээн авсан");

Serial.println (цагийн тэмдэг);Serial.println ("ThingsCloudPost дотор");

String PostValue =

"{" device_id / ": 61121695920, \" slave_id / ": 2";

PostValue =

PostValue + ", \" dts / ":" + цагийн тэмдэг;

PostValue =

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

/ * WiFiClientSecure -ийн жишээ үүсгэх */

WiFiClientSecure үйлчлүүлэгч;Serial.println ("443 портоор сервер рүү холбогдох");

хэрэв

(! client.connect (сервер, 443)) {Serial.println ("Холболт амжилтгүй боллоо!");

} өөр {Serial.println ("Сервертэй холбогдсон!");

/* HTTP үүсгэх

хүсэлт */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Хөтлөгч: api.thingsai.io");//client.println("Холболт: хаах ");client.println ("Агуулгын төрөл: application/json");client.println ("cache-control: no-cache");client.println ("Зөвшөөрөл: эзэмшигч eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT"client.print ("Агуулга-Урт:");client.println (PostValue.length ());client.println ();client.println (PostValue);

////////////////////////////////////// Өгөгдлийг байршуулах

үүл дууссан бөгөөд одоо үүл серверийн хариултын маягтыг авна уу /////////////////

Serial.print ( Хүлээж байна

хариу өгөх );

байхад

(! client.available ()) {

саатал (50);

//Serial.print (".");

}

/* өгөгдөл байгаа бол

бэлэн болсны дараа хүлээн авч Терминал руу хэвлэх боломжтой */

байхад

(client.available ()) {

char c =

client.read ();Цуваа бичих (c);

}

/* хэрэв

сервер салгагдсан, үйлчлүүлэгчийг зогсоо */

хэрэв

(! client.connected ()) {Serial.println ();Serial.println ("Сервер салгагдсан");

client.stop ();

}

}

Serial.println ( ////////////////////// ТӨГСГӨЛ

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

саатал (3000);

}

}

Алхам 4: ГАРАХ:

Гаралт
Гаралт

Мэдрэгчээс уншсан температурын утгуудын гаралтыг энд харуулав.

Алхам 5: ГРАФИК:

ГРАФИК
ГРАФИК
ГРАФИК
ГРАФИК

Онгоцны температур мэдрэгчээс уншсан утгуудын график дүрслэл.

Зөвлөмж болгож буй: