Concurso de fotografía AM

Temática: «Una panorámica de tu acuario».
Ya esta abierto el plazo para presentar fotografías.

Más info
image01

¿Aún no conoces AMA?

Hazte socio de Acuariofilia Madrid Asociación.
CERRADO EL PLAZO DE INSCRIPCIÓN

Más info
image01

Atlas de peces de AM

¡Hemos alcanzado las 800 fichas! Visita nuestro atlas de peces actualizado.

Más info
image01

Cardúmenes y sociabilidad

Nueva actualización de la tabla con una extensa relación de peces, donde podrás conocer qué entorno necesita cada especie, su sociabilidad y si convive o no en cardumen. ¡Pasa a descubrirla!

Mas info
image01
Sonda de pH profesional. No consigo ajustarla
Respuestas: 29    Visitas: 3642
#16
A ver, doy algún dato más

La sonda que una persona me dijo que usará es esta

https://a.aliexpress.com/_mPLSI8z

A mi no me parece muy allá, la verdad. Tal vez es porque no la sé hacer funcionar, seguro que eso tiene mucho que ver jajaja

Eso y que yo uso ESP32 y no Arduino
Eres nuevo? Pasa a presentarte aquí
Rellena tu ficha aqui, así podremos conocerte mejor.
¿Necesitas subir imágenes a tus posts?
Puedes hacerlo a través de Imgur, o a través de Google Drive.
Muchas gracias por tu colaboración.
#17
La sonda, se parece mucho físicamente a la mía (pero dista entre 6 y 8 veces el precio de la mia).

Fuera el concepto de más dinero mejor o más económico peor, yo he tenido ese problema que comentas, pero no por la propia sonda, sino, por el ruido en circuito.

Miré aislar los cables, miré las resistencias, etc.

Pero, parte de mi solución fue:
- Acortar el cableado
- Sobre todo, como uso Arduino Mega, y tiene múltiples salidas 3V y 5V, no compartir alimentación para varios sensores (osea, de una misma de 3V, no sacar varias placas ni en serie, ni en paralelo).

De ahí también que haya usado alimentador externo tanto de 5V cono de 3V. Para que no sea la placa matriz la encargada de alimentar todo, y comerse el ruido.

Esto es *mi experiencia* basada en prueba y error, y sobre todo, que no soy especialista en la materia.

A ver si algun@ de los que saben, te echa un cable
#18
Esas variaciones como ya he comentado se producen debido a ruidos .acortar el circuito,apantallar el cableado,hacer lecturas no tan seguidas .
Este tipo de sondas baratas son casi ineficaces ,no se conoce el tiempo que llevan de fabricación y por ello la solución de KCl 3M pueda estar mal .
Se descalibran con mucha facilidad cuando se usa prolongadamente .
#19
Eso es lo que me parece a mí, que son eficientes para usarlas de vez en cuando, pero no para medir de forma continuada...
Eres nuevo? Pasa a presentarte aquí
Rellena tu ficha aqui, así podremos conocerte mejor.
¿Necesitas subir imágenes a tus posts?
Puedes hacerlo a través de Imgur, o a través de Google Drive.
Muchas gracias por tu colaboración.
#20
Como tienes montado el circuito?. Es importante saber de donde coges la alimentación.

La mayor diferencia entre arduino y esp32 es que los pines funcionan a 3.3V.

Así a priori, si esa placa funciona a 5V solamente puedes leer un 60% del ramgo. Si todo esta bien montado ese 60% debería ser estable. Pon el código que tienes y buscamos posibles problemas
#21
Ok, en cuanto tenga un rato pongo todo. Muchas gracias
Eres nuevo? Pasa a presentarte aquí
Rellena tu ficha aqui, así podremos conocerte mejor.
¿Necesitas subir imágenes a tus posts?
Puedes hacerlo a través de Imgur, o a través de Google Drive.
Muchas gracias por tu colaboración.
#22
No he actualizado nada porque me temo que la sonda no me sirve. Está pensada para 5V y los pins de esp32 no dan más de 3.3 ( en realidad creo que no pasan de 3.14 ). Estoy dando vueltas a todo, incluso probando atenuaciones, pero no doy con ello...

Os pongo algo más de info, por ir compartiendo cosas

[Imagen: SuD5FxM.jpg]

Mucho cable, lo se, pero de momento va bien todo. Ahí están la sonda de temperatura y la sonda de tds, ambas funcionan perfectamente. La que me da MUCHOS problemas es la de pH.

Os pego el código

Código:
#include <driver/adc.h>

int read_raw;

void setup()
{
  Serial.begin(115200);
  adc2_config_channel_atten( ADC2_CHANNEL_7, ADC_ATTEN_0db );
}

void loop()
{
  esp_err_t r = adc2_get_raw( ADC2_CHANNEL_7, ADC_WIDTH_12Bit, &read_raw);
    if ( r == ESP_OK ) {
        printf("%d\n", read_raw );
        delay(2000);
    }
}

He probado con eso a ver si soy capaz de medir las variaciones PERO no, siempre es la misma, da igual que meta la sonda o no.

La sonda está en el pin 27 ( ADC2_CHANNEL_7 ), pero no soy capaz de ver variaciones entre que la sonda esté dentro o fuera. No se si es que la he podido romper o que al ser un esp32 no me sirve ( al ser de 5v ) de ninguna forma y me tengo que comprar una de 3.3v a la fuerza.
Eres nuevo? Pasa a presentarte aquí
Rellena tu ficha aqui, así podremos conocerte mejor.
¿Necesitas subir imágenes a tus posts?
Puedes hacerlo a través de Imgur, o a través de Google Drive.
Muchas gracias por tu colaboración.
#23
Bueno otro poco, y, a no ser que me digais que la sonda va bien, creo que la voy a cambiar.

Os cuento

he hecho muchas pruebas con este código

Código:
#include "DFRobot_ESP_PH.h"
#include <EEPROM.h>

DFRobot_ESP_PH ph;
#define ESPADC 4096.0   //the esp Analog Digital Convertion value
#define ESPVOLTAGE 3300 //the esp voltage supply value
#define PH_PIN 35    //the esp gpio data pin number
float voltage, phValue, temperature = 25;

void setup()
{
  Serial.begin(115200);
  pinMode(PH_PIN, INPUT);
  EEPROM.begin(32);//needed to permit storage of calibration value in eeprom
  ph.begin();
}

void loop()
{
  static unsigned long timepoint = millis();
  if (millis() - timepoint > 1000U) //time interval: 1s
  {
    timepoint = millis();
    //voltage = rawPinValue / esp32ADC * esp32Vin
    voltage = analogRead(PH_PIN) / ESPADC * ESPVOLTAGE; // read the voltage
    Serial.print("voltage:");
    Serial.println(voltage, 4);
   
    //temperature = readTemperature();  // read your temperature sensor to execute temperature compensation
    Serial.print("temperature:");
    Serial.print(temperature, 1);
    Serial.println("^C");

    phValue = ph.readPH(voltage, temperature); // convert voltage to pH with temperature compensation
    Serial.print("pH:");
    Serial.println(phValue, 4);
  }
  ph.calibration(voltage, temperature); // calibration process by Serail CMD
  delay(2000);
}

float readTemperature()
{
  //add your code here to get the temperature from your temperature sensor
}

Esto lo que hace es usar una libreria modificada para usar sondas con esp32. Con esto he conseguido alguna cosa, pero me sigue sin medir en condiciones. He llegado incluso a meter un triple voltage divider con 3 resistencias de 10k para poder bajar y moverme en el rango que debo ( 4095/3 ) pero nada, las mediciones permanecen iguales.

Estas probando en soluciones diferentes: si, tengo 3 soluciones. No dan un ph fiable, no me interesa eso de momento. Tengo una de agua de grifo, otra de agua destilada y otra de agua con limón. La de limón debería dar MUY bajo, mucho más que las otras. Pero las 3 dan la misma medición....

Foto con el triple divisor de voltaje

[Imagen: JPbpbI4.jpg]

2 van del ground al input y otro del input al 3.3... pero me temo que no vale de nada...

Cada vez pienso más que lo que pasa es que mi sonda SOLO vale para 5v...
Eres nuevo? Pasa a presentarte aquí
Rellena tu ficha aqui, así podremos conocerte mejor.
¿Necesitas subir imágenes a tus posts?
Puedes hacerlo a través de Imgur, o a través de Google Drive.
Muchas gracias por tu colaboración.
#24
La sonda solamente es válida para 5V pero puedes apañarlo.

Para que esto funcione necesitas que tu placa tenga un pin de 5V. Por el color de los pines creo que es igual que las mias y si lo tiene. Se me ocurre lo siguiente: conectas el esp32 por usb para que tengas 5V. Alimentas tu placa de ph desde el pin 5V. El resto lo dejas como esta.

El ESP32 funciona a 3.3V, su salida es a 3.3V pero los pines de entrada toleran 5V con lo cual podrás usar la placa.

Si no usas un divisor de tensión solamente puedes leer de 0 a 3.3V que es un 60% de la salida de la sonda aproximadamente. Suponiendo que a menor ph menor voltaje (@javi confirmalo según funcione la tuya porfa) Si llevamos ese porcentaje al rango de la sonda seria de 0-9. Es verdad que pierdes rango pero igual tienes bastante, si quieres el rango completo sería usar el ejemplo que estás haciendo.

A mi los cables me parecen correctos, las protoboard también, yo probaría como te he comentado y sin divisores que puedan crear interferencias. Una vez lo tengas así estable ya lo complicamos.
#25
perfecto, mañana lo pongo al orden

de todas formas, con esa configuración si no recuerdo mal mide 4095, si no recuerdo mal
Eres nuevo? Pasa a presentarte aquí
Rellena tu ficha aqui, así podremos conocerte mejor.
¿Necesitas subir imágenes a tus posts?
Puedes hacerlo a través de Imgur, o a través de Google Drive.
Muchas gracias por tu colaboración.
#26
Si SIEMPRE te da ese valor es que esta fuera del rango, pero lo primero es coseguir una medida estable.

Si eso funciona pon en detalle el divisor de tension que has puesto, valores de resistencia, un pequeño diagrama, etc. todo lo que puedas.

Seguro que lo echamos a andar!
#27
Buenos dias,
hoy me he levantado temprano y, pese a no hacer muchas fotos, he estado dando vueltas a la cosa:

1. Lo primero que he hecho es colocar todo contra una placa de Arduino y los valores ( ahora mismo me dan un poco igual el valor de ph, tengo la sonda en agua ). En arduino, a 5v, los valores van saltando de 5.33 a 6.23

2. Visto lo visto, he movido todo a esp32. Sin resistencias. Rango de 4.14 a 4.55


[Imagen: yTgMEl7.jpg]

En esa imagen se ve: 2 de tierra, 1 al pin 35 y otro a 5V de la ESP32 ( que no es un 5V real, es un pin que tolera algo más, pero no mucho, o eso creo yo ).

Resumen del dia de hoy: fluctua mucho mucho. No se si esto se resuelve metiendo condensadores o metiendo resistencias ( entiendo que deberían entrar casi más los condensadores para intentar dar una salida más homogénea, no? )

Muchas gracias
Eres nuevo? Pasa a presentarte aquí
Rellena tu ficha aqui, así podremos conocerte mejor.
¿Necesitas subir imágenes a tus posts?
Puedes hacerlo a través de Imgur, o a través de Google Drive.
Muchas gracias por tu colaboración.
#28
Bueno, voy a ir actualizando

He conseguido medir el ph de ciertas soluciones, pero nada concreto hasta que no me lleguen las soluciones de 4.0 y 7.0.

Las variaciones son buenas y me queda por hacer el delta entre 4 y 7. He estado estudiando las librerias que usan las empresas y son lo mismo que lo que hago yo, solo que a mi me toca hacerlo todo y las sondas, como la de Javi, ya están pensadas para trabajar con esa librería.

Problemas:
- el voltaje es algo un poco loco, me traia mucho por la calle de la amargura. Lo que hice fue medir la media de 10 y quedarme con 8 de esos resultados para calcular el valor en cada vuelta de reloj. Eso me asegura mucha precisión. Esto me viene obligado a que los pines de 12bits de ESP32 son muy ruidosos.
- me ha costado un poco encontrar el valor correcto en los potenciadores para que la sonda funcionase de forma correcta para una medición conocida. Ahora, cuando tenga las mediciones de 4.0 y 7.0 me tocará ajustar otro poco, pero, si lo he hecho bien, esto lo puedo hacer con el delta en código para evitar tocar la placa lo máximo posible.
- al final he podido quitar las resistencias y condensadores, dado que la señal no es muy grande ( estoy entrando por 3.3 ).
- CREO que tal vez tenga problemas con la sonda si tengo que medir entornos muy ácidos o entornos muy básicos, pero eso, de momento, no me preocupa demasiado. Cada problema a su tiempo jejejeje

Quiero daros las gracias porque los comentarios de este post me han llevado a solucionar algunos de los problemas que tenía y me quedan muchos por solucionar.

Saludos
Eres nuevo? Pasa a presentarte aquí
Rellena tu ficha aqui, así podremos conocerte mejor.
¿Necesitas subir imágenes a tus posts?
Puedes hacerlo a través de Imgur, o a través de Google Drive.
Muchas gracias por tu colaboración.
#29
Por mejorar el tema del ruido se me ocurre lo siguiente:
- Cambiar el modo de trabajo del ESP32 a 10bits. Tendrías 1024 divisiones en vez 4096. Igual pierdes algo de precisión pero mejorará la estabilidad.
- Hacer un filtro pasa bajos:
  · Opción hardware: Poner un pequeño filtro a la salida de la señal, por ejemplo una resistencia de 4.7K de la salida de la sonda al pin del ESP y entre medias un condensador de 1uf. Habría que ir jugando con valores del condensador hasta afinar.
·  Opción software: Aquí te pongo un tutorial completo (Para mi uno de los mejores blogs de arduino y ESP32) de como implementarlo aunque es realmente sencillo.

Un factor importante de la estabilidad es el tiempo. No importa tanto si tus muestras son 10 o 20 sino el tiempo que ha pasado. Según el fabricante la medida tarda menos de 5 segundos en estabilizarse (ojo que estamos hablando de segundos!!) con lo cual yo empezaría esperando 3 segundos, y después otros dos segundos leyendo cada 100ms por ejemplo. Con esto sacas 20 muestras pero habiendo dejado un tiempo a la sonda para estabilizarse. Aplicas el filtro pasa bajos por software y debería quedarte un valor bastante correcto.

Por otra parte, no se si estás usando el bluetooh o el wifi integrado pero ten en cuenta que durante la conexión y el envío o recepción de datos estos módulos pegan un buen tirón de consumo, si estás alimentando el ESP32 por USB seguro que tienes un bajón de voltaje y obviamente te afectará a la lectura.
#30
Hola,
Pues como bien dices, tuve que hacer la media ( que es parte del smoothing o el pasa bajos ); lo cierto es que caí en ello buscando como contener los valores de voltaje, y me ayudó mucho. No he puesto todo el smoothing porque de momento no quiero perder más precisión hasta ver qué valores me da en soluciones controladas.

Respecto al wifi, si, lo uso, y la siguiente prueba es ver los valores con el wifi encendido. De todas formas aún tengo algún as en la manga, como esto

Código:
adc1_config_width(ADC_WIDTH_12Bit);

adc1_config_channel_atten(ADC1_CHANNEL_0,ADC_ATTEN_0db);

int val = adc1_get_voltage(ADC1_CHANNEL_0)



Esto, supuestamente, me permitirá jugar con la atenuación en caso de que tenga mucho ruido. Con la sonda de tds me ha ido de fábula, veremos con la de pH Wink

Muchas gracias por tu ayuda
Eres nuevo? Pasa a presentarte aquí
Rellena tu ficha aqui, así podremos conocerte mejor.
¿Necesitas subir imágenes a tus posts?
Puedes hacerlo a través de Imgur, o a través de Google Drive.
Muchas gracias por tu colaboración.

Usuarios navegando en este tema: 1 invitado(s)


Salto de foro: