Talaan ng mga Nilalaman:

Pagsukat ng Temperatura Gamit ang Esp32 at Thingsio.ai Platform: 6 na Hakbang
Pagsukat ng Temperatura Gamit ang Esp32 at Thingsio.ai Platform: 6 na Hakbang

Video: Pagsukat ng Temperatura Gamit ang Esp32 at Thingsio.ai Platform: 6 na Hakbang

Video: Pagsukat ng Temperatura Gamit ang Esp32 at Thingsio.ai Platform: 6 na Hakbang
Video: Using MAX6675 Thermocouple with ESP32 Bluetooth 2024, Nobyembre
Anonim
Pagsukat ng Temperatura Gamit ang Esp32 at Thingsio.ai Platform
Pagsukat ng Temperatura Gamit ang Esp32 at Thingsio.ai Platform

Sa tutorial na ito ipapaliwanag ko ang tungkol sa pagsukat ng temperatura sa paligid sa pamamagitan ng paggamit ng inbuilt na sensor ng temperatura na naroroon sa esp32 development board. Ang esp32 ay maraming mga built-in na sensor tulad ng sensor ng hall na ginamit bilang proximity sensor, touch sensor, temperatura sensor. Sa tutorial na ito tatalakayin namin ang tungkol sa sensor ng temperatura.

Hakbang 1: Mga KOMPONENTO:

Mga sangkap
Mga sangkap

Hardware:

1.esp32 development board

Software:

1. Arduino IDE

2. Thingsio.ai

Hakbang 2: BLOCK DIAGRAM REPRESENTATION NG Esp32

BLOCK DIAGRAM REPRESENTATION NG Esp32
BLOCK DIAGRAM REPRESENTATION NG Esp32

Hakbang 3: CODING:

# isama

# isama

# isama

# isama

# isama

#ifdef _cplusplus

extern "C" {

#tapusin kung

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#tapusin kung

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

// ///

para sa CLOUD // ///.

const char * host = "api.thingsai.io"; // O host =

devapi2.thethingscloud.com

const char * post_url = "/ aparato / aparatoData"; //

O / api / v2 / bagaycloud2 / _tapat / data_ac

const char * time_server =

"baas.thethingscloud.com"; // ito ay upang i-convert ang timestamp

const int httpPort = 80;

const int httpsPort = 443;

const char * server =

"api.thingsai.io"; // Server URL

timestamp ng char [10];

WiFiMulti WiFiMulti;

// Gumamit ng klase ng WiFiClient upang lumikha ng mga koneksyon sa TCP

Client ng WiFiClient;

// ///

Pag-andar ng CALCULATION // ///.

int GiveMeTimestamp ()

{

matagal na hindi pinirmahan

timeout = millis ();

// client ng WiFiClient;

habang

(client.available () == 0)

{

kung (millis () -

timeout> 50000)

{

client.stop ();

ibalik ang 0;

}

}

habang (client.available ())

{

String line =

client.readStringUntil ('\ r'); // indexOf () ay isang funtion upang maghanap para sa smthng, nagbabalik ito ng -1 kung hindi nahanap

int pos =

line.indexOf ("\" timestamp / ""); // search for "\" timestamp / "" mula sa simula ng pagtanggap nakuha at kopyahin ang lahat ng data pagkatapos nito, ito ang magiging timestamp mo

kung (pos> =

0)

{

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

{timestamp [j] = linya [pos + 12 + j];

}

}

}

}

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

walang bisa ang pag-setup ()

{Serial.begin (115200);

antala (10);

tzset ();

// Nagsisimula kami sa pamamagitan ng

kumokonekta sa isang WiFi networkWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

Serial.println ();Serial.print ("Maghintay para sa WiFi …");habang (WiFiMulti.run ()! = WL_CONNected) {Serial.print (".");

pagkaantala (500);

}Serial.println ("");Serial.println ("Konektado sa WiFi");Serial.println ("IP address:");Serial.println (WiFi.localIP ());

pagkaantala (500);

}

uint8_t temp_farenheit;

lumutang temp_celsius;

char strftime_buf [64];

time_t ngayon = 0;

istraktura ng timeinfo;

char buf [256];

walang bisa loop ()

{

// int analogValue =

analogRead (outputpin);

{

// ///

TANGGAPIN ANG RESPONSE // ///.

//

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); //pahinga;localtime_r (& now, & 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);

Serial.print

(buf);

temp_farenheit =

temprature_sens_read ();

temp_celsius = (temp_farenheit - 32) / 1.8;Serial.print ("Temp onBoard");Serial.print (temp_farenheit);Serial.print ("° F");Serial.print (temp_celsius);Serial.println ("° C");

pagkaantala (1000);

ngayon ++;

Serial.print ( kumokonekta

sa );Serial.println (host); // tinukoy nang paitaas: - host = devapi2.thethingscloud.com o 139.59.26.117

// ///.

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

Serial.println ("sa loob makakuha ng timestamp / n");

kung

(! client.connect (time_server, {

bumalik;

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

}client.println ("GET / api / timestamp HTTP / 1.1"); // Ano ang ginagawa ng bahaging ito, hindi ko nakuhaclient.println ("Host: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // tatawagin nito ang

pagpapaandar na makakakuha ng tugon ng timestamp mula sa server

Serial.println ("natanggap ang timestamp");

Serial.println (timestamp);Serial.println ("sa loob ng ThingsCloudPost");

String PostValue =

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

PostValue =

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

PostValue =

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

/ * Lumikha ng isang halimbawa ng WiFiClientSecure * /

Client ng WiFiClientSecure;Serial.println ("Kumonekta sa server sa pamamagitan ng port 443");

kung

(! client.connect (server, 443)) {Serial.println ("Nabigo ang koneksyon!");

} iba pa {Serial.println ("Nakakonekta sa server!");

/ * lumikha ng

hiling */client.println ("POST / aparato / aparatoData HTTP / 1.1");client.println ("Host: api.thingsai.io");//client.println("Connection: close ");client.println ("Uri ng Nilalaman: application / json");client.println ("cache-control: no-cache");client.println ("Awtorisasyon: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT6X79f9)client.print ("Haba ng Nilalaman:");client.println (PostValue.length ());client.println ();client.println (PostValue);

// ///

tapos na ang ulap at makuha ngayon ang form ng pagtugon cloud server // ///.

Serial.print ( Naghihintay

para sa tugon );

habang

(! client.available ()) {

antala (50);

//Serial.print (".");

}

/ * kung ang data ay

magagamit pagkatapos ay tumanggap at mag-print sa Terminal * /

habang

(client.available ()) {

char c =

client.read ();Serial.write (c);

}

/ * kung ang

naka-disconnect ang server, itigil ang client * /

kung

(! client.connected ()) {Serial.println ();Serial.println ("Nakakonekta ang server");

client.stop ();

}

}

Serial.println ( // ///. / / / / / // THE END

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

pagkaantala (3000);

}

}

Hakbang 4: OUTPUT:

OUTPUT
OUTPUT

Narito ang output ng mga halaga ng temperatura na nabasa mula sa sensor.

Hakbang 5: GRAPHS:

GRAPHS
GRAPHS
GRAPHS
GRAPHS

Ang grapikong representasyon ng mga halagang binasa mula sa onboard temperatura sensor.

Inirerekumendang: