//#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
long ChangeScreen=0;
unsigned long ScreenLastTime=0;
long ScreenSelect = 0;
int UV = 180;
int OV = 260;
int VT = 5500;
int OCS = 25;
int IT = 6000;
int RV = 248;
int YV = 252;
int BV = 238;
int RI = 25;
int YI = 06;
int BI = 38;
int T = 59;
void setup()
{
Serial.begin(115200);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// Clear the buffer
display.clearDisplay();
// Display Text
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 28);
display.println("Hello... Hashva!");
display.display();
display.clearDisplay();
delay(1000);
}
void loop()
{
if(millis()-ChangeScreen>3000)
{
ScreenSelect+=1;
ChangeScreen=millis();
}
if(millis()-ScreenLastTime>500)
{
ScreenLastTime = millis();
if((ScreenSelect%4)==0)
{ displayVITVals(); } //POT values for UV, OV, Timedelay and OCS
else if( (ScreenSelect%4)==1)
{ displayVIStatus(); } //Instantaenous Voltage, Current and relay status
else if( (ScreenSelect%4)==2)
{ displayTemp(); } //Panel temperature
}
}
void displayVITVals()
{
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 5);
display.println("Set: UV OV OCS");
display.setCursor(32, 17);
display.println(UV);
display.setCursor(65, 17);
display.println(OV);
display.setCursor(101, 17);
display.println(OCS);
display.setCursor(0, 35);
display.println("V.DelayT: ");
display.setCursor(54, 35);
display.println(VT);
display.setCursor(90, 35);
display.println("~ms");
display.setCursor(0, 55);
display.println("I.DelayT: ");
display.setCursor(54, 55);
display.println(IT);
display.setCursor(90, 55);
display.println("~ms");
display.display();
ScreenLastTime = millis();
}
void displayVIStatus()
{
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.drawCircle(8, 15, 8, WHITE);
display.drawCircle(8, 38, 8, WHITE);
display.setCursor(6, 12);
display.println("V");
display.setCursor(6, 34);
display.println("A");
display.setCursor(0, 0);
display.println(" R Y B");
display.setCursor(29, 12);
display.println(RV);
display.setCursor(65, 12);
display.println(YV);
display.setCursor(101, 12);
display.println(BV);
display.setCursor(29, 34);
display.println(RI);
display.setCursor(65, 34);
display.println(YI);
display.setCursor(101, 34);
display.println(BI);
display.setCursor(0, 55);
display.println("STS:");
display.display();
ScreenLastTime = millis();
}
void displayTemp()
{
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 10);
display.println("WiFi:");
display.setCursor(0, 30);
display.println("Panel Temp: *C");
display.setCursor(67, 30);
display.println(T);
display.setCursor(0, 50);
display.println("Cooling Fan:");
display.display();
ScreenLastTime = millis();
}