Sensores de proximidad

Gente!!! Ando con un proyecto que consta de un termómetro de máxima y mínima. La idea principal es que sea lo más pequeño posible para que pueda energizarse mediante una simple batería, ya que el consumo es importantísimo. A causa de que necesito ahorrar la mayor energía posible para que la batería dure lo más posible, quiero utilizar un sensor de proximidad para que el usuario, cuando quiera ver la temperatura, acerque su mano y se prenda la pantalla con los valores. La cuestión principal es que estuve probando el sensor CNY70 el cual anduvo perfecto para tal aplicación, ya que variando su sensibilidad a través de la entrada ADC del micro que uso puedo variar la distancia a partir de la cual se prendería la pantalla, y, además, es lo necesariamente pequeño como para mi aplicación.

Ahora... el inconveniente principal: el micro tiene una sola entrada ADC, ya que uso el módulo ESP8266 ESP12 (principalmente por su tamaño y por su conexión a la red). Además de colgarle el sensor de proximidad también debo mostrar el nivel de batería que, según tengo entendido, también debo hacerlo a través del ADC. Entonces pregunto:

1) Existe algún otro sensor de proximidad que pueda ser utilizado mediante una entrada digital o i2c y que sea pequeño como el que uso?

2) El nivel de batería puede realizarse de otra forma que no sea mediante el ADC?

3) Existen otras alternativas para lo que necesito???

Gracias!!!!!!

3) si yo. Pero tiene un costo. :) 2) con un divisor de voltage. Y una entra de arduino anologica. 1) El sensor de ultrasonidos empleado es el modelo HC-SR04.

Hay monton

Gracias por responder Naruto... pero prefiero esperar una respuesta mejor

  1. Como sensor de proximidad puedes mirar las termopilas, yo he utilizado la MLX90614, es un sensor infrarrojo que mide la temperatura en su FOV (campo de visión). Funciona por I2C, bastante sencilla, y al tener un FOV de 90º para detectar que pasas la mano tienes que estar relativamente cerca para detectar un cambio sustancial de la temperatura, pero vamos eso ya son pruebas que tendrás que hacer. Tiene un costo en torno a los 7€ y te ahorras el usar el ADC.

  2. El nivel de batería no te queda otra que utilizar el ADC, puesto que tienes una señal analógica que has de medir, otra opción es utilizar un módulo ADC externo si por lo que fuere el ADC del ESP ya lo tienes utilizado.

  3. Con la propia termopila vas a poder medir la Temperatura ambiente a parte de la temperatura del objeto que esté a su alcance, no se si esto te servirá para medir lo que necesitas.

Un saludo!

prueba con cd 4066 , son llaves electronicas que se utilizan para señales analogicas , pones tres llaves con salida comun conectada al ADC y tres entradas , una al sensor de proximidad ,otra a temperatura y otra a nivel de bateria , comandas las llaves desde tres salidas digitales (DigitalWrite xx,high o low),lees todo el tiempo el sensor de proximidad con la operativa que ya tienes implementada , cuando el sensor te da un true , lo desactivas y activas la lectura de temperatura y luego activas la lectura de nivel de baterias y muestras en el lcd…lo del consumo ya es otra historia

El sensor de proximidad puede ser conectado a una entrada digital. Dependiendo de cuan cerca lo quieras calibrar, podria ser suficiente. En ese caso tienes 3 situaciones posibles:

  1. El sensor debe calibrarse a una distancia cuyo valor analógico no consigue activar el puerto digital (estas frito)

  2. El sensor analógico debe calibrarse a una distancia optima (genial, nada más que hacer)

  3. El sensor debe calibrarse a una distancia cuyo valor es muy alto y se activa antes de la distancia deseada (en ese caso con un dividir de tension resistivo lo solucionas, y para mayor presición puedes usar un potenciometro para calibrar una de las resistencias).

Y eso te deja el ADC para el nivel de bateria

Si el nivel de bateria es solo para alertar de batería baja, entonces recomiendo el divisor de tension en la bateria como ya te recomendaron, calibrado para la tensión crítica que desees, y usas el ADC para el de proximidad.

Me parece ingeniero18 que tienes un error conceptual o bien yo te malentiendo.

Hablas del consumo y luego hablas de un arduinio en pleno funcionamiento (60mA) porque necesita conservar el ADC activo y no hay modo de ponerlo en sleep y que eso ocurra. Por otro lado usas un ESP8266 y sea cual sea (supongamos un ESP01) consume al menos 200mA en TX y algo menos en RX. De modo que tu tema consumo esta en problemas... a menos que olvides todo lo que estas pensando y uses un ESP32 que tiene bajo consumo, puede despertarse con TOUCH SENSOR (tiene 8), hace todo lo que quieres y mas.

Asi que dale vuelta a todo y enfócate en esta nueva maravilla que esta revolucionando el mercado WIFI y de aplicaciones de todo tipo.

Danicap:

  1. Como sensor de proximidad puedes mirar las termopilas, yo he utilizado la MLX90614, es un sensor infrarrojo que mide la temperatura en su FOV (campo de visión). Funciona por I2C, bastante sencilla, y al tener un FOV de 90º para detectar que pasas la mano tienes que estar relativamente cerca para detectar un cambio sustancial de la temperatura, pero vamos eso ya son pruebas que tendrás que hacer. Tiene un costo en torno a los 7€ y te ahorras el usar el ADC.

  2. El nivel de batería no te queda otra que utilizar el ADC, puesto que tienes una señal analógica que has de medir, otra opción es utilizar un módulo ADC externo si por lo que fuere el ADC del ESP ya lo tienes utilizado.

  3. Con la propia termopila vas a poder medir la Temperatura ambiente a parte de la temperatura del objeto que esté a su alcance, no se si esto te servirá para medir lo que necesitas.

Un saludo!

Gracias por tu respuesta Danicap!!!
Gracias por la info de la termopila. La tendré en cuenta para futuros proyecto, ya que en este caso debo usar cosas de bajo costo ya que será un producto para la venta…

daniebcn: prueba con cd 4066 , son llaves electronicas que se utilizan para señales analogicas , pones tres llaves con salida comun conectada al ADC y tres entradas , una al sensor de proximidad ,otra a temperatura y otra a nivel de bateria , comandas las llaves desde tres salidas digitales (DigitalWrite xx,high o low),lees todo el tiempo el sensor de proximidad con la operativa que ya tienes implementada , cuando el sensor te da un true , lo desactivas y activas la lectura de temperatura y luego activas la lectura de nivel de baterias y muestras en el lcd....lo del consumo ya es otra historia

Gracias por tu respuesta daniebcn !!! Me gustó mucho lo del cd4066... ya mismo chequeo el datasheet....

msoffredi: El sensor de proximidad puede ser conectado a una entrada digital. Dependiendo de cuan cerca lo quieras calibrar, podria ser suficiente. En ese caso tienes 3 situaciones posibles:

  1. El sensor debe calibrarse a una distancia cuyo valor analógico no consigue activar el puerto digital (estas frito)

  2. El sensor analógico debe calibrarse a una distancia optima (genial, nada más que hacer)

  3. El sensor debe calibrarse a una distancia cuyo valor es muy alto y se activa antes de la distancia deseada (en ese caso con un dividir de tension resistivo lo solucionas, y para mayor presición puedes usar un potenciometro para calibrar una de las resistencias).

Y eso te deja el ADC para el nivel de bateria

Si el nivel de bateria es solo para alertar de batería baja, entonces recomiendo el divisor de tension en la bateria como ya te recomendaron, calibrado para la tensión crítica que desees, y usas el ADC para el de proximidad.

Gracias por tu respuesta msoffredi!!! Me interesó mucho lo de dejar el sensor de proximidad en el ADC y usar un divisor para avisar la batería baja... me parece la solución más barata, rápida y sencilla. Pruebo y comento. Gracias!!!!

surbyte: Me parece ingeniero18 que tienes un error conceptual o bien yo te malentiendo.

Hablas del consumo y luego hablas de un arduinio en pleno funcionamiento (60mA) porque necesita conservar el ADC activo y no hay modo de ponerlo en sleep y que eso ocurra. Por otro lado usas un ESP8266 y sea cual sea (supongamos un ESP01) consume al menos 200mA en TX y algo menos en RX. De modo que tu tema consumo esta en problemas... a menos que olvides todo lo que estas pensando y uses un ESP32 que tiene bajo consumo, puede despertarse con TOUCH SENSOR (tiene 8), hace todo lo que quieres y mas.

Asi que dale vuelta a todo y enfócate en esta nueva maravilla que esta revolucionando el mercado WIFI y de aplicaciones de todo tipo.

Gracias por participar surbyte !!! El tema es que nunca nombré un Arduino o modo sleep. Igualmente, no conocía el ESP32, por lo que lo tendré en cuenta pero para futuros proyectos, ya que en el que ando actualmente ya casi está listo

Se me cruzan los posts, por eso a veces me refiero a cosas que no corresponden, disculpa ingeniero18.

Hablas de estar preocupado por el consumo!!

A causa de que necesito ahorrar la mayor energía posible para que la batería dure lo más posible

si no lo pones en sleep dime como vas a sostener el consumo?

Esta tabla te ilustrará de con que vas a pelear

Consumo de corriente en stand-by @80MHz: 80mA Consumo de corriente al recibir una peticion (librería WebServer en modo de punto de acceso) @ 80MHz: 90mA Consumo de corriente al utilizar HTTPClient.get() @ 80 MHz: 100-110mA Consumo de corriente en stand-by @160MHz: 90mA Consumo de corriente al recibir una peticion (librería WebServer en modo de punto de acceso) @ 160MHz: 90-100mA Consumo de corriente al utilizar HTTPClient.get() @ 160 MHz: 100-110mA

Ademas usar el ESP32 es casi cambiar de Hard y tu software funcionará casi sin modificaciones.

Te podría salvar pero como dices poco, mas no puedo indicarte.