#include <OneWire.h> //Incluímos todas las librerías necesarias en el proyecto
#include <DallasTemperature.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
#define TEMPERATURE_PRECISION 12 //definimos la resolución del DS18b20 (9-12 bits)
#define ONE_WIRE_BUS 4 //definimos el pin para el bus OneWire
Adafruit_SSD1306 display(OLED_RESET); //Inicializamos las librerías
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int sensorPin = A0; //definimos las variables
float tdsValue;
float tds = tdsValue/1024*434.78;
float temp = sensors.getTempCByIndex(0);
void setup(void){
Serial.begin(115200); //Inicializamos el puerto serial a 115200 bps
sensors.begin(); //Inicializamos el DS18b20
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //inicializamos la pantalla OLED
display.clearDisplay();
}
void loop(void){
lectura_sensores();
Serial.print("Temp: "); //Imprimimos los valores por el puerto serial
Serial.println(temp);
Serial.print("PPM: ");
Serial.println(tds);
display.clearDisplay(); //configuramos la pantalla OLED e Imprimimos los valores
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0); //cambiamos la posición del cursor a la primera línea
display.print("PPM: "); //enviamos los valores del sensor TDS al OLED
display.println(tds);
display.print("TEMP: "); //enviamos los valores al OLED
display.print(temp);
display.display(); //Imprimimos los valores en la pantalla OLED
delay(1000); //esperamos 1 Seg ya que no es necesario el refresco constante de las variables
}
void lectura_sensores(void){
tdsValue = analogRead(sensorPin); //Leemos el pin A0 con el ADC y lo escribimos sobre la variable
sensors.requestTemperatures(); //Solicitamos la temperatura al DS18b20
}