Tabla de contenido:

Detector de movimiento con la plataforma en la nube Thingsai.io Iot: 6 pasos
Detector de movimiento con la plataforma en la nube Thingsai.io Iot: 6 pasos

Video: Detector de movimiento con la plataforma en la nube Thingsai.io Iot: 6 pasos

Video: Detector de movimiento con la plataforma en la nube Thingsai.io Iot: 6 pasos
Video: Arduino IoT Cloud con ESP32, Relé (relay) y Sensor DHT22. Guía completa paso a paso desde cero 2024, Diciembre
Anonim
Detector de movimiento con la plataforma en la nube Thingsai.io Iot
Detector de movimiento con la plataforma en la nube Thingsai.io Iot

En este tutorial voy a explicar sobre la detección de movimiento mediante el uso de un sensor PIR y Esp32 junto con una plataforma en la nube IOT Thingai.io

Paso 1: componentes

Componentes
Componentes
Componentes
Componentes

COMPONENTES DE HARDWARE;

Placa de desarrollo 1.esp32

2. Sensor PIR

3. Cables de puente

SOFTWARE:

1. IDE de Arduino

2. Cuenta Thingsai.io

Paso 2: CONEXIONES

CONEXIONES
CONEXIONES

Las conexiones son bastante simples.

PINES PIR ------------ PINES ESP32

VCC ------------------- 3V3 en esp32

GND ------------------ GND en esp32

FUERA ------------------- D22 en esp32

Paso 3: CODIFICACIÓN

Pegue este código en su Arduino IDE con alguna actualización, su sensor de movimiento dará la salida sin problemas.

#incluir

#incluir

#incluir

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

int t, t1, t2, t3;

int pin = 22;

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

pinMode (pin, ENTRADA);

// Empezamos por conectarnos a una red WiFi

WiFiMulti.addAP ("wifi_name", "Wifi_password");

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

}

bucle vacío ()

{

int analogValue = analogRead (salida);

{

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

{

bool isDetected = digitalRead (pin);

if (isDetected) {

Serial.println ("Presencia detectada");

}

retraso (500);

}

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 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á 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 / ": 61121695839, \" id_esclavo / ": 2";

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

PostValue = PostValue + ", \" datos / ": {" PIR / ":" + pin + "}" + "}";

Serial.println (PostValue);

/ * crea una instancia de WiFiClientSecure * /

Cliente WiFiClientSecure;

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

if (! 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 ");

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

//////////////////////////////////// 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 (client.available ()) {

char c = cliente.read ();

Serial.write (c);

}

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

if (! client.connected ()) {

Serial.println ();

Serial.println ("Servidor desconectado"); javascript:;

client.stop ();

}

}

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

retraso (3000);

}

}

Paso 4: SALIDA

PRODUCCIÓN
PRODUCCIÓN

Esta es la representación del gráfico de barras de los valores leídos del sensor en la plataforma en la nube thingsai, io,

Paso 5: Gráfico

Grafico
Grafico

Esta es la representación gráfica de los valores del sensor. Del gráfico anterior podemos analizar la aplicación del sensor. Gracias

Recomendado: