Sisukord:
- 1. samm: KOMPONENDID:
- 2. samm: ESP32 BLOKKIDIAGRAAMI ESINDUS
- 3. samm: KOODIMINE:
- 4. samm: VÄLJUND:
- 5. samm: graafikud:
- 6. samm:
Video: Temperatuuri mõõtmine platvormi Esp32 ja Thingsio.ai abil: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
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.
Soovitan:
Temperatuuri mõõtmine XinaBoxi ja termistori abil: 8 sammu
Temperatuuri mõõtmine XinaBoxi ja termistori abil: mõõtke vedeliku temperatuuri, kasutades XinaBoxi analoogsisendit xChip ja termistorisondi
Temperatuuri mõõtmine AD7416ARZ ja Raspberry Pi abil: 4 sammu
Temperatuuri mõõtmine AD7416ARZ ja Raspberry Pi abil: AD7416ARZ on 10-bitine temperatuuriandur, millel on neli ühe kanaliga analoog-digitaalmuundurit ja sisseehitatud temperatuuriandur. Osade temperatuuriandurile pääseb juurde multiplekserkanalite kaudu. See ülitäpne temperatuur
Temperatuuri mõõtmine STS21 ja Arduino Nano abil: 4 sammu
Temperatuuri mõõtmine STS21 ja Arduino Nano abil: STS21 digitaalne temperatuuriandur pakub suurepärast jõudlust ja ruumi säästvat jalajälge. See pakub kalibreeritud, lineariseeritud signaale digitaalses I2C -vormingus. Selle anduri valmistamine põhineb CMOSens tehnoloogial, mis omistab suurepärase
DHT temperatuuri ja niiskuse jälgimine ESP8266 ja AskSensors IoT platvormi abil: 8 sammu
DHT temperatuuri ja niiskuse jälgimine ESP8266 ja AskSensors IoT platvormi abil: Eelmises juhendis esitasin samm -sammult juhendi ESP8266 nodeMCU ja AskSensors IoT platvormiga alustamiseks. Selles õpetuses ühendan DHT11 anduri sõlmele MCU. DHT11 on tavaliselt kasutatav temperatuur ja niiskus
Mulla niiskusesisalduse mõõtmine platvormi Esp32 ja Thingsio.ai abil: 6 sammu
Mulla niiskusesisalduse mõõtmine platvormi Esp32 ja Thingsio.ai abil: selles õpetuses selgitan mullas oleva niiskusesisalduse lugemist esp32 abil ja seejärel väärtuste saatmist asjade Interneti -pilveplatvormile