Satura rādītājs:

Temperatūras mērīšana, izmantojot platformu Esp32 un Thingsio.ai: 6 soļi
Temperatūras mērīšana, izmantojot platformu Esp32 un Thingsio.ai: 6 soļi

Video: Temperatūras mērīšana, izmantojot platformu Esp32 un Thingsio.ai: 6 soļi

Video: Temperatūras mērīšana, izmantojot platformu Esp32 un Thingsio.ai: 6 soļi
Video: Software Build of LoRa Transmitter, BME280 Sensor based on Arduino ESP32 (EP09) 2024, Decembris
Anonim
Temperatūras mērīšana, izmantojot Esp32 un Thingsio.ai platformu
Temperatūras mērīšana, izmantojot Esp32 un Thingsio.ai platformu

Šajā apmācībā es paskaidrošu par temperatūras mērīšanu apkārtnē, izmantojot iebūvētu temperatūras sensoru, kas atrodas esp32 izstrādes panelī. Esp32 ir daudz iebūvētu sensoru, piemēram, zāles sensors, ko izmanto kā tuvuma sensoru, pieskāriena sensoru, temperatūras sensoru. Šajā apmācībā mēs apspriedīsim temperatūras sensoru.

1. darbība: SASTĀVDAĻAS:

SASTĀVDAĻAS
SASTĀVDAĻAS

Aparatūra:

1. esp32 attīstības padome

Programmatūra:

1. Arduino IDE

2. Thingsio.ai

2. darbība. ESP32 BLOKU DIAGRAMMAS PĀRSTĀVĒŠANA

BLOKU DIAGRAMMAS PĀRSTĀVĒJUMS Esp32
BLOKU DIAGRAMMAS PĀRSTĀVĒJUMS Esp32

3. darbība: KODĒŠANA:

#iekļaut

#iekļaut

#iekļaut

#iekļaut

#iekļaut

#ifdef _cplusplus

ārējais "C" {

#endif

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#endif

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

///////////////////////////////////////////////////////////////////// VISAS DEKLARĀCIJAS

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

const char* saimnieks = "api.thingsai.io"; // VAI saimniekdators =

devapi2.thethingscloud.com

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

VAI/api/v2/thingscloud2/_table/data_ac

const char* laika_serveris =

"baas.thethingscloud.com"; // tas ir laika zīmoga konvertēšana

const int httpPort = 80;

const int httpsPort = 443;

const char* serveris =

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

simbolu laika zīmogs [10];

WiFiMulti WiFiMulti;

// Izmantojiet WiFiClient klasi, lai izveidotu TCP savienojumus

WiFiClient klients;

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

APRĒĶINA funkcija ////////////////////////////////////////

int GiveMeTimestamp ()

{

neparakstīts ilgi

taimauts = milis ();

// WiFiClient klients;

kamēr

(client.available () == 0)

{

ja (milis () -

taimauts> 50000)

{

client.stop ();

atgriezties 0;

}

}

kamēr (client.available ())

{

Stīgu līnija =

client.readStringUntil ('\ r'); // indexOf () ir funkcija smthng meklēšanai, tā atgriež -1, ja tā netiek atrasta

int pos =

line.indexOf ("\" laika zīmogs / ""); // no atbildes sākuma meklējiet "\" timestamp / "" un pēc tam nokopējiet visus datus, tas būs jūsu laika zīmogs

ja (pos> =

0)

{

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

{laika zīmogs [j] = līnija [pos + 12 + j];

}

}

}

}

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

anulēts iestatījums ()

{Serial.begin (115200);

kavēšanās (10);

tzset ();

// Mēs sākam ar

izveidojot savienojumu ar WiFi tīkluWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Sērijas.println ();

Sērijas.println ();Serial.print ("Pagaidiet WiFi …");kamēr (WiFiMulti.run ()! = WL_CONNECTED) {Sērijas nospiedums (".");

kavēšanās (500);

}Serial.println ("");Serial.println ("savienots WiFi");Serial.println ("IP adrese:");Serial.println (WiFi.localIP ());

kavēšanās (500);

}

uint8_t temp_farenheit;

pludiņš temp_celsius;

char strftime_buf [64];

laiks_t tagad = 0;

struk tm laika informcija;

char buf [256];

tukša cilpa ()

{

// int analogValue =

analogRead (outputpin);

{

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

SAŅEMT ATBILDI ///////////////////////

//

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

//

Serial.print ("temp:");

// Serial.println (t1);

/

/ t2 = (t1/ 10);

//

Serial.print ("celc:");

//

Sērijas.println (t2);

/

/ t3 = (((t2 *

9)/5 + 32);

//

Serial.print ("fhrn:");

//

Sērijas.println (t3); // pārtraukums;localtime_r (& tagad, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "skenēšanas sākums%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

Sērijas.druka

(buf);

temp_farenheit =

temprature_sens_read ();

temp_celsius = (temp_farenheit - 32) / 1,8;Serial.print ("Temp onBoard");Serial.print (temp_farenheit);Sērijas nospiedums ("° F");Serial.print (temp_celsius);Serial.println ("° C");

kavēšanās (1000);

tagad ++;

Serial.print ( savieno

līdz );Serial.println (resursdators); // definēts otrādi:- resursdators = devapi2.thethingscloud.com vai 139.59.26.117

////////////////////////////////////////////////////////////////// LAIKAS ZĪMES KODA SNIPPETS

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

Serial.println ("iekšā iegūt laika zīmogu / n");

ja

(! client.connect (time_server, {

atgriešanās;

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

}client.println ("GET/api/timestamp HTTP/1.1"); // Ko dara šī daļa, es nesaņēmuclient.println ("Saimnieks: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Pastnieks-marķieris: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

klients.println ();

GiveMeTimestamp (); // tas sauksies

funkcija, kas no servera saņems atbildi uz laika zīmogu

Serial.println ("saņemts laika zīmogs");

Serial.println (laika zīmogs);Serial.println ("iekšā ThingsCloudPost");

String PostValue =

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

PostValue =

PostValue + ", \" dts / ":" + laika zīmogs;

PostValue =

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

/ * izveidot WiFiClientSecure gadījumu */

WiFiClientSecure klients;Serial.println ("Savienojuma izveide ar serveri, izmantojot portu 443");

ja

(! client.connect (serveris, 443)) {Serial.println ("Savienojums neizdevās!");

} vēl {Serial.println ("Savienojums ar serveri!");

/* izveidot

pieprasījums */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Saimnieks: api.thingsai.io");//klients.println ("Savienojums: aizvērt ");client.println ("Satura tips: lietojumprogramma/json");client.println ("cache-control: no-cache");client.println ("Autorizācija: nesējs eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2kvkclient.print ("Content-Length:");client.println (PostValue.length ());klients.println ();client.println (PostValue);

////////////////////////////////////////////////&Hl=lv lai datus publicētu

mākonis ir pabeigts un tagad iegūstiet atbildes veidlapu mākoņa serverī ///////////////////

Serial.print ( Gaida

atbildei );

kamēr

(! client.available ()) {

kavēšanās (50);

//Sērijas nospiedums (".");

}

/* ja dati ir

pieejams, tad saņemiet un izdrukājiet terminālī */

kamēr

(client.available ()) {

ogle c =

klients.lasīt ();Serial.write (c);

}

/* ja

serveris ir atvienots, apturiet klientu */

ja

(! client.connected ()) {Sērijas.println ();Serial.println ("Serveris atvienots");

client.stop ();

}

}

Serial.println ( ////////////////////// THE END

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

kavēšanās (3000);

}

}

4. solis: IZEJA:

Izeja
Izeja

Šeit ir no sensora nolasīto temperatūras vērtību izvade.

5. darbība: GRAFIKAS:

GRAFIKAS
GRAFIKAS
GRAFIKAS
GRAFIKAS

No borta temperatūras sensora nolasīto vērtību grafiskais attēlojums.

Ieteicams: