// Learn about the ESP32 WiFi simulation in
// https://docs.wokwi.com/guides/esp32-wifi
#include <WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
#define NTP_SERVER "tock.stdtime.gov.tw"
#define UTC_OFFSET 0
#define UTC_OFFSET_DST 0
#define METER_PIN 13
#define RELAY_PIN 12
void spinner() {
static int8_t counter = 0;
const char* glyphs = "\xa1\xa5\xdb";
int i = 0;
while(i > 0) {
LCD.setCursor(i, 1);
LCD.print(glyphs[counter++]);
}
if (counter == strlen(glyphs)) {
counter = 0;
}
}
void readknob() {
int value = analogRead(METER_PIN);
value = map(value, 0, 4095, 0, 100);
// int brightness = 2.5 * value;
// digitalWrite(RELAY_PIN, brightness);
if (value == 100) {
digitalWrite(RELAY_PIN, HIGH);
} else {
digitalWrite(RELAY_PIN, LOW);
}
LCD.setCursor(7, 0);
LCD.println(value);
Serial.println(value);
}
void setup() {
Serial.begin(115200);
pinMode(METER_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
}
void loop() {
readknob();
spinner();
delay(100);
}