// LED
#include <Adafruit_NeoPixel.h>
//#include <avr/power.h>
#define PIN 12
#define NUMPIXELS 1
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
// Globale Variablen definieren
int delayval = 200;
// Display
#include "U8g2lib.h"
// Uhr
#include <Wire.h>
#include <uRTCLib.h>
// Displaytyp
// Wokwi: normales 1306 Display (einzig verfügbares in Wokwi)
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);
// Real-Aufbau: relativ großes LCD-Display bei dem man das Backlight entfernen kann
//U8G2_ST7565_ERC12864_ALT_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 18, /* data=*/ 19, /* cs=*/ 15, /* dc=*/ 17, /* reset=*/ 16);
// Uhr ID
uRTCLib rtc(0x68);
char tag[7][4] = {"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"};
char monat[12][4] = {"JAN", "FEB", "MAR", "APR", "MAI", "JUN", "JUL", "AUG", "SEP", "OKT", "NOV", "DEZ"};
void setup() {
// LED
Serial.begin(112500); // Öffnet die serielle Schnittstelle bei 9600 Bit/s:
pixels.begin();
// Display
u8g2.setColorIndex(1);
u8g2.begin();
u8g2.setContrast(60);
// Uhr
URTCLIB_WIRE.begin();
}
void loop() {
// LED
pixels.setPixelColor(0, pixels.Color(230,80,0));
pixels.show(); // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
char bufferClock1[20],bufferClock2[20],bufferClock3[20],bufferClock4[20], bufferDate[30], bufferVoltage[10], bufferTemp[10];
sprintf(bufferDate, "%s %02d%s%02d%s%02d",tag[rtc.dayOfWeek()-1], rtc.day(),".", rtc.month(),".", rtc.year());
//sprintf(bufferDate, "%02d %02d %02d %02d",rtc.dayOfWeek(), rtc.day(), rtc.month(), rtc.year());
//sprintf(bufferClock, "%02d:%02d", rtc.hour(), rtc.minute());
sprintf(bufferClock1, "%02d", rtc.hour());
sprintf(bufferClock2, "%02d", rtc.minute());
u8g2.clearBuffer();
rtc.refresh();
//u8g2.drawLine(5, 28, 123, 28);
//u8g2.drawLine(64, 28, 64, 3);
u8g2.setFont(u8g2_font_7Segments_26x42_mn);
// u8g2.drawStr(5, 24, "12.55");
// u8g2.drawStr(70, 24, "30.55");
u8g2.drawStr(0, 42, bufferClock1);
//u8g2.drawStr(0, 42, "00");
u8g2.drawStr(58, 42, ":");
//u8g2.drawStr(70, 42, "00");
u8g2.drawStr(70, 42, bufferClock2);
u8g2.setFont(u8g2_font_8x13_mf);
// u8g2.setFont(u8g2_font_6x13_tf);
//u8g2.drawStr(54, 24, "v");
//u8g2.drawStr(118, 24, "c");
u8g2.drawStr(0, 64, bufferDate);
// u8g2.drawXBMP(5, 0, 12, 9, epd_bitmap_batt_logo_pixel);
// u8g2.drawXBMP(70, 0, 11, 9, epd_bitmap_temp_logo_pixel);
u8g2.sendBuffer();
delay(3000);
}