Tabla de contenido:
- Paso 1: COMPONENTES:
- Paso 2: REPRESENTACIÓN DEL DIAGRAMA DE BLOQUES DE Esp32
- Paso 3: CODIFICACIÓN:
- Paso 4: SALIDA:
- Paso 5: GRÁFICOS:
- Paso 6:
Video: Medición de temperatura con la plataforma Esp32 y Thingsio.ai: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
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:
Hardware:
Placa de desarrollo 1.esp32
Software:
1. IDE de Arduino
2. Thingsio.ai
Paso 2: REPRESENTACIÓN DEL DIAGRAMA 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:
Aquí está la salida de los valores de temperatura leídos por el sensor.
Paso 5: GRÁFICOS:
La representación gráfica de los valores leídos del sensor de temperatura integrado.
Recomendado:
Medición de temperatura con XinaBox y un termistor: 8 pasos
Medición de temperatura usando XinaBox y un termistor: Mida la temperatura de un líquido usando una entrada analógica xChip de XinaBox y una sonda de termistor
Medición de temperatura con AD7416ARZ y Raspberry Pi: 4 pasos
Medición de temperatura usando AD7416ARZ y Raspberry Pi: AD7416ARZ es un sensor de temperatura de 10 bits con cuatro convertidores analógicos a digitales de un solo canal y un sensor de temperatura integrado incorporado. Se puede acceder al sensor de temperatura de las piezas a través de canales multiplexores. Esta temperatura de alta precisión
Plataforma base de IoT con RaspberryPi, WIZ850io: Controlador de dispositivo de plataforma: 5 pasos (con imágenes)
Plataforma base de IoT con RaspberryPi, WIZ850io: Controlador de dispositivo de plataforma: conozco la plataforma RaspberryPi para IoT. Recientemente, WIZ850io fue anunciado por WIZnet. Así que implementé una aplicación RaspberryPi mediante la modificación del SW de Ethernet porque puedo manejar un código fuente fácilmente. Puede probar el controlador de dispositivo de plataforma a través de RaspberryPi
Termómetro de cocina con sonda de temperatura ESP32 NTP con corrección Steinhart-Hart y alarma de temperatura: 7 pasos (con imágenes)
Termómetro de cocción con sonda de temperatura ESP32 NTP con corrección Steinhart-Hart y alarma de temperatura: Aún en camino para completar un " proyecto próximo ", " Termómetro de cocina con sonda de temperatura ESP32 NTP con corrección Steinhart-Hart y alarma de temperatura " es un Instructable que muestra cómo agrego una sonda de temperatura NTP, piezo b
Medición del contenido de humedad del suelo con Esp32 y la plataforma Thingsio.ai: 6 pasos
Medición del contenido de humedad del suelo usando la plataforma Esp32 y Thingsio.ai: En este tutorial voy a explicar sobre la lectura del contenido de humedad en el suelo usando esp32 y luego enviando los valores a la plataforma en la nube thingsio.ai IoT