Tabla de contenido:

LDR usando Thingsai Cloud: 13 pasos
LDR usando Thingsai Cloud: 13 pasos

Video: LDR usando Thingsai Cloud: 13 pasos

Video: LDR usando Thingsai Cloud: 13 pasos
Video: DAY 04 - Smart Street light using LDR and IR Sensor 2024, Mes de julio
Anonim
LDR con Thingsai Cloud
LDR con Thingsai Cloud

HEY … hoy vamos a aprender a medir la intensidad de la luz y publicar los valores en la plataforma en la nube THINGSAI IOT mediante el uso de ESP32.

Los requisitos para realizar este proyecto son

1. Placa de desarrollo ESP32 (he usado ESP32 DEVKIT V1)

2. Sensor LDR

3. Cables de puente

4. Cuenta en la PLATAFORMA THINGSAI IOT

Paso 1: Crear e iniciar sesión en la plataforma THINGSIO

Creación e inicio de sesión en la plataforma THINGSIO
Creación e inicio de sesión en la plataforma THINGSIO

Inicie sesión en la cuenta de THINGS AI. Si es nuevo, regístrese en la cuenta presionando el botón de registro y complete todas las credenciales. Se creará tu cuenta y desde entonces podrás trabajar en la plataforma en la nube y crear tu proyecto personalizado

Paso 2: Creación de un nuevo proyecto

Creando nuevo proyecto
Creando nuevo proyecto

Después de iniciar sesión en la cuenta, para crear un proyecto, simplemente haga clic en el nuevo proyecto y luego dé el nombre del proyecto.

Paso 3: creación de un nuevo dispositivo

Crear un dispositivo nuevo
Crear un dispositivo nuevo

Después de crear el proyecto, lo siguiente que debe hacer es crear un nuevo dispositivo. Ingrese el nombre del dispositivo e ingrese la ID del dispositivo, ya sea manualmente o generada por el sistema.

Paso 4: Definición de los parámetros del dispositivo

Definición de parámetro de dispositivo
Definición de parámetro de dispositivo

Dar el parámetro del dispositivo y luego seleccionar el tipo de parámetro

Paso 5: actualización del dispositivo

Actualizar el dispositivo
Actualizar el dispositivo

Seleccione el parámetro y luego actualice el dispositivo

Paso 6: codificación

Codificación
Codificación

De los códigos de muestra, seleccione el código de esp32, cópielo y luego péguelo en el IDE de arduino y realice los cambios necesarios de acuerdo con el requisito. He dado el código a continuación

#incluir #incluir

#incluir

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

int t; int outputpin = A0; // ds18b20

int sensorvalue;

//////////////////////////////////////// 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 * server = "api.thingsai.io"; // URL del servidor

marca de tiempo char [10];

WiFiMulti WiFiMulti;

// Usa la clase WiFiClient para crear conexiones TCP

Cliente WiFiClient;

/////////////////////////////////////// Función de CÁLCULO DE TIMESTAMP //////// /////////////////////////////// int GiveMeTimestamp () {tiempo de espera largo sin firmar = millis (); // Cliente WiFiClient;

while (cliente disponible () == 0)

{

if (millis () - tiempo de espera> 50000)

{

client.stop (); return 0;

}

}

while (cliente disponible ())

{

Línea de cadena = 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);

// Empezamos por conectarnos a una red WiFi

WiFiMulti.addAP ("wifi", "pswrd");

Serial.println ();

Serial.println ();

Serial.print ("Esperar WiFi …");

mientras (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);

}

bucle vacío ()

{

int analogValue = analogRead (salida);

{/////////////////////////////////////// ENVIAR LA CONSULTA Y RECIBIR LA RESPUESTA /// //////////////////////

sensorvalue = analogRead (A0); // leer el pin 0 de la entrada analógica

sensorvalue = sensorvalue / 100;

Serial.print (sensorvalue, DEC); // imprime el valor leído

Serial.print ("\ n"); // imprime un espacio entre los números

retraso (1000); // espera 100ms para la siguiente lectura

Serial.print ("conectando a"); 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");

if (! client.connect (time_server, { regreso; // * - * - * - * - * - * - * - * - * - *}

client.println ("GET / api / timestamp HTTP / 1.1"); // ¿Qué hace esta parte? No obtuve client.println ("Host: baas.thethingscloud.com");

client.println ("Cache-Control: no-cache");

client.println ("Ficha del cartero: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

cliente.println ();

GiveMeTimestamp (); // llamará a la 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 / ": 61121695844, \" id_esclavo / ": 2";

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

PostValue = PostValue + ", \" datos / ": {" INTENSIDAD / ":" + / sensorvalue + "}" + "}";

Serial.println (PostValue);

/ * crear una instancia del cliente WiFiClientSecure * / 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 HTTP * /

client.println ("POST / dispositivos / deviceData HTTP / 1.1");

client.println ("Host: api.thingsai.io"); //client.println("Connection: close "); cl

ient.println ("Tipo de contenido: aplicación / json");

client.println ("control de caché: sin caché");

client.println ("Autorización: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2JFTkX7") client.print ("Content-Length:");

client.println (PostValue.length ());

cliente.println ();

client.println (PostValue); //////////////////////////////////// LA PUBLICACIÓN de los datos en la nube está lista y ahora obtiene el formulario de respuesta en la nube. servidor//////////////////

Serial.print ("Esperando respuesta");

while (! client.available ()) {

retraso (50); //

Serial.print (".");

} / * si hay datos disponibles, recibirlos e imprimirlos en la terminal * /

while (cliente disponible ())

{

char c = cliente.read ();

Serial.write (c);

}

/ * si el servidor se desconectó, detenga el cliente * /

si (! client.connected ())

{

Serial.println ();

Serial.println ("Servidor desconectado");

client.stop ();

}

} Serial.println ("////////////////////// EL FIN ////////////////////// / ");

retraso (3000); }}

Paso 7: Selección de placa y puerto de comunicaciones

Selección de placa y puerto de comunicaciones
Selección de placa y puerto de comunicaciones

De las herramientas, seleccione la placa y luego seleccione el puerto com

Paso 8: Conexiones del circuito

Conexiones de circuito
Conexiones de circuito
Conexiones de circuito
Conexiones de circuito
Conexiones de circuito
Conexiones de circuito

La codificación se realiza y luego realiza las siguientes conexiones como se menciona a continuación

CONEXIONES:

GND de esp32 a GND del sensor LDR

3V3 0f esp32 al Vcc del LDR

VP de esp32 a la A0 de la LDR

Paso 9: compila y carga

Compilar y cargar
Compilar y cargar

compile y cargue el código en el esp32 y luego lea las lecturas del monitor serial. Eso mostraría un resultado como este

Paso 10: Monitor en serie

Monitor en serie
Monitor en serie

Los valores se obtienen en el monitor serial y luego se envían a la plataforma THINGSAI IOT Cloud.

Paso 11: lecturas

Lecturas
Lecturas

Esto muestra los valores obtenidos de la placa esp32.

Paso 12: Representación gráfica

Representación grafica
Representación grafica

Esta es la representación gráfica de los valores obtenidos. Ese es el final del tutorial. Espero que lo hayas entendido. Gracias

Recomendado: