Inhaltsverzeichnis:

Temperaturmessung mit Esp32 und Thingsio.ai-Plattform - Gunook
Temperaturmessung mit Esp32 und Thingsio.ai-Plattform - Gunook

Video: Temperaturmessung mit Esp32 und Thingsio.ai-Plattform - Gunook

Video: Temperaturmessung mit Esp32 und Thingsio.ai-Plattform - Gunook
Video: ESP32 AI assistant 2024, Juli
Anonim
Temperaturmessung mit Esp32 und der Thingsio.ai-Plattform
Temperaturmessung mit Esp32 und der Thingsio.ai-Plattform

In diesem Tutorial werde ich erklären, wie man die Temperatur in der Umgebung misst, indem man den eingebauten Temperatursensor verwendet, der in der ESP32-Entwicklungsplatine vorhanden ist. esp32 hat viele eingebaute Sensoren wie den Hallsensor, der als Näherungssensor, Berührungssensor und Temperatursensor verwendet wird. In diesem Tutorial werden wir über den Temperatursensor diskutieren.

Schritt 1: KOMPONENTEN:

KOMPONENTEN
KOMPONENTEN

Hardware:

1.esp32-Entwicklungsboard

Software:

1. Arduino-IDE

2. Thingsio.ai

Schritt 2: BLOCKDIAGRAMM-DARSTELLUNG VON Esp32

BLOCKDIAGRAMM-DARSTELLUNG VON Esp32
BLOCKDIAGRAMM-DARSTELLUNG VON Esp32

Schritt 3: CODIERUNG:

#enthalten

#enthalten

#enthalten

#enthalten

#enthalten

#ifdef _cplusplus

extern "C" {

#endif

uint8_t temprature_sens_read();

//uint8_t g_phyFuns;

#ifdef _cplusplus

}

#endif

int count = 0, i, m, j, k;

int t, t1, t2, t3;

int Ausgabepin = A0; // ds18b20

/////////////////////////////////////// ALLE ERKLÄRUNGEN

für CLOUD //////////////////////////////

const char* host = "api.thingsai.io"; // ODER-Host =

devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; //

ODER /api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; // dies ist zum Konvertieren des Zeitstempels

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

"api.thingsai.io"; // Server-URL

char-Zeitstempel[10];

WiFiMulti WiFiMulti;

// Verwenden Sie die WiFiClient-Klasse, um TCP-Verbindungen zu erstellen

WiFiClient-Client;

////////////////////////////////////// TIMESTAMP

BERECHNUNGS-Funktion //////////////////////////////////////

int GiveMeTimestamp()

{

lange nicht signiert

Zeitüberschreitung = Millis();

// WiFiClient-Client;

während

(client.verfügbar() == 0)

{

if (millis() -

Zeitüberschreitung > 50000)

{

client.stop();

0 zurückgeben;

}

}

while (client.verfügbar())

{

Schnurlinie =

client.readStringUntil('\r'); //indexOf() ist eine Funktion, um nach smthng zu suchen, es gibt -1 zurück, wenn es nicht gefunden wird

int pos =

line.indexOf("\"Zeitstempel\""); // suche nach "\"timestamp\"" vom Anfang der erhaltenen Antwort und kopiere alle Daten danach, es wird dein Zeitstempel sein

wenn (pos >=

0)

{

intj = 0;für(j=0;j<10;j++)

{Zeitstempel[j] = Zeile[pos + 12 + j];

}

}

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////

Void-Setup ()

{Serial.begin(115200);

Verzögerung(10);

tzset();

// Wir beginnen mit

Verbindung mit einem WLAN-NetzwerkWiFiMulti.addAP("dlink_DWR-113", "madhukar66");

Serial.println();

Serial.println();Serial.print("Warten Sie auf WLAN…");while(WiFiMulti.run() != WL_CONNECTED) {Serial.print(".");

Verzögerung (500);

}Serial.println("");Serial.println ("WiFi verbunden");Serial.println("IP-Adresse:");Serial.println (WiFi.localIP());

Verzögerung (500);

}

uint8_t temp_farenheit;

float temp_celsius;

char strftime_buf[64];

time_t jetzt = 0;

struct tm timeinfo;

char-buf[256];

Leere Schleife ()

{

// int analogValue =

analogRead (Ausgangspin);

{

////////////////////////////////////// ANFRAGE SENDEN UND

ANTWORT ERHALTEN ///////////////////////

//

t1=(analogValue/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); //brechen;localtime_r(&jetzt, &timeinfo);strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);sprintf(buf, "Scanstart %02d:%02d:%02d ", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

Seriendruck

(buf);

temp_farenheit=

tempratur_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");

Verzögerung (1000);

jetzt++;

Serial.print( verbinden

zu );Serial.println (Host); // oben definiert: - host = devapi2.thethingscloud.com oder 139.59.26.117

//////////////////////////////////// TIMESTAMP CODE SNIPPET

/////////////////////////

Serial.println("innerhalb Zeitstempel abrufen\n");

wenn

(!client.connect(Zeitserver, {

Rückkehr;

//*-*-*-*-*-*-*-*-*-*

}client.println("GET /api/timestamp HTTP/1.1"); // Was macht dieser Teil, ich habe es nicht verstanden?client.println("Host: baas.thethingscloud.com");client.println("Cache-Steuerung: kein Cache");client.println("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println();

GiveMeTimestamp(); //es ruft die

Funktion, die die Zeitstempelantwort vom Server erhält

Serial.println ("Zeitstempel erhalten");

Serial.println (Zeitstempel);Serial.println ("innerhalb von ThingsCloudPost");

String PostValue =

"{"device_id\": 61121695920, \"slave_id\": 2";

PostValue =

PostValue + ", \"dts\":" +Zeitstempel;

PostValue =

PostValue +", \"data\":{"TEMP\":" + temp_farenheit +"}"+"}";Serial.println (PostValue);

/* eine Instanz von WiFiClientSecure erstellen */

WiFiClientSecure-Client;Serial.println("Verbindung zum Server über Port 443 herstellen");

wenn

(!client.connect(server, 443)){Serial.println ("Verbindung fehlgeschlagen!");

} anders {Serial.println("Mit Server verbunden!");

/* HTTP erstellen

Anfrage */client.println("POST /devices/deviceData HTTP/1.1");client.println("Host: api.thingsai.io");//client.println("Verbindung: schließen");client.println("Inhaltstyp: Anwendung/json");client.println("Cache-Steuerung: kein Cache");client.println("Berechtigung: Inhaber eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTykXs9ajP);client.print("Inhaltslänge: ");client.println(PostValue.length());client.println();client.println (PostWert);

//////////////////////////////////POSTEN die Daten auf die

cloud ist fertig und erhalte jetzt das Antwortformular cloud server //////////////////

Serial.print( Warten

für Antwort );

während

(!client.verfügbar()){

Verzögerung (50);

//Serial.print(".");

}

/* wenn Daten. sind

verfügbar, dann empfangen und an Terminal drucken */

während

(client.verfügbar()) {

Zeichen c =

client.read();Serial.write (c);

}

/* wenn die

Server getrennt, Client stoppen */

wenn

(!client.connected()) {Serial.println();Serial.println("Server getrennt");

client.stop();

}

}

Serial.println( ////////////////////// DAS ENDE

///////////////////// );

Verzögerung (3000);

}

}

Schritt 4: AUSGABE:

AUSGANG
AUSGANG

Hier ist die Ausgabe der vom Sensor gelesenen Temperaturwerte.

Schritt 5: GRAFIK:

GRAFIK
GRAFIK
GRAFIK
GRAFIK

Die grafische Darstellung der vom Onboard-Temperatursensor gelesenen Werte.

Empfohlen: