Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Selles õpetuses selgitan ümbruse temperatuuri mõõtmist esp32 arendusplaadil oleva sisseehitatud temperatuurianduri abil. esp32 -l on palju sisseehitatud andureid, näiteks esiandur, mida kasutatakse lähedusandurina, puuteandur, temperatuuriandur. Selles õpetuses räägime temperatuuriandurist.
1. samm: KOMPONENDID:
Riistvara:
1. esp32 arendusplaat
Tarkvara:
1. Arduino IDE
2. Thingsio.ai
2. samm: ESP32 BLOKKIDIAGRAAMI ESINDUS
3. samm: KOODIMINE:
#kaasake
#kaasake
#kaasake
#kaasake
#kaasake
#ifdef _cplusplus
väline "C" {
#endif
uint8_t temprature_sens_read ();
// uint8_t g_phyFuns;
#ifdef _cplusplus
}
#endif
int arv = 0, i, m, j, k;
int t, t1, t2, t3;
int väljundpin = A0; // ds18b20
//////////////////////////////////////////////////////// KÕIK DEKLARATSIOONID
PILVE jaoks //////////////////////////////
const char* host = "api.thingsai.io"; // VÕI host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
VÕI/api/v2/thingscloud2/_table/data_ac
const char* ajaserver =
"baas.thethingscloud.com"; // see on ajatempli teisendamiseks
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // Serveri URL
sümboli ajatempel [10];
WiFiMulti WiFiMulti;
// Kasutage WiFi -kliendi klassi TCP -ühenduste loomiseks
WiFiClient klient;
/////////////////////////////////////////////////////// TIMESTAMP
Funktsioon ARVUTAMINE ///////////////////////////////////////
int GiveMeTimestamp ()
{
allkirjata pikk
timeout = millis ();
// WiFiClient klient;
samas
(client.available () == 0)
{
kui (millis () -
ajalõpp> 50000)
{
client.stop ();
tagasitulek 0;
}
}
samas (client.available ())
{
Stringirida =
client.readStringUntil ('\ r'); // indexOf () on funktsioon smthng otsimiseks, tagastab -1, kui seda ei leita
int pos =
line.indexOf ("\" ajatempel / ""); // otsi vastuse algusest "\" ajatempel / "" ja kopeeri pärast seda kõik andmed, see on sinu ajatempel
kui (pos> =
0)
{
int j = 0;jaoks (j = 0; j <10; j ++)
{ajatempel [j] = rida [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
tühine seadistus ()
{Seriaalne algus (115200);
viivitus (10);
tzset ();
// Alustame
WiFi -võrguga ühenduse loomineWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");
Serial.println ();
Serial.println ();Serial.print ("Oota WiFi …");samas (WiFiMulti.run ()! = WL_CONNECTED) {Seeria.print (".");
viivitus (500);
}Serial.println ("");Serial.println ("WiFi ühendatud");Serial.println ("IP -aadress:");Serial.println (WiFi.localIP ());
viivitus (500);
}
uint8_t temp_farenheit;
float temp_celsius;
char strftime_buf [64];
aeg_t praegu = 0;
struktuuri tm ajainfo;
char buf [256];
tühine tsükkel ()
{
// int analogValue =
analogRead (väljundpinge);
{
///////////////////////////////////////////////////////////////////////////////////////-
VASTA VASTUS ///////////////////////
//
t1 = (analoogVäärtus/1024,0) *5000;
//
Serial.print ("temp:");
// Seeria.println (t1);
/
/ t2 = (tl/ 10);
//
Serial.print ("celc:");
//
Seeria.println (t2);
/
/ t3 = (((t2 *
9)/5 + 32);
//
Serial.print ("fhrn:");
//
Seeria.println (t3); // murda;localtime_r (& nüüd, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "skannimise algus%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Seeria.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");
viivitus (1000);
nüüd ++;
Serial.print ( ühendamine
kuni );Serial.println (host); // määratletud tagurpidi:- host = devapi2.thethingscloud.com või 139.59.26.117
/////////////////////////////////////////////////-
/////////////////////////
Serial.println ("inside get timestamp / n");
kui
(! client.connect (time_server, {
tagasipöördumine;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/ajatempel HTTP/1.1"); // Mida see osa teeb, ma ei saanud aruclient.println ("Host: baas.thethingscloud.com");client.println ("Vahemälu kontroll: vahemälu puudub");client.println ("Postimees-märk: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klient.println ();
GiveMeTimestamp (); // see kutsub
funktsioon, mis saab serverilt ajatempli vastuse
Serial.println ("ajatempel saadud");
Serial.println (ajatempel);Serial.println ("sees ThingsCloudPost");
String PostValue =
"{" seadme_id / ": 61121695920, \" orja_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + ajatempel;
PostValue =
PostValue +", \" andmed / ": {" TEMP / ":" +temp_farenheit +"}" +"}";Serial.println (PostValue);
/ * looge WiFiClientSecure'i eksemplar */
WiFiClientSecure klient;Serial.println ("Ühenda serveriga pordi 443 kaudu");
kui
(! client.connect (server, 443)) {Serial.println ("Ühendus ebaõnnestus!");
} muud {Serial.println ("Ühendatud serveriga!");
/* luua
taotlus */client.println ("POST/seadmed/seadmeandmed HTTP/1.1");client.println ("Host: api.thingsai.io");//client.println("Connection: close ");client.println ("Sisu tüüp: rakendus/json");client.println ("cache-control: no-cache");client.println ("Autoriseerimine: kandja eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2k2kvkclient.print ("Sisu-pikkus:");klient.println (PostValue.length ());klient.println ();klient.println (PostValue);
//////////////////////////////////////////////// ning andmete postitamine
pilv on tehtud ja hankige nüüd vastusvorm pilveserver //////////////////
Serial.print ( Ootan
vastuseks );
samas
(! client.available ()) {
viivitus (50);
//Seeria.print (".");
}
/* kui andmed on
saadaval, seejärel võtke vastu ja printige terminali */
samas
(client.available ()) {
sümbol c =
client.read ();Serial.write (c);
}
/* kui
server on lahti ühendatud, peatage klient */
kui
(! client.connected ()) {Serial.println ();Serial.println ("Server on lahti ühendatud");
client.stop ();
}
}
Serial.println ( ////////////////////// LÕPP
///////////////////// );
viivitus (3000);
}
}
4. samm: VÄLJUND:
Siin on andurilt loetud temperatuuri väärtuste väljund.
5. samm: graafikud:
Sisseehitatud temperatuuriandurilt loetud väärtuste graafiline esitus.