Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP

Composants et fournitures

Arduino Nano R3 × 1
Module DS3231MPMB1 (Maxim Integrated) - Module pas cher eBay, résistance retirée pour éviter explosion batterie × 1
Capteur atmosphérique BME280 (SparkFun) - Version pas cher eBay × 1
Capteur de lumière BH1750 - eBay × 1
Matrice LED 32x8 MAX7219 × 1
Condensateur 10 µF × 2
ESP8266 ESP-01 (Espressif) - Optionnel pour synchronisation NTP × 1
Régulateur 3.3V LM3940IT3.3 - Pour ESP-01 × 1
Convertisseur de niveau (Level Shifter) SparkFun - Requis pour ESP-01 × 1

À propos de ce projet

Tout a commencé avec l'horloge à mots LED de Nick. J'ai modifié son code pour ajouter capteurs, boutons et ESP-01.

Boutons supplémentaires pour réglages faciles : seuils capteur lumière, polices, NTP/DST/UTC.

6 nouvelles polices ajoutées (créées via dotmatrixtool.com).

Code optimisé : plus de mots, passage en PROGMEM pour économiser la RAM.

Projet original de Nick : 123led.wordpress.com

Mon code : GitHub Ratti3/miniclock

Le code est finalisé (hors bugs inconnus et ajustements mineurs). Un boîtier est prévu.

Important : Ajustez le code du capteur de lumière selon vos conditions (codé en plein soleil près d'une fenêtre).

Fonctionnement ESP-01 NTP

L'ESP-01 dort (WiFi OFF) quand non utilisé, réveillé via série par l'Arduino pour récupérer l'heure en format UNIX. SSID et mot de passe transmis via code Arduino.

Gestion DST/UTC/BST intégrée, réglable/désactivable via menu.

Paramètres sauvegardés en EEPROM (persistants après coupure).

Fichiers code sur GitHub

Arduino LEDClock32x8.ino
ProgmemData.h
Arduino ESP-01_NTP.ino
LEDClock32x8_ESP01-NTP.ino
ProgmemData.h

Exemple sortie série (Arduino ↔ ESP-01)

Arduino : Envoi requête NTP à ESP01
ESP01  : Requête NTP reçue de Arduino [tentative 1/3]
Connexion à SSID: TheInternets....connecté
SSID: TheInternets, Adresse IP: 192.168.0.135
Force signal (RSSI): -42 dBm
Envoi paquet NTP vers: 195.195.221.100 [tentative 1]
Envoi paquet NTP vers: 195.195.221.100 [tentative 2]
UNIX1562848457
Désactivation WiFi....ok

Photos du projet

Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP

Assemblage final

Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP
Horloge matrice LED haute précision : DS3231 RTC, météo BME280, lumière BH1750 & ESP01 NTP

Câblage

DS3231, BH1750, BME280 : SCL = A5, SDA = A4, VCC = 3.3V
Matrice LED MAX7219    : CLK = D11, CS = D10, DIN = D12, VCC = 5V
Boutons                : D2 = Menu, D3 = Date/+, D4 = Temp/-, D5 = Options affichage
ESP-01 (optionnel)     : D7 = TX ESP01, D6 = RX ESP01

Variables globales configurables (avec adresses EEPROM entre crochets)

// Réglages horloge
// [200] Intensité/luminosité défaut (0-15), réglable via menu
byte intensity = 2;
// [201] Mode horloge défaut. 0 = mode_basique
byte clock_mode = 0;
// [206] Mode aléatoire - change type affichage toutes les quelques heures. 0 = désactivé
bool random_mode = 0;
// [207] Mode police aléatoire - change police toutes les quelques heures. 1 = activé
bool random_font_mode = 0;
// [208] Format 12/24h. 0 = 24h, 1 = 12h
bool ampm = 0;

// Réglages lumière
// [202] Mode affichage ON/OFF par capteur lumière. 0=normal, 1=toujours ON, 2=toujours OFF, 3-5=défini par hour_off_1,2,3
byte display_mode = 5;
// [209] Intensité auto par capteur lumière
bool auto_intensity = 1;
// Heures d'extinction possible si assez sombre (format 24h, vérifié entre 8h et ces valeurs)
byte hour_off_1 = 21;
byte hour_off_2 = 22;
byte hour_off_3 = 23;

// Réglages police (via menu, voir set_font_case() pour défauts)
// [203] Style police grande horloge
byte font_style = 2;
// [204] Décalage police
byte font_offset = 1;
// [205] Ajustement colonnes police
byte font_cols = 6;

// DST, NTP, UTC
// [210] Activer DST (1=oui, 0=non)
bool dst_mode = 1;
// [211] Activer NTP (1=oui, 0=non)
bool ntp_mode = 1;
// Secondes d'ajustement NTP avant application DS3231 (quelques centaines ms traitement)
byte ntp_adjust = 1;
// [213] Décalage UTC (heures)
int8_t utc_offset = 0;
// Heure synchronisation quotidienne NTP/DST (laisser 2h si mode DST)
byte ntp_dst_hour = 2;
// Tentatives requête NTP (1 = ~35s total, valeurs 1-9)
byte ntp_max_retry = 3;
// Timeout pour quitter ntp() si pas de données (secondes, multiplié par ntp_max_retry)
byte ntp_timeout = 45;

// Constantes globales - WiFi (transmis à ESP01 via SoftwareSerial)
// Longueur combinée SSID + mot de passe ≤ 72 caractères
const byte ssid_len = 8;        // Longueur SSID (ex: "MyWifi" = 6)
const char ssid[] = "YourSSID"; // Votre SSID
const byte pass_len = 12;       // Longueur mot de passe
const char pass[] = "YourPassword"; // Votre mot de passe

Processus de fabrication

  1. Horloge Arduino temps réel pour les heures de prière islamiques
  2. Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
  3. Horloge à persistance rétinienne (POV) style analogique — Arduino Nano 17 LEDs
  4. Lampe matricielle LED à colle chaude DIY – Créez votre propre affichage coloré
  5. Contrôler une LED Arduino avec Cortana via Bluetooth sur Windows 10
  6. Horloge à bascule Arduino avec matrice LED 8×8 – Projet DIY d'horloge temps réel
  7. Maîtriser une matrice LED 8×8 avec Arduino Uno : Guide pas à pas
  8. Horloge GPS précise : Précision et fiabilité abordables
  9. Construire un Réveil Fiable avec RTC DS1302 et Arduino UNO