Turinys:

Temperatūros matavimas naudojant „Esp32“ir „Thingsio.ai“platformą: 6 žingsniai
Temperatūros matavimas naudojant „Esp32“ir „Thingsio.ai“platformą: 6 žingsniai

Video: Temperatūros matavimas naudojant „Esp32“ir „Thingsio.ai“platformą: 6 žingsniai

Video: Temperatūros matavimas naudojant „Esp32“ir „Thingsio.ai“platformą: 6 žingsniai
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Lapkritis
Anonim
Temperatūros matavimas naudojant „Esp32“ir „Thingsio.ai“platformą
Temperatūros matavimas naudojant „Esp32“ir „Thingsio.ai“platformą

Šioje pamokoje aš paaiškinsiu, kaip matuoti temperatūrą aplinkoje, naudojant integruotą temperatūros jutiklį, esantį esp32 kūrimo plokštėje. „esp32“turi daug įmontuotų jutiklių, tokių kaip salės jutiklis, naudojamas kaip artumo jutiklis, jutiklinis jutiklis, temperatūros jutiklis. Šioje pamokoje aptarsime temperatūros jutiklį.

1 žingsnis: KOMPONENTAI:

KOMPONENTAI
KOMPONENTAI

Techninė įranga:

1. esp32 kūrimo lenta

Programinė įranga:

1. „Arduino IDE“

2. Thingsio.ai

2 žingsnis: BLOKUOTI DIAGRAMOS ATSTOVAVIMAS Esp32

BLOKŲ DIAGRAMOS ATSTOVAVIMAS Esp32
BLOKŲ DIAGRAMOS ATSTOVAVIMAS Esp32

3 žingsnis: KODAVIMAS:

#įtraukti

#įtraukti

#įtraukti

#įtraukti

#įtraukti

#ifdef _cplusplus

išorinis „C“{

#endif

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#endif

int skaičius = 0, i, m, j, k;

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

//////////////////////////////////////////////////////// VISI DEKLARACIJOS

CLOUD //////////////////////////////

const char* host = "api.thingsai.io"; // ARBA šeimininkas =

devapi2.thethingscloud.com

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

ARBA/api/v2/thingscloud2/_table/data_ac

const char* laiko_serveris =

„baas.thethingscloud.com“; // tai yra laiko žymos konvertavimas

const int httpPort = 80;

const int httpsPort = 443;

const char* serveris =

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

char laiko žyma [10];

WiFiMulti WiFiMulti;

// Naudokite „WiFiClient“klasę, kad sukurtumėte TCP ryšius

„WiFiClient“klientas;

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

APSKAIČIAVIMO funkcija ///////////////////////////////////////

int GiveMeTimestamp ()

{

nepasirašytas ilgai

skirtasis laikas = milis ();

// „WiFiClient“klientas;

tuo tarpu

(client.available () == 0)

{

jei (milis () -

skirtasis laikas> 50000)

{

client.stop ();

grįžti 0;

}

}

o (client.available ())

{

Eilutės eilutė =

client.readStringUntil ('\ r'); // indexOf () yra funkcija ieškoti smthng, ji grąžina -1, jei nerasta

int pos =

line.indexOf ("\" laiko žyma / ""); // ieškokite "\" laiko žymos / "" nuo atsakymo pradžios ir nukopijuokite visus duomenis po to, tai bus jūsų laiko žyma

jei (poz> =

0)

{

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

{laiko žyma [j] = eilutė [pos + 12 + j];

}

}

}

}

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

negaliojanti sąranka ()

{Serial.begin (115200);

vėlavimas (10);

tzset ();

// Pradedame nuo

prisijungimas prie „WiFi“tinklo„WiFiMulti.addAP“(„dlink_DWR-113“, „madhukar66“);

Serial.println ();

Serial.println ();Serial.print („Palaukite„ WiFi “…“);while (WiFiMulti.run ()! = WL_CONNECTED) {Serijinis atspaudas (".");

vėlavimas (500);

}Serial.println ("");Serial.println („WiFi prijungtas“);Serial.println ("IP adresas:");Serial.println (WiFi.localIP ());

vėlavimas (500);

}

uint8_t temp_farenheit;

plūdė temp_celsius;

char strftime_buf [64];

laikas_t dabar = 0;

struktura tm laiko informacija;

char buf [256];

tuštumos kilpa ()

{

// int analogValue =

analogRead (išvesties kaištis);

{

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

GAUTI ATSAKYMĄ ///////////////////////

//

t1 = (analogValue/1024,0) *5000;

//

Serial.print ("temp:");

// Serial.println (t1);

/

/ t2 = (t1/ 10);

//

Serial.print ("celc:");

//

Serijinis.println (t2);

/

/ t3 = (((t2 *

9)/5 + 32);

//

Serial.print ("fhrn:");

//

Serijinis.println (t3); //pertrauka;localtime_r (& dabar, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "nuskaitymo pradžia%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

Serijinis.spaudas

(buf);

temp_farenheit =

temprature_sens_read ();

temp_celsius = (temp_farenheitas - 32) / 1,8;Serial.print („Temp onBoard“);Serial.print (temp_farenheit);Serial.print ("° F");Serial.print (temp_celsius);Serial.println ("° C");

vėlavimas (1000);

dabar ++;

Serial.print ( jungiamas

į );Serial.println (priegloba); // apibrėžta aukštyn kojomis:- šeimininkas = devapi2.thethingscloud.com arba 139.59.26.117

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

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

Serial.println ("viduje gauti laiko žymę / n");

jei

(! client.connect (time_server, {

grįžti;

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

}client.println ("GET/api/laiko žymė HTTP/1.1"); // Ką daro ši dalis, aš nesupratauclient.println ("Priimančioji: baas.thethingscloud.com");client.println („Cache-Control: no-cache“);client.println („Paštininkas-žetonas: ea3c18c6-09ba-d049-ccf3-369a22a284b8“);

klientas.println ();

GiveMeTimestamp (); // tai vadins

funkcija, kuri gaus atsakymą iš laiko žymos iš serverio

Serial.println ("gauta laiko žyma");

Serial.println (laiko žyma);Serial.println ("viduje ThingsCloudPost");

Eilutė PostValue =

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

PostValue =

PostValue + ", \" dts / ":" + laiko žyma;

PostValue =

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

/ * sukurti „WiFiClientSecure“egzempliorių */

„WiFiClientSecure“klientas;Serial.println („Prisijunkite prie serverio per 443 prievadą“);

jei

(! client.connect (serveris, 443)) {Serial.println ("Nepavyko prisijungti!");

} Kitas {Serial.println ("Prisijungta prie serverio!");

/* sukurti

prašymas */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Priegloba: api.thingsai.io");//client.println("Connection: close ");client.println ("Turinio tipas: programa/json");client.println ("cache-control: no-cache");client.println ("Autorizacija: nešėjas eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2kvkclient.print ("Turinio ilgis:");client.println (PostValue.length ());klientas.println ();client.println („PostValue“);

//////////////////////////////////////////////// Skelbdami duomenis į

debesis baigtas ir dabar gaukite atsakymo formą iš debesies serverio //////////////////

Serial.print ( Laukiama

už atsakymą “);

tuo tarpu

(! client.available ()) {

vėlavimas (50);

//Serijinis atspaudas (".");

}

/* jei duomenys yra

galima gauti ir spausdinti į terminalą */

tuo tarpu

(client.available ()) {

char c =

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

}

/* jei

serveris atjungtas, sustabdykite klientą */

jei

(! client.connected ()) {Serial.println ();Serial.println („Serveris atjungtas“);

client.stop ();

}

}

Serial.println ( ////////////////////// PABAIGA

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

vėlavimas (3000);

}

}

4 žingsnis: IŠVADA:

IŠVADA
IŠVADA

Štai iš jutiklio nuskaitytos temperatūros verčių išvestis.

5 žingsnis: GRAFIKOS:

GRAFIKOS
GRAFIKOS
GRAFIKOS
GRAFIKOS

Grafinis verčių, nuskaitytų iš borto temperatūros jutiklio, atvaizdavimas.

Rekomenduojamas: