Innholdsfortegnelse:

Temperaturmåling ved bruk av Esp32 og Thingsio.ai -plattformen: 6 trinn
Temperaturmåling ved bruk av Esp32 og Thingsio.ai -plattformen: 6 trinn

Video: Temperaturmåling ved bruk av Esp32 og Thingsio.ai -plattformen: 6 trinn

Video: Temperaturmåling ved bruk av Esp32 og Thingsio.ai -plattformen: 6 trinn
Video: Использование бесконтактного датчика температуры MLX90614 с EP32 через Bluetooth 2024, November
Anonim
Temperaturmåling ved bruk av Esp32 og Thingsio.ai -plattformen
Temperaturmåling ved bruk av Esp32 og Thingsio.ai -plattformen

I denne opplæringen skal jeg forklare hvordan du måler temperaturen i omgivelsene ved å bruke innebygd temperatursensor som finnes i esp32 utviklingsbord. esp32 har mange innebygde sensorer som hallsensoren som brukes som nærhetssensor, berøringssensor, temperatursensor. I denne opplæringen skal vi diskutere om temperatursensoren.

Trinn 1: KOMPONENTER:

KOMPONENTER
KOMPONENTER

Maskinvare:

1.esp32 utviklingstavle

Programvare:

1. Arduino IDE

2. Thingsio.ai

Trinn 2: BLOCK DIAGRAM REPRESENTASJON AV Esp32

BLOCKDIAGRAM REPRESENTASJON AV Esp32
BLOCKDIAGRAM REPRESENTASJON AV Esp32

Trinn 3: KODING:

#inkludere

#inkludere

#inkludere

#inkludere

#inkludere

#ifdef _cplusplus

ekstern "C" {

#slutt om

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#slutt om

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

////////////////////////////////////////////////////////////'/

for CLOUD ////////////////////////////////////

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

devapi2.thethingscloud.com

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

ELLER/api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; // dette er å konvertere tidsstempel

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

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

røye tidsstempel [10];

WiFiMulti WiFiMulti;

// Bruk WiFiClient -klassen til å opprette TCP -tilkoblinger

WiFiClient -klient;

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

KALKULERINGSFUNKSJON /////////////////////////////////////////

int GiveMeTimestamp ()

{

usignert lang

timeout = millis ();

// WiFiClient -klient;

samtidig som

(client.available () == 0)

{

hvis (millis () -

tidsavbrudd> 50000)

{

client.stop ();

retur 0;

}

}

mens (client.available ())

{

String line =

client.readStringUntil ('\ r'); // indexOf () er en funksjon for å søke etter smthng, den returnerer -1 hvis den ikke blir funnet

int pos =

line.indexOf ("\" tidsstempel / ""); // søk etter "\" tidsstempel / "" fra begynnelsen av svaret, og kopier alle dataene etter det, det vil være ditt tidsstempel

hvis (pos> =

0)

{

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

{tidsstempel [j] = linje [pos + 12 + j];

}

}

}

}

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

ugyldig oppsett ()

{Serial.begin (115200);

forsinkelse (10);

tzset ();

// Vi starter med

tilkobling til et WiFi -nettverkWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

Serial.println ();Serial.print ("Vent på WiFi …");mens (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

forsinkelse (500);

}Serial.println ("");Serial.println ("WiFi tilkoblet");Serial.println ("IP -adresse:");Serial.println (WiFi.localIP ());

forsinkelse (500);

}

uint8_t temp_farenheit;

flyte temp_celsius;

char strftime_buf [64];

time_t nå = 0;

struct tm timeinfo;

røye buf [256];

hulrom ()

{

// int analogValue =

analogRead (outputpin);

{

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

Motta svaret /////////////////////////

//

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); //gå i stykker;localtime_r (& nå, & 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");

forsinkelse (1000);

nå ++;

Serial.print ( tilkobling

til );Serial.println (vert); // definert oppside:- host = devapi2.thethingscloud.com eller 139.59.26.117

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

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

Serial.println ("inne få tidsstempel / n");

hvis

(! client.connect (time_server, {

komme tilbake;

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

}client.println ("GET/api/tidsstempel HTTP/1.1"); // Hva denne delen gjør, skjønte jeg ikkeclient.println ("Vert: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // det vil ringe

funksjon som vil få tidsstempelresponsen fra serveren

Serial.println ("tidsstempel mottatt");

Serial.println (tidsstempel);Serial.println ("inside ThingsCloudPost");

String PostValue =

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

PostValue =

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

PostValue =

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

/ * opprett en forekomst av WiFiClientSecure */

WiFiClientSecure -klient;Serial.println ("Koble til server via port 443");

hvis

(! client.connect (server, 443)) {Serial.println ("Tilkoblingen mislyktes!");

} annet {Serial.println ("Koblet til server!");

/* opprett

be om */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Vert: api.thingsai.io");//client.println("Connection: close ");client.println ("Innholdstype: applikasjon/json");client.println ("cache-control: no-cache");client.println ("Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PTYX9J5YyJ9J5WyQs9y5y9y9y9c9y9c9y9c9p5x9y9c9y9c9p5c9p5g9c5p5g5b5bc5p5bc5p6c5p6p6p6p6p6p6p6p6p6p5g59c5pfb59c5g5b5b5b059b5b5b5b5b5b5b5b059b5b5b5b5b059b5b5b5b5b5b05fb05fb05b05b05b057b5b5b5b5b5b05fb05d05client.print ("Content-Length:");client.println (PostValue.length ());client.println ();client.println (PostValue);

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

skyen er ferdig og nå får du svarskjemaet skyserver ////////////////////

Serial.print ( Venter

for svar );

samtidig som

(! client.available ()) {

forsinkelse (50);

//Serial.print (".");

}

/* hvis data er

tilgjengelig og motta og skriv ut til Terminal */

samtidig som

(client.available ()) {

røyke c =

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

}

/* hvis

serveren koblet fra, stopp klienten */

hvis

(! client.connected ()) {Serial.println ();Serial.println ("Server frakoblet");

client.stop ();

}

}

Serial.println ( ////////////////////////// ENDEN

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

forsinkelse (3000);

}

}

Trinn 4: UTGANG:

PRODUKSJON
PRODUKSJON

Her er utdataene av temperaturverdier lest fra sensoren.

Trinn 5: GRAFIKK:

GRAFI
GRAFI
GRAFI
GRAFI

Den grafiske fremstillingen av verdiene som er lest fra den innebygde temperatursensoren.

Anbefalt: