Πίνακας περιεχομένων:

Μέτρηση θερμοκρασίας χρησιμοποιώντας την πλατφόρμα 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

εξωτερικό "C" {

#τέλος εαν

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#τέλος εαν

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

//////////////////////////////////////// Όλες οι δηλώσεις

για ΝΕΦΩΣ ///////////////////////////////

const char* host = "api.thingsai.io"; // host κεντρικός υπολογιστής =

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* διακομιστής =

"api.thingsai.io"; // URL διακομιστή

timestamp char [10]?

WiFiMulti WiFiMulti;

// Χρησιμοποιήστε την κλάση WiFiClient για να δημιουργήσετε συνδέσεις TCP

Πελάτης WiFiClient.

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

Λειτουργία ΥΠΟΛΟΓΙΣΜΟΣ ///////////////////////////////////////

int GiveMeTimestamp ()

{

ανυπόγραφη μακρά

timeout = millis ();

// πελάτης WiFiClient.

ενώ

(client.available () == 0)

{

εάν (millis () -

χρονικό όριο> 50000)

{

client.stop ();

επιστροφή 0?

}

}

while (client.available ())

{

Γραμμή συμβολοσειράς =

client.readStringUntil ('\ r'); // indexOf () είναι μια λειτουργία αναζήτησης για smthng, επιστρέφει -1 αν δεν βρεθεί

int pos =

line.indexOf ("\" χρονική σήμανση / ""); // αναζήτηση για "\" timestamp / "" από την αρχή της απόκρισης και αντιγράψτε όλα τα δεδομένα μετά από αυτό, θα είναι η χρονική σήμανση σας

εάν (pos> =

0)

{

int j = 0;για (j = 0; j <10; j ++)

{χρονική σήμανση [j] = γραμμή [pos + 12 + j];

}

}

}

}

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

void setup ()

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

float temp_celsius?

char strftime_buf [64];

time_t τώρα = 0;

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

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 (οικοδεσπότης); // καθορισμένο ανάποδα:- host = devapi2.thethingscloud.com ή 139.59.26.117

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

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

Serial.println ("εντός λήψης χρονικής σήμανσης / n");

αν

(! client.connect (διακομιστής χρόνου, {

ΕΠΙΣΤΡΟΦΗ;

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

}client.println ("GET/api/timestamp HTTP/1.1"); // Τι κάνει αυτό το μέρος, δεν κατάλαβαclient.println ("Host: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: 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 ("Συνδέθηκε με διακομιστή!");

/* δημιουργία

αίτηση */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Host: api.thingsai.io");//client.println("Σύνδεση: κλείσιμο ");client.println ("Τύπος περιεχομένου: εφαρμογή/json");client.println ("cache-control: no-cache");client.println ("Άδεια: Ανώνυμες eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AG7ajfVlY")?client.print ("Περιεχόμενο-Μήκος:");client.println (PostValue.length ());client.println ();client.println (PostValue);

//////////////////////////////////// ΑΝΑΡΤΗΣΗ των δεδομένων στο

το cloud τελείωσε και τώρα λάβετε τη φόρμα απόκρισης cloud server ///////////////////

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: ΓΡΑΦΑ:

ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ
ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ
ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ
ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ

Η γραφική αναπαράσταση των τιμών που διαβάζονται από τον ενσωματωμένο αισθητήρα θερμοκρασίας.

Συνιστάται: