Cuprins:
- Pasul 1: COMPONENTE:
- Pasul 2: REPREZENTAREA BLOCULUI DIAGRAMEI ESP32
- Pasul 3: CODIFICARE:
- Pasul 4: IEȘIRE:
- Pasul 5: GRAFII:
- Pasul 6:
Video: Măsurarea temperaturii utilizând platforma Esp32 și Thingsio.ai: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În acest tutorial voi explica despre măsurarea temperaturii din împrejurimi folosind senzorul de temperatură încorporat prezent în placa de dezvoltare esp32. esp32 are mulți senzori încorporați, cum ar fi senzorul de hol utilizat ca senzor de proximitate, senzor tactil, senzor de temperatură. În acest tutorial vom discuta despre senzorul de temperatură.
Pasul 1: COMPONENTE:
Hardware:
1. placa de dezvoltare esp32
Software:
1. IDE Arduino
2. Thingsio.ai
Pasul 2: REPREZENTAREA BLOCULUI DIAGRAMEI ESP32
Pasul 3: CODIFICARE:
#include
#include
#include
#include
#include
#ifdef _cplusplus
extern "C" {
#endif
uint8_t temprature_sens_read ();
// uint8_t g_phyFuns;
#ifdef _plusplus
}
#endif
int count = 0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0; // ds18b20
////////////////////////////////////////// TOATE DECLARAȚIILE
pentru CLOUD ////////////////////////////////
const char * host = "api.thingsai.io"; // SAU gazdă =
devapi2.thethingscloud.com
const char * post_url = "/ devices / deviceData"; //
SAU / api / v2 / thingscloud2 / _table / data_ac
const char * time_server =
„baas.thethingscloud.com”; // aceasta este pentru a converti marca de timp
const int httpPort = 80;
const int httpsPort = 443;
const char * server =
"api.thingsai.io"; // Adresa URL a serverului
timestamp char [10];
WiFiMulti WiFiMulti;
// Utilizați clasa WiFiClient pentru a crea conexiuni TCP
Client WiFiClient;
/////////////////////////////////////// TIMESTAMP-UL
Funcția CALCUL // /////////////////////////////////////////
int GiveMeTimestamp ()
{
nesemnat mult
timeout = milis ();
// client WiFiClient;
in timp ce
(client.available () == 0)
{
if (milis () -
expirare> 50000)
{
client.stop ();
retur 0;
}
}
while (client.available ())
{
Linia șirului =
client.readStringUntil ('\ r'); // indexOf () este o funcție pentru a căuta smthng, returnează -1 dacă nu este găsit
int pos =
line.indexOf ("\" timestamp / ""); // căutați "\" timestamp / "" de la începutul răspunsului și copiați toate datele după aceea, va fi marca dvs. de timp
if (pos> =
0)
{
int j = 0;pentru (j = 0; j <10; j ++)
{timestamp [j] = line [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
configurare nulă ()
{Serial.begin (115200);
întârziere (10);
tzset ();
// Începem prin
conectarea la o rețea WiFiWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");
Serial.println ();
Serial.println ();Serial.print („Așteptați WiFi …”);while (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
întârziere (500);
}Serial.println ("");Serial.println ("WiFi conectat");Serial.println ("adresa IP:");Serial.println (WiFi.localIP ());
întârziere (500);
}
uint8_t temp_farenheit;
float temp_celsius;
char strftime_buf [64];
ora_t acum = 0;
struct tm timeinfo;
char buf [256];
bucla nulă ()
{
// int analogValue =
analogRead (ieșire);
{
///////////////////////////////////////// TRIMITE CERERE ȘI
PRIMI RĂSPUNSUL /////////////////////////
//
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); //pauză;localtime_r (& acum, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "% c", & timeinfo);sprintf (buf, "scan scan% 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");
întârziere (1000);
acum ++;
Serial.print („conectare
la );Serial.println (gazdă); // definită invers: - host = devapi2.thethingscloud.com sau 139.59.26.117
/////////////////////////////////////// COD TIMESTAMP SNIPPET
/////////////////////////
Serial.println ("inside get timestamp / n");
dacă
(! client.connect (time_server, {
întoarcere;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET / api / timestamp HTTP / 1.1"); // Ce face această parte, nu am primitclient.println („Gazdă: baas.thethingscloud.com”);client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // va apela la
funcție care va obține răspunsul la timestamp de la server
Serial.println ("timestamp primit");
Serial.println (timestamp);Serial.println („în interiorul ThingsCloudPost”);
String PostValue =
"{" device_id / ": 61121695920, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + timestamp;
PostValue =
PostValue + ", \" data / ": {" TEMP / ":" + temp_farenheit + "}" + "}";Serial.println (PostValue);
/ * creați o instanță WiFiClientSecure * /
Client WiFiClientSecure;Serial.println („Conectare la server prin portul 443”);
dacă
(! client.connect (server, 443)) {Serial.println ("Conexiunea a eșuat!");
} altceva {Serial.println ("Conectat la server!");
/ * creați
cerere */client.println ("POST / dispozitive / dispozitivDate HTTP / 1.1");client.println ("Gazdă: api.thingsai.io");//client.println("Connection: close ");client.println ("Content-Type: application / json");client.println ("cache-control: no-cache");client.println („Autorizație: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2KT5XA7_K6_7)client.print („Lungime conținut:”);client.println (PostValue.length ());client.println ();client.println (PostValue);
//////////////////////////////////// PUBLICAREA datelor pe
cloud este gata și acum obțineți formularul de răspuns server cloud //////////////////
Serial.print („În așteptare
pentru răspuns );
in timp ce
(! client.available ()) {
întârziere (50);
//Serial.print (".");
}
/ * dacă datele sunt
disponibil apoi primiți și tipăriți la Terminal * /
in timp ce
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/ * dacă
server deconectat, opriți clientul * /
dacă
(! client.connected ()) {Serial.println ();Serial.println („Server deconectat”);
client.stop ();
}
}
Serial.println ( //////////////////////// SFÂRȘITUL
///////////////////// );
întârziere (3000);
}
}
Pasul 4: IEȘIRE:
Iată ieșirea valorilor de temperatură citite de la senzor.
Pasul 5: GRAFII:
Reprezentarea grafică a valorilor citite de la senzorul de temperatură de la bord.
Recomandat:
Măsurarea temperaturii: 7 pași
Măsurarea temperaturii:
Măsurarea temperaturii folosind XinaBox și un termistor: 8 pași
Măsurarea temperaturii folosind XinaBox și un termistor: Măsurați temperatura unui lichid folosind o intrare analogică xChip de la XinaBox și o sondă cu termistor
Măsurarea temperaturii folosind AD7416ARZ și Raspberry Pi: 4 pași
Măsurarea temperaturii folosind AD7416ARZ și Raspberry Pi: AD7416ARZ este un senzor de temperatură de 10 biți cu patru convertizoare analogice la un singur canal și un senzor de temperatură încorporat în acesta. Senzorul de temperatură de pe piese poate fi accesat prin canale multiplexor. Această temperatură de înaltă precizie
Monitorizarea temperaturii și umidității DHT utilizând ESP8266 și platforma IoT AskSensors: 8 pași
Monitorizarea temperaturii și umidității DHT Utilizând ESP8266 și platforma IoT AskSensors: Într-un instructable anterior, am prezentat un ghid pas cu pas pentru a începe cu nodul ESP8266MCU și platforma IoT AskSensors. În acest tutorial, conectez un senzor DHT11 la nodul MCU. DHT11 este o temperatură și umiditate utilizate în mod obișnuit
Măsurarea conținutului de umiditate a solului utilizând platforma Esp32 și Thingsio.ai: 6 pași
Măsurarea conținutului umidității solului folosind platforma Esp32 și Thingsio.ai: În acest tutorial voi explica despre citirea conținutului de umiditate din sol folosind esp32 și apoi trimiterea valorilor în platforma cloud IoT Thingsio.ai