תוכן עניינים:

מדידת טמפרטורה באמצעות Esp32 ופלטפורמת Thingsio.ai: 6 שלבים
מדידת טמפרטורה באמצעות Esp32 ופלטפורמת Thingsio.ai: 6 שלבים

וִידֵאוֹ: מדידת טמפרטורה באמצעות Esp32 ופלטפורמת Thingsio.ai: 6 שלבים

וִידֵאוֹ: מדידת טמפרטורה באמצעות Esp32 ופלטפורמת Thingsio.ai: 6 שלבים
וִידֵאוֹ: FLProg10: חיישן טמפרטורה DS18B20 | ESP32 NodeMCU | Arduino Visual Embedded Programming 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

חיצוני "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"; //

OR/api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; // זה כדי להמיר את חותמת הזמן

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

"api.thingsai.io"; // כתובת URL של השרת

חותמת זמן של צ'ארה [10];

WiFiMulti WiFiMulti;

// השתמש בכיתה WiFiClient ליצירת חיבורי TCP

לקוח WiFiClient;

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

פונקציית חישוב ////////////////////////////

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;עבור (j = 0; j <10; j ++)

{חותמת זמן [j] = שורה [pos + 12 + j];

}

}

}

}

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

הגדרת חלל ()

{Serial.begin (115200);

עיכוב (10);

tzset ();

// נתחיל ב

חיבור לרשת WiFiWiFiMulti.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;

צף temp_celsius;

char strftime_buf [64];

time_t עכשיו = 0;

struct tm timeinfo;

צ'אר בוף [256];

לולאת חלל ()

{

// int analogValue =

analogRead (outputpin);

{

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

קבל את התגובה /////////////////////

//

t1 = (analogValue/1024.0) *5000;

//

Serial.print ("טמפ ':");

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

הדפסה סידורי

(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 (מארח); // מוגדר כלפי מעלה:- host = devapi2.thethingscloud.com או 139.59.26.117

////////////////////////////////////////// SNIPPET

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

Serial.println ("בפנים חותמת זמן / n");

אם

(! client.connect (שרת הזמן, {

לַחֲזוֹר;

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

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

מחרוזת 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 ("cache-control: no-cache");client.println ("הרשאה: נושאת eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNYs9k9y7y9y9s9y9k9y9c9y9c9y9c9y9c9p6y9c9y9c9y9c9y9c9p6y9c5j9J9JyJ9JyN9C9pK9y9YYYYYYN9CYPWzQy9J9yYyYNJC9pJ6y9JyJJJJJJJJ9JyJJ9JyJJJjJJJJJJJgclient.print ("אורך התוכן:");client.println (PostValue.length ());client.println ();client.println (PostValue);

////////////////////////////////////// לפרסם את הנתונים ב

ענן נעשה ועכשיו קבל את טופס התגובה שרת ענן ////////////////////

Serial.print ( מחכה

לתגובה );

בזמן

(! client.available ()) {

עיכוב (50);

//Serial.print (".");

}

/* אם הנתונים

זמין ואז קבל והדפס לטרמינל */

בזמן

(client.available ()) {

char c =

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

}

/* אם

השרת נותק, עצור את הלקוח */

אם

(! client.connected ()) {Serial.println ();Serial.println ("השרת נותק");

client.stop ();

}

}

Serial.println ( //////////////////////// END

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

עיכוב (3000);

}

}

שלב 4: פלט:

תְפוּקָה
תְפוּקָה

להלן הפלט של ערכי הטמפרטורה הנקראים מהחיישן.

שלב 5: גרפים:

גרפים
גרפים
גרפים
גרפים

הייצוג הגרפי של הערכים הנקראים מחיישן הטמפרטורה המשולב.

מוּמלָץ: