Kazalo:

Merjenje temperature z uporabo platforme Esp32 in Thingsio.ai: 6 korakov
Merjenje temperature z uporabo platforme Esp32 in Thingsio.ai: 6 korakov

Video: Merjenje temperature z uporabo platforme Esp32 in Thingsio.ai: 6 korakov

Video: Merjenje temperature z uporabo platforme Esp32 in Thingsio.ai: 6 korakov
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, November
Anonim
Merjenje temperature s platformo Esp32 in Thingsio.ai
Merjenje temperature s platformo Esp32 in Thingsio.ai

V tej vadnici bom razložil o merjenju temperature v okolici z uporabo vgrajenega temperaturnega senzorja, ki je prisoten na razvojni plošči esp32. esp32 ima veliko vgrajenih senzorjev, kot je Hallov senzor, ki se uporablja kot senzor bližine, senzor na dotik, temperaturni senzor. V tem vodiču bomo razpravljali o temperaturnem senzorju.

1. korak: SESTAVINE:

SESTAVINE
SESTAVINE

Strojna oprema:

1. razvojna plošča esp32

Programska oprema:

1. Arduino IDE

2. Thingio.ai

2. korak: ZASTOPANJE DIAGRAMSKEGA DIAGRAMA Esp32

BLOK DIAGRAM PREDSTAVITEV Esp32
BLOK DIAGRAM PREDSTAVITEV Esp32

3. korak: KODIRANJE:

#vključi

#vključi

#vključi

#vključi

#vključi

#ifdef _cplusplus

zunanji "C" {

#endif

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#endif

int štetje = 0, i, m, j, k;

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

////////////////////////////////////////// VSE IZJAVE

za OBLAK ////////////////////////////////

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

devapi2.thethingscloud.com

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

ALI/api/v2/thingscloud2/_table/data_ac

const char* časovni strežnik =

"baas.thethingscloud.com"; // to je za pretvorbo časovnega žiga

const int httpPort = 80;

const int httpsPort = 443;

const char* strežnik =

"api.thingsai.io"; // URL strežnika

časovni žig char [10];

WiFiMulti WiFiMulti;

// Uporabite razred WiFiClient za ustvarjanje povezav TCP

Odjemalec WiFiClient;

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

Funkcija IZRAČUN /////////////////////////////////////////

int GiveMeTimestamp ()

{

brez podpisa dolgo

časovna omejitev = milis ();

// odjemalec WiFiClient;

medtem

(client.available () == 0)

{

če (millis () -

časovna omejitev> 50000)

{

client.stop ();

vrnitev 0;

}

}

medtem ko (client.available ())

{

Vrstni niz =

client.readStringUntil ('\ r'); // indexOf () je funkcija za iskanje smthng, vrne -1, če ni najdena

int pos =

line.indexOf ("\" časovni žig / ""); // poiščite "\" časovni žig / "" od začetka odgovora in kopirajte vse podatke po tem, to bo vaš časovni žig

če (pos> =

0)

{

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

{časovni žig [j] = vrstica [pos + 12 + j];

}

}

}

}

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

void setup ()

{Serial.begin (115200);

zamuda (10);

tzset ();

// Začnemo z

povezovanje z omrežjem WiFiWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

Serial.println ();Serial.print ("Počakaj na WiFi …");medtem ko (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

zamuda (500);

}Serial.println ("");Serial.println ("WiFi povezan");Serial.println ("naslov IP:");Serial.println (WiFi.localIP ());

zamuda (500);

}

uint8_t temp_farenheit;

float temp_celsius;

char strftime_buf [64];

time_t zdaj = 0;

struct tm timeinfo;

char buf [256];

void loop ()

{

// int analogValue =

analogRead (izhod);

{

///////////////////////////////////////// POŠLJI VPRAŠANJE IN

PREJMITE ODGOVOR /////////////////////////

//

t1 = (analogna vrednost/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); // prelom;localtime_r (& zdaj, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c" & timeinfo);sprintf (buf, "začetek skeniranja%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");

zamuda (1000);

zdaj ++;

Serial.print ( povezovanje

do );Serial.println (gostitelj); // definirano navzgor:- host = devapi2.thethingscloud.com ali 139.59.26.117

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

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

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

če

(! client.connect (časovni strežnik, {

vrnitev;

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

}client.println ("GET/api/časovni žig HTTP/1.1"); // Kaj počne ta del, nisem dojelclient.println ("Gostitelj: baas.thethingscloud.com");client.println ("Nadzor predpomnilnika: brez predpomnilnika");client.println ("Žeton poštarja: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // poklical bo

funkcijo, ki bo od strežnika prejela odziv časovnega žiga

Serial.println ("prejet časovni žig");

Serial.println (časovni žig);Serial.println ("znotraj ThingsCloudPost");

Niz PostValue =

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

PostValue =

PostValue + ", \" dts / ":" + časovni žig;

PostValue =

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

/ * ustvarite primerek WiFiClientSecure */

Odjemalec WiFiClientSecure;Serial.println ("Poveži se s strežnikom prek vrat 443");

če

(! client.connect (strežnik, 443)) {Serial.println ("Povezava ni uspela!");

} drugo {Serial.println ("Povezano s strežnikom!");

/* ustvarite

prošnja */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Gostitelj: api.thingsai.io");//client.println("Connection: close ");client.println ("Vrsta vsebine: aplikacija/json");client.println ("nadzor predpomnilnika: brez predpomnilnika");client.println ("Pooblastilo: prinašalec eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC22x2x7x2c7x2c7x2c7x2x7x7x7x7x7x7x7x7x7xxxxxxxxxx)client.print ("Content-Length:");client.println (PostValue.length ());client.println ();client.println (PostValue);

//////////////////////////////////// OBJAVLJANJE podatkov v

oblak je končan in zdaj dobite odgovorni obrazec v oblaku //////////////////

Serial.print ( Čakanje

za odgovor );

medtem

(! client.available ()) {

zamuda (50);

//Serial.print (".");

}

/* če so podatki

na voljo, nato sprejmite in natisnite na terminal */

medtem

(client.available ()) {

char c =

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

}

/* če je

strežnik odklopljen, ustavite odjemalca */

če

(! client.connected ()) {Serial.println ();Serial.println ("Strežnik odklopljen");

client.stop ();

}

}

Serial.println ( //////////////////////// KONEC

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

zamuda (3000);

}

}

4. korak: IZHOD:

IZHOD
IZHOD

Tukaj je izpis vrednosti temperature, odčitanih s senzorja.

5. korak: GRAFI:

GRAFIKOVI
GRAFIKOVI
GRAFIKOVI
GRAFIKOVI

Grafični prikaz vrednosti, odčitanih s senzorja temperature na vozilu.

Priporočena: