Tabla de contenido:
- Paso 1: componentes
- Paso 2: CONEXIONES
- Paso 3: CODIFICACIÓN
- Paso 4: SALIDA
- Paso 5: Gráfico
- Paso 6: aquí hay un video de explicación breve
Video: Detector de movimiento con la plataforma en la nube Thingsai.io Iot: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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 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
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
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
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:
Automatización del hogar controlada por Internet / nube con Esp8266 (aREST, MQTT, IoT): 7 pasos (con imágenes)
Automatización del hogar controlada por Internet / nube usando Esp8266 (aREST, MQTT, IoT): ¡TODOS los créditos a http://iest.io/ por el servicio en la nube! ¡IoT es el tema más discutido en el mundo ahora mismo! Los servidores y servicios en la nube que hacen esto posible es el punto de atracción del mundo de hoy … ELIMINAR LA BARRERA DE DISTANCIA fue y es el
Conceptos básicos de IoT: Conexión de su IoT a la nube con Mongoose OS: 5 pasos
Conceptos básicos de IoT: conexión de su IoT a la nube mediante el sistema operativo Mongoose: si es una persona a la que le gustan los retoques y la electrónica, la mayoría de las veces se encontrará con el término Internet de las cosas, generalmente abreviado como IoT, y eso se refiere a un conjunto de dispositivos que pueden conectarse a Internet. Siendo una persona así
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
Detector de humo IOT: actualice el detector de humo existente con IOT: 6 pasos (con imágenes)
Detector de humo IOT: Actualización del detector de humo existente con IOT: Lista de contribuyentes, Inventor: Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Supervisor: Dr. Chia Kim Seng Departamento de Ingeniería Mecatrónica y Robótica, Facultad de Ingeniería Eléctrica y Electrónica, Universiti Tun Hussein Onn Malaysia.Distribut
Detector de movimiento con notificaciones Blynk (WeMos D1 Mini + HC-SR04): 4 pasos (con imágenes)
Detector de movimiento con notificaciones Blynk (WeMos D1 Mini + HC-SR04): VOTE por este proyecto en el Concurso inalámbrico. ¡Gracias! Actualización n. ° 2: pocos ajustes (versión 2.2), puede configurar su sensor (rango y nombre) directamente en la definición. Además, a veces sucedió que el sensor leyó valores incorrectos y envió una notificación