Sommario:

Misurazione della temperatura utilizzando la piattaforma Esp32 e Thingsio.ai: 6 passaggi
Misurazione della temperatura utilizzando la piattaforma Esp32 e Thingsio.ai: 6 passaggi

Video: Misurazione della temperatura utilizzando la piattaforma Esp32 e Thingsio.ai: 6 passaggi

Video: Misurazione della temperatura utilizzando la piattaforma Esp32 e Thingsio.ai: 6 passaggi
Video: Lettura della temperatura con Arduino ESPertino (ESP32 e MCP9700) 2024, Dicembre
Anonim
Misurazione della temperatura utilizzando la piattaforma Esp32 e Thingsio.ai
Misurazione della temperatura utilizzando la piattaforma Esp32 e Thingsio.ai

In questo tutorial spiegherò come misurare la temperatura nell'ambiente circostante utilizzando il sensore di temperatura integrato presente nella scheda di sviluppo esp32. esp32 ha molti sensori integrati come il sensore hall utilizzato come sensore di prossimità, sensore tattile, sensore di temperatura. In questo tutorial parleremo del sensore di temperatura.

Fase 1: COMPONENTI:

COMPONENTI
COMPONENTI

Hardware:

Scheda di sviluppo 1.esp32

Software:

1. Arduino IDE

2. Thingsio.ai

Fase 2: RAPPRESENTAZIONE SCHEMA A BLOCCHI DI Esp32

RAPPRESENTAZIONE SCHEMA A BLOCCHI DI Esp32
RAPPRESENTAZIONE SCHEMA A BLOCCHI DI Esp32

Fase 3: CODIFICA:

#includere

#includere

#includere

#includere

#includere

#ifdef _cplusplus

esterno "C" {

#finisci se

uint8_t temprature_sens_read();

//uint8_t g_phyFuns;

#ifdef _cplusplus

}

#finisci se

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

int t, t1, t2, t3;

int outputpin= A0;//ds18b20

//////////////////////////////////////// TUTTE LE DICHIARAZIONI

per CLOUD //////////////////////////////

const char* host = "api.thingsai.io"; // OPPURE host =

devapi2.thethingscloud.com

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

OPPURE /api/v2/thingscloud2/_table/data_ac

const char* time_server =

"baas.thethingscloud.com"; //questo serve per convertire il timestamp

const int httpPort = 80;

const int httpsPort = 443;

const char* server =

"api.thingsai.io"; // URL del server

char timestamp[10];

WiFi Multi WiFi Multi;

// Usa la classe WiFiClient per creare connessioni TCP

client WiFi Client;

////////////////////////////////////// ORARIO

Funzione CALCOLO//////////////////////////////////////

int GiveMeTimestamp()

{

unsigned lungo

timeout = millis();

//client WiFiClient;

mentre

(cliente.disponibile() == 0)

{

if (milli() -

timeout > 50000)

{

cliente.stop();

restituisce 0;

}

}

mentre (client.disponibile())

{

Linea di stringa =

client.readStringUntil('\r'); //indexOf() è una funzione per cercare smthng, restituisce -1 se non trovata

int pos =

line.indexOf("\"timestamp\""); //cerca "\"timestamp\"" dall'inizio della risposta ottenuta e copia tutti i dati dopo, sarà il tuo timestamp

if (pos >=

0)

{

intj = 0;for(j=0;j<10;j++)

{timestamp[j] = riga[pos + 12 + j];

}

}

}

}

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

configurazione nulla()

{Serial.begin(115200);

ritardo(10);

tzset();

// Iniziamo da

connessione a una rete WiFiWiFiMulti.addAP("dlink_DWR-113", "madhukar66");

Serial.println();

Serial.println();Serial.print("Attendi WiFi… ");while(WiFiMulti.run() != WL_CONNECTED) {Serial.print(".");

ritardo (500);

}Serial.println("");Serial.println("WiFi connesso");Serial.println("Indirizzo IP: ");Serial.println(WiFi.localIP());

ritardo (500);

}

uint8_t temp_farenheit;

float temp_celsius;

char strftime_buf[64];

ora_t ora = 0;

struct tm timeinfo;

char buf[256];

ciclo vuoto()

{

// int AnalogValue =

analogRead(pin di uscita);

{

/////////////////////////////////////// INVIA LA DOMANDA E

RICEVERE LA RISPOSTA///////////////////////

//

t1=(ValoreAnalogico/1024.0) *5000;

//

Serial.print("temp: ");

// Serial.println(t1);

/

/t2=(t1/10);

//

Serial.print("cel: ");

//

Serial.println(t2);

/

/t3=((t2 *

9)/5 + 32);

//

Serial.print("fhrn: ");

//

Serial.println(t3); //rottura;localtime_r(&now, &timeinfo);strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo);sprintf(buf, "avvio scansione %02d:%02d:%02d ", timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);

Stampa.seriale

(bu);

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

ritardo(1000);

ora++;

Serial.print( connessione

a );Serial.println(host); // rialzo definito: - host = devapi2.thethingscloud.com o 139.59.26.117

//////////////////////////////////// SNIPPET DI CODICE TIMESTAMP

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

Serial.println("inside ottieni timestamp\n");

Se

(!client.connect(time_server, {

Restituzione;

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

}client.println("OTTIENI /api/timestamp HTTP/1.1"); //Cosa sta facendo questa parte, non l'ho capitoclient.println("Host: baas.thethingscloud.com");client.println("Cache-Control: no-cache");client.println("Token postino: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println();

GiveMeTimestamp(); // chiamerà il

funzione che otterrà la risposta del timestamp dal server

Serial.println("timestamp ricevuto");

Serial.println(timestamp);Serial.println("dentro ThingsCloudPost");

Stringa PostValue =

"{"id_dispositivo\": 61121695920, \"id_slave\": 2";

PostValue =

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

PostValue =

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

/* crea un'istanza di WiFiClientSecure */

client WiFiClientSecure;Serial.println("Connetti al server tramite la porta 443");

Se

(!client.connect(server, 443)){Serial.println("Connessione fallita!");

} altro {Serial.println("Connesso al server!");

/* crea

richiesta */client.println("POST /devices/deviceData HTTP/1.1");client.println("Host: api.thingsai.io");//client.println("Connessione: chiudi");client.println("Tipo di contenuto: application/json");client.println("cache-control: no-cache");client.println("Autorizzazione: Portatore eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlkXNqC2PNTy);client.print("Lunghezza contenuto: ");client.println(PostValue.length());client.println();client.println(PostValue);

/////////////////////////////////INSERIRE i dati sul

cloud è fatto e ora ottieni il modulo di risposta server cloud//////////////////

Serial.print( In attesa

per risposta );

mentre

(!client.disponibile()){

ritardo(50);

//Serial.print(".");

}

/* se i dati sono

disponibile quindi ricevi e stampa su Terminale */

mentre

(cliente.disponibile()) {

carattere c =

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

}

/* se la

server disconnesso, arresta il client */

Se

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

cliente.stop();

}

}

Serial.println( ////////////////////// FINE

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

ritardo (3000);

}

}

Fase 4: USCITA:

PRODUZIONE
PRODUZIONE

Ecco l'output dei valori di temperatura letti dal sensore.

Fase 5: GRAFICI:

GRAFICI
GRAFICI
GRAFICI
GRAFICI

La rappresentazione grafica dei valori letti dal sensore di temperatura di bordo.

Consigliato: