Мазмұны:

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

Бейне: Esp32 және Thingsio.ai платформасы арқылы температураны өлшеу: 6 қадам

Бейне: Esp32 және Thingsio.ai платформасы арқылы температураны өлшеу: 6 қадам
Бейне: Использование термопары MAX6675 с ESP32 Bluetooth 2024, Қараша
Anonim
Esp32 және Thingsio.ai платформасын пайдаланып температураны өлшеу
Esp32 және Thingsio.ai платформасын пайдаланып температураны өлшеу

Бұл оқулықта мен esp32 әзірлеу тақтасында орнатылған кіріктірілген температура сенсоры арқылы айналадағы температураны өлшеуді түсіндіремін. esp32 -де жақындық сенсоры, сенсорлық сенсор, температура сенсоры ретінде пайдаланылатын зал сенсоры сияқты көптеген кіріктірілген сенсорлар бар. Бұл оқулықта біз температура сенсоры туралы сөйлесетін боламыз.

1 -қадам: ҚҰРАМДАР:

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

Жабдық:

1.esp32 дамыту тақтасы

Бағдарламалық қамтамасыз ету:

1. Arduino IDE

2. Thingsio.ai

2 -қадам: Esp32 БЛОКТЫҚ ДИАГРАММАСЫН ӨКІЛДЕУ

Esp32 БЛОКТЫҚ ДИАГРАММАСЫНЫҢ ӨКІЛДІГІ
Esp32 БЛОКТЫҚ ДИАГРАММАСЫНЫҢ ӨКІЛДІГІ

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»; // Сервердің URL мекенжайы

таңбаның уақыт белгісі [10];

WiFiMulti WiFiMulti;

// TCP қосылымдарын жасау үшін WiFiClient класын қолданыңыз

WiFiClient клиенті;

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

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

int GiveMeTimestamp ()

{

қол қойылмаған ұзақ

күту уақыты = millis ();

// WiFiClient клиенті;

кезінде

(client.available () == 0)

{

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

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

{

client.stop ();

қайтару 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;

tm timeinfo құрылымы;

char buf [256];

бос цикл ()

{

// int analogValue =

analogRead (шығыс түйреуі);

{

////////////////////////////////////////// СҰРАҚТЫ Жіберу ЖӘНЕ

ЖАУАП АЛУ ///////////////////////

//

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);

Сериялық баспа

(қате);

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

///////////////////////////////////////////////////// УАҚЫТТЫҢ КОДЫН СНИППЕТ

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

Serial.println («ішінде уақыт белгісін алу / n»);

егер

(! client.connect (time_server, {

қайтару;

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

}client.println («GET/api/уақыт белгісі HTTP/1.1»); // Бұл бөлім не істейді, мен түсінбедімclient.println («Хост: baas.thethingscloud.com»);client.println («Кэшті басқару: кэшсіз»);client.println («Пошташы-Токен: ea3c18c6-09ba-d049-ccf3-369a22a284b8»);

client.println ();

GiveMeTimestamp (); // ол шақырады

серверден уақыт белгісінің жауабын алатын функция

Serial.println («уақыт белгісі алынды»);

Serial.println (уақыт белгісі);Serial.println («ThingsCloudPost ішінде»);

Жолдың мәні =

«{» 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 («кэшті басқару: кэшсіз»);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 -қадам: ГРАФИКА:

ГРАФИКАЛАР
ГРАФИКАЛАР
ГРАФИКАЛАР
ГРАФИКАЛАР

Борттық температура сенсорынан оқылатын мәндердің графикалық көрінісі.

Ұсынылған: