Cuprins:

Măsurarea temperaturii utilizând platforma Esp32 și Thingsio.ai: 6 pași
Măsurarea temperaturii utilizând platforma Esp32 și Thingsio.ai: 6 pași

Video: Măsurarea temperaturii utilizând platforma Esp32 și Thingsio.ai: 6 pași

Video: Măsurarea temperaturii utilizând platforma Esp32 și Thingsio.ai: 6 pași
Video: masurare cu afisare date si control umiditate sol cu Arduino (2) 2024, Noiembrie
Anonim
Măsurarea temperaturii folosind platforma Esp32 și Thingsio.ai
Măsurarea temperaturii folosind platforma Esp32 și Thingsio.ai

În acest tutorial voi explica despre măsurarea temperaturii din împrejurimi folosind senzorul de temperatură încorporat prezent în placa de dezvoltare esp32. esp32 are mulți senzori încorporați, cum ar fi senzorul de hol utilizat ca senzor de proximitate, senzor tactil, senzor de temperatură. În acest tutorial vom discuta despre senzorul de temperatură.

Pasul 1: COMPONENTE:

COMPONENTE
COMPONENTE

Hardware:

1. placa de dezvoltare esp32

Software:

1. IDE Arduino

2. Thingsio.ai

Pasul 2: REPREZENTAREA BLOCULUI DIAGRAMEI ESP32

REPREZENTAREA BLOCULUI DE DIAGRAMĂ A ESP32
REPREZENTAREA BLOCULUI DE DIAGRAMĂ A ESP32

Pasul 3: CODIFICARE:

#include

#include

#include

#include

#include

#ifdef _cplusplus

extern "C" {

#endif

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _plusplus

}

#endif

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

////////////////////////////////////////// TOATE DECLARAȚIILE

pentru CLOUD ////////////////////////////////

const char * host = "api.thingsai.io"; // SAU gazdă =

devapi2.thethingscloud.com

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

SAU / api / v2 / thingscloud2 / _table / data_ac

const char * time_server =

„baas.thethingscloud.com”; // aceasta este pentru a converti marca de timp

const int httpPort = 80;

const int httpsPort = 443;

const char * server =

"api.thingsai.io"; // Adresa URL a serverului

timestamp char [10];

WiFiMulti WiFiMulti;

// Utilizați clasa WiFiClient pentru a crea conexiuni TCP

Client WiFiClient;

/////////////////////////////////////// TIMESTAMP-UL

Funcția CALCUL // /////////////////////////////////////////

int GiveMeTimestamp ()

{

nesemnat mult

timeout = milis ();

// client WiFiClient;

in timp ce

(client.available () == 0)

{

if (milis () -

expirare> 50000)

{

client.stop ();

retur 0;

}

}

while (client.available ())

{

Linia șirului =

client.readStringUntil ('\ r'); // indexOf () este o funcție pentru a căuta smthng, returnează -1 dacă nu este găsit

int pos =

line.indexOf ("\" timestamp / ""); // căutați "\" timestamp / "" de la începutul răspunsului și copiați toate datele după aceea, va fi marca dvs. de timp

if (pos> =

0)

{

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

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

}

}

}

}

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

configurare nulă ()

{Serial.begin (115200);

întârziere (10);

tzset ();

// Începem prin

conectarea la o rețea WiFiWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

Serial.println ();Serial.print („Așteptați WiFi …”);while (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

întârziere (500);

}Serial.println ("");Serial.println ("WiFi conectat");Serial.println ("adresa IP:");Serial.println (WiFi.localIP ());

întârziere (500);

}

uint8_t temp_farenheit;

float temp_celsius;

char strftime_buf [64];

ora_t acum = 0;

struct tm timeinfo;

char buf [256];

bucla nulă ()

{

// int analogValue =

analogRead (ieșire);

{

///////////////////////////////////////// TRIMITE CERERE ȘI

PRIMI RĂSPUNSUL /////////////////////////

//

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); //pauză;localtime_r (& acum, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "% c", & timeinfo);sprintf (buf, "scan scan% 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");

întârziere (1000);

acum ++;

Serial.print („conectare

la );Serial.println (gazdă); // definită invers: - host = devapi2.thethingscloud.com sau 139.59.26.117

/////////////////////////////////////// COD TIMESTAMP SNIPPET

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

Serial.println ("inside get timestamp / n");

dacă

(! client.connect (time_server, {

întoarcere;

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

}client.println ("GET / api / timestamp HTTP / 1.1"); // Ce face această parte, nu am primitclient.println („Gazdă: baas.thethingscloud.com”);client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // va apela la

funcție care va obține răspunsul la timestamp de la server

Serial.println ("timestamp primit");

Serial.println (timestamp);Serial.println („în interiorul ThingsCloudPost”);

String PostValue =

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

PostValue =

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

PostValue =

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

/ * creați o instanță WiFiClientSecure * /

Client WiFiClientSecure;Serial.println („Conectare la server prin portul 443”);

dacă

(! client.connect (server, 443)) {Serial.println ("Conexiunea a eșuat!");

} altceva {Serial.println ("Conectat la server!");

/ * creați

cerere */client.println ("POST / dispozitive / dispozitivDate HTTP / 1.1");client.println ("Gazdă: api.thingsai.io");//client.println("Connection: close ");client.println ("Content-Type: application / json");client.println ("cache-control: no-cache");client.println („Autorizație: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2KT5XA7_K6_7)client.print („Lungime conținut:”);client.println (PostValue.length ());client.println ();client.println (PostValue);

//////////////////////////////////// PUBLICAREA datelor pe

cloud este gata și acum obțineți formularul de răspuns server cloud //////////////////

Serial.print („În așteptare

pentru răspuns );

in timp ce

(! client.available ()) {

întârziere (50);

//Serial.print (".");

}

/ * dacă datele sunt

disponibil apoi primiți și tipăriți la Terminal * /

in timp ce

(client.available ()) {

char c =

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

}

/ * dacă

server deconectat, opriți clientul * /

dacă

(! client.connected ()) {Serial.println ();Serial.println („Server deconectat”);

client.stop ();

}

}

Serial.println ( //////////////////////// SFÂRȘITUL

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

întârziere (3000);

}

}

Pasul 4: IEȘIRE:

IEȘIRE
IEȘIRE

Iată ieșirea valorilor de temperatură citite de la senzor.

Pasul 5: GRAFII:

GRAFICI
GRAFICI
GRAFICI
GRAFICI

Reprezentarea grafică a valorilor citite de la senzorul de temperatură de la bord.

Recomandat: