Tabla de contenido:

Sensor de presencia: 12 pasos
Sensor de presencia: 12 pasos

Video: Sensor de presencia: 12 pasos

Video: Sensor de presencia: 12 pasos
Video: CÓMO INSTALAR 3 TIPOS DIFERENTES DE DETECTORES DE MOVIMIENTO PIR 2024, Noviembre
Anonim
Sensor de presencia
Sensor de presencia

Los wearables suelen ser dispositivos habilitados para BLE. Es común que publiquen periódicamente algunos datos a lo largo de su dirección MAC. Usamos un ESP para escanear estos datos y activar un evento a través de Internet cuando encuentra una dirección MAC específica. Esta implementación particular es para un solo usuario en un enchufe inteligente conectado a una lámpara. Pero también se puede usar con un conjunto de dispositivos registrados con cualquier tipo de dispositivos habilitados para IOT.

Suministros

  1. ESP32
  2. (opcional) TECKIN WiFi Wall Plug S10
  3. Dispositivo habilitado para BLE de cualquier tipo

Paso 1: Defina su escenario

Defina su escenario
Defina su escenario

Para el disparador, puede usar la mayoría de los dispositivos portátiles modernos. Puede ser un Apple Watch, una banda mi fit, un teléfono o incluso tu propio dispositivo portátil de bricolaje basado en un ESP32.

Probablemente uno de los pasos más importantes. Tienes que pensar con anticipación en 3 cosas:

1. Qué wearable o dispositivo va a ser el disparador del sensor de proximidad.

2. Qué va a activar el sensor (esto se hace a través de IFTTT).

3. Cuándo se activará el sensor

Para este ejemplo, usaré mi Apple Watch para activar un enchufe inteligente para encender una lámpara cuando me siente en mi escritorio.

En este tutorial veremos un enchufe inteligente de TECKIN. Lo puedes encontrar en amazon a buen precio. También es compatible con Alexa y Google Home. ¡Gran valor!

Paso 2: (Introducción) Establecer el activador: varios usuarios

Si desea configurar para que funcione cualquier persona con un dispositivo habilitado para BLE lo suficientemente cerca de su sensor, omita el siguiente paso. Esto es bastante útil, es la configuración que uso personalmente. Tenga en cuenta que este sensor se puede piratear o explotar fácilmente para disparar, por lo que no confiaría mucho en un puesto de seguridad; solo por una práctica (es decir, no quiero que mi PC lo active, ya que siempre estará al lado del sensor).

Paso 3: (Introducción) Establecer el activador - Usuarios limitados

Este paso varía mucho en su configuración. Para limitar qué dispositivos pueden activar el sensor, tiene muchas rutas para limitar:

- Dirección MAC BLE (equivalente a la dirección IP en una red wifi. La razón por la que no garantiza la seguridad ya que no es la dirección MAC real del módulo. En dispositivos iOS cambia cada vez que reinicia el bluetooth, no es tan divertido)

- Código de fabricante (mejor opción, pero no hay forma de limitar dispositivos específicos del mismo fabricante / modelo)

- Nombre, servicio UIDD (raro pero la mejor opción, en su mayoría wearables de bricolaje o tal vez una aplicación de Android)

Algunas notas:

1. Si es un dispositivo iOS:

- Tiene algunos pros y contras importantes. Pro, transmiten el nivel de potencia al que se encuentran los datos publicitarios. Eso es útil en la etapa de calibración, encontrará que usar un Apple Watch es útil ya que transmite a 24db, los iPhones y la mayoría de los dispositivos transmiten a 12db.

CON, tendrá que encontrar soluciones alternativas. La dirección MAC anunciada (el método principal de identificación) cambia cada vez que se reinicia la señal de bluetooth, lo que significa que tendrá que cargar el código cada vez … no es divertido. Puede utilizar los datos del fabricante, que pueden variar de un modelo a otro. Esto significa que puede limitar para que detecte "todos los iPhone 8".

2. Si es un dispositivo Android:

- Yo personalmente no tengo un dispositivo Android. Pero probablemente hay muchas aplicaciones que pueden corregir la dirección MAC o incluso agregar un nombre personalizado (si esa es la forma en que desea hacerlo). En los dispositivos iOS hay una aplicación "nrf connect" que puede hacer esto. Pero no es persistente, es decir, si bloquea la pantalla o cambia de aplicación … la configuración se apaga en un par de segundos.

3. Otro ESP32. (su mejor apuesta)

- Un código simple como este se puede implementar en un dispositivo como este; una banda inteligente con alimentación esp32. El código es en realidad un ejemplo de la biblioteca ESP BLE BLE_IBeacon.ino. No lo he probado mucho ya que mi banda inteligente está en envío, probablemente publique actualizaciones pronto.

Paso 4: (Configuración) - IFTTT

(Configuración) - IFTTT
(Configuración) - IFTTT

Bien, en esta etapa probablemente debería tomar todas las decisiones de su flujo de trabajo. Tiene su dispositivo de activación, tiene un lugar para colocar el ESP con una conexión inalámbrica a Internet y tiene una acción en mente que IFTTT puede automatizar.

IFTTT es poderoso; ya sea para enviar una simple notificación a su dispositivo, desea que se envíe un tweet o encienda una bombilla con un enchufe inteligente. En este tutorial implementaremos el último con enchufes inteligentes TECKIN compatibles con IFTTT. De cualquier manera, descargue la aplicación IFTTT o vaya a la web IFTTT.com y cree una cuenta.

¡Eso es por ahora!

Si solo desea enviar una notificación o algo más que el enchufe Smart Life, puede omitir el siguiente paso.

Paso 5: (Configuración) Dispositivo IOT * opcional *

Descargue la aplicación "Smart Life" de PlayStore (Android) o AppStore (iOS). Las instrucciones son bastante sencillas, aunque el proceso es un poco complicado. Descubrí que en la etapa de escaneo (cuando el botón azul parpadeaba) se detuvo en algún momento, luego lo presioné manualmente para encenderlo y apagarlo un par de veces. Eso me ayudó. De todos modos; La configuración de este enchufe no es nada diferente con nuestra aplicación, por lo que si ya posee uno y lo tiene conectado a su aplicación, debería estar listo para comenzar.

TENGA EN CUENTA: debe poder encender y apagar el interruptor desde la aplicación antes de continuar con este paso. Eso significará que ha configurado correctamente el enchufe inteligente.

La aplicación IFTTT debería sincronizarse con la aplicación "Smart Life" sin problemas, probablemente solicitando una autenticación mientras se crea un evento en el siguiente paso.

Paso 6: (Configuración) IFTTT Webhook Api * Usuarios experimentados *

(Configuración) IFTTT Webhook Api * Usuarios experimentados *
(Configuración) IFTTT Webhook Api * Usuarios experimentados *

Si no ha utilizado antes la aplicación IFTTT y no se siente cómodo con algunos términos técnicos, omita este paso para la Guía detallada (con fotos) en el siguiente paso.

1. Cree un nuevo evento.

2. Configure "this" para que sea una API de webhook. Anote el nombre que le asignó al evento.

3. Establezca "eso" en su comportamiento deseado. Para el enchufe inteligente, busque vida inteligente y seleccione 'encender'.

4. Seleccione su enchufe inteligente y presione finalizar.

5. En la pantalla de inicio, busque la tarjeta 'webhooks'. Después de presionarlo, presione "obtener más" en la parte inferior.

6. Documentación de prensa. Esto le mostrará su clave de API junto con un constructor y probador de URL.

7. Utilice el creador de URL con el nombre que escribió en el número 2. Copia eso y escribe.

8. Repita si desea que se active un comportamiento cuando el sensor de presencia ya no esté activo. En nuestro caso, repita el # 3 pero seleccione 'apagar'. Además, en el n. ° 2, el nombre también debería ser diferente esta vez.

Si ha terminado, omita el siguiente paso.

Paso 7: (Configuración) IFTTT Webhook Api * para principiantes con fotos *

(Configuración) IFTTT Webhook Api * para principiantes con fotos *
(Configuración) IFTTT Webhook Api * para principiantes con fotos *
(Configuración) IFTTT Webhook Api * Para principiantes con fotos *
(Configuración) IFTTT Webhook Api * Para principiantes con fotos *
(Configuración) IFTTT Webhook Api * para principiantes con fotos *
(Configuración) IFTTT Webhook Api * para principiantes con fotos *

Guía detallada * la guía de fotos debe ser similar con Android y en la web *

IFTTT es un flujo de trabajo simple, si "esto sucede", entonces "eso sucede". Debes crear uno nuevo, 1. en la aplicación, presione "obtener más" y se mostrará una lista.

2. Justo debajo de la barra de búsqueda dice "crea tus propios subprogramas desde cero", presiona el signo más.

3. Presione "este" signo más

En nuestro caso, "esto" será una llamada de API a través de Internet. Una llamada a la API es una consulta a una URL, como cuando escribes una búsqueda en Google y la URL es google.com/ (una cadena larga de caracteres). Para crear la API: (después de presionar "esto")

4. Busque "webhooks"

5. Seleccione la única opción

6. Nombre su evento (en este ejemplo usaremos "Sit"). Anote este nombre, muy importante.

7. Presione Crear disparador

¡OK! ahora estamos más cerca de la parte de "eso". Para este tutorial configuraremos "eso" para encender el enchufe inteligente. Pero puede elegir cualquier cosa de IFTTT. Una buena forma de probar la configuración es seleccionar "notificaciones" que enviarán una notificación a su teléfono cada vez que se active el sensor (o se llame a la API, incluso desde un navegador web: ¡útil para probar!)

8. Presione "ese" signo más

9. Busque "Smart Life" (o "notificaciones")

10. Presione 'encender' (deberá repetir estos pasos para crear otro evento y apagarlo cuando se vaya)

11. Si tiene ambas aplicaciones y el enchufe correctamente configurados, debería ver su enchufe en el menú desplegable 'qué dispositivo / grupo'.

12. Seleccione Crear acción y luego finalice.

Ahora debería ver que el evento está conectado. Ahora necesitamos obtener la URL de la API. Para esto:

13. Vaya a la pantalla de inicio de IFTTT

14. Busque la tarjeta Webhooks

15. Seleccione "Obtener más".

16. Toque el botón Documentación. Debería ver una página web con su clave.

17. En los marcadores de posición "{evento}", ingrese el nombre de su evento (recuerde el punto 6)

18. Ve a la parte inferior de la página y toca "Probar".

Lo que probablemente debería ver es un banner verde "El evento ha sido activado" y debería ver si funcionó o no. En nuestro caso, el enchufe debería encenderse. O debería ver una notificación si decidió seguir ese camino. Puede tomar un poco de tiempo, pero no más de un minuto para ver si lo logró. Recuerde que probablemente distinga entre mayúsculas y minúsculas.

19. Finalmente. Copie la URL donde reemplazó el nombre de su evento (en 17) y guárdelo en un lugar seguro. Lo necesitará pronto.

20. Repita 1-12. A las 6 usaremos "Stand" esta vez. A las 10, seleccione "apagar" en su lugar.

21. Repita 13-18 si lo desea, pero puede salirse con la URL que copió en 19, pero ahora cambie el lugar donde escribió "Siéntese" y reemplácelo con "Stand". Puede probar esto en un navegador web. Debería decir '¡Felicitaciones! Has despedido el evento Stand '. Entonces el enchufe debería haberse apagado.

Paso 8: (Código) Programación del ESP32

(Código) Programación del ESP32
(Código) Programación del ESP32

Puede omitir este paso si se siente cómodo cargando bocetos desde el IDE de Arduino a su placa ESP32. Solo recuerde establecer una partición de 2 MB para la aplicación al menos, ya que el boceto pesa un poco más del límite habitual de 1,2 MB.

Hay muchos tutoriales geniales, estos son algunos de los que recomiendo:

circuitdigest.com/microcontroller-projects…

Pero aún así, para que no esté tan perdido, desglosaré algunos puntos clave importantes.

- ESP32 no es una placa Arduino, pero aún puede ser programada por el IDE de Arduino. Con código Arduino simple. Sin embargo, aún deberá configurar el IDE para que funcione con el ESP32.

- Deberá instalar algunas bibliotecas a través del 'Administrador de tableros adicionales' en las preferencias. Esta es la URL que debe pegar:

- (opcional, puede ayudar) En Herramientas-> Administrar bibliotecas… -> (buscar la biblioteca esp BLE)

- en Herramientas, ahora debería tener una larga lista de dispositivos ESP, recomiendo el módulo de desarrollo ESP32

- (IMPORTANTE) Seleccione (no Ota 2mb app / 2mb spifs) en el administrador de particiones. Este paso es importante ya que la aplicación se vuelve bastante pesada como producto del uso tanto de conexiones wifi / http como de un escáner BLE.

Si hizo todo bien, debería poder programar el ESP32. Ahora, el proceso de hacerlo es similar al arduino en algunas placas. Conéctelo, seleccione la placa correspondiente, el puerto USB y listo. Pero, en muchos otros casos, tendrá que continuar con

Paso 9: (Código) Cargue el código al ESP32

(Código) Cargue el código al ESP32
(Código) Cargue el código al ESP32

Ok, si está aquí, eso significa que ha subido con éxito un boceto a la placa ESP32, preferiblemente el boceto blink.ino.

Ahora, aquí está el código principal adjunto, también puede encontrarlo en el repositorio de GitHub. Tienes que reemplazar lo siguiente:

SSID: su nombre de wifi

PSK - Tu contraseña wifi

sit: la URL con "Sit" de la API de IFTTT que escribiste anteriormente

stand: la URL con "Stand" de la API de IFTTT que escribió anteriormente

Ahora acerque su dispositivo de activación al tablero y luego cargue el código. Luego abra el Monitor serial (baudios 115200) después de cargar con éxito el código.

Si planea usar esto con cualquier tipo de dispositivo habilitado para BLE, omita el siguiente paso.

NOTA: si recibe mensajes de error de memoria, es porque la configuración predeterminada solo deja 1 mB de memoria (de los 4 mB presentes) para el código sin procesar de ESP. Deja una porción para un par de cosas como una opción para programar por aire. Normalmente hago lo siguiente:

- en Herramientas, ahora debería tener una larga lista de dispositivos ESP, recomiendo el módulo de desarrollo ESP32: seleccione 'no Ota 2mb app / 2mb spifs' en el administrador de particiones.

Esto me da el doble de espacio de memoria, necesario para esta aplicación.

Paso 10: (Código) Cargue el código al ESP32 * opcional *

(Código) Cargue el código al ESP32 * opcional *
(Código) Cargue el código al ESP32 * opcional *

Aquí está la parte complicada que se menciona en el paso "Establecer el gatillo". El monitor generará la dirección MAC (debería verse como ##: ##: ##: ##: ## donde # es un número o una letra de la aa la f), el código del fabricante y el RSSI (un número negativo). Aquí tienes que jugar un poco para encontrar cuál es tu dispositivo. Por lo general, lo coloco al lado del tablero para poder ver claramente cuál es el número más pequeño. Quito la marca de la casilla de 'desplazamiento automático' para poder copiar los valores.

  • Si es la dirección Mac, complete 'myDevice' con ella. Luego, descomente la línea # 96 y comente la línea # 95
  • Si es el Nombre, complete 'myDevice' con él. Luego descomente la línea # 97 y comente la línea # 95
  • Si es el MaufactureData, no tiene suerte por ahora, todavía estoy desarrollando esa parte.

Para agregar soporte para muchos dispositivos, debería poder copiar la declaración conditianal en # 96 o # 97 y colocarlos uno al lado del otro en esta sintaxis:

if ((condición1) || (condición2) || (condición3)) {

Agregue más variables (myDevice1, myDevice2, myDevice3) en consecuencia.

Paso 11: coloque el ESP y calibre

Coloque el ESP y calibre
Coloque el ESP y calibre

Ésta es la parte más importante de la configuración. Pasar con cuidado por este proceso será la diferencia, ya que funcionará como magia o simplemente te dará fuertes dolores de cabeza.

En este punto, el código que cargó está funcionando con los parámetros que personalmente he probado y uso a diario con mi teléfono en mi escritorio; no significa que también funcionará para usted. Por lo tanto, debe realizar la calibración usted mismo.

1. Coloque la placa ESP32 en su ubicación FIJA final. Si mueve por alguna razón la posición de su ESP32, probablemente debería hacerlo nuevamente. Esto le asegurará una buena experiencia en general.

1. (extra) tenga en cuenta que deberá poder conectarse a su PC mientras hace esto. Si no puede porque está en una computadora de escritorio, tendrá que hacer prueba y error, teniendo en cuenta que cada prueba debe ser casi idéntica en cuanto a posicionamiento, dispositivo de activación y otros factores que pueden ser importantes.

2. Abra Serial Monitor con el código en ejecución.

El código por defecto publicará a través del Monitor Serial el RSSI (indicación de intensidad de la señal recibida) de cada dispositivo bluetooth encontrado (o solo el dispositivo o dispositivos que coincidan con sus parámetros). Juega un poco con tu dispositivo principal de acción (dispositivo de activación). Debe determinar cuáles son los umbrales que desea utilizar. El ajuste cuidadoso de esta configuración

3. Cuando determine los umbrales, reemplácelos aquí:

  • near_thrsh
  • far_thrsh

4. Vuelva a cargar el código, pruebe y repita hasta que encuentre un rendimiento óptimo.

Pocas cosas a considerar:

1. Quiere unos 20 dB de diferencia entre los umbrales. Si near_thrsh se establece en 50, entonces se desea que far_thrsh sea 70 o más. Si la diferencia es demasiado corta, es posible que encuentre algunas distancias o lugares donde la placa se active y desactive sin parar. Aumentar esta diferencia le asegurará evitar este comportamiento indeseable. Personalmente, encontré que 20db de margen es suficiente.

2. En escenarios de la vida real de prueba de calibración tanto como sea posible, esto ayudará a determinar el mejor rendimiento.

3. Estudie la clase en la línea 82 del código; aquí es donde se hace toda la lógica. Sin embargo, el código está bien comentado. ¡No dudes en preguntar en GitHub!

Paso 12: ¡Felicidades! ¡Estás listo

Avísame en los comentarios de cualquier sugerencia o si tienes problemas. ¡Recuerde consultar GitHub si su problema ya se ha resuelto!

Recomendado: