#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SolarCalculator.h>
// Initialize the LCD library with the I2C address
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Initialize the SolarCalculator library
SolarCalculator solarcalculator;
void setup() {
// Initialize the LCD
lcd.init();
lcd.backlight();
// Set the location (latitude, longitude)
float latitude = 37.7749; // Example: San Francisco latitude
float longitude = -122.4194; // Example: San Francisco longitude
// Set the date
int year = 2024;
int month = 7;
int day = 15;
// Initialize the solar calculator with location and date
solarCalculator.setPosition(latitude, longitude);
solarCalculator.setDate(year, month, day);
// Calculate sunrise and sunset times
solarCalculator.calculateSunrise();
solarCalculator.calculateSunset();
// Display sunrise and sunset times on the LCD
displaySunTimes();
}
void loop() {
// Put your main code here, to run repeatedly:
}
void displaySunTimes() {
// Get the sunrise and sunset times
float sunrise = solarCalculator.getSunrise();
float sunset = solarCalculator.getSunset();
// Convert times to hours and minutes
int sunriseHour = int(sunrise);
int sunriseMinute = int((sunrise - sunriseHour) * 60);
int sunsetHour = int(sunset);
int sunsetMinute = int((sunset - sunsetHour) * 60);
// Clear the LCD
lcd.clear();
// Display sunrise time
lcd.setCursor(0, 0);
lcd.print("Sunrise: ");
lcd.print(sunriseHour);
lcd.print(":");
if (sunriseMinute < 10) lcd.print("0");
lcd.print(sunriseMinute);
// Display sunset time
lcd.setCursor(0, 1);
lcd.print("Sunset: ");
lcd.print(sunsetHour);
lcd.print(":");
if (sunsetMinute < 10) lcd.print("0");
lcd.print(sunsetMinute);
}