Სარჩევი:

ტემპერატურის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი
ტემპერატურის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი

ვიდეო: ტემპერატურის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი

ვიდეო: ტემპერატურის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით: 6 ნაბიჯი
ვიდეო: FLProg10: DS18B20 ტემპერატურის სენსორი | ESP32 NodeMCU | Arduino ვიზუალური ჩაშენებული პროგრამირება 2024, ნოემბერი
Anonim
ტემპერატურის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით
ტემპერატურის გაზომვა Esp32 და Thingsio.ai პლატფორმის გამოყენებით

ამ გაკვეთილში მე ვაპირებ აგიხსნათ გარემოს ტემპერატურის გაზომვის შესახებ ჩამონტაჟებული ტემპერატურის სენსორის გამოყენებით, რომელიც წარმოდგენილია esp32 განვითარების დაფაზე. esp32– ს აქვს მრავალი ჩაშენებული სენსორი, როგორიცაა დარბაზის სენსორი, რომელიც გამოიყენება როგორც სიახლოვის სენსორი, შეხების სენსორი, ტემპერატურის სენსორი. ამ გაკვეთილში ჩვენ ვაპირებთ განვიხილოთ ტემპერატურის სენსორის შესახებ.

ნაბიჯი 1: კომპონენტები:

კომპონენტები
კომპონენტები

აპარატურა:

1.esp32 განვითარების დაფა

პროგრამული უზრუნველყოფა:

1. Arduino IDE

2.თინგიო.აი

ნაბიჯი 2: Esp32– ის დიაგრამის ბლოკირება

ბლოკის დიაგრამის წარმომადგენლობა Esp32
ბლოკის დიაგრამის წარმომადგენლობა Esp32

ნაბიჯი 3: კოდირება:

#ჩართეთ

#ჩართეთ

#ჩართეთ

#ჩართეთ

#ჩართეთ

#ifdef _plusplus

გარე "C" {

#დაასრულე თუ

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _plusplus

}

#დაასრულე თუ

int რაოდენობა = 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"; //

OR/api/v2/thingscloud2/_table/data_ac

const char* დროის_სერვერი =

"baas.thethingscloud.com"; // ეს არის დროის ნიშნულის გარდაქმნა

const int httpPort = 80;

const int httpsPort = 443;

const char* სერვერი =

"api.thingsai.io"; // სერვერის URL

char დროის ნიშნული [10];

WiFiMulti WiFiMulti;

// გამოიყენეთ WiFiClient კლასი TCP კავშირების შესაქმნელად

WiFiClient კლიენტი;

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

კალკულაციის ფუნქცია ///////////////////////////////////////

int GiveMeTimestamp ()

{

ხელმოუწერელი გრძელი

დროის გასვლა = მილი ();

// WiFiClient კლიენტი;

ხოლო

(client.available () == 0)

{

თუ (მილი () -

დროის გასვლა> 50000)

{

client.stop ();

დაბრუნება 0;

}

}

ხოლო (client.available ())

{

სიმებიანი ხაზი =

client.readStringUntil ('\ r'); // indexOf () არის smthng– ის ძებნის ფუნქცია, ის აბრუნებს -1 თუ არ არის ნაპოვნი

int pos =

line.indexOf ("\" დროის ნიშნული / ""); // მოძებნეთ "\" დროის ნიშნული / "" პასუხის დასაწყისიდან და დააკოპირეთ ყველა მონაცემი ამის შემდეგ, ეს იქნება თქვენი დროის ნიშნული

თუ (pos> =

0)

{

int j = 0;for (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 …");ხოლო (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];

დრო_ ახლა = 0;

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

სერიული.ბეჭდი

(ბუფ);

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 ("ქეში-კონტროლი: არა-ქეში");client.println ("ფოსტალიონი-ჟეტონი: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // ის დარეკავს

ფუნქცია, რომელიც მიიღებს დროის ნიშნულის პასუხს სერვერისგან

Serial.println ("მიღებულია დროის ნიშნული");

Serial.println (დროის ნიშნული);Serial.println ("ThingsCloudPost შიგნით");

სიმებიანი 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 ("დაკავშირებულია სერვერთან!");

/* შექმენით

მოთხოვნა */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("მასპინძელი: api.thingsai.io");//client.println(" კავშირი: დახურვა ");client.println ("შინაარსი-ტიპი: პროგრამა/json");client.println ("ქეში-კონტროლი: არა-ქეში");client.println ("ავტორიზაცია: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AG7ajfVlY");client.print ("შინაარსი-სიგრძე:");client.println (PostValue.length ());client.println ();client.println (PostValue);

//////////////////////////////////// მონაცემების განთავსება

ღრუბელი დასრულებულია და ახლა მიიღეთ პასუხის ფორმა ღრუბლოვანი სერვერი ///////////////////

Serial.print ( ელოდება

პასუხისთვის );

ხოლო

(! client.available ()) {

დაგვიანება (50);

//Serial.print (".");

}

/* თუ მონაცემები არის

ხელმისაწვდომია შემდეგ მიიღეთ და დაბეჭდეთ ტერმინალში */

ხოლო

(client.available ()) {

char c =

client.read ();სერიული. დაწერეთ (გ);

}

/* თუ

სერვერი გათიშულია, გააჩერე კლიენტი */

თუ

(! client.connected ()) {Serial.println ();Serial.println ("სერვერი გათიშულია");

client.stop ();

}

}

Serial.println ( ////////////////////// ბოლო

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

დაგვიანება (3000);

}

}

ნაბიჯი 4: გამოსავალი:

გამომავალი
გამომავალი

აქ არის ტემპერატურის მნიშვნელობების გამომავალი სენსორიდან.

ნაბიჯი 5: გრაფიკები:

გრაფიკები
გრაფიკები
გრაფიკები
გრაფიკები

ტემპერატურის სენსორიდან წაკითხული მნიშვნელობების გრაფიკული წარმოდგენა.

გირჩევთ: