Tabla de contenido:

Medición de temperatura con la plataforma Esp32 y Thingsio.ai: 6 pasos
Medición de temperatura con la plataforma Esp32 y Thingsio.ai: 6 pasos

Video: Medición de temperatura con la plataforma Esp32 y Thingsio.ai: 6 pasos

Video: Medición de temperatura con la plataforma Esp32 y Thingsio.ai: 6 pasos
Video: Arduino IoT Cloud con ESP32, Relé (relay) y Sensor DHT22. Guía completa paso a paso desde cero 2024, Mes de julio
Anonim
Medición de temperatura utilizando la plataforma Esp32 y Thingsio.ai
Medición de temperatura utilizando la plataforma Esp32 y Thingsio.ai

En este tutorial, voy a explicar cómo medir la temperatura en los alrededores mediante el uso de un sensor de temperatura incorporado presente en la placa de desarrollo esp32. esp32 tiene muchos sensores incorporados como el sensor de pasillo utilizado como sensor de proximidad, sensor táctil, sensor de temperatura. En este tutorial vamos a discutir sobre el sensor de temperatura.

Paso 1: COMPONENTES:

COMPONENTES
COMPONENTES

Hardware:

Placa de desarrollo 1.esp32

Software:

1. IDE de Arduino

2. Thingsio.ai

Paso 2: REPRESENTACIÓN DEL DIAGRAMA DE BLOQUES DE Esp32

REPRESENTACIÓN EN ESQUEMA DE BLOQUES DE Esp32
REPRESENTACIÓN EN ESQUEMA DE BLOQUES DE Esp32

Paso 3: CODIFICACIÓN:

#incluir

#incluir

#incluir

#incluir

#incluir

#ifdef _cplusplus

extern "C" {

#terminara si

uint8_t temprature_sens_read ();

// uint8_t g_phyFuns;

#ifdef _cplusplus

}

#terminara si

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

int t, t1, t2, t3;

int outputpin = A0; // ds18b20

//////////////////////////////////////// TODAS LAS DECLARACIONES

para NUBE ////////////////////////////////

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

devapi2.thethingscloud.com

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

O / api / v2 / thingscloud2 / _table / data_ac

const char * time_server =

"baas.thethingscloud.com"; // esto es para convertir la marca de tiempo

const int httpPort = 80;

const int httpsPort = 443;

const char * servidor =

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

marca de tiempo char [10];

WiFiMulti WiFiMulti;

// Usa la clase WiFiClient para crear conexiones TCP

Cliente WiFiClient;

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

Función de CÁLCULO /////////////////////////////////////////

int GiveMeTimestamp ()

{

largo sin firmar

tiempo de espera = milis ();

// Cliente WiFiClient;

tiempo

(cliente disponible () == 0)

{

si (milis () -

tiempo de espera> 50000)

{

client.stop ();

return 0;

}

}

while (cliente disponible ())

{

Línea de cuerda =

client.readStringUntil ('\ r'); // indexOf () es una función para buscar smthng, devuelve -1 si no se encuentra

int pos =

line.indexOf ("\" marca de tiempo / ""); // busca "\" marca de tiempo / "" desde el principio de la respuesta obtenida y copia todos los datos después de eso, será tu marca de tiempo

si (pos> =

0)

{

int j = 0;para (j = 0; j <10; j ++)

{marca de tiempo [j] = línea [pos + 12 + j];

}

}

}

}

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

configuración vacía ()

{Serial.begin (115200);

retraso (10);

tzset ();

// Empezamos por

conectarse a una red WiFiWiFiMulti.addAP ("dlink_DWR-113", "madhukar66");

Serial.println ();

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

retraso (500);

}Serial.println ("");Serial.println ("WiFi conectado");Serial.println ("dirección IP:");Serial.println (WiFi.localIP ());

retraso (500);

}

uint8_t temp_farenheit;

float temp_celsius;

char strftime_buf [64];

time_t ahora = 0;

struct tm timeinfo;

char buf [256];

bucle vacío ()

{

// int analogValue =

analogRead (salida);

{

/////////////////////////////////////// ENVIAR LA CONSULTA Y

RECIBA LA RESPUESTA ///////////////////////

//

t1 = (valoranálogo / 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); //rotura;localtime_r (y ahora, & timeinfo);strftime (strftime_buf, sizeof (strftime_buf), "% c", & timeinfo);sprintf (buf, "inicio de escaneo% 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");

retraso (1000);

ahora ++;

Serial.print ( conectando

para );Serial.println (host); // definido al alza: - host = devapi2.thethingscloud.com o 139.59.26.117

///////////////////////////////////// SNIPPET DE CÓDIGO DE HORA DE HORA

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

Serial.println ("dentro de obtener marca de tiempo / n");

si

(! client.connect (time_server, {

regreso;

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

}client.println ("GET / api / timestamp HTTP / 1.1"); // ¿Qué hace esta parte? No entendíclient.println ("Anfitrión: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Ficha del cartero: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

cliente.println ();

GiveMeTimestamp (); // llamará al

función que obtendrá la respuesta de la marca de tiempo del servidor

Serial.println ("marca de tiempo recibida");

Serial.println (marca de tiempo);Serial.println ("dentro de ThingsCloudPost");

String PostValue =

"{" id_dispositivo / ": 61121695920, \" id_esclavo / ": 2";

PostValue =

PostValue + ", \" dts / ":" + marca de tiempo;

PostValue =

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

/ * crea una instancia de WiFiClientSecure * /

Cliente WiFiClientSecure;Serial.println ("Conectarse al servidor a través del puerto 443");

si

(! client.connect (servidor, 443)) {Serial.println ("¡Conexión fallida!");

} demás {Serial.println ("¡Conectado al servidor!");

/ * crear

solicitud */client.println ("POST / dispositivos / deviceData HTTP / 1.1");client.println ("Host: api.thingsai.io");//client.println("Connection: close ");client.println ("Tipo de contenido: aplicación / json");client.println ("control de caché: sin caché");client.println ("Autorización: Portador eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNAG7a2jWTk6")client.print ("Content-Length:");client.println (PostValue.length ());cliente.println ();client.println (PostValue);

//////////////////////////////////// PUBLICAR los datos en el

la nube está lista y ahora obtenga el formulario de respuesta del servidor en la nube ////////////////////

Serial.print ( Esperando

para la respuesta );

tiempo

(! client.available ()) {

retraso (50);

//Serial.print (".");

}

/ * si los datos son

disponible, luego reciba e imprima en la Terminal * /

tiempo

(cliente disponible ()) {

char c =

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

}

/* Si el

servidor desconectado, detenga el cliente * /

si

(! client.connected ()) {Serial.println ();Serial.println ("Servidor desconectado");

client.stop ();

}

}

Serial.println ( ////////////////////// EL FIN

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

retraso (3000);

}

}

Paso 4: SALIDA:

PRODUCCIÓN
PRODUCCIÓN

Aquí está la salida de los valores de temperatura leídos por el sensor.

Paso 5: GRÁFICOS:

GRÁFICOS
GRÁFICOS
GRÁFICOS
GRÁFICOS

La representación gráfica de los valores leídos del sensor de temperatura integrado.

Recomendado: