From cf2cb913145a6e6f4ccde89bb4b49f62d342b656 Mon Sep 17 00:00:00 2001 From: sieja Date: Wed, 30 Jul 2025 21:58:29 +0200 Subject: [PATCH] =?UTF-8?q?+=20wy=C5=9Bwietlacz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ESP32/LampkiBalkon/LampkiBalkon.ino | 46 +++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/ESP32/LampkiBalkon/LampkiBalkon.ino b/ESP32/LampkiBalkon/LampkiBalkon.ino index 632bde0..e922939 100644 --- a/ESP32/LampkiBalkon/LampkiBalkon.ino +++ b/ESP32/LampkiBalkon/LampkiBalkon.ino @@ -1,10 +1,20 @@ #include #include +#include +#include +#define Version "0.1.0" #define PinLED 2 // on-board LED #define IN1 32 #define IN2 14 +#define SCREEN_WIDTH 128 +#define SCREEN_HEIGHT 32 +#define OLED_RESET -1 +#define SCREEN_ADDRESS 0x3C + +Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); + BH1750 lightMeter; void setup() { @@ -12,6 +22,20 @@ void setup() { Wire.begin(); lightMeter.begin(); + if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { + Serial.println(F("SSD1306 allocation failed")); + } + + display.setTextSize(1); + display.setTextColor(SSD1306_WHITE); + display.clearDisplay(); + display.setCursor(0, 0); + display.println("Version:"); + display.setCursor(60, 0); + display.println(Version); + display.display(); + + pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(PinLED, OUTPUT); @@ -65,16 +89,34 @@ void pulsujNaprzemiennie(int czasSekundy) { } void loop() { + display.clearDisplay(); + uint16_t lux = lightMeter.readLightLevel(); Serial.print("Light: "); Serial.print(lux); Serial.println(" lx"); - if (lux < 10) { + + display.setCursor(0, 0); + display.println("Luxy:"); + display.setCursor(40, 0); + display.println(lux); + + if (lux < 10 && lux >= 1) { digitalWrite(PinLED, LOW); pulsujNaprzemiennie(5); // cykl trwa teraz 5 sekund + display.setCursor(0, 10); + display.println("Pulsowanie"); } else { digitalWrite(PinLED, HIGH); - delay(5 000); + display.setCursor(0, 10); + display.println("OFF"); + if (lux < 1) { + display.setCursor(0, 20); + display.println("Zbyt ciemno"); + } + delay(500); } + display.display(); + }