Medición de nivel de tanque c/ Sensor Massa M300 y visualizacíón con Blynk

Hace dias fue el cumpleaños de mi hermano Gabriel.
Tiene un sensor ultrasónico Massa M300-150 conectado a un medidor comercial que le da una lectura 0-100%.
Mi hermano programó el sensor para una salida 4-20mA, pero admite opciones como 0-10V o salida MODBUS.

Se me ocurrió sorprenderlo y mejorarle la forma de visualización usando un ESP8266-12 y su ADC para leer esa salida 4-20mA cambiando la R de 250 actual por una mas chica debido al limite de 1V del ADC del ESP.

A mi hermano le gustó mucho la idea y más cuando vio como se veía el nivel de agua en su celular, pero me dijo que a pesar de lo bueno que es el sensor mejor sería leerlo usando MODBUS.
Así que tomé el desafío y me propuse hacerlo del modo mas simple y barato.

Entonces me puse a leer la hoja de datos una vez mas y por ello reorganicé el proyecto:

Seleccioné entonces los siguientes elementos

  1. ESP8266-01 como microntrolador.
  2. Modulo 485
  3. Regulador LM317
  4. Plaqueta de cobre con pads redondos, cables, capacitores, resistores, etc.

Luego de analizar el Sensor me aseguré que con una tensión entre 12 y 24VDC funcionaría correctamente.
Eso me hizo olvidarme de los regualdores LDO de los que dispongo para alimentar el ESP01 y tuve que optar por algo que soportara al menos 15V de entrada (tenía un trafo DC con esa salida y 1A).

Busqué los valores de resistencia que necesitaba para lograr 3.3V y luego de buscar entre mis componentes no dí con el valor de 240 o dos de 120 que requería. asi que puse una R de 220 ohms y un preset de 500R con el que ajuste a 3.300V perfectos.

Me puse a armar el circuito y luego de un tiempo estaba listo para la primera prueba.
Como siempre metí la pata y conecte el VCC del módulo 485 a 15V en lugar de 3.3V. Al probarlo sentí inmediatamente calor y cuando toque el chip estaba calentándose asi que creo que se salvó.

Corté la conexión equivocada y la soldé a los 3.3V del LM317.

Ahora a programar el ESP01 con Modbus

Me quedan dos tareas.

  1. Código con Blynk que ya tenía parcialmente.
  2. Código con MODBUS y el ESP01

Busqué en GOOGLE ESP8266 modbus library y pero encontré muchas dedidas directamente a RS232 que no es lo que yo quiero. Necesito una comunicación Half-Duplex RS485 asi que volví a la librería ModbusMaster que conozco esperando encontrarme con soporte para ESP8266, cosa que en principio no debería tener problemas.

Esto encontré Modbus Master Library.
Cuando vi que tenia una actualización de menos de 1 año me alegré y decidí continuar con ella.
Viendo los ejemplos encontré este : RS485_HalfDuplex.ino

Voy a detenerme aquí porque no puedo (para variar) subir el código al ESP01. siempre he tenido problemas hoy no será la excepción.

Dejo porque ya son las 15:00 y hoy es víspera de Noche Buena y hay que ocuparse de otras cosas.

Sigo luego.