Turinys:
- 1 žingsnis: KOMPONENTAI:
- 2 žingsnis: BLOKUOTI DIAGRAMOS ATSTOVAVIMAS Esp32
- 3 žingsnis: KODAVIMAS:
- 4 žingsnis: IŠVADA:
- 5 žingsnis: GRAFIKOS:
- 6 žingsnis:
Video: Temperatūros matavimas naudojant „Esp32“ir „Thingsio.ai“platformą: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Šioje pamokoje aš paaiškinsiu, kaip matuoti temperatūrą aplinkoje, naudojant integruotą temperatūros jutiklį, esantį esp32 kūrimo plokštėje. „esp32“turi daug įmontuotų jutiklių, tokių kaip salės jutiklis, naudojamas kaip artumo jutiklis, jutiklinis jutiklis, temperatūros jutiklis. Šioje pamokoje aptarsime temperatūros jutiklį.
1 žingsnis: KOMPONENTAI:
Techninė įranga:
1. esp32 kūrimo lenta
Programinė įranga:
1. „Arduino IDE“
2. Thingsio.ai
2 žingsnis: BLOKUOTI DIAGRAMOS ATSTOVAVIMAS Esp32
3 žingsnis: KODAVIMAS:
#įtraukti
#įtraukti
#įtraukti
#įtraukti
#įtraukti
#ifdef _cplusplus
išorinis „C“{
#endif
uint8_t temprature_sens_read ();
// uint8_t g_phyFuns;
#ifdef _cplusplus
}
#endif
int skaičius = 0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0; // ds18b20
//////////////////////////////////////////////////////// VISI DEKLARACIJOS
CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // ARBA šeimininkas =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
ARBA/api/v2/thingscloud2/_table/data_ac
const char* laiko_serveris =
„baas.thethingscloud.com“; // tai yra laiko žymos konvertavimas
const int httpPort = 80;
const int httpsPort = 443;
const char* serveris =
"api.thingsai.io"; // Serverio URL
char laiko žyma [10];
WiFiMulti WiFiMulti;
// Naudokite „WiFiClient“klasę, kad sukurtumėte TCP ryšius
„WiFiClient“klientas;
////////////////////////////////////////////////////// TIMESTAMP
APSKAIČIAVIMO funkcija ///////////////////////////////////////
int GiveMeTimestamp ()
{
nepasirašytas ilgai
skirtasis laikas = milis ();
// „WiFiClient“klientas;
tuo tarpu
(client.available () == 0)
{
jei (milis () -
skirtasis laikas> 50000)
{
client.stop ();
grįžti 0;
}
}
o (client.available ())
{
Eilutės eilutė =
client.readStringUntil ('\ r'); // indexOf () yra funkcija ieškoti smthng, ji grąžina -1, jei nerasta
int pos =
line.indexOf ("\" laiko žyma / ""); // ieškokite "\" laiko žymos / "" nuo atsakymo pradžios ir nukopijuokite visus duomenis po to, tai bus jūsų laiko žyma
jei (poz> =
0)
{
int j = 0;(j = 0; j <10; j ++)
{laiko žyma [j] = eilutė [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
negaliojanti sąranka ()
{Serial.begin (115200);
vėlavimas (10);
tzset ();
// Pradedame nuo
prisijungimas prie „WiFi“tinklo„WiFiMulti.addAP“(„dlink_DWR-113“, „madhukar66“);
Serial.println ();
Serial.println ();Serial.print („Palaukite„ WiFi “…“);while (WiFiMulti.run ()! = WL_CONNECTED) {Serijinis atspaudas (".");
vėlavimas (500);
}Serial.println ("");Serial.println („WiFi prijungtas“);Serial.println ("IP adresas:");Serial.println (WiFi.localIP ());
vėlavimas (500);
}
uint8_t temp_farenheit;
plūdė temp_celsius;
char strftime_buf [64];
laikas_t dabar = 0;
struktura tm laiko informacija;
char buf [256];
tuštumos kilpa ()
{
// int analogValue =
analogRead (išvesties kaištis);
{
////////////////////////
GAUTI ATSAKYMĄ ///////////////////////
//
t1 = (analogValue/1024,0) *5000;
//
Serial.print ("temp:");
// Serial.println (t1);
/
/ t2 = (t1/ 10);
//
Serial.print ("celc:");
//
Serijinis.println (t2);
/
/ t3 = (((t2 *
9)/5 + 32);
//
Serial.print ("fhrn:");
//
Serijinis.println (t3); //pertrauka;localtime_r (& dabar, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "nuskaitymo pradžia%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Serijinis.spaudas
(buf);
temp_farenheit =
temprature_sens_read ();
temp_celsius = (temp_farenheitas - 32) / 1,8;Serial.print („Temp onBoard“);Serial.print (temp_farenheit);Serial.print ("° F");Serial.print (temp_celsius);Serial.println ("° C");
vėlavimas (1000);
dabar ++;
Serial.print ( jungiamas
į );Serial.println (priegloba); // apibrėžta aukštyn kojomis:- šeimininkas = devapi2.thethingscloud.com arba 139.59.26.117
////////////////////////
/////////////////////////
Serial.println ("viduje gauti laiko žymę / n");
jei
(! client.connect (time_server, {
grįžti;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/laiko žymė HTTP/1.1"); // Ką daro ši dalis, aš nesupratauclient.println ("Priimančioji: baas.thethingscloud.com");client.println („Cache-Control: no-cache“);client.println („Paštininkas-žetonas: ea3c18c6-09ba-d049-ccf3-369a22a284b8“);
klientas.println ();
GiveMeTimestamp (); // tai vadins
funkcija, kuri gaus atsakymą iš laiko žymos iš serverio
Serial.println ("gauta laiko žyma");
Serial.println (laiko žyma);Serial.println ("viduje ThingsCloudPost");
Eilutė PostValue =
"{" device_id / ": 61121695920, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + laiko žyma;
PostValue =
PostValue +", \" data / ": {" TEMP / ":" +temp_farenheit +"}" +"}";Serial.println (PostValue);
/ * sukurti „WiFiClientSecure“egzempliorių */
„WiFiClientSecure“klientas;Serial.println („Prisijunkite prie serverio per 443 prievadą“);
jei
(! client.connect (serveris, 443)) {Serial.println ("Nepavyko prisijungti!");
} Kitas {Serial.println ("Prisijungta prie serverio!");
/* sukurti
prašymas */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Priegloba: api.thingsai.io");//client.println("Connection: close ");client.println ("Turinio tipas: programa/json");client.println ("cache-control: no-cache");client.println ("Autorizacija: nešėjas eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22k2kvkclient.print ("Turinio ilgis:");client.println (PostValue.length ());klientas.println ();client.println („PostValue“);
//////////////////////////////////////////////// Skelbdami duomenis į
debesis baigtas ir dabar gaukite atsakymo formą iš debesies serverio //////////////////
Serial.print ( Laukiama
už atsakymą “);
tuo tarpu
(! client.available ()) {
vėlavimas (50);
//Serijinis atspaudas (".");
}
/* jei duomenys yra
galima gauti ir spausdinti į terminalą */
tuo tarpu
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/* jei
serveris atjungtas, sustabdykite klientą */
jei
(! client.connected ()) {Serial.println ();Serial.println („Serveris atjungtas“);
client.stop ();
}
}
Serial.println ( ////////////////////// PABAIGA
///////////////////// );
vėlavimas (3000);
}
}
4 žingsnis: IŠVADA:
Štai iš jutiklio nuskaitytos temperatūros verčių išvestis.
5 žingsnis: GRAFIKOS:
Grafinis verčių, nuskaitytų iš borto temperatūros jutiklio, atvaizdavimas.
Rekomenduojamas:
Temperatūros matavimas naudojant „XinaBox“ir termistorių: 8 žingsniai
Temperatūros matavimas naudojant „XinaBox“ir termistorių: išmatuokite skysčio temperatūrą naudodami analoginį „XinaBox“įvestį xChip ir termistoriaus zondą
Temperatūros matavimas naudojant AD7416ARZ ir Raspberry Pi: 4 žingsniai
Temperatūros matavimas naudojant AD7416ARZ ir Raspberry Pi: AD7416ARZ yra 10 bitų temperatūros jutiklis su keturiais vieno kanalo analoginiais ir skaitmeniniais keitikliais ir įmontuotu temperatūros jutikliu. Temperatūros jutiklį prie dalių galima pasiekti naudojant multiplekserio kanalus. Ši aukšto tikslumo temperatūra
Temperatūros matavimas naudojant STS21 ir Arduino Nano: 4 žingsniai
Temperatūros matavimas naudojant STS21 ir Arduino Nano: STS21 skaitmeninis temperatūros jutiklis pasižymi puikiu našumu ir taupo vietą. Jis teikia kalibruotus, linijinius signalus skaitmeniniu I2C formatu. Šio jutiklio gamyba pagrįsta CMOSens technologija, kuri priskiriama pranašesniam
Temperatūros matavimas naudojant ADT75 ir „Arduino Nano“: 4 žingsniai
Temperatūros matavimas naudojant ADT75 ir Arduino Nano: ADT75 yra labai tikslus skaitmeninis temperatūros jutiklis. Jį sudaro juostos tarpo temperatūros jutiklis ir 12 bitų analoginis-skaitmeninis keitiklis, skirtas temperatūrai stebėti ir skaitmeninti. Dėl labai jautraus jutiklio man jis yra pakankamai kompetentingas
Dirvožemio drėgmės turinio matavimas naudojant Esp32 ir „Thingsio.ai“platformą: 6 žingsniai
Dirvožemio drėgmės turinio matavimas naudojant „Esp32“ir „Thingsio.ai“platformą: Šioje pamokoje aš paaiškinsiu, kaip skaityti drėgmės kiekį dirvožemyje naudojant esp32, o tada siunčiant vertes į „thingsio.ai“daiktų interneto debesies platformą