Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Në këtë tutorial do të shpjegoj në lidhje me matjen e temperaturës në rrethinë duke përdorur sensorin e integruar të temperaturës të pranishëm në tabelën e zhvillimit esp32. esp32 ka shumë sensorë të integruar si sensori i sallës i përdorur si sensori i afërsisë, sensori i prekjes, sensori i temperaturës. Në këtë tutorial ne do të diskutojmë në lidhje me sensorin e temperaturës.
Hapi 1: PMPRBRSIT:
Hardware:
1.esp32 bordi i zhvillimit
Softuer:
1. Arduino IDE
2. Thingsio.ai
Hapi 2: POCRFAQSIMI I DIAGRAMS SOC Bllokut të Esp32
Hapi 3: KODIMI:
#përfshi
#përfshi
#përfshi
#përfshi
#përfshi
#ifdef _plusplus
jashtme "C" {
#endif
uint8_t temprature_sens_read ();
// uint8_t g_phyFuns;
#ifdef _plusplus
}
#endif
int numërimi = 0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0; // ds18b20
//////////////////////////////////////// GJITHA DEKLARATAT
për CLOUD ///////////////////////////////
const char* host = "api.thingsai.io"; // OSE host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
OR/api/v2/thingscloud2/_table/data_ac
const char* serveri i kohës =
"baas.thethingscloud.com"; // kjo është për të konvertuar vulën kohore
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // URL e serverit
vula e kohës char [10];
WiFiMulti WiFiMulti;
// Përdorni klasën WiFiClient për të krijuar lidhje TCP
Klienti WiFiClient;
//////////////////////////////////////// TIMESTAMP
Funksioni i llogaritjes ////////////////////////////////////////
int GiveMeTimestamp ()
{
pa firmosur gjatë
timeout = millis ();
// klienti WiFiClient;
derisa
(klienti i disponueshëm () == 0)
{
nëse (milis () -
timeout> 50000)
{
client.stop ();
kthimi 0;
}
}
ndërsa (klienti i disponueshëm ())
{
Linja e vargut =
client.readStringUntil ('\ r'); // indexOf () është një funksion për të kërkuar smthng, ai kthen -1 nëse nuk gjendet
int pos =
line.indexOf ("\" afati kohor / ""); // kërko për "\" timestamp / "" që nga fillimi i përgjigjes mori dhe kopjo të gjitha të dhënat pas kësaj, do të jetë vula juaj kohore
nëse (pos> =
0)
{
int j = 0;për (j = 0; j <10; j ++)
{vula kohore [j] = rreshti [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{Serial.fillo (115200);
vonesa (10);
tzset ();
// Fillojmë nga
lidhja me një rrjet WiFiWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");
Serial.println ();
Serial.println ();Serial.print ("Prisni për WiFi …");ndërsa (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
vonesë (500);
}Serial.println ("");Serial.println ("WiFi i lidhur");Serial.println ("Adresa IP:");Serial.println (WiFi.localIP ());
vonesë (500);
}
uint8_t temp_farenheit;
nota temp_celsius;
char strftime_buf [64];
koha_t tani = 0;
strukt tm timeinfo;
kar buf [256];
lak void ()
{
// int analogValue =
analogRead (outputpin);
{
//////////////////////////////////////// DENDRGUAR PYETJEN DHE
MERRNI PESRGJIGJEN ///////////////////////
//
t1 = (Vlera analoge/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); // pushim;localtime_r (& tani, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "fillimi i skanimit%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");
vonesa (1000);
tani ++;
Serial.print ( lidh
tek );Serial.println (host); // e përcaktuar me kokë:- host = devapi2.thethingscloud.com ose 139.59.26.117
/////////////////////////////////////// TIMESTAMP KODI SNIPPET
/////////////////////////
Serial.println ("brenda merrni vulën kohore / n");
nëse
(! client.connect (server_ kohor, {
kthim;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/timestamp HTTP/1.1"); // Çfarë bën kjo pjesë, nuk e kuptovaclient.println ("Pritësi: baas.thethingscloud.com");client.println ("Cache-Control: pa-cache");client.println ("Postier-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klient.println ();
GiveMeTimestamp (); // do të thërrasë
funksion i cili do të marrë përgjigjen kohore nga serveri
Serial.println ("vula kohore e marrë");
Serial.println (vula kohore);Serial.println ("brenda ThingsCloudPost");
String PostValue =
"{" device_id / ": 61121695920, \" slave_id / ": 2";
Vlera Postare =
PostValue + ", \" dts / ":" + vula kohore;
Vlera Postare =
PostValue +", \" data / ": {" TEMP / ":" +temp_farenheit +"}" +"}";Serial.println (PostValue);
/ * krijoni një shembull të WiFiClientSecure */
Klient WiFiClientSecure;Serial.println ("Lidhu me serverin përmes portit 443");
nëse
(! client.connect (server, 443)) {Serial.println ("Lidhja dështoi!");
} tjetër {Serial.println ("I lidhur me serverin!");
/* krijoni
kërkesë */client.println ("POST/pajisje/pajisjeData HTTP/1.1");client.println ("Pritësi: api.thingsai.io");//client.println("Lidhja: mbyll ");client.println ("Lloji i përmbajtjes: aplikacion/json");client.println ("cache-control: pa-cache");client.println ("autorizimit Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AG7ajfVlY");client.print ("Përmbajtja-Gjatësia:");client.println (PostValue.length ());klient.println ();client.println (PostValue);
/////////////////////////////////// POSTIMI i të dhënave në
cloud është përfunduar dhe tani merrni përgjigjen nga serveri cloud //////////////////
Serial.print ( Duke pritur
për përgjigje );
derisa
(! client.available ()) {
vonesë (50);
//Serial.print (".");
}
/* nëse të dhënat janë
e disponueshme pastaj merrni dhe printoni në Terminal */
derisa
(client.available ()) {
char c =
client.read ();Serial.shkruani (c);
}
/* nëse
serveri u shkëput, ndaloni klientin */
nëse
(! client.connected ()) {Serial.println ();Serial.println ("Serveri u shkëput");
client.stop ();
}
}
Serial.println ( ////////////////////// FUNDI
///////////////////// );
vonesë (3000);
}
}
Hapi 4: dalje:
Këtu është dalja e vlerave të temperaturës të lexuara nga sensori.
Hapi 5: Grafika:
Paraqitja grafike e vlerave të lexuara nga sensori i temperaturës në bord.