Mündəricat:

Esp32 və Thingsio.ai Platformasından İstifadə Ölçmə: 6 Addım
Esp32 və Thingsio.ai Platformasından İstifadə Ölçmə: 6 Addım

Video: Esp32 və Thingsio.ai Platformasından İstifadə Ölçmə: 6 Addım

Video: Esp32 və Thingsio.ai Platformasından İstifadə Ölçmə: 6 Addım
Video: Уроки Home Assistant - Управление через Telegram, текстовые диалоги, права пользователей 2024, Noyabr
Anonim
Esp32 və Thingsio.ai Platformasından İstifadə Ölçmə
Esp32 və Thingsio.ai Platformasından İstifadə Ölçmə

Bu təlimatda esp32 inkişaf lövhəsində olan daxili temperatur sensoru ilə ətrafdakı temperaturun ölçülməsi ilə bağlı izah edəcəyəm. esp32 yaxınlıq sensoru, toxunma sensoru, temperatur sensoru kimi istifadə olunan salon sensoru kimi bir çox daxili sensorlara malikdir. Bu dərsdə temperatur sensoru haqqında danışacağıq.

Addım 1: BİLEŞENLER:

Tərkibləri
Tərkibləri

Avadanlıq:

1.esp32 inkişaf lövhəsi

Proqram təminatı:

1. Arduino IDE

2. Thingsio.ai

Addım 2: Esp32 -nin blok diaqramının nümayişi

BLOCK DIAGRAM TƏKLİFİ Esp32
BLOCK DIAGRAM TƏKLİFİ Esp32

Addım 3: KODLAMA:

#daxil edin

#daxil edin

#daxil edin

#daxil edin

#daxil edin

#ifdef _cplusplus

xarici "C" {

#endif

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#endif

int sayı = 0, i, m, j, k;

int t, t1, t2, t3;

int çıxış pin = A0; // ds18b20

///////////////////////////////////////// BÜTÜN Bəyannamələr

CLOUD üçün ///////////////////////////////

const char* host = "api.thingsai.io"; // OR ana =

devapi2.thethingscloud.com

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

OR/api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; // bu zaman damgasını çevirməkdir

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

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

simvol işarəsi [10];

WiFiMulti WiFiMulti;

// TCP əlaqələri yaratmaq üçün WiFiClient sinifindən istifadə edin

WiFi müştəri;

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

HESAB VERMƏ funksiyası //////////////////////////////////////////////////////////////////////////

int GiveMeTimestamp ()

{

imzasız uzun

zaman aşımı = millis ();

// WiFiClient müştəri;

isə

(müştəri.available () == 0)

{

əgər (millis () -

vaxt aşımı> 50000)

{

client.stop ();

qaytarma 0;

}

}

while (client.available ())

{

String xətti =

client.readStringUntil ('\ r'); // indexOf () smthng axtaran bir funksiyadır, tapılmazsa -1 qaytarır

int pos =

line.indexOf ("\" zaman damgası / ""); // "\" zaman damgası / "" nı axtarın və sonra bütün məlumatları kopyalayın, bu sizin zaman damganız olacaq

əgər (pos> =

0)

{

int j = 0;üçün (j = 0; j <10; j ++)

{vaxt damgası [j] = sətir [pos + 12 + j];

}

}

}

}

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

boş quraşdırma ()

{Serial.begin (115200);

gecikmə (10);

tzset ();

// Başlayırıq

WiFi şəbəkəsinə qoşulmaWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

Serial.println ();Serial.print ("WiFi gözləyin …");isə (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");

gecikmə (500);

}Serial.println ("");Serial.println ("WiFi bağlıdır");Serial.println ("IP ünvanı:");Serial.println (WiFi.localIP ());

gecikmə (500);

}

uint8_t temp_farenheit;

float temp_celsius;

char strftime_buf [64];

vaxt_t indi = 0;

zaman məlumatı qurmaq;

char buf [256];

boşluq döngəsi ()

{

// int analogValue =

analogRead (çıxış pin);

{

////////////////////////////////////////////////////////// SORĞU GÖNDƏRİN VƏ

CAVAB ALIN ///////////////////////

//

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); //fasilə;localtime_r (& indi, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "scan start%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

Serial. Çap

(buf);

temp_farenheit =

temprature_sens_read ();

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

gecikmə (1000);

indi ++;

Serial.print ( birləşdirir

);Serial.println (ev sahibi); // tərs olaraq təyin olunur:- host = devapi2.thethingscloud.com və ya 139.59.26.117

////////////////////////////////////////////////////////////////// TIMESTAMP KODU SNIPPET

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

Serial.println ("daxilində zaman damgası alın / n");

əgər

(! client.connect (time_server, {

qayıtmaq;

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

}client.println ("GET/api/zaman damgası HTTP/1.1"); // Bu hissə nə edir, başa düşmədimclient.println ("Host: baas.thethingscloud.com");client.println ("Önbelleğe Nəzarət: önbelleği yoxdur");client.println ("Poçtalyon-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

müştəri.println ();

GiveMeTimestamp (); // çağıracaq

serverdən zaman damgası cavabını alacaq funksiya

Serial.println ("vaxt damgası alındı");

Serial.println (vaxt damgası);Serial.println ("ThingsCloudPost daxilində");

String PostValue =

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

PostValue =

PostValue + ", \" dts / ":" + zaman damgası;

PostValue =

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

/ * WiFiClientSecure nümunəsi yaradın */

WiFiClientSecure müştəri;Serial.println ("Serverə 443 portu ilə qoşulun");

əgər

(! client.connect (server, 443)) {Serial.println ("Bağlantı uğursuz oldu!");

} başqa {Serial.println ("Serverə qoşuldu!");

/* HTTP yaradın

tələb */client.println ("POST/cihazlar/cihazData HTTP/1.1");client.println ("Host: api.thingsai.io");//client.println("Bağlantı: yaxın ");client.println ("Məzmun Növü: application/json");client.println ("cache-control: no-cache");client.println ("Yetkilendirme: daşıyıcı eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNT"client.print ("Məzmun-Uzunluq:");müştəri.println (PostValue.length ());müştəri.println ();client.println (PostValue);

////////////////////////////////////////////////// Məlumatların yerləşdirilməsi

bulud tamamlandı və indi bulud serverinin cavab formasını əldə edin /////////////////

Serial.print ( Gözləyirəm

cavab üçün );

isə

(! müştəri.available ()) {

gecikmə (50);

//Serial.print (".");

}

/* məlumatlar varsa

mövcuddur, sonra alın və Terminalda çap edin */

isə

(müştəri.available ()) {

char c =

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

}

/* əgər

server kəsildi, müştərini dayandırın */

əgər

(! client.connected ()) {Serial.println ();Serial.println ("Server bağlantısı kəsildi");

client.stop ();

}

}

Serial.println ( ////////////////////// SON

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

gecikmə (3000);

}

}

Addım 4: Çıxış:

Çıxış
Çıxış

İşdə sensordan oxunan temperatur dəyərlərinin çıxışı.

Addım 5: Qrafiklər:

QRAFLAR
QRAFLAR
QRAFLAR
QRAFLAR

Daxili temperatur sensöründən oxunan dəyərlərin qrafik təsviri.

Tövsiyə: