Sie sind auf Seite 1von 35

UNIVERSIDAD DE LAS FUERZAS ARMADAS

ESPE EXTENSIÓN LATACUNGA

INGENIERÍA ELECTRÓNICA E INSTRUMENTACIÓN

PROYECTO INTEGRADOR

TEMA:

“Diseño y construcción de un Sistema de Medición de


pH, mediante el uso del sensor SEN0161 conectado a
través de comunicación WiFi al software Matlab, para
el monitoreo de descarga de agua residual en sistemas
de alcantarillado y cuerpos de agua dulce”

DOCENTE:

ING. DAVID RIVAS

ALUMNO:

HUGO ORTEGA

JULIO CESAR TOALOMBO

ANDRE VASQUEZ

CIUDAD Y FECHA:

LATACUNGA A 27 DE ENERO DEL 2017


TEMA:
“DISEÑO Y CONSTRUCCIÓN DE UN SISTEMA DE MEDICIÓN DE PH,
MEDIANTE EL USO DEL SENSOR SEN0161 CONECTADO A TRAVÉS DE
COMUNICACIÓN WIFI AL SOFTWARE MATLAB, PARA EL MONITOREO DE
DESCARGA DE AGUA RESIDUAL EN SISTEMAS DE ALCANTARILLADO Y
CUERPOS DE AGUA DULCE”

OBJETIVOS
2.1 GENERAL
 Diseñar y construir un Sistema de Medición de pH, mediante el uso del sensor
SEN0161 conectado a través de comunicación WiFi al software Matlab, para el
monitoreo de descarga de agua residual en sistemas de alcantarillado y cuerpos
de agua dulce.

2.2 ESPECÍFICOS
 Investigar toda la información relacionada a sistemas o sensores de
medición de pH.
 Determinar el modulo más eficiente de comunicación inalámbrica
WiFi, tomando en cuenta accesibilidad, costos, etc.
 Buscar los materiales más adecuados para el diseño y la
implementación del sistema.
 Diseñar el sistema de monitoreo y comunicación en la plataforma de
programación Arduino.
 Diseñar una interfaz gráfica en Matlab para almacenar datos,
analizarlos y visualizarlos.
 Implementar un prototipo del sistema en una maqueta.
 Realizar pruebas de funcionamiento del sistema.
 Analizar los resultados de las pruebas realizadas al sistema.
 Redactar conclusiones y Recomendaciones.

1
CONTENIDO
TEMA:................................................................................................................ 1
OBJETIVOS ....................................................................................................... 1
2.1 GENERAL ......................................................................................................... 1
2.2 ESPECÍFICOS ................................................................................................... 1
DESARROLLO.................................................................................................. 3
3.1. Informe semana 1 ............................................................................................... 3
3.2. Informe semana 2 ............................................................................................... 8
3.3. Informe semana 3 ............................................................................................. 11
3.4. Informe semana 4 ............................................................................................. 25
ANÁLISIS DE RESULTADOS ...................................................................... 30
CONCLUSIONES............................................................................................ 30
RECOMENDACIONES .................................................................................. 30
REFERENCIAS ............................................................................................... 31

2
DESARROLLO
3.1. Informe semana 1
Investigación de la información de sistemas e instrumentos de medición de pH y
determinar el módulo de comunicación adecuado.

 Implementación y establecimiento del sistema secundario de medición


del pH en Colombia

En varios sectores de la industria la medición del pH es relevante, y se efectúa de


manera rutinaria en diferentes etapas de producción.

Se presenta el sistema de referencia para la medición del pH del Instituto Nacional de


Metrología; su finalidad es la certificación de Materiales de Referencia, los cuales son la
herramienta metrológica necesaria para garantizar la uniformidad, la aceptación y el
reconocimiento de las mediciones del pH realizadas en Colombia, en intervalo de
medición de 4,01 unidades de pH a 10,01 unidades de pH a 25°C con incertidumbre
relativa 0,01 unidades de pH.

El pH es uno de los parámetros químicos que con mayor frecuencia es determinado


en los laboratorios y en la industria, debido a la gran cantidad de procesos químicos que
dependen de esta magnitud es medido mediante electrodos.

La implementación de este sistema de medición garantizara la producción y certificación


de materiales de referencia de pH a 25°C en un intervalo de medición de 4,01 unidades
de pH a 10,01 unidades de pH con incertidumbre expandida acordada internacionalmente
de 0,01 unidades de pH.

La producción de estos materiales de referencia certificados será la herramienta


fundamental para la diseminación de la trazabilidad y aseguramiento de la calidad de las
mediciones del pH de soluciones acuosas realizadas en el país por medio de su uso en la
calibración de pH-metros.

 Sistema de referencia de medición de pH

El pH es un parámetro que influye en los procesos de producción y en las características


de los productos terminados y materias primas en la mayoría de industrias.

Las mediciones se realizan en su mayoría con un sistema que incluye un electrodo de


vidrio. La respuesta del electrodo de vidrio debe conocerse realizando una calibración

3
analítica con Materiales de Referencia, por lo tanto, es indispensable disponer de
Materiales de Referencia confiables y con una cadena de trazabilidad clara y valida.

Este sistema se utiliza para la certificación de los seis Materiales de Referencia


Primarios que se establecen en la escala internacional multipuntos.

Para establecer el grado de comparabilidad de las mediciones realizadas con este


sistema se ha participado en dos comparaciones internacionales, la primera en el marco
del Comité Consultatif pour Quantite de Matiére (CCQM) y la segunda en el
marco del Sistema Interamericano de Metrología (SIM).

Calculamos el valor de pH de la solución amortiguadora pH(S). A través de la


optimización del Sistema de Referencia para mediciones de pH, actualmente se ha
alcanzado el nivel de incertidumbre reportado para los MRP a nivel internacional que es
de 0,005 unidades de pH (k=2).

 Características del Wifi

El wifi es un mecanismo de conexión de dispositivos electrónicos de forma inalámbrica.


Los dispositivos habilitados con wifi pueden conectarse a internet a través de un punto
de acceso de red inalámbrica. Dicho punto de acceso tiene un alcance de unos veinte
metros en interiores, distancia que es mayor al aire libre.

Las redes wifi poseen una serie de ventajas, entre las cuales podemos destacar:

 La comodidad que ofrecen es muy superior a las redes cableadas porque


cualquiera que tenga acceso a la red puede conectarse desde distintos puntos
dentro de un espacio lo bastante amplio.
 Una vez configuradas, las redes wifi permiten el acceso de múltiples
ordenadores sin ningún problema ni gasto en infraestructura, ni gran cantidad
de cables.
 La Alianza Wi-Fi asegura que la compatibilidad entre dispositivos con la marca
Wi-Fi es total, con lo que en cualquier parte del mundo podremos utilizar la
tecnología wifi con una compatibilidad absoluta.

Pero como red inalámbrica, la tecnología wifi presenta los problemas intrínsecos de
cualquier tecnología inalámbrica. Algunos de ellos son:

4
 Una de las desventajas que tiene el sistema wifi es una menor velocidad en
comparación a una conexión cableada, debido a las interferencias y pérdidas de
señal que el ambiente puede acarrear.
 La desventaja fundamental de estas redes reside en el campo de la seguridad.
 Esta tecnología no es compatible con otros tipos de conexiones sin cables como
Bluetooth, GPRS, UMTS, etc.
 La potencia de la conexión del wifi se verá afectada por los agentes físicos que
se encuentran a nuestro alrededor.

 Características del bluetooth

Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal


(WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos
mediante un enlace por radiofrecuencia en la banda ISM de los 2.4 GHz.

Los dispositivos que con mayor frecuencia utilizan esta tecnología pertenecen a sectores
de las telecomunicaciones y la informática personal, como PDA, teléfonos móviles,
computadoras portátiles, ordenadores personales, impresoras o cámaras digitales.

La especificación de Bluetooth define un canal de comunicación a un máximo 720


kbit/s (1 Mbit/s de capacidad bruta) con rango óptimo de 10 m (opcionalmente 100 m
con repetidores).

Opera en la frecuencia de radio de 2,4 a 2,48 GHz con amplio espectro y saltos de
frecuencia con posibilidad de transmitir en Full Duplex con un máximo de 1600 saltos
por segundo. Los saltos de frecuencia se dan entre un total de 79 frecuencias con
intervalos de 1 MHz; esto permite dar seguridad y robustez.

La potencia de salida para transmitir a una distancia máxima de 10 metros es de 0 dBm


(1 mW), mientras que la versión de largo alcance transmite entre 20 y 30 dBm (entre
100 mW y 1 W).

 Características del módulo de Wifi Arduino

El Arduino WiFi permite a una placa Arduino conectarse a Internet a través de la


especificación inalámbrica 802.11 (Wi-Fi).

Se basa en la HDG104 Wireless LAN 802.11b / g.

5
Permite que otro escudo pueda ser apilado en la parte superior.

Hay una ranura para tarjeta micro-SD, que puede ser usado para almacenar archivos y
para servir a través de la red. Es compatible con el Arduino Uno y Mega. El CODEC de
lector de tarjetas microSD se puede acceder a través de la librería SD. Cuando se trabaja
con esta librería, SS es el pin 4

Tenga en cuenta que debido a que el HDG104 y la tarjeta SD comparten el bus SPI,
sólo uno puede estar activo a la vez. Si está utilizando ambos periféricos en su
programa, esto debe ser realizado con las librerías correspondientes. Si usted no está
utilizando uno de los periféricos de su programa, sin embargo, tendrá que
explícitamente anular su selección. Para hacer esto con la tarjeta SD, ajuste el pin 4
como salida y escriba un nivel alto a la misma. Para el HDG104, establezca el pin
digital 10 como una salida alta.

El pin digital 7 no debe ser usado

Vea la página oficial de Arduino para más detalles

Especificaciones Necesita una placa Arduino UNO

 Alimentación: 5V (proporcionado por la placa Arduino)


 Red: 802.11b/g
 Encriptaciones soportadas: WEP y WPA2
 Conexión con Arduino por el puerto SPI
 Zócalo para tarjeta Micro SD incorporado
 Pines ICSP
 Conexión FTDI para debug
 Conexión Mini-USB para actualizaciones de Firmware

 Características del módulo Bluetooth Arduino

Este módulo Bluetooth integra un módulo Bluetooth de serie. Puede ser utilizado
fácilmente con Arduino y es transparente para la comunicación serie inalámbrica. Puede
optar por dos pines de Arduino D0 a D7 como puertos de serie del software para
comunicarse con Bluetooth Shield (D0 y D1 es el puerto de serie del hardware).
También dispone de dos conectores conectar y listo (una es digital, el otro es analógico)
para la instalación de módulos conectar y listo.

6
El escudo puede no ser compatible con algunos dispositivos Bluetooth capaz, como
algunos teléfonos móviles HTC (G-7 con Android 2,33) y los dispositivos de Apple con
perfil especial sobre la función Bluetooth.

Especificaciones Arduino / Seeeduino compatible

 Comunicación a distancias de hasta 10m en casa sin obstáculos


 UART interfaz (TTL) con velocidad de transmisión programable (SPP firmware
instalado)
 Velocidad en baudios progamable
 FCC ID certificada
 Fuente de alimentación Voltaje: 3.3V
 Velocidad en baudios: 9600, 19200, 38400, 57600, 115200, 230400, 460800
 Por defecto Velocidad de transmisión: 9600, Bits de datos: 8, Bit de parada: 1,
Paridad: Sin paridad
 CÓDIGO PIN predeterminado: "1234"
 Versión de Bluetooth: v2.1 + EDR

Anexos

Paper 1

Figura Nº 1 Estudio del arte 1

Paper 2

7
Figura Nº 2 Estudio del arte 2

3.2. Informe semana 2


Investigación acerca de las características del instrumento de medición de PH
SEN0161.

El medidor de pH analógico, especialmente diseñado para controladores Arduino y tiene


una conexión simple, práctica y práctica y características. Tiene un LED que funciona
como el indicador de alimentación, un conector BNC y la interfaz del sensor PH2.0.
Sólo puede conectar el sensor de pH con conector BNC y conectar la interfaz PH2.0 a
cualquier entrada analógica del controlador Arduino para leer el valor del pH
fácilmente.

Figura Nº 3 Sensor De Ph Sen0161

8
ESPECIFICACIONES
 Dimensión SEN0161
 Potencia del módulo: 5.00V
 Tamaño de la tarjeta de circuitos: 43mm × 32mm
 PH Rango de medición: 0-14
 Medición de la temperatura: 0-60 ℃
 Precisión: ± 0.1pH (25 ℃)
 Tiempo de respuesta: ≤ 1min
 Sensor de pH con conector BNC
 Interfaz PH2.0 (parche de 3 pies)
 Potenciómetro de ajuste de ganancia
 Indicador de encendido LED

PRECAUCIONES
 Antes y después del uso del electrodo de pH cada vez, es necesario utilizar agua
(pura) para limpiarla.
 El enchufe del electrodo debe mantenerse limpio y seco en caso de cortocircuito.
 Preservación: La solución de preservación de referencia de electrodos es la
solución 3N KCL.
 La medición debe evitar la contaminación escalonada entre las soluciones, para
no afectar la exactitud de la medición.
 El núcleo de la arena se contamina, lo que ocasiona la declinación de PTS, esto
quiere decir respuesta lenta. Por lo tanto, debe basarse en las características del
contaminante, adaptado a la solución de limpieza, la recuperación del
rendimiento del electrodo.
 Cuando se utiliza el electrodo, el núcleo de arena de cerámica y el anillo de
caucho de salida de líquido deben ser removidos, para hacer solución de puente
salino para mantener una cierta velocidad.

Características del electrodo de pH

La salida del electrodo del pH es Millivolts, y el valor de pH de la relación se muestra


como sigue (25 ℃):

9
Tabla 1. Características del sensor sen0161

10
3.3. Informe semana 3
Investigación de los distintos métodos de calibración para el sensor

Diagrama de conexión

Figura Nº 4 Diagrama de conexión

Método 1. Calibración por software

La calibración del software es más sencilla comparándola con la calibración del


hardware a través del potenciómetro. Debido a que se escribe los valores de calibración
en la EEPROM de Arduino, una sola vez para todos si no va a reemplazar su Arduino.

Utiliza un método matemático para dibujar una línea usando dos puntos, es decir,
usando la solución estándar Ácido, pH = 4,00 y pH alcalino = 10,00 ó 9,18 para dibujar
la relación lineal entre el voltaje y el valor del pH.

Durante la calibración (del paso 4 al paso 7), se debe evitar el corte de corriente, o
deberá comenzar de nuevo desde el paso 4.

11
La calibración del software no tiene nada que ver con el potenciómetro del adaptador.
Especialmente después de terminar la calibración, nunca debe ajustar el potenciómetro,
o debe comenzar de nuevo. Por otra parte, teniendo en cuenta la vibración mecánica
podría interferir el valor del potenciómetro, usted podría sellarlo por adhesivo de fusión
en caliente.

Si desea probar Calibración de hardware, es mejor restablecer la configuración de la


EEPROM cargando el croquis de muestra de IDE de Arduino "EEPROM Clear".

Pasos para la calibración

1. Cablear la sonda de pH, el adaptador del medidor de pH (la pequeña tarjeta de


PCB) y Arduino UNO como la sección Diagrama anterior.
2. Cargue el código de ejemplo "Software Calibration" a UNO.
3. Abra el Monitor Serial, elija el formato de comando como "Tanto NL & CR"
como 115200.
4. Envíe "Calibración" para entrar en el modo de calibración, y verá "Entrar en el
modo de calibración" directamente.

5. Calibración ácida
1. Lave su sonda de pH con agua pura (el agua destilada es la mejor) y séquela
en caso de diluir la solución de pH estándar. Insértelo en una solución ácida
estándar de pH = 4,0. Espere unos segundos hasta que las lecturas se vuelvan
relativamente estables.
2. Introduzca "acid: 4.00" (sin espacio blando, en minúsculas), y obtendrá
"Acid Calibration Successful" aviso. Luego continúe con Calibración
Alcalina.

6. Calibración de álcalis
7. Saque la sonda de pH de la solución

12
8. ácida, LIMPIÉNGALO de nuevo como lo hizo en el último paso. Después de
esto, insertarlo en la solución alcalina estándar con pH = 10 ó 9.18. Esperando
las lecturas estables
9. Introduzca "álcali: 10.00", y verá "Calibración alcalina exitosa".

10. Introduzca "exit" para terminar la calibración. Verá "Calibración exitosa, Salga
del modo de calibración".

11. Compruebe si el medidor de pH se ha calibrado satisfactoriamente con la


solución pH = 4,00, 9,18, 10,00, si las lecturas están dentro del error de 0,1.
Felicitaciones.

13
Ejemplo código: Calibración del Software

***************************************************
This example uses software solution to calibration the ph
meter, not the potentiometer. So it is more easy to use and
calibrate.
This is for SEN0161 and SEN0169.

Created 2016-8-11
By youyou from DFrobot <youyou.yu@dfrobot.com>

GNU Lesser General Public License.


See <http://www.gnu.org/licenses/> for details.
All above must be included in any redistribution
****************************************************/

14
/***********Notice and Troubleshooting***************
1.Connection and Diagram can be found here http://www.dfr
obot.com/wiki/index.php/PH_meter%28SKU:_SEN0161%29
2.This code is tested on Arduino Uno.
****************************************************/

#include <EEPROM.h>
#define EEPROM_write(address, p) {int i = 0; byte *pp = (by
te*)&(p);for(; i < sizeof(p); i++) EEPROM.write(address+i,
pp[i]);}
#define EEPROM_read(address, p) {int i = 0; byte *pp = (by
te*)&(p);for(; i < sizeof(p); i++) pp[i]=EEPROM.read(addres
s+i);}

#define ReceivedBufferLength 20
char receivedBuffer[ReceivedBufferLength+1]; // store the
serial command
byte receivedBufferIndex = 0;

#define SCOUNT 30 // sum of sample point


int analogBuffer[SCOUNT]; //store the sample voltage
int analogBufferIndex = 0;

#define SlopeValueAddress 0 // (slope of the ph probe)s


tore at the beginning of the EEPROM. The slope is a float n
umber,occupies 4 bytes.
#define InterceptValueAddress (SlopeValueAddress+4)
float slopeValue, interceptValue, averageVoltage;
boolean enterCalibrationFlag = 0;

#define SensorPin A0

15
#define VREF 5000 //for arduino uno, the ADC reference is
the power(AVCC), that is 5000mV

void setup()
{
Serial.begin(115200);
readCharacteristicValues(); //read the slope and intercep
t of the ph probe
}

void loop()
{
if(serialDataAvailable() > 0)
{
byte modeIndex = uartParse();
phCalibration(modeIndex); // If the correct calibr
ation command is received, the calibration function should
be called.
EEPROM_read(SlopeValueAddress, slopeValue); // Af
ter calibration, the new slope and intercept should be read
,to update current value.
EEPROM_read(InterceptValueAddress, interceptValue);
}

static unsigned long sampleTimepoint = millis();


if(millis()-sampleTimepoint>40U)
{
sampleTimepoint = millis();
analogBuffer[analogBufferIndex] = analogRead(SensorPin
)/1024.0*VREF; //read the voltage and store into the buf
fer,every 40ms
analogBufferIndex++;

16
if(analogBufferIndex == SCOUNT)
analogBufferIndex = 0;
averageVoltage = getMedianNum(analogBuffer,SCOUNT);
// read the stable value by the median filtering algorithm
}

static unsigned long printTimepoint = millis();


if(millis()-printTimepoint>1000U)
{
printTimepoint = millis();
if(enterCalibrationFlag) // in calibration
mode, print the voltage to user, to watch the stability of
voltage
{
Serial.print("Voltage:");
Serial.print(averageVoltage);
Serial.println("mV");
}else{
Serial.print("pH:"); // in normal mode, p
rint the ph value to user
Serial.println(averageVoltage/1000.0*slopeValue+interc
eptValue);
}
}
}

boolean serialDataAvailable(void)
{
char receivedChar;
static unsigned long receivedTimeOut = millis();
while (Serial.available()>0)

17
{
if (millis() - receivedTimeOut > 1000U)
{
receivedBufferIndex = 0;
memset(receivedBuffer,0,(ReceivedBufferLength+1));
}
receivedTimeOut = millis();
receivedChar = Serial.read();
if (receivedChar == '\n' || receivedBufferIndex==Receiv
edBufferLength){
receivedBufferIndex = 0;
strupr(receivedBuffer);
return true;
}
else{
receivedBuffer[receivedBufferIndex] = receivedChar;
receivedBufferIndex++;
}
}
return false;
}

byte uartParse()
{
byte modeIndex = 0;
if(strstr(receivedBuffer, "CALIBRATION") != NULL)
modeIndex = 1;
else if(strstr(receivedBuffer, "EXIT") != NULL)
modeIndex = 4;
else if(strstr(receivedBuffer, "ACID:") != NULL)

18
modeIndex = 2;
else if(strstr(receivedBuffer, "ALKALI:") != NULL)
modeIndex = 3;
return modeIndex;
}

void phCalibration(byte mode)


{
char *receivedBufferPtr;
static byte acidCalibrationFinish = 0, alkaliCalibratio
nFinish = 0;
static float acidValue,alkaliValue;
static float acidVoltage,alkaliVoltage;
float acidValueTemp,alkaliValueTemp,newSlopeValue,newIn
terceptValue;
switch(mode)
{
case 0:
if(enterCalibrationFlag)
Serial.println(F("Command Error"));
break;

case 1:
receivedBufferPtr=strstr(receivedBuffer, "CALIBRATION
");
enterCalibrationFlag = 1;
acidCalibrationFinish = 0;
alkaliCalibrationFinish = 0;
Serial.println(F("Enter Calibration Mode"));
break;

19
case 2:
if(enterCalibrationFlag)
{
receivedBufferPtr=strstr(receivedBuffer, "ACID:")
;
receivedBufferPtr+=strlen("ACID:");
acidValueTemp = strtod(receivedBufferPtr,NULL);
if((acidValueTemp>3)&&(acidValueTemp<5)) /
/typical ph value of acid standand buffer solution should b
e 4.00
{
acidValue = acidValueTemp;
acidVoltage = averageVoltage/1000.0; //
mV -> V
acidCalibrationFinish = 1;
Serial.println(F("Acid Calibration Successful"
));
}else {
acidCalibrationFinish = 0;
Serial.println(F("Acid Value Error"));
}
}
break;

case 3:
if(enterCalibrationFlag)
{
receivedBufferPtr=strstr(receivedBuffer, "ALKALI
:");
receivedBufferPtr+=strlen("ALKALI:");

20
alkaliValueTemp = strtod(receivedBufferPtr,NULL)
;
if((alkaliValueTemp>8)&&(alkaliValueTemp<11))
//typical ph value of alkali standand buffer solution shoul
d be 9.18 or 10.01
{
alkaliValue = alkaliValueTemp;
alkaliVoltage = averageVoltage/1000.0;
alkaliCalibrationFinish = 1;
Serial.println(F("Alkali Calibration Succe
ssful"));
}else{
alkaliCalibrationFinish = 0;
Serial.println(F("Alkali Value Error"));
}
}
break;

case 4:
if(enterCalibrationFlag)
{
if(acidCalibrationFinish && alkaliCalibrationFi
nish)
{
newSlopeValue = (acidValue-alkaliValue)/(acid
Voltage - alkaliVoltage);
EEPROM_write(SlopeValueAddress, newSlopeValue
);
newInterceptValue = acidValue - (slopeValue*a
cidVoltage);
EEPROM_write(InterceptValueAddress, newInterc
eptValue);

21
Serial.print(F("Calibration Successful"));
}
else Serial.print(F("Calibration Failed"));
Serial.println(F(",Exit Calibration Mode"));
acidCalibrationFinish = 0;
alkaliCalibrationFinish = 0;
enterCalibrationFlag = 0;
}
break;
}
}

int getMedianNum(int bArray[], int iFilterLen)


{
int bTab[iFilterLen];
for (byte i = 0; i<iFilterLen; i++)
{
bTab[i] = bArray[i];
}
int i, j, bTemp;
for (j = 0; j < iFilterLen - 1; j++)
{
for (i = 0; i < iFilterLen - j - 1; i++)
{
if (bTab[i] > bTab[i + 1])
{
bTemp = bTab[i];
bTab[i] = bTab[i + 1];
bTab[i + 1] = bTemp;

22
}
}
}
if ((iFilterLen & 1) > 0)
bTemp = bTab[(iFilterLen - 1) / 2];
else
bTemp = (bTab[iFilterLen / 2] + bTab[iFilterLen / 2
- 1]) / 2;
return bTemp;
}

void readCharacteristicValues()
{
EEPROM_read(SlopeValueAddress, slopeValue);
EEPROM_read(InterceptValueAddress, interceptValue);
if(EEPROM.read(SlopeValueAddress)==0xFF && EEPROM.read(
SlopeValueAddress+1)==0xFF && EEPROM.read(SlopeValueAddress
+2)==0xFF && EEPROM.read(SlopeValueAddress+3)==0xFF)
{
slopeValue = 3.5; // If the EEPROM is new, the reco
mmendatory slope is 3.5.
EEPROM_write(SlopeValueAddress, slopeValue);
}
if(EEPROM.read(InterceptValueAddress)==0xFF && EEPROM.r
ead(InterceptValueAddress+1)==0xFF && EEPROM.read(Intercept
ValueAddress+2)==0xFF && EEPROM.read(InterceptValueAddress+
3)==0xFF)
{
interceptValue = 0; // If the EEPROM is new, the rec
ommendatory intercept is 0.
EEPROM_write(InterceptValueAddress, interceptValue);
}

23
}

24
3.4. Informe semana 4
Investigación de los distintos métodos de calibración para el sensor

 Método 2. Calibración de hardware mediante potenciómetro


1. Conecte de acuerdo con el gráfico, es decir, el electrodo de pH se conecta al
conector BNC en la tarjeta del medidor de pH y, a continuación, utilice las
líneas de conexión, la tarjeta del medidor de pH se conecta al puerto analógico 0
del controlador Arduino. Cuando el controlador Arduino recibe alimentación,
verá que el LED azul de la placa está encendido.
2. Cargue el código de ejemplo en el controlador Arduino.
3. Coloque el electrodo de pH en la solución estándar cuyo valor de pH es 7,00, o
cortocircuite directamente la entrada del conector BNC. Abra el monitor en serie
del IDE de Arduino, puede ver el valor de pH impreso en él y el error no excede
de 0.3. Registre el valor del pH impreso, luego compare con 7,00, y la diferencia
debe cambiarse en el "Offset" en el código de muestra. Por ejemplo, el valor de
pH impreso es 6,88, por lo que la diferencia es de 0,12. Debe cambiar # define
Offset 0.00 en # define Offset 0.12 en el código de ejemplo.
4. Ajuste fino
o Solución de ácido: Coloque el electrodo de pH en la solución estándar de
pH cuyo valor es 4,00. Luego espere un minuto, ajuste el dispositivo
Gain Potential, deje que el valor se estabilice alrededor de las 4.00. En
este momento, la calibración ácida se ha completado y se puede medir el
valor de pH de una solución ácida.
o Para la solución alcalina: Según las características lineales del electrodo
de pH en sí, después de la calibración anterior, puede medir directamente
el valor de pH de la solución alcalina, pero si desea obtener una mayor
precisión, puede recalibrar con la solución estándar, PH = 9,18. También
ajuste el dispositivo de potencial de ganancia, deje que el valor se
estabilice en torno a 9.18. Después de esta calibración, puede medir el
valor de pH de la solución alcalina.

Ejemplo código: Calibración del Hardware

/*
# This sample code is used to test the pH meter V1.0.

25
# Editor : YouYou
# Ver : 1.0
# Product: analog pH meter
# SKU : SEN0161
*/
#define SensorPin A0 //pH meter Analog output to
Arduino Analog Input 0
#define Offset 0.00 //deviation compensate
#define LED 13
#define samplingInterval 20
#define printInterval 800
#define ArrayLenth 40 //times of collection
int pHArray[ArrayLenth]; //Store the average value of the
sensor feedback
int pHArrayIndex=0;
void setup(void)
{
pinMode(LED,OUTPUT);
Serial.begin(9600);
Serial.println("pH meter experiment!"); //Test the ser
ial monitor
}
void loop(void)
{
static unsigned long samplingTime = millis();
static unsigned long printTime = millis();
static float pHValue,voltage;
if(millis()-samplingTime > samplingInterval)
{
pHArray[pHArrayIndex++]=analogRead(SensorPin);

26
if(pHArrayIndex==ArrayLenth)pHArrayIndex=0;
voltage = avergearray(pHArray, ArrayLenth)*5.0/1024;
pHValue = 3.5*voltage+Offset;
samplingTime=millis();
}
if(millis() - printTime > printInterval) //Every 800 mi
lliseconds, print a numerical, convert the state of the LED
indicator
{
Serial.print("Voltage:");
Serial.print(voltage,2);
Serial.print(" pH value: ");
Serial.println(pHValue,2);
digitalWrite(LED,digitalRead(LED)^1);
printTime=millis();
}
}
double avergearray(int* arr, int number){
int i;
int max,min;
double avg;
long amount=0;
if(number<=0){
Serial.println("Error number for the array to avraging!
/n");
return 0;
}
if(number<5){ //less than 5, calculated directly statis
tics
for(i=0;i<number;i++){
amount+=arr[i];

27
}
avg = amount/number;
return avg;
}else{
if(arr[0]<arr[1]){
min = arr[0];max=arr[1];
}
else{
min=arr[1];max=arr[0];
}
for(i=2;i<number;i++){
if(arr[i]<min){
amount+=min; //arr<min
min=arr[i];
}else {
if(arr[i]>max){
amount+=max; //arr>max
max=arr[i];
}else{
amount+=arr[i]; //min<=arr<=max
}
}//if
}//for
avg = (double)amount/(number-2);
}//if
return avg;
}

28
Determinamos que el mejor método de calibración es el que sea realiza mediante
software.

29
ANÁLISIS DE RESULTADOS
De acuerdo a las procesos que se fue realizando respecto al trabajo, fue muy fructífera
que gracias a ello se pudo obtener experiencias a través de fallas y accidentes que se
tuvo, principalmente en la forma de calibración del sensor lo cual era una nueva forma
de recalibrarlo pero fue logrado realizado con eficacia, en fin muchos aspectos
constructivos nos ayudó a desarrollarlo.

CONCLUSIONES
 El sensor q se usará es el SN106 ya que brinda características y un costo
confiable y accesibles.
 La comunicación que tendrá el sistema será Wifi ya que presenta un mayor
rango de alcance en comparación del Bluetooth.
 La calibración del sensor de realizó mediante el programa de Arduino ya que
mantiene los datos de calibración guardados en la EEPROM , evitando que los
valores cambien al calibrar mediante el potenciómetro manualmente

RECOMENDACIONES
 Es necesario conocer las características de cada elemento, especialmente del
sensor que estamos utilizando, para no dañarle, que es complicado conseguir
este señor y muy costoso.
 Tener en cuenta como es el comportamiento del nivel de PH para poder obtener
los datos de una manera correcta, caso contrario no se obtendrá resultados
favorables.

30
REFERENCIAS

[1]. «¿Qué es Arduino?», Arduino.cl. .


[2]. «pH y alcalinidad». [En línea]. Disponible en: http://www.lenntech.es/ph-
y-alcalinidad.htm. [Accedido: 05-dic-2016].
[3]. «PH meter(SKU: SEN0161) - Robot Wiki». [En línea]. Disponible en:
https://www.dfrobot.com/wiki/index.php/PH_meter(SKU:_SEN0161).
[Accedido: 05-dic-2016].

[4]. «MATLAB - El lenguaje del cálculo técnico - MATLAB & Simulink». [En
línea]. Disponible en: https://es.mathworks.com/products/matlab.html.
[Accedido: 05-dic-2016].

Estudio del arte


[5]. Del, M. (n.d.). IMPLEMENTACIÓN Y ESTABLECIMIENTO DEL
SISTEMA SECUNDARIO DE MEDICION DEL pH EN COLOMBIA, (1),
1–7.
[6]. Torres, M. (n.d.). SISTEMA DE REFERENCIA DE MEDICIÓN DE pH,
(014), 5–8.
[7]. Wifi - Wikipedia, la enciclopedia libre. (s. f.). Recuperado 18 de enero de
2017, a partir de
https://es.wikipedia.org/wiki/Wifi#Ventajas_y_desventajas
[8]. Bluetooth - Wikipedia, la enciclopedia libre. (s. f.). Recuperado 18 de
enero de 2017, a partir de
https://es.wikipedia.org/wiki/Bluetooth#Informaci.C3.B3n_t.C3.A9cnica
[9]. MODULO ARDUINO WIFI SHIELD SD. (s. f.). Recuperado 18 de enero
de 2017, a partir de
http://www.electronicaembajadores.com/Productos/Detalle/23/LCA1SOO
/modulo-arduino-wifi-shield-sd
[10]. MODULO ARDUINO BLUETOOTH SHIELD v2
(«113030019»,«SLD63030P»). (s. f.). Recuperado 18 de enero de 2017,
a partir de
http://www.electronicaembajadores.com/Productos/Detalle/23/LCA1SVV/
modulo-arduino-bluetooth-shield-v2
[11]. PH meter(SKU: SEN0161) - Robot Wiki. (s. f.). Recuperado 18 de

enero de 2017, a partir de

https://www.dfrobot.com/wiki/index.php/PH_meter(SKU:_SEN0161)

31
[12]. PH meter(SKU: SEN0161) - Robot Wiki. (s. f.). Recuperado 18 de

enero de 2017, a partir de

https://www.dfrobot.com/wiki/index.php/PH_meter(SKU:_SEN0161)

32
ANEXOS

33
Evidencia del trabajo

34

Das könnte Ihnen auch gefallen