Tabla de contenido:
- Paso 1: COMPONENTES
- Paso 2: CONEXIONES:
- Paso 3: CODIFICACIÓN:
- Paso 4: RESULTADO:
- Paso 5: Tutorial completo:
Video: Medición de proximidad: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
En este tutorial, voy a explicar cómo medir la proximidad de un dispositivo y publicar los valores en la plataforma en la nube Thingsai, io mediante el uso del sensor hall y la placa de desarrollo esp32.
Un sensor de efecto Hall es un dispositivo que se utiliza para medir la magnitud de un campo magnético. Su voltaje de salida es directamente proporcional a la fuerza del campo magnético que lo atraviesa. Los sensores de efecto Hall se utilizan para aplicaciones de detección de proximidad, posicionamiento, detección de velocidad y detección de corriente.
Paso 1: COMPONENTES
Componentes de hardware:
1. Sensor Hall
2. placa de desarrollo esp32
3. Cables de puente
Componentes de software:
1. IDE de Arduino
2. ThingsIO. AI
Paso 2: CONEXIONES:
Sensor de pasillo ---------------------- esp32
Fuera ------------------------------ vp
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
Paso 3: CODIFICACIÓN:
#incluir
#incluir
#incluir
int cuenta = 0, i, m, j, k;
medición int;
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);
// Empezamos por
conectarse a una red WiFi
WiFiMulti.addAP ("wifi_name", "Contraseña de wifi");
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
RECIBA LA RESPUESTA ///////////////////////
medida int
= 0;
medida =
hallRead ();Serial.print ("Medición del sensor Hall:");Serial.println (medición);
retraso (1000);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");
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á 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 / ": 61121696007, \" id_esclavo / ": 2";
PostValue =
PostValue + ", \" dts / ":" + marca de tiempo;
PostValue =
PostValue + ", \" datos / ": {" proximidad / ":" + medición + "}" + "}";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
/ devices / 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.kaY6OMj5cYlWNqC2PNTkXs9PKy5AG7a ");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 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 se desconectó, detenga el cliente * /
si
(! client.connected ()) {Serial.println ();Serial.println ("Servidor desconectado");client.stop ();
}
}
Serial.println ( ////////////////////// EL FIN
///////////////////// );
retraso (3000);
}}
Paso 4: RESULTADO:
Los valores que se leen del sensor se envían a la nube IOT con éxito y el gráfico se crea como proximidad frente a tiempo. Con esto se analiza el funcionamiento del sensor y se utiliza de acuerdo con las áreas de aplicación requeridas.
Paso 5: Tutorial completo:
Este es el proyecto completo para medir la proximidad de un dispositivo utilizando el sensor hall esp32 y la plataforma en la nube thingsai.io. Gracias
Recomendado:
Raspberry Pi - Tutorial Java del detector de proximidad digital infrarrojo TMD26721: 4 pasos
Raspberry Pi - TMD26721 Tutorial Java del detector de proximidad digital por infrarrojos: TMD26721 es un detector de proximidad digital por infrarrojos que proporciona un sistema completo de detección de proximidad y lógica de interfaz digital en un solo módulo de montaje en superficie de 8 pines. precisión. Un profesional
Visuino Cómo utilizar el sensor de proximidad inductivo: 7 pasos
Visuino Cómo usar el sensor de proximidad inductivo: en este tutorial usaremos un sensor de proximidad inductivo y un LED conectado a Arduino UNO y Visuino para detectar la proximidad del metal
Hacer un sensor de proximidad con Magicbit [Magicblocks]: 6 pasos
Crea un sensor de proximidad con Magicbit [Magicblocks]: este tutorial te enseñará a usar un sensor de proximidad con un Magicbit usando Magicblocks. Estamos utilizando magicbit como placa de desarrollo en este proyecto que se basa en ESP32. Por lo tanto, cualquier placa de desarrollo ESP32 se puede utilizar en este proyecto
Medición de proximidad a distancia con sensor de gestos APDS9960: 6 pasos
Medición de distancia de proximidad con sensor de gestos APDS9960: En este tutorial aprenderemos a medir la distancia utilizando un sensor de gestos APDS9960, arduino y Visuino ¡Mira el video
Air Piano con sensor de proximidad IR, altavoz y Arduino Uno (actualizado / parte 2): 6 pasos
Air Piano con sensor de proximidad IR, altavoz y Arduino Uno (actualizado / parte 2): ¿esta es una versión mejorada del proyecto anterior de air piano ?. Aquí estoy usando un altavoz JBL como salida. También he incluido un botón sensible al tacto para cambiar de modo según los requisitos. Por ejemplo: modo Hard Bass, modo Normal, High fr