// Pantalla para mostrar la presion en base al voltaje del Data Logger SURE-Honeywell
// Version 4.1 NodeMCU
// Incluye, LCD 16x2, Sensor de voltaje, RTC DS3231.
const int sensorPin = A0; // seleccionar la entrada para el sensor
int sensorValue; // variable que almacena el valor raw (0 a 1023)
float value; // variable que almacena el voltaje (-10.00 a 10.00)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DS3231.h>
#include <SD.h>
//#include "ESP8266WiFi.h" //Libreria para Wi-Fi
#include <SPI.h>
//const char* ssid = "suresa"; //escribe el nombre de la red entre las comillas
//const char* password = "@@suresa%%"; //aqui se escribe la contraseña entre las comillas
LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x27 for a 16 chars and 2 line display
DS3231 myRTC;// Init the DS3231 using the hardware interface
bool century = false;
bool h12Flag;
bool pmFlag;
void setup() {
Serial.begin(9600);
lcd.init(); // initialize the lcd
Wire.begin();
}
void loop() {
sensorValue = analogRead(sensorPin); // realizar la lectura del sensor
value = fmap(sensorValue, 134.65, 673.250, -10.00, 10.00); // cambiar escala a -10.00 - 10.00
//value = fmap(sensorValue, 130.897, 654.4850, -10.00, 10.00); // cambiar escala a -10.00 - 10.00
Serial.begin(9600);
Serial.print(value);
//Serial.println();
Serial.print(" pca ");
Serial.print(myRTC.getYear(), DEC);
Serial.print("-");
Serial.print(myRTC.getMonth(century), DEC);
Serial.print("-");
Serial.print(myRTC.getDate(), DEC);
Serial.print(" ");
Serial.print(myRTC.getHour(h12Flag, pmFlag), DEC); //24-hr
Serial.print(":");
Serial.print(myRTC.getMinute(), DEC);
Serial.print(" ");
Serial.print(sensorValue/67.325);
//Serial.print(sensorValue/64.4485);
Serial.print(" volts");
Serial.println();
//Serial.print(":");
//Serial.println(myRTC.getSecond(), DEC);
//inicia mensajes de display LCD
lcd.backlight();
//Inicia Linea 0
lcd.setCursor(0,0);
lcd.print(myRTC.getDate(), DEC);
lcd.setCursor(2, 0);
lcd.print("-");
lcd.setCursor(3,0);
lcd.print(myRTC.getMonth(century), DEC);
lcd.setCursor(5,0);
lcd.print("-");
lcd.setCursor(6,0);
lcd.print(myRTC.getYear(), DEC);
lcd.setCursor(10,0);
lcd.print(myRTC.getHour(h12Flag, pmFlag), DEC); //24-hr
lcd.setCursor(12,0);
lcd.print(":");
lcd.setCursor(13,0);
lcd.print(myRTC.getMinute(), DEC);
//Serial.print(":");
//Serial.println(myRTC.getSecond(), DEC);
// Print a message to the LCD. Linea 2
//lcd.backlight();
//lcd.setCursor(0,0);
//lcd.print("Presion");
//lcd.setCursor(10,0);
//lcd.print(sensorValue/65.4485);
//lcd.setCursor(14,0);
//lcd.print("v");
//Inicia Linea 1
lcd.setCursor(13,1); //LINEA 1
lcd.print("v41");
lcd.setCursor(1,1);
lcd.print(value);
lcd.setCursor(6,1);
lcd.print("pca");
delay(1000);
//Inicia código para escribir en SD el archivo Presion.csv
}
// cambio de escala entre floats
float fmap(float x, float in_min, float in_max, float out_min, float out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}