Inhoudsopgave:

Temperatuurmeting met behulp van Esp32 en Thingsio.ai Platform - Ajarnpa
Temperatuurmeting met behulp van Esp32 en Thingsio.ai Platform - Ajarnpa

Video: Temperatuurmeting met behulp van Esp32 en Thingsio.ai Platform - Ajarnpa

Video: Temperatuurmeting met behulp van Esp32 en Thingsio.ai Platform - Ajarnpa
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, November
Anonim
Temperatuurmeting met behulp van Esp32 en Thingsio.ai Platform
Temperatuurmeting met behulp van Esp32 en Thingsio.ai Platform

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:

COMPONENTEN
COMPONENTEN

Hardware:

1.esp32 ontwikkelbord

Software:

1. Arduino IDE

2. Thingsio.ai

Stap 2: BLOKDIAGRAM VERTEGENWOORDIGING VAN Esp32

BLOKDIAGRAM VERTEGENWOORDIGING VAN Esp32
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:

UITGANG
UITGANG

Hier is de uitvoer van temperatuurwaarden die van de sensor zijn afgelezen.

Stap 5: GRAFIEKEN:

GRAFIEKEN
GRAFIEKEN
GRAFIEKEN
GRAFIEKEN

De grafische weergave van de waarden die worden afgelezen van de ingebouwde temperatuursensor.

Aanbevolen: