Kazalo:
- 1. korak: SESTAVINE:
- 2. korak: ZASTOPANJE DIAGRAMSKEGA DIAGRAMA Esp32
- 3. korak: KODIRANJE:
- 4. korak: IZHOD:
- 5. korak: GRAFI:
- 6. korak:
Video: Merjenje temperature z uporabo platforme Esp32 in Thingsio.ai: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
V tej vadnici bom razložil o merjenju temperature v okolici z uporabo vgrajenega temperaturnega senzorja, ki je prisoten na razvojni plošči esp32. esp32 ima veliko vgrajenih senzorjev, kot je Hallov senzor, ki se uporablja kot senzor bližine, senzor na dotik, temperaturni senzor. V tem vodiču bomo razpravljali o temperaturnem senzorju.
1. korak: SESTAVINE:
Strojna oprema:
1. razvojna plošča esp32
Programska oprema:
1. Arduino IDE
2. Thingio.ai
2. korak: ZASTOPANJE DIAGRAMSKEGA DIAGRAMA Esp32
3. korak: KODIRANJE:
#vključi
#vključi
#vključi
#vključi
#vključi
#ifdef _cplusplus
zunanji "C" {
#endif
uint8_t temprature_sens_read ();
// uint8_t g_phyFuns;
#ifdef _cplusplus
}
#endif
int štetje = 0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0; // ds18b20
////////////////////////////////////////// VSE IZJAVE
za OBLAK ////////////////////////////////
const char* host = "api.thingsai.io"; // ALI gostitelj =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
ALI/api/v2/thingscloud2/_table/data_ac
const char* časovni strežnik =
"baas.thethingscloud.com"; // to je za pretvorbo časovnega žiga
const int httpPort = 80;
const int httpsPort = 443;
const char* strežnik =
"api.thingsai.io"; // URL strežnika
časovni žig char [10];
WiFiMulti WiFiMulti;
// Uporabite razred WiFiClient za ustvarjanje povezav TCP
Odjemalec WiFiClient;
////////////////////////////////////////// TIMESTAMP
Funkcija IZRAČUN /////////////////////////////////////////
int GiveMeTimestamp ()
{
brez podpisa dolgo
časovna omejitev = milis ();
// odjemalec WiFiClient;
medtem
(client.available () == 0)
{
če (millis () -
časovna omejitev> 50000)
{
client.stop ();
vrnitev 0;
}
}
medtem ko (client.available ())
{
Vrstni niz =
client.readStringUntil ('\ r'); // indexOf () je funkcija za iskanje smthng, vrne -1, če ni najdena
int pos =
line.indexOf ("\" časovni žig / ""); // poiščite "\" časovni žig / "" od začetka odgovora in kopirajte vse podatke po tem, to bo vaš časovni žig
če (pos> =
0)
{
int j = 0;za (j = 0; j <10; j ++)
{časovni žig [j] = vrstica [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{Serial.begin (115200);
zamuda (10);
tzset ();
// Začnemo z
povezovanje z omrežjem WiFiWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");
Serial.println ();
Serial.println ();Serial.print ("Počakaj na WiFi …");medtem ko (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
zamuda (500);
}Serial.println ("");Serial.println ("WiFi povezan");Serial.println ("naslov IP:");Serial.println (WiFi.localIP ());
zamuda (500);
}
uint8_t temp_farenheit;
float temp_celsius;
char strftime_buf [64];
time_t zdaj = 0;
struct tm timeinfo;
char buf [256];
void loop ()
{
// int analogValue =
analogRead (izhod);
{
///////////////////////////////////////// POŠLJI VPRAŠANJE IN
PREJMITE ODGOVOR /////////////////////////
//
t1 = (analogna vrednost/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); // prelom;localtime_r (& zdaj, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "%c" & timeinfo);sprintf (buf, "začetek skeniranja%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");
zamuda (1000);
zdaj ++;
Serial.print ( povezovanje
do );Serial.println (gostitelj); // definirano navzgor:- host = devapi2.thethingscloud.com ali 139.59.26.117
/////////////////////////////////////// TIMESTAMP CODE SNIPPET
/////////////////////////
Serial.println ("not get timestamp / n");
če
(! client.connect (časovni strežnik, {
vrnitev;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/časovni žig HTTP/1.1"); // Kaj počne ta del, nisem dojelclient.println ("Gostitelj: baas.thethingscloud.com");client.println ("Nadzor predpomnilnika: brez predpomnilnika");client.println ("Žeton poštarja: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // poklical bo
funkcijo, ki bo od strežnika prejela odziv časovnega žiga
Serial.println ("prejet časovni žig");
Serial.println (časovni žig);Serial.println ("znotraj ThingsCloudPost");
Niz PostValue =
"{" device_id / ": 61121695920, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + časovni žig;
PostValue =
PostValue +", \" data / ": {" TEMP / ":" +temp_farenheit +"}" +"}";Serial.println (PostValue);
/ * ustvarite primerek WiFiClientSecure */
Odjemalec WiFiClientSecure;Serial.println ("Poveži se s strežnikom prek vrat 443");
če
(! client.connect (strežnik, 443)) {Serial.println ("Povezava ni uspela!");
} drugo {Serial.println ("Povezano s strežnikom!");
/* ustvarite
prošnja */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Gostitelj: api.thingsai.io");//client.println("Connection: close ");client.println ("Vrsta vsebine: aplikacija/json");client.println ("nadzor predpomnilnika: brez predpomnilnika");client.println ("Pooblastilo: prinašalec eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC22x2x7x2c7x2c7x2c7x2x7x7x7x7x7x7x7x7x7xxxxxxxxxx)client.print ("Content-Length:");client.println (PostValue.length ());client.println ();client.println (PostValue);
//////////////////////////////////// OBJAVLJANJE podatkov v
oblak je končan in zdaj dobite odgovorni obrazec v oblaku //////////////////
Serial.print ( Čakanje
za odgovor );
medtem
(! client.available ()) {
zamuda (50);
//Serial.print (".");
}
/* če so podatki
na voljo, nato sprejmite in natisnite na terminal */
medtem
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/* če je
strežnik odklopljen, ustavite odjemalca */
če
(! client.connected ()) {Serial.println ();Serial.println ("Strežnik odklopljen");
client.stop ();
}
}
Serial.println ( //////////////////////// KONEC
///////////////////// );
zamuda (3000);
}
}
4. korak: IZHOD:
Tukaj je izpis vrednosti temperature, odčitanih s senzorja.
5. korak: GRAFI:
Grafični prikaz vrednosti, odčitanih s senzorja temperature na vozilu.
Priporočena:
Merjenje temperature z uporabo XinaBox -a in termistorja: 8 korakov
Merjenje temperature z uporabo XinaBox -a in termistorja: izmerite temperaturo tekočine z analognim vhodom xChip iz XinaBox -a in sondo s termistorjem
Merjenje temperature z uporabo AD7416ARZ in Raspberry Pi: 4 koraki
Merjenje temperature z uporabo AD7416ARZ in Raspberry Pi: AD7416ARZ je 10-bitno temperaturno tipalo s štirimi enokanalnimi analogno-digitalnimi pretvorniki in vgrajenim senzorjem temperature na vozilu. Do temperaturnega senzorja na delih lahko dostopate po kanalih multiplekserja. Ta visoko natančna temperatura
Nadzor temperature in vlažnosti DHT z uporabo ESP8266 in platforme IoT AskSensors: 8 korakov
Nadzor temperature in vlažnosti DHT z uporabo ESP8266 in platforme IoT AskSensors: V prejšnjem navodilu sem predstavil navodila po korakih za začetek z vozliščem ESP8266 in platformo AskSensors IoT. V tej vadnici povezujem senzor DHT11 do vozlišča MCU. DHT11 je pogosto uporabljena temperatura in vlažnost
Merjenje vsebnosti vlage v tleh s platformo Esp32 in Thingsio.ai: 6 korakov
Merjenje vsebnosti vlage v tleh z uporabo platforme Esp32 in Thingsio.ai: V tej vadnici bom razložil branje vsebnosti vlage v tleh z uporabo esp32 in nato pošiljanje vrednosti v oblak IoT thingsio.ai
Merjenje temperature iz PT100 z uporabo Arduina: 6 korakov (s slikami)
Merjenje temperature iz PT100 z uporabo Arduina: PT100 je odporni detektor temperature (RTD), ki spreminja svojo upornost glede na temperaturo okolice, široko se uporablja za industrijske procese s počasno dinamiko in relativno širokimi temperaturnimi območji. Uporablja se za počasno dinamiko