Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
In deze tutorial ga ik uitleggen over het meten van de temperatuur in de omgeving met behulp van de ingebouwde temperatuursensor die aanwezig is in het esp32-ontwikkelbord. esp32 heeft veel ingebouwde sensoren zoals de hall-sensor die wordt gebruikt als de nabijheidssensor, aanraaksensor, temperatuursensor. In deze tutorial gaan we het hebben over de temperatuursensor.
Stap 1: COMPONENTEN:
Hardware:
1.esp32 ontwikkelbord
Software:
1. Arduino IDE
2. Thingsio.ai
Stap 2: BLOKDIAGRAM VERTEGENWOORDIGING VAN Esp32
Stap 3: CODEREN:
#erbij betrekken
#erbij betrekken
#erbij betrekken
#erbij betrekken
#erbij betrekken
#ifdef _cplusplus
externe "C" {
#stop als
uint8_t temprature_sens_read();
//uint8_t g_phyFuns;
#ifdef _cplusplus
}
#stop als
int telling=0, i, m, j, k;
int t, t1, t2, t3;
int outputpin = A0;//ds18b20
///////////////////////////////////////// ALLE VERKLARINGEN
voor CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // OF host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; //
OF /api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; //dit is om de tijdstempel te converteren
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // Server-URL
char tijdstempel [10];
WiFiMulti WiFiMulti;
// Gebruik de WiFiClient-klasse om TCP-verbindingen te maken
WiFiClient-client;
//////////////////////////////////////// TIJDSSTEMPEL
BEREKENING functie///////////////////////////////////////
int GiveMeTimestamp()
{
niet ondertekend lang
time-out = millis();
// WiFiClient-client;
terwijl
(klant.beschikbaar() == 0)
{
als (millis() -
time-out > 50000)
{
klant.stop();
retourneer 0;
}
}
terwijl (client.available())
{
String lijn =
client.readStringUntil('\r'); //indexOf() is een functie om te zoeken naar smthng, het retourneert -1 indien niet gevonden
int pos =
line.indexOf("\"tijdstempel\""); // zoek naar "\"timestamp\"" vanaf het begin van het antwoord kreeg en kopieer daarna alle gegevens, dit is uw tijdstempel
als (pos >=
0)
{
intj = 0;voor(j=0;j<10;j++)
{tijdstempel [j] = regel [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
ongeldige setup()
{Serieel.begin(115200);
vertraging(10);
tzset();
// We beginnen met
verbinding maken met een wifi-netwerkWiFiMulti.addAP("dlink_DWR-113", "madhukar66");
Serieel.println();
Serieel.println();Serial.print("Wacht op wifi… ");while(WiFiMulti.run() != WL_CONNECTED) {Serieel.print(".");
vertraging (500);
}Serieel.println("");Serial.println("WiFi verbonden");Serial.println("IP-adres: ");Serial.println(WiFi.localIP());
vertraging (500);
}
uint8_t temp_farenheit;
zweven temp_celsius;
char strftime_buf[64];
time_t nu = 0;
struct tm tijdinfo;
char buf[256];
lege lus()
{
// int analoge waarde =
analoog lezen (uitvoerpin);
{
/////////////////////////////////////// VERZENDEN DE QUERY EN
ONTVANG HET ANTWOORD///////////////////////
//
t1=(analoge waarde/1024.0) *5000;
//
Serial.print("temp: ");
// Serieel.println(t1);
/
/ t2=(t1/10);
//
Serial.print("celc: ");
//
Seriële.println(t2);
/
/ t3=((t2 *
9)/5 + 32);
//
Serial.print("fhrn: ");
//
Seriële.println(t3); //pauze;localtime_r(&nu, &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);
Serieafdruk
(buff);
temp_farenheit=
temprature_sens_read();
temp_celsius = (temp_farenheit - 32) / 1.8;Serial.print("Temp aan boord ");Serial.print(temp_farenheit);Serial.print("°F ");Serial.print(temp_celsius);Serial.println("°C");
vertraging (1000);
nu++;
Serial.print( verbinden
tot );Serieel.println(host); // gedefinieerde bovenkant: - host = devapi2.thethingscloud.com of 139.59.26.117
///////////////////////////////////// TIJDSTEMPEL CODESNIPPET
/////////////////////////
Serial.println("inside get timestamp\n");
indien
(!client.connect(time_server, {
opbrengst;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET /api/timestamp HTTP/1.1"); // Wat doet dit deel, ik heb het niet begrepenclient.println("Host: baas.thethingscloud.com");client.println("Cache-Control: no-cache");client.println ("Postbode-token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klant.println();
GeefMeTijdstempel(); // het zal de. noemen
functie die de tijdstempelreactie van de server krijgt
Serial.println("tijdstempel ontvangen");
Serial.println (tijdstempel);Serial.println ("inside ThingsCloudPost");
Tekenreeks PostWaarde =
"{"device_id\": 61121695920, \"slave_id\": 2";
Postwaarde =
PostValue + ", \"dts\":" +tijdstempel;
Postwaarde =
PostValue +", \"data\":{"TEMP\":" + temp_farenheit +"}"+"}";Serial.println(PostValue);
/* maak een instantie van WiFiClientSecure */
WiFiClientSecure-client;Serial.println("Verbind met server via poort 443");
indien
(!client.connect(server, 443)){Serial.println("Verbinding mislukt!");
} anders {Serial.println("Verbonden met server!");
/* maak
verzoek */client.println("POST /devices/deviceData HTTP/1.1");client.println("Host: api.thingsai.io");//client.println ("Verbinding: sluiten");client.println ("Inhoudstype: applicatie/json");client.println("cache-control: no-cache");client.println("Autorisatie: Drager eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTk6");client.print ("Inhoudslengte: ");client.println(PostValue.length());klant.println();cliënt.println(PostValue);
//////////////////////////////////POST de gegevens op de
cloud is klaar en ontvang nu het antwoordformulier cloud server//////////////////
Serial.print( Wachten
voor antwoord );
terwijl
(!client.beschikbaar()){
vertraging (50);
//Serieel.print(".");
}
/* als gegevens zijn
beschikbaar, ontvang en print naar Terminal */
terwijl
(klant.beschikbaar()) {
char c =
klant.lezen();Serieel.schrijven(c);
}
/* als de
server verbroken, stop de client */
indien
(!client.verbonden()) {Serieel.println();Serial.println ("Server verbroken");
klant.stop();
}
}
Serial.println( ////////////////////// HET EINDE
///////////////////// );
vertraging (3000);
}
}
Stap 4: UITGANG:
Hier is de uitvoer van temperatuurwaarden die van de sensor zijn afgelezen.
Stap 5: GRAFIEKEN:
De grafische weergave van de waarden die worden afgelezen van de ingebouwde temperatuursensor.