Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Construye un reloj en tiempo real con Arduino para horarios de oración islámica

Componentes y materiales

Arduino UNO 1
Pantalla Nokia 5110 (PCD8544) 1
Módulo RTC DS1307 (Seeed Pi RTC) 1

Herramientas necesarias

Aplicaciones y servicios online

Sobre el proyecto

Este reloj en tiempo real muestra la fecha gregoriana y los horarios diarios de oración (salat). Utiliza un Arduino UNO, un RTC DS1307 y una pantalla LCD Nokia 5110.

Materiales detallados

Arduino UNO

Placa basada en ATmega328P con 14 pines digitales (6 PWM), 6 entradas analógicas, 16 MHz, 32 KB Flash, 2 KB SRAM, 1 KB EEPROM.

DS1307

Reloj/calendario BCD de bajo consumo con ajuste automático de fin de mes y año bisiesto. Funciona en formato 12/24 horas con indicador AM/PM. Incluye detección de fallo de alimentación y cambio automático a batería. Comunicación I2C (pines SCL, SDA). Requiere cristal de 32.768 kHz.

Pantalla Nokia 5110

Pantalla monocroma 84x48 píxeles con retroiluminación, controlador PCD8544 (interfaz serie tipo SPI). Pines: VCC, GND, RST (reset activo bajo), CE (chip enable activo bajo), D/C (datos/comando), DIN (datos serie), CLK (reloj), BL (retroiluminación, controlable por PWM).

Cómo adaptar el programa a tu ciudad

Modifica la línea 161 del código con tus coordenadas geográficas y parámetros de cálculo:

calcPrayerTimes(year, month, dayOfMonth, longitud, latitud, zonaHoraria, anguloFajr, anguloIsha, fajr, sunRise, zuhr, asr, maghrib, isha);

Parámetros necesarios:

Puedes obtener estos datos en IslamicFinder buscando tu ciudad. Ejemplo para El Cairo:

La línea quedaría:

calcPrayerTimes(year, month, dayOfMonth, 31.2, 30.0, 2, -19.5, -17.5, fajr, sunRise, zuhr, asr, maghrib, isha);

Funcionamiento del algoritmo

La función calcPrayerTimes (autor: Mahmoud Adly Ezzat) calcula los momentos astronómicos del sol y aplica fórmulas trigonométricas para obtener los horarios de las cinco oraciones. Los resultados se devuelven como números double (horas decimales) y la función doubleToHrMin los convierte a horas y minutos.

Código completo

#include "Wire.h"
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
#define DS1307_I2C_ADDRESS 0x68

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
double fajr, sunRise, zuhr, asr, maghrib, isha;

void setup() {
  Wire.begin();
  display.begin();
  display.setContrast(25);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(22, 18); display.print("Hatem");
  display.display(); delay(500);
  display.setCursor(24, 28); display.print("ZEHIR");
  display.display(); delay(500);
  getDateDs1307();
}

void loop() {
  getDateDs1307();
  // Ajusta los parámetros según tu ubicación
  calcPrayerTimes(year, month, dayOfMonth, 39.8, 21.4, 3, -18.5, -19,
                  fajr, sunRise, zuhr, asr, maghrib, isha);
  unsigned long currentMillis = millis();
  static long previousMillis = 0;
  const long interval = 200;
  if (currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;
    printTime();
  }
}

// Funciones de conversión BCD, lectura/escritura RTC, impresión en pantalla
// y algoritmo completo de cálculo de horarios de oración (incluidas en el código original)

Esquemático de conexiones

Conexiones I2C entre Arduino (A4=SDA, A5=SCL) y DS1307; pantalla Nokia 5110 en pines digitales 3-7.

Proceso de manufactura

  1. Reloj POV con Arduino: Construye una pantalla LED de persistencia de visión
  2. Construye un reloj Numitron retro con Arduino: Simple, fiable y eficiente energéticamente
  3. Reloj de Palabras DIY con Arduino: Construye una Pantalla Elegante en Tiempo Real
  4. Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
  5. Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
  6. Monitor de Temperatura y Reloj en Tiempo Real con Arduino Due y Pantalla TFT 3.2"
  7. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  8. Cómo mostrar imágenes en una pantalla TFT LCD de 1.17 pulgadas con Arduino UNO
  9. Construir una pantalla de persistencia de visión portátil con Arduino UNO y ATtiny85
  10. Construye un reloj despertador fiable con RTC DS1302 y Arduino UNO
  11. Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas