Temperatuuri mõõtmine platvormi Esp32 ja Thingsio.ai abil: 6 sammu
Temperatuuri mõõtmine platvormi Esp32 ja Thingsio.ai abil: 6 sammu
Anonim
Temperatuuri mõõtmine platvormi Esp32 ja Thingsio.ai abil
Temperatuuri mõõtmine platvormi Esp32 ja Thingsio.ai abil

Selles õpetuses selgitan ümbruse temperatuuri mõõtmist esp32 arendusplaadil oleva sisseehitatud temperatuurianduri abil. esp32 -l on palju sisseehitatud andureid, näiteks esiandur, mida kasutatakse lähedusandurina, puuteandur, temperatuuriandur. Selles õpetuses räägime temperatuuriandurist.

1. samm: KOMPONENDID:

KOMPONENDID
KOMPONENDID

Riistvara:

1. esp32 arendusplaat

Tarkvara:

1. Arduino IDE

2. Thingsio.ai

2. samm: ESP32 BLOKKIDIAGRAAMI ESINDUS

BLOKKIDIAGRAAMI ESINDUS ESP32
BLOKKIDIAGRAAMI ESINDUS ESP32

3. samm: KOODIMINE:

#kaasake

#kaasake

#kaasake

#kaasake

#kaasake

#ifdef _cplusplus

väline "C" {

#endif

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#endif

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

int t, t1, t2, t3;

int väljundpin = A0; // ds18b20

//////////////////////////////////////////////////////// KÕIK DEKLARATSIOONID

PILVE jaoks //////////////////////////////

const char* host = "api.thingsai.io"; // VÕI host =

devapi2.thethingscloud.com

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

VÕI/api/v2/thingscloud2/_table/data_ac

const char* ajaserver =

"baas.thethingscloud.com"; // see on ajatempli teisendamiseks

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

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

sümboli ajatempel [10];

WiFiMulti WiFiMulti;

// Kasutage WiFi -kliendi klassi TCP -ühenduste loomiseks

WiFiClient klient;

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

Funktsioon ARVUTAMINE ///////////////////////////////////////

int GiveMeTimestamp ()

{

allkirjata pikk

timeout = millis ();

// WiFiClient klient;

samas

(client.available () == 0)

{

kui (millis () -

ajalõpp> 50000)

{

client.stop ();

tagasitulek 0;

}

}

samas (client.available ())

{

Stringirida =

client.readStringUntil ('\ r'); // indexOf () on funktsioon smthng otsimiseks, tagastab -1, kui seda ei leita

int pos =

line.indexOf ("\" ajatempel / ""); // otsi vastuse algusest "\" ajatempel / "" ja kopeeri pärast seda kõik andmed, see on sinu ajatempel

kui (pos> =

0)

{

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

{ajatempel [j] = rida [pos + 12 + j];

}

}

}

}

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

tühine seadistus ()

{Seriaalne algus (115200);

viivitus (10);

tzset ();

// Alustame

WiFi -võrguga ühenduse loomineWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

Serial.println ();Serial.print ("Oota WiFi …");samas (WiFiMulti.run ()! = WL_CONNECTED) {Seeria.print (".");

viivitus (500);

}Serial.println ("");Serial.println ("WiFi ühendatud");Serial.println ("IP -aadress:");Serial.println (WiFi.localIP ());

viivitus (500);

}

uint8_t temp_farenheit;

float temp_celsius;

char strftime_buf [64];

aeg_t praegu = 0;

struktuuri tm ajainfo;

char buf [256];

tühine tsükkel ()

{

// int analogValue =

analogRead (väljundpinge);

{

///////////////////////////////////////////////////////////////////////////////////////-

VASTA VASTUS ///////////////////////

//

t1 = (analoogVäärtus/1024,0) *5000;

//

Serial.print ("temp:");

// Seeria.println (t1);

/

/ t2 = (tl/ 10);

//

Serial.print ("celc:");

//

Seeria.println (t2);

/

/ t3 = (((t2 *

9)/5 + 32);

//

Serial.print ("fhrn:");

//

Seeria.println (t3); // murda;localtime_r (& nüüd, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "skannimise algus%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

Seeria.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");

viivitus (1000);

nüüd ++;

Serial.print ( ühendamine

kuni );Serial.println (host); // määratletud tagurpidi:- host = devapi2.thethingscloud.com või 139.59.26.117

/////////////////////////////////////////////////-

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

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

kui

(! client.connect (time_server, {

tagasipöördumine;

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

}client.println ("GET/api/ajatempel HTTP/1.1"); // Mida see osa teeb, ma ei saanud aruclient.println ("Host: baas.thethingscloud.com");client.println ("Vahemälu kontroll: vahemälu puudub");client.println ("Postimees-märk: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

klient.println ();

GiveMeTimestamp (); // see kutsub

funktsioon, mis saab serverilt ajatempli vastuse

Serial.println ("ajatempel saadud");

Serial.println (ajatempel);Serial.println ("sees ThingsCloudPost");

String PostValue =

"{" seadme_id / ": 61121695920, \" orja_id / ": 2";

PostValue =

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

PostValue =

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

/ * looge WiFiClientSecure'i eksemplar */

WiFiClientSecure klient;Serial.println ("Ühenda serveriga pordi 443 kaudu");

kui

(! client.connect (server, 443)) {Serial.println ("Ühendus ebaõnnestus!");

} muud {Serial.println ("Ühendatud serveriga!");

/* luua

taotlus */client.println ("POST/seadmed/seadmeandmed HTTP/1.1");client.println ("Host: api.thingsai.io");//client.println("Connection: close ");client.println ("Sisu tüüp: rakendus/json");client.println ("cache-control: no-cache");client.println ("Autoriseerimine: kandja eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2k2kvkclient.print ("Sisu-pikkus:");klient.println (PostValue.length ());klient.println ();klient.println (PostValue);

//////////////////////////////////////////////// ning andmete postitamine

pilv on tehtud ja hankige nüüd vastusvorm pilveserver //////////////////

Serial.print ( Ootan

vastuseks );

samas

(! client.available ()) {

viivitus (50);

//Seeria.print (".");

}

/* kui andmed on

saadaval, seejärel võtke vastu ja printige terminali */

samas

(client.available ()) {

sümbol c =

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

}

/* kui

server on lahti ühendatud, peatage klient */

kui

(! client.connected ()) {Serial.println ();Serial.println ("Server on lahti ühendatud");

client.stop ();

}

}

Serial.println ( ////////////////////// LÕPP

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

viivitus (3000);

}

}

4. samm: VÄLJUND:

VÄLJUND
VÄLJUND

Siin on andurilt loetud temperatuuri väärtuste väljund.

5. samm: graafikud:

GRAFIKUD
GRAFIKUD
GRAFIKUD
GRAFIKUD

Sisseehitatud temperatuuriandurilt loetud väärtuste graafiline esitus.