#include <GyverOLED.h>
GyverOLED<SSD1306_128x64, OLED_NO_BUFFER> oled;
const byte BTN_LEFT = 9;
const byte BTN_MIDDLE = 10;
const byte BTN_RIGHT = 11;
// ====== Дребезг ======
unsigned long lastPressLeft = 0;
unsigned long lastPressMiddle = 0;
unsigned long lastPressRight = 0;
const unsigned long debounceTime = 200;
void setup() {
pinMode(BTN_LEFT, INPUT_PULLUP);
pinMode(BTN_MIDDLE, INPUT_PULLUP);
pinMode(BTN_RIGHT, INPUT_PULLUP);
oled.init(); // Инициализация ОДИН РАЗ при старте
oled.clear(); // Очищаем дисплей
// setMainDisplay();
}
void loop() {
unsigned long now = millis();
// if (digitalRead(BTN_LEFT) == LOW && now - lastPressLeft > debounceTime) {
// Serial.println("Leftt button pressed!");
// lastPressLeft = now;
// leftBtn();
// }
// if (digitalRead(BTN_MIDDLE) == LOW && now - lastPressMiddle > debounceTime) {
// Serial.println("Middle button pressed!");
// lastPressMiddle = now;
// middleBtn();
// }
// if (digitalRead(BTN_RIGHT) == LOW && now - lastPressRight > debounceTime) {
if (digitalRead(BTN_RIGHT) == LOW) {
Serial.println("Right button pressed!");
lastPressRight = now;
rightBtn();
delay(200);
}
}
void leftBtn() {
}
void middleBtn() {
}
// Кнопка отвечает за вход в выбор настроек
void rightBtn() {
oled.clear(); // очистка
oled.setScale(1); // масштаб текста (1..4)
oled.home(); // курсор в 0,0
oled.setCursor(38, 0);
oled.print("Настроки");
}
int getHumidity() {
return 47;
}
void setMainDisplay() {
oled.init(); // инициализация
oled.clear(); // очистка
oled.setScale(1); // масштаб текста (1..4)
oled.home(); // курсор в 0,0
oled.setCursor(38, 0);
oled.print("Влажность");
// delay(1000);
oled.setScale(1);
// курсор на начало 3 строки
// oled.setCursor(0, 3);
// oled.print("Влажность почвы: 47%");
// oled.setCursor(0, 4);
// oled.print("Влажность полива: 30%");
// oled.print("GyverOLED v1.3.2");
// oled.setCursor(0, 5);
// oled.print("Проверка раз в: 24 ч.");
// курсор на (20, 50)
// oled.setCursorXY(20, 50);
// float pi = 3.14;
// oled.setCursor(0, 6);
// oled.print("Посл. полив: 37 мин.");
// oled.print(pi);
oled.setScale(3);
oled.setCursor(40, 2);
String humidity = String(getHumidity()) + "%";
oled.print(humidity);
oled.setScale(1);
oled.setCursor(15, 6);
oled.print("Полив: через 12:59");
}