// 228
// นาย อาทิตย์ สายหล้า
// กดPushbutton และ NeoPixel Ring จะสว่าง
// แสดงวันเดือนปีขึ้นจอ LCD
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_NeoPixel.h>
#include "EasyButton.h"
#include "led.h"
#define I2C_ADDR 0X27
#define LCD_COLUMNS 16
#define LCD_LINES 2
#define NUM_LEDS 18
#define LED_PIN 3
#define BUTTON_GREEN 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
Adafruit_SSD1306 display(128, 64, &Wire, 4);
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB);
EasyButton button(BUTTON_GREEN);
uint32_t color = strip.Color(75, 250, 100);
RTC_DS1307 rtc;
String dow[7] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
void onPressed(){
for(int i=33; i>0; i--)
strip.setPixelColor(i-6, color);
strip.show();
delay(40);
}
void setup() {
Serial.begin(115200);
rtc.begin();
lcd.begin(20, 4);
lcd.backlight();
strip.begin();
strip.show();
strip.setBrightness(1000);
button.begin();
button.onPressed(onPressed);
}
void loop() {
DateTime now = rtc.now();
int dd = now.day();
int mm = now.month();
int yy = now.year();
int hr = now.hour();
int mn = now.minute();
int sc = now.second();
String dw = dow[now.dayOfTheWeek()];
char buff[11];
String d, t;
sprintf(buff, "%02d/%02d/%d", dd, mm, yy);
d = String(buff);
sprintf(buff, "%02d:%02d:%02d", hr, mn, sc);
t = String(buff);
lcd.setCursor(0,0);
lcd.print(d);
lcd.setCursor(0,1);
lcd.print(t);
button.read();
}