Мазмуну:

Esp32 жана Thingsio.ai платформасын колдонуу менен температураны өлчөө: 6 кадам
Esp32 жана Thingsio.ai платформасын колдонуу менен температураны өлчөө: 6 кадам

Video: Esp32 жана Thingsio.ai платформасын колдонуу менен температураны өлчөө: 6 кадам

Video: Esp32 жана Thingsio.ai платформасын колдонуу менен температураны өлчөө: 6 кадам
Video: Marlin Firmware - VScode - Marlin Example File Guide 2024, Ноябрь
Anonim
Esp32 жана Thingsio.ai платформасын колдонуу менен температураны өлчөө
Esp32 жана Thingsio.ai платформасын колдонуу менен температураны өлчөө

Бул үйрөткүчтө мен esp32 иштеп чыгуу тактасында камтылган температура сенсорун колдонуу менен айланадагы температураны өлчөө жөнүндө айтып берейин. esp32 жакындык сенсору, тийүү сенсору, температура сенсору катары колдонулган зал сенсору сыяктуу көптөгөн орнотулган сенсорлорго ээ. Бул окуу куралында биз температура сенсору жөнүндө сүйлөшөбүз.

1 -кадам: КОМПОНЕНТТЕР:

КОМПОНЕНТТЕР
КОМПОНЕНТТЕР

Аппараттык:

1.esp32 өнүктүрүү тактасы

Программалык камсыздоо:

1. Arduino IDE

2. Thingsio.ai

2 -кадам: Esp32нин BLOCK DIAGRAM ӨКҮЛДҮГҮ

БЛОКАНЫН ДИАГРАММАСЫНЫН ЭСИ 32
БЛОКАНЫН ДИАГРАММАСЫНЫН ЭСИ 32

3 -кадам: КОД:

#кошуу

#кошуу

#кошуу

#кошуу

#кошуу

#ifdef _cplusplus

extern "C" {

#endif

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#endif

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

///////////////////////////////////////// БАРДЫК ДЕКЛАРАЦИЯЛАР

CLOUD үчүн ///////////////////////////////

const char* host = "api.thingsai.io"; // ЖЕ хост =

devapi2.thethingscloud.com

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

ЖЕ/api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; // бул убакыт белгисин которуу

const int httpPort = 80;

const int httpsPort = 443;

const char* сервер =

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

char убакыт белгиси [10];

WiFiMulti WiFiMulti;

// TCP байланыштарын түзүү үчүн WiFiClient классын колдонуңуз

WiFiClient кардары;

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

Эсептөө функциясы /////////////////////////////////////////////////////////////////////////////////////////////

int GiveMeTimestamp ()

{

кол коюлбаган узун

күтүү убактысы = millis ();

// WiFiClient кардары;

ал эми

(client.available () == 0)

{

эгер (миллис () -

күтүү убакыты> 50000)

{

client.stop ();

return 0;

}

}

while (client.available ())

{

Сап сабы =

client.readStringUntil ('\ r'); // indexOf () -бул smthng издөө функциясы, ал табылбаса -1 кайтарат

int pos =

line.indexOf ("\" убакыт белгиси / ""); // "\" убакыт белгисин / "" издеп, жооптун башынан бери бардык маалыматтарды көчүрүп алыңыз, бул сиздин убакыт белгиси болот

эгер (pos> =

0)

{

int j = 0;үчүн (j = 0; j <10; j ++)

{убакыт белгиси [j] = сызык [pos + 12 + j];

}

}

}

}

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

жараксыз орнотуу ()

{Serial.begin (115200);

кечигүү (10);

tzset ();

// Биз баштайбыз

WiFi тармагына туташууWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

Serial.println ();Serial.print ("WiFi күтө туруңуз …");while (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

кечигүү (500);

}Serial.println ("");Serial.println ("WiFi туташты");Serial.println ("IP дареги:");Serial.println (WiFi.localIP ());

кечигүү (500);

}

uint8_t temp_farenheit;

float temp_celsius;

char strftime_buf [64];

time_t now = 0;

struktur tm timeinfo;

char buf [256];

боштук цикл ()

{

// int analogValue =

analogRead (outputpin);

{

////////////////////////////////////////// СУРОО ЖӨНӨТҮҮ ЖАНА

ЖООПТУ АЛЫҢЫЗ ///////////////////////

//

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); // тыныгуу;localtime_r (& азыр, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "скандоону баштоо%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");

кечигүү (1000);

азыр ++;

Serial.print ( туташуу

чейин );Serial.println (кабыл алуучу); // тескери аныкталган:- хост = devapi2.thethingscloud.com же 139.59.26.117

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

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

Serial.println ("ичинде убакыт белгисин алуу / n");

эгер

(! client.connect (time_server, {

кайтуу;

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

}client.println ("Get/api/timestamp HTTP/1.1"); // Бул бөлүк эмне кылып жатат, мен түшүнгөн жокмунclient.println ("Хост: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Почтачы-Токен: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // аны чакырат

серверден убакыт белгисине жооп ала турган функция

Serial.println ("убакыт белгиси алынды");

Serial.println (убакыт белгиси);Serial.println ("ThingsCloudPost ичинде");

String PostValue =

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

PostValue =

PostValue + ", \" dts / ":" + убакыт белгиси;

PostValue =

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

/ * WiFiClientSecure экземплярын түзүү */

WiFiClientSecure кардары;Serial.println ("443 порт аркылуу серверге туташуу");

эгер

(! client.connect (сервер, 443)) {Serial.println ("Туташуу ишке ашкан жок!");

} башка {Serial.println ("Серверге туташты!");

/* HTTP түзүү

өтүнүч */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Хост: api.thingsai.io");//client.println("Байланыш: жабуу ");client.println ("Content-Type: application/json");client.println ("cache-control: no-cache");client.println ("Уруксат: алып жүрүүчү eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT")client.print ("Content-Length:");client.println (PostValue.length ());client.println ();client.println (PostValue);

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

булут бүттү жана эми булут серверинин жооп түрүн алыңыз /////////////////

Serial.print ( Күтүүдө

жооп үчүн );

ал эми

(! client.available ()) {

кечиктирүү (50);

//Serial.print (".");

}

/* эгер маалыматтар болсо

жеткиликтүү, анан алыңыз жана Терминалга басып чыгарыңыз */

ал эми

(client.available ()) {

char c =

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

}

/* Эгерде

сервер ажыратылды, кардарды токтотуу */

эгер

(! client.connected ()) {Serial.println ();Serial.println ("Сервер ажыратылды");

client.stop ();

}

}

Serial.println ( ////////////////////// АКЫРЫ

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

кечигүү (3000);

}

}

4 -кадам: ЧЫГУУ:

ЧЫГУУ
ЧЫГУУ

Бул жерде сенсордон окулган температуранын маанилеринин чыгышы.

5 -кадам: ГРАФИКТЕР:

ГРАФИКТЕР
ГРАФИКТЕР
ГРАФИКТЕР
ГРАФИКТЕР

Борттогу температура сенсорунан окулган маанилердин графикалык көрүнүшү.

Сунушталууда: