Orodha ya maudhui:

Upimaji wa Joto Kutumia Esp32 na Jukwaa la Thingsio.ai: Hatua 6
Upimaji wa Joto Kutumia Esp32 na Jukwaa la Thingsio.ai: Hatua 6

Video: Upimaji wa Joto Kutumia Esp32 na Jukwaa la Thingsio.ai: Hatua 6

Video: Upimaji wa Joto Kutumia Esp32 na Jukwaa la Thingsio.ai: Hatua 6
Video: $5 WiFi Camera Setup | ESP32 Wifi Setup view on Mobile phone 2024, Novemba
Anonim
Upimaji wa Joto Kutumia Jukwaa la Esp32 na Thingsio.ai
Upimaji wa Joto Kutumia Jukwaa la Esp32 na Thingsio.ai

Katika mafunzo haya nitaelezea juu ya kupima joto katika mazingira kwa kutumia sensorer ya joto iliyojengwa katika bodi ya maendeleo ya esp32. esp32 ina sensorer nyingi zilizojengwa kama sensa ya ukumbi inayotumiwa kama sensorer ya ukaribu, sensor ya kugusa, sensorer ya joto. Katika mafunzo haya tutazungumzia juu ya sensorer ya joto.

Hatua ya 1: VIFAA:

VIFAA
VIFAA

Vifaa:

1. bodi ya maendeleo ya esp32

Programu:

1. Arduino IDE

2. Thingsio.ai

Hatua ya 2: UWAKILISHO WA UWAKILISHO WA DIAGRAM YA Esp32

UWAKILISHO WA UWASILISHAJI WA BLOCK WA Esp32
UWAKILISHO WA UWASILISHAJI WA BLOCK WA Esp32

Hatua ya 3: CODING:

# pamoja

# pamoja

# pamoja

# pamoja

# pamoja

#ifdef _cplusplus

nje "C" {

# mwisho

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

# mwisho

hesabu = 0, i, m, j, k;

int t, t1, t2, t3;

pato la ndani = A0; // ds18b20

/////////////////////////////////////////// MATANGAZO YOTE

kwa CLOUD //////////////////////////////////

const char * mwenyeji = "api.thingsai.io"; // AU mwenyeji =

devapi2.thethingscloud.com

const char * post_url = "/ vifaa / DataData ya kifaa"; //

AU / api / v2 / thingscloud2 / _table / data_ac

const char * muda_server =

"baas.thethingscloud.com"; // hii ni kubadilisha muhuri wa muda

const int httpPort = 80;

const int httpsPort = 443;

const char * seva =

"api.thingsai.io"; // URL ya seva

ch timestamp [10];

WiFiMulti WiFiMulti;

// Tumia darasa la Wateja wa WiFi kuunda unganisho la TCP

Mteja wa Wateja wa WiFi;

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

HESABU kazi /////////////////////////////////////////////

int GiveMeTimestamp ()

{

bila saini ndefu

muda wa kumaliza = millis ();

// Mteja wa Wateja wa WiFi;

wakati

(mteja anapatikana () == 0)

{

ikiwa (millis () -

muda wa kumaliza> 50000)

{

mteja.acha ();

kurudi 0;

}

}

wakati (mteja anapatikana ())

{

Mstari wa kamba =

mteja.readStringUntil ('\ r'); // indexOf () ni funtion ya kutafuta smthng, inarudi -1 ikiwa haipatikani

int pos =

line.indexOf ("\" timestamp / ""); // tafuta "\" timestamp / "" kutoka mwanzo wa jibu lilipata na kunakili data zote baada ya hapo, itakuwa alama yako ya muda

ikiwa (pos> =

0)

{

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

{timestamp [j] = mstari [pos + 12 + j];

}

}

}

}

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

kuanzisha batili ()

{Serial. Kuanza (115200);

kuchelewesha (10);

tzset ();

// Tunaanza na

kuunganisha kwenye mtandao wa WiFiWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

Serial.println ();Serial.print ("Subiri kwa WiFi…");wakati (WiFiMulti.run ()! = WL_CONNECTED) {Printa ya serial (".");

kuchelewesha (500);

}Serial.println ("");Serial.println ("WiFi imeunganishwa");Serial.println ("Anwani ya IP:");Serial.println (WiFi.localIP ());

kuchelewesha (500);

}

uint8_t temp_farenheit;

kuelea temp_celsius;

char strftime_buf [64];

time_t sasa = 0;

muundo tm timeinfo;

char buf [256];

kitanzi batili ()

{

// int analogValue =

AnalogRead (pato la pato);

{

////////////////////////////////////////// TUMA SWALI NA

POKEA MAJIBU //////////////////////////

//

t1 = (Thamani ya Analog / 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); // kuvunja;localtime_r (& sasa, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "% c", & timeinfo);sprintf (buf, "scan kuanza% 02d:% 02d:% 02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

Rekodi ya serial

(buf);

temp_farenheit =

soma_sauti_ya muda mfupi);

temp_celsius = (temp_farenheit - 32) / 1.8;Serial.print ("Temp onBoard");Serial.print (temp_farenheit);Printa ya serial ("° F");Printa ya serial (temp_celsius);Serial.println ("° C");

kuchelewesha (1000);

sasa ++;

Serial.print ( kuunganisha

kwa );Serial.println (mwenyeji); // imefafanuliwa kichwa: - mwenyeji = devapi2.thethingscloud.com au 139.59.26.117

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

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

Serial.println ("ndani pata muhuri wa muda / n");

kama

(! mteja.connect (time_server, {

kurudi;

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

}mteja.println ("GET / api / timestamp HTTP / 1.1"); // Je! Sehemu hii inafanya nini, sikupatamteja.println ("Jeshi: baas.thethingscloud.com");mteja.println ("Cache-Control: no-cache");mteja.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

mteja.println ();

NipeTimestamp (); // itaita

kazi ambayo itapata majibu ya muhuri wa muda kutoka kwa seva

Serial.println ("timestamp imepokea");

Serial.println (timestamp);Serial.println ("ndani ya ThingsCloudPost");

Thamani PostValue =

"{" kifaa_id / ": 61121695920, \" mtumwa_id / ": 2";

Thamani ya Posta =

Thamani ya Posta + ", \" dts / ":" + muhuri wa muda;

Thamani ya Posta =

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

/ * tengeneza mfano wa WiFiClientSecure * /

Mteja wa WiFiClientSecure;Serial.println ("Unganisha kwenye seva kupitia bandari 443");

kama

(! mteja.connect (seva, 443)) {Serial.println ("Uunganisho umeshindwa!");

} mwingine {Serial.println ("Imeunganishwa na seva!");

/ * tengeneza

ombi * /mteja.println ("POST / vifaa / kifaaData HTTP / 1.1");mteja.println ("Jeshi: api.thingsai.io");//client.println ("Uunganisho: funga");mteja.println ("Aina ya Maudhui: programu / json");mteja.println ("cache-control: no-cache");mteja.alama ya mteja ("Urefu wa Yaliyomo:");mteja.println (PostValue.length ());mteja.println ();mteja.println (PostValue);

///////////////////////////////////// KUTUMIZA data kwa

wingu imefanywa na sasa pata fomu ya majibu seva ya wingu ////////////////////

Serial.print ( Inasubiri

kwa jibu );

wakati

(! mteja anapatikana ()) {

kuchelewesha (50);

//Printa ya serial (".");

}

/ * ikiwa data ni

inapatikana kisha pokea na uchapishe kwa Terminal * /

wakati

(mteja anapatikana ()) {

char c =

soma mteja ();Serial.write (c);

}

/ * ikiwa

seva imekatika, simamisha mteja * /

kama

(! mteja.meunganishwa ()) {Serial.println ();Serial.println ("Seva imekatika");

mteja.acha ();

}

}

Serial.println ( //////////////////////// MWISHO

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

kuchelewesha (3000);

}

}

Hatua ya 4: PATO:

PATO
PATO

Hapa kuna pato la maadili ya joto yaliyosomwa kutoka kwa sensorer.

Hatua ya 5: GRAPHS:

VIFAA
VIFAA
VIFAA
VIFAA

Uwakilishi wa picha ya maadili yaliyosomwa kutoka kwa sensorer ya joto la ndani.

Ilipendekeza: