#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
//#include <Fonts/FreeSerif9pt7b.h>
#include "icon.h"
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1
byte ceu = 6;
Adafruit_SSD1306 display = Adafruit_SSD1306(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
void desenharIcone(const uint8_t *bitmap) {
display.drawBitmap(78, 14, bitmap, 50, 50, WHITE);
}
void icon_situacao() {
switch (ceu) {
case 1:
case 4:
desenharIcone(dia_limpo);
break;
case 2:
desenharIcone(dia_nublado);
break;
case 3:
desenharIcone(dia_chuva);
break;
default:
desenharIcone(dia_indefinido);
break;
}
}
void monta_display() {
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(SSD1306_WHITE);
display.setCursor(3, 5);
display.cp437(true);
display.print("32");
display.println("c");
display.setCursor(20,37);
display.print("86");
display.println("%");
display.setTextSize(1);
display.drawBitmap(112, 0, bitmap_icon_battery, 16, 16, WHITE);
icon_situacao();
display.display();
}
void setup() {
Serial.begin(115200);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
//display.setFont(&FreeSerif9pt7b);
monta_display();
}
void loop() {
}