Πίνακας περιεχομένων:
- Βήμα 1: ΣΥΣΤΑΤΙΚΑ:
- Βήμα 2: ΑΠΟΚΛΕΙΣΗ ΔΙΑΓΡΑΜΜΑΤΟΣ ΑΠΟΚΑΛΥΗΣ ΤΟΥ Esp32
- Βήμα 3: ΚΩΔΙΚΟΠΟΙΗΣΗ:
- Βήμα 4: ΕΞΟΔΟΣ:
- Βήμα 5: ΓΡΑΦΑ:
- Βήμα 6:
Βίντεο: Μέτρηση θερμοκρασίας χρησιμοποιώντας την πλατφόρμα Esp32 και Thingsio.ai: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Σε αυτό το σεμινάριο θα εξηγήσω σχετικά με τη μέτρηση της θερμοκρασίας στο περιβάλλον χρησιμοποιώντας ενσωματωμένο αισθητήρα θερμοκρασίας που υπάρχει στον πίνακα ανάπτυξης esp32. Το esp32 διαθέτει πολλούς ενσωματωμένους αισθητήρες όπως ο αισθητήρας αίθουσας που χρησιμοποιείται ως αισθητήρας εγγύτητας, αισθητήρας αφής, αισθητήρας θερμοκρασίας. Σε αυτό το σεμινάριο θα συζητήσουμε για τον αισθητήρα θερμοκρασίας.
Βήμα 1: ΣΥΣΤΑΤΙΚΑ:
Σκεύη, εξαρτήματα:
1.esp32 πίνακας ανάπτυξης
Λογισμικό:
1. Arduino IDE
2. Thingsio.ai
Βήμα 2: ΑΠΟΚΛΕΙΣΗ ΔΙΑΓΡΑΜΜΑΤΟΣ ΑΠΟΚΑΛΥΗΣ ΤΟΥ 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: ΓΡΑΦΑ:
Η γραφική αναπαράσταση των τιμών που διαβάζονται από τον ενσωματωμένο αισθητήρα θερμοκρασίας.
Συνιστάται:
Παρακολούθηση θερμοκρασίας και υγρασίας DHT χρησιμοποιώντας το ESP8266 και την πλατφόρμα IoT AskSensors: 8 βήματα
Παρακολούθηση θερμοκρασίας και υγρασίας DHT χρησιμοποιώντας το ESP8266 και την πλατφόρμα IoT της AskSensors: Σε προηγούμενο εκπαιδευτικό, παρουσίασα έναν οδηγό βήμα προς βήμα για να ξεκινήσετε με το ESP8266 nodeMCU και την πλατφόρμα IoT AskSensors. Σε αυτό το σεμινάριο, συνδέω έναν αισθητήρα DHT11 στον κόμβο MCU. Το DHT11 είναι μια κοινά χρησιμοποιούμενη θερμοκρασία και υγρασία
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και Arduino Nano: 4 βήματα
Μέτρηση θερμοκρασίας και υγρασίας με χρήση HDC1000 και Arduino Nano: Ο HDC1000 είναι ένας ψηφιακός αισθητήρας υγρασίας με ενσωματωμένο αισθητήρα θερμοκρασίας που παρέχει εξαιρετική ακρίβεια μέτρησης σε πολύ χαμηλή ισχύ. Η συσκευή μετρά την υγρασία με βάση έναν νέο χωρητικό αισθητήρα. Οι αισθητήρες υγρασίας και θερμοκρασίας είναι
Μέτρηση υγρασίας και θερμοκρασίας χρησιμοποιώντας το HIH6130 και το φωτόνιο σωματιδίων: 4 βήματα
Μέτρηση υγρασίας και θερμοκρασίας χρησιμοποιώντας το HIH6130 και το φωτόνιο σωματιδίων: Το HIH6130 είναι αισθητήρας υγρασίας και θερμοκρασίας με ψηφιακή έξοδο. Αυτοί οι αισθητήρες παρέχουν επίπεδο ακρίβειας ± 4% RH. Με κορυφαία μακροπρόθεσμη σταθερότητα στη βιομηχανία, πραγματικό ψηφιακό I2C με αντιστάθμιση θερμοκρασίας, κορυφαία αξιοπιστία στη βιομηχανία, ενεργειακή απόδοση
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και σωματίδιο φωτονίου: 4 βήματα
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και σωματίδιο φωτονίου: Το HDC1000 είναι ένας ψηφιακός αισθητήρας υγρασίας με ενσωματωμένο αισθητήρα θερμοκρασίας που παρέχει εξαιρετική ακρίβεια μέτρησης σε πολύ χαμηλή ισχύ. Η συσκευή μετρά την υγρασία με βάση έναν νέο χωρητικό αισθητήρα. Οι αισθητήρες υγρασίας και θερμοκρασίας είναι
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και Raspberry Pi: 4 βήματα
Μέτρηση θερμοκρασίας και υγρασίας χρησιμοποιώντας HDC1000 και Raspberry Pi: Το HDC1000 είναι ένας ψηφιακός αισθητήρας υγρασίας με ενσωματωμένο αισθητήρα θερμοκρασίας που παρέχει εξαιρετική ακρίβεια μέτρησης σε πολύ χαμηλή ισχύ. Η συσκευή μετρά την υγρασία με βάση έναν νέο χωρητικό αισθητήρα. Οι αισθητήρες υγρασίας και θερμοκρασίας είναι