//Oil by Iconic from <a href="https://thenounproject.com/browse/icons/term/oil/" target="_blank" title="Oil Icons">Noun Project</a> (CC BY 3.0)
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <U8g2lib.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C //0x3D ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
//Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0);
const unsigned char logo [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x0f, 0x00, 0x00, 0xe0, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0xfe, 0xff, 0xff, 0x7f, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xfc, 0xff, 0xff, 0x3f, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0x01, 0x80, 0x1f, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0x01, 0x80, 0x1f, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0x03, 0x80, 0x3f, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0x73, 0xfc, 0x03, 0xc0, 0x3f, 0xce, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0xfb, 0xff, 0x03, 0xc0, 0xff, 0xdf, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0xff, 0x07, 0xe0, 0xff, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x70, 0xfc, 0xff, 0x07, 0xe0, 0xff, 0x3f, 0x0e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x78, 0xf8, 0xff, 0x07, 0xe0, 0xff, 0x1f, 0x1e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x38, 0xf0, 0xff, 0x0f, 0xe0, 0xff, 0x1f, 0x1c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3c, 0xf0, 0xff, 0x0f, 0xf0, 0xff, 0x0f, 0x3c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1c, 0xe0, 0xff, 0x0f, 0xf0, 0xff, 0x07, 0x38, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1e, 0xc0, 0xff, 0x0f, 0xf0, 0xff, 0x07, 0x78, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0e, 0xc0, 0xff, 0x0f, 0xf0, 0xff, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0e, 0x80, 0xff, 0x0f, 0xf0, 0xff, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0xff, 0x0f, 0xf0, 0xff, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xff, 0x0f, 0xf0, 0xff, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0xff, 0x0f, 0xf0, 0xff, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0xfe, 0x0f, 0xf0, 0xff, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0, 0x0f, 0xf0, 0x0f, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xe0, 0x0f, 0xf0, 0x07, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xe0, 0x0f, 0xf0, 0x07, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0x0f, 0xf0, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0xf8, 0x0f, 0xf0, 0x3f, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xf8, 0x0f, 0xf0, 0x1f, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xf8, 0x0f, 0xf0, 0x1f, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0xf8, 0x07, 0xe0, 0x1f, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x07, 0xe0, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xf0, 0x07, 0xe0, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xf0, 0x07, 0xe0, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xf0, 0x07, 0xe0, 0x0f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xf0, 0x07, 0xe0, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf0, 0x03, 0xc0, 0x0f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe0, 0x03, 0xc0, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0x03, 0xc0, 0x8f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf3, 0x01, 0x80, 0x8f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf3, 0x01, 0x80, 0xcf, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xe0, 0x07, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfc, 0x3f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x7c, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char oil [] PROGMEM = {
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xf0, 0x03, 0x00, 0x00, 0x00, 0xfc, 0xc1, 0x00, 0x00,
0x00, 0x00, 0xfe, 0xc3, 0x00, 0x00, 0x3f, 0x00, 0xfe, 0xff, 0x1f, 0xe0, 0x63, 0x00, 0xfe, 0xff,
0x3f, 0xfe, 0x01, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x40, 0x00,
0x00, 0xff, 0xff, 0x3f, 0x40, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xe0, 0x00, 0x00, 0xff, 0xff, 0x0f,
0xe0, 0x00, 0x00, 0xff, 0xff, 0x07, 0xe0, 0x01, 0x00, 0xff, 0xff, 0x03, 0xe0, 0x00, 0x00, 0xff,
0xff, 0x01, 0x00, 0x00
};
#define PRESSURE_SENSOR_PIN 0
void setup() {
//Serial.begin(115200);
Wire.begin(2,3);
u8g2.begin();
u8g2.clearBuffer();
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_fub14_tf);
//u8g2.drawStr(0, 29, "Monday");
u8g2.drawXBMP(0, 0, 128, 64, logo);
} while ( u8g2.nextPage() );
delay(3000);
u8g2.clearBuffer();
}
void loop() {
int sensorValue = analogRead(PRESSURE_SENSOR_PIN);
float voltage = sensorValue * (5.0 / 4095.0);
float pressure = voltage * (10.0 / 5.0);
u8g2.clearBuffer();
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_fub35_tf);
// Convert sensor value and pressure to strings
char sensorValueStr[5];
char pressureStr[5];
// Format the sensor value and pressure to display
snprintf(sensorValueStr, sizeof(sensorValueStr), "Raw: %d", sensorValue);
snprintf(pressureStr, sizeof(pressureStr), "%.2f", pressure);
// Display the sensor value and pressure on the OLED
//u8g2.drawStr(0, 15, sensorValueStr);
u8g2.drawStr(14, 40, pressureStr);
//u8g2.setFont(u8g2_font_fub14_tf);
//u8g2.drawStr(30, 63, "OIL");
u8g2.drawXBMP(45, 47, 42, 14, oil);
//u8g2.drawStr(0,15,sensorValue);
} while ( u8g2.nextPage() );
// Optional: Print to the Serial Monitor for debugging
//Serial.print("Sensor Value: ");
//Serial.println(sensorValue);
//Serial.print("Pressure: ");
//Serial.println(pressure);
delay(50);
}