цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Автоматизированная система светодиодного освещения с часами реального времени на основе ESP32



Автоматизированная система светодиодного освещения с часами реального времени на основе ESP32

Автор: Mike(admin) от 15-05-2024, 03:55

В этом проекте мы создадим автоматизированную систему светодиодного освещения с использованием микроконтроллерной платы ESP32 C3-Mini, модуля часов реального времени (RTC) и OLED-дисплея. Система автоматически включит светодиод в определенное время и выключит его в другое время, основываясь исключительно на времени, полученном от модуля RTC.


Автоматизированная система светодиодного освещения с часами реального времени на основе ESP32

Эта автономная система не требует подключения к Wi-Fi, что делает ее подходящей для случаев, когда доступ в Интернет недоступен или нежелателен.


Подключите компоненты системы в соответствии со следующей схемой подключения:


Автоматизированная система светодиодного освещения с часами реального времени на основе ESP32

Установите необходимые библиотеки: Wire, RTClib, Adafruit_GFX и Adafruit_SSD1306. Обязательно включите эти библиотеки в свою среду разработки Arduino. Скопируйте предоставленный код Arduino в вашу Arduino IDE. При необходимости отрегулируйте определение контактов светодиода (по умолчанию — контакт 4).



#include <Wire.h>                
#include <RTClib.h>              
#include <Adafruit_GFX.h>        
#include <Adafruit_SSD1306.h>    

#define SCREEN_WIDTH 128        
#define SCREEN_HEIGHT 64        

#define OLED_RESET    -1       
#define SCREEN_ADDRESS 0x3C     

#define LED_PIN 4               

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
RTC_DS3231 rtc;                                                           

void setup() {
  Serial.begin(9600);           
  
  pinMode(LED_PIN, OUTPUT);      
  
  if (!rtc.begin()) {           
    Serial.println("Couldn't find RTC");  
    while (1);                 
  }

  if (rtc.lostPower()) {        
    Serial.println("RTC lost power, let's set the time!"); 
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));       
  }

  if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { 
    Serial.println(F("SSD1306 allocation failed"));        
    for (;;);                                             
  }

  display.display();            
  delay(2000);               
  display.clearDisplay();       
}

void loop() {
  DateTime now = rtc.now();    
  
  display.clearDisplay();      
  display.setTextSize(1);      
  display.setTextColor(SSD1306_WHITE); 
  display.setCursor(0, 0);      
  display.println("Current Time:"); 
  display.setTextSize(2);      
  display.setCursor(5, 10);    
  display.print(now.hour(), DEC); 
  display.print(':');           
  if (now.minute() < 10) {      
    display.print('0');          
  }
  display.print(now.minute(), DEC);
  display.print(':');            
  if (now.second() < 10) {     
    display.print('0');          
  }
  display.println(now.second(), DEC);
  display.setTextSize(1);       
  display.setCursor(0, 33);     
  display.println("Current Date:"); 
  display.setTextSize(2);       
  display.setCursor(5, 45);     
  display.print(now.day(), DEC);
  display.print('/');           
  display.print(now.month(), DEC);
  display.print('/');            
  display.println(now.year(), DEC); 
  display.display();            
  
  if (now.hour() >= 19 || now.hour() < 6) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
  
  delay(1000);                  
}

Скомпилируйте и загрузите код на вашу плату. После загрузки ESP32C3-Mini немедленно начнет выполнять код. На OLED-дисплее будет отображаться текущее время и дата. В 19:00 светодиод включится автоматически и выключится в 06:00.




© digitrode.ru


Теги: ESP32, OLED, часы реального времени




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий