Tartalomjegyzék:
- 1. lépés: ALKOTRÉSZEK:
- 2. lépés: Az Esp32 blokkdiagramm -képviselete
- 3. lépés: KÓDOLÁS:
- 4. lépés: KIMENET:
- 5. lépés: Grafikonok:
- 6. lépés:
Videó: Hőmérsékletmérés az Esp32 és a Thingsio.ai platform használatával: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ebben az oktatóanyagban elmagyarázom a környezet hőmérsékletének mérését az esp32 fejlesztőlapon található beépített hőmérséklet -érzékelő használatával. Az esp32 számos beépített érzékelővel rendelkezik, mint például a csarnokérzékelő, amelyet közelségérzékelőként, érintésérzékelőként, hőmérséklet -érzékelőként használnak. Ebben az oktatóanyagban a hőmérséklet -érzékelőről fogunk beszélni.
1. lépés: ALKOTRÉSZEK:
Hardver:
1. esp32 fejlesztőlap
Szoftver:
1. Arduino IDE
2. Thingsio.ai
2. lépés: Az Esp32 blokkdiagramm -képviselete
3. lépés: KÓDOLÁS:
#befoglalni
#befoglalni
#befoglalni
#befoglalni
#befoglalni
#ifdef _cplusplus
extern "C" {
#endif
uint8_t temprature_sens_read ();
// uint8_t g_phyFuns;
#ifdef _cplusplus
}
#endif
int szám = 0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0; // ds18b20
//////////////////////////////////////////////////////// MINDEN NYILATKOZAT
a CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // VAGY gazdagép =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
VAGY/api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; // ez az időbélyeg konvertálása
const int httpPort = 80;
const int httpsPort = 443;
const char* szerver =
"api.thingsai.io"; // Szerver URL -címe
char időbélyeg [10];
WiFiMulti WiFiMulti;
// A WiFiClient osztály használata TCP kapcsolatok létrehozásához
WiFiClient kliens;
/////////////////////////////////////// IDŐBÉLYEG
SZÁMÍTÁS funkció ///////////////////////////////////////
int GiveMeTimestamp ()
{
aláíratlan hosszú
timeout = millis ();
// WiFiClient kliens;
míg
(client.available () == 0)
{
ha (millis () -
időtúllépés> 50000)
{
client.stop ();
visszatérés 0;
}
}
míg (client.available ())
{
Karakterlánc =
client.readStringUntil ('\ r'); // Az indexOf () az smthng keresésére szolgáló funkció, -1 -et ad vissza, ha nem találja
int pos =
line.indexOf ("\" időbélyeg / ""); // keresse a "\" időbélyeg / "" kifejezést a válasz elejétől, majd másolja le az összes adatot, ez lesz az Ön időbélyege
ha (pos> =
0)
{
int j = 0;mert (j = 0; j <10; j ++)
{időbélyeg [j] = sor [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
üres beállítás ()
{Sorozat.kezdet (115200);
késleltetés (10);
tzset ();
// Kezdjük azzal
csatlakozás egy WiFi hálózathozWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");
Sorozat.println ();
Sorozat.println ();Serial.print ("Wait for WiFi …");while (WiFiMulti.run ()! = WL_CONNECTED) {Soros.nyomtatás (".");
késleltetés (500);
}Serial.println ("");Serial.println ("WiFi csatlakoztatva");Serial.println ("IP -cím:");Serial.println (WiFi.localIP ());
késleltetés (500);
}
uint8_t temp_farenheit;
float temp_celsius;
char strftime_buf [64];
time_t most = 0;
struk tm timeinfo;
char buf [256];
üres hurok ()
{
// int analogValue =
analogRead (outputpin);
{
/////////////////////////////////////////////////////////////-
FOGADJA A VÁLASZOT ///////////////////////
//
t1 = (analógérték/1024,0) *5000;
//
Serial.print ("temp:");
// Sorozat.println (t1);
/
/ t2 = (t1/ 10);
//
Serial.print ("celc:");
//
Soros.println (t2);
/
/ t3 = (((t2 *
9)/5 + 32);
//
Serial.print ("fhrn:");
//
Soros.println (t3); //szünet;localtime_r (& most, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c", & timeinfo);sprintf (buf, "scan start%02d:%02d:%02d", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Soros.nyomtatás
(buf);
temp_farenheit =
temprature_sens_read ();
temp_celsius = (temp_farenheit - 32) / 1,8;Serial.print ("Temp onBoard");Serial.print (temp_farenheit);Soros.nyomtatás ("° F");Serial.print (temp_celsius);Soros.println ("° C");
késleltetés (1000);
most ++;
Serial.print ( csatlakozás
nak nek );Serial.println (gazdagép); // definiált fejjel:- host = devapi2.thethingscloud.com vagy 139.59.26.117
///////////////////////////////////////////////////// TIMESTAMP CODE SNIPPET
/////////////////////////
Serial.println ("inside get timestamp / n");
ha
(! client.connect (time_server, {
Visszatérés;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/időbélyeg HTTP/1.1"); // Mit csinál ez a rész, nem értettemclient.println ("Gazdagép: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postás-jelző: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // hívni fogja a
függvény, amely megkapja az időbélyegző választ a szervertől
Serial.println ("időbélyeg érkezett");
Serial.println (időbélyeg);Serial.println ("belül ThingsCloudPost");
Karakterlánc PostValue =
"{" device_id / ": 61121695920, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + időbélyeg;
PostValue =
PostValue +", \" adatok / ": {" TEMP / ":" +temp_farenheit +"}" +"}";Serial.println (PostValue);
/ * hozzon létre egy WiFiClientSecure példányt */
WiFiClientSecure kliens;Serial.println ("Csatlakozás a szerverhez a 443 -as porton keresztül");
ha
(! client.connect (szerver, 443)) {Serial.println ("A kapcsolat nem sikerült!");
} más {Serial.println ("Csatlakoztatva a szerverhez!");
/* HTTP létrehozása
kérés */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Gazdagép: api.thingsai.io");//client.println("Connection: close ");client.println ("Tartalom-típus: application/json");client.println ("cache-control: no-cache");client.println ("Jogosultság: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22kvt5kvkclient.print ("Content-Length:");client.println (PostValue.length ());client.println ();client.println (PostValue);
//////////////////////////////////// Az adatok közzététele a
a felhő elkészült, és most megkapja a válasz formáját felhő szerver //////////////////
Serial.print ( Várakozás
válaszért );
míg
(! client.available ()) {
késleltetés (50);
//Soros.nyomtatás (".");
}
/* ha az adatok
elérhető, majd fogadja és nyomtatja a terminálra */
míg
(client.available ()) {
char c =
client.read ();Soros.írás (c);
}
/* ha a
a szerver leválasztva, állítsa le az ügyfelet */
ha
(! client.connected ()) {Sorozat.println ();Serial.println ("A kiszolgáló leválasztva");
client.stop ();
}
}
Serial.println ( ////////////////////// A VÉGE
///////////////////// );
késleltetés (3000);
}
}
4. lépés: KIMENET:
Itt látható az érzékelő által leolvasott hőmérséklet értékek kimenete.
5. lépés: Grafikonok:
A fedélzeti hőmérséklet -érzékelő által leolvasott értékek grafikus ábrázolása.
Ajánlott:
Hőmérsékletmérés XinaBox és termisztor használatával: 8 lépés
Hőmérsékletmérés XinaBox és termisztor segítségével: Mérje meg a folyadék hőmérsékletét a XinaBox analóg xChip bemenetével és egy termisztoros szondával
Hőmérsékletmérés STS21 és Arduino Nano használatával: 4 lépés
Hőmérsékletmérés az STS21 és az Arduino Nano segítségével: Az STS21 digitális hőmérséklet -érzékelő kiváló teljesítményt és helytakarékos helyet foglal el. Kalibrált, linearizált jeleket biztosít digitális, I2C formátumban. Ennek az érzékelőnek a gyártása a CMOSens technológián alapul, amely a kiváló
Hőmérsékletmérés MCP9803 és Arduino Nano használatával: 4 lépés
Hőmérsékletmérés az MCP9803 és az Arduino Nano használatával: Az MCP9803 egy 2 vezetékes, nagy pontosságú hőmérséklet-érzékelő. Ezeket a felhasználó által programozható regiszterek testesítik meg, amelyek megkönnyítik a hőmérsékletérzékelő alkalmazásokat. Ez az érzékelő rendkívül kifinomult többzónás hőmérséklet-felügyeleti rendszerhez alkalmas
Hőmérsékletmérés TMP112 és Arduino Nano használatával: 4 lépés
Hőmérsékletmérés a TMP112 és az Arduino Nano segítségével: TMP112 Nagy pontosságú, alacsony fogyasztású, digitális hőmérséklet-érzékelő I2C MINI modul. A TMP112 ideális hosszabb hőmérséklet -méréshez. Ez az eszköz ± 0,5 ° C pontosságot kínál, anélkül, hogy kalibrálást vagy külső komponens jel -kondicionálást igényelne
A talaj nedvességtartalmának mérése az Esp32 és a Thingsio.ai platform használatával: 6 lépés
Talajnedvesség -tartalom mérése az Esp32 és a Thingsio.ai platform használatával: Ebben az oktatóanyagban a talaj nedvességtartalmának az esp32 használatával történő leolvasásáról, majd az értékek elküldéséről a thingsio.ai IoT felhőplatformra fogok magyarázatot adni