Table des matières:
- Étape 1: liste de pièces et outils
- Étape 2: préparer l'écran OLED et l'horloge en temps réel
- Étape 3: préparer l'encodeur rotatif
- Étape 4: Enceinte
- Étape 5: Désactiver le voyant d'alimentation Arduino (facultatif)
- Étape 6: Alimentation + Relais à semi-conducteurs
- Étape 7: Arduino Nano + Alimentation + Relais à semi-conducteurs
- Étape 8: Arduino Nano + Horloge en temps réel
- Étape 9: connectez l'écran OLED
- Étape 10: Encodeur rotatif
- Étape 11: Installation dans le boîtier
- Étape 12: connexion au secteur/lumière à allumer
- Étape 13: Finition du boîtier
- Étape 14: Programmation de l'Arduino
- Étape 15: Configuration de l'heure et des heures de commutation
Vidéo: Horloge Arduino crépuscule/aube : 15 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Sommaire:
Cette minuterie basée sur Arduino peut allumer une lumière 220V au crépuscule, à l'aube ou à une heure spécifiée.
Introduction:
Certaines des lumières de ma maison s'allument automatiquement au crépuscule, jusqu'à une heure prédéfinie ou jusqu'à l'aube (toute la nuit).
L'emplacement des lumières ne permet pas l'utilisation d'un capteur de lumière. Les minuteries d'horloge disponibles régulières s'allument à une heure précise. Pour allumer à la tombée de la nuit, il faut donc ajuster régulièrement le réglage du programme horaire.
En guise de défi, j'ai décidé de créer à la place une minuterie autonome personnalisée basée sur Arduino. Il utilise une horloge en temps réel et la bibliothèque Dusk2Dawn pour déterminer l'heure à laquelle les lumières doivent être allumées ou éteintes. Le boîtier de cette minuterie est imprimé en 3D et se trouve sur Thingiverse. Le code Arduino de ce projet est disponible sur GitHub.
Dans la création de cette minuterie, je me suis inspiré de nombreux designs et circuits sur Internet. Mes remerciements à tous les contributeurs qui ne sont pas explicitement mentionnés.
Pour plus de lisibilité, des schémas partiels sont affichés dans les étapes où cela est nécessaire, au lieu d'un schéma de circuit complet.
Solutions alternatives:
Au lieu d'une minuterie autonome, il existe de nombreuses solutions où un système domotique intelligent oriente les lumières. Mon objectif était d'avoir une solution indépendante, qui ne dépend pas de la connectivité WIFI (ou autre).
Restrictions:
Le code fourni avec ce projet comprenait une mise en œuvre des changements d'heure d'été basée sur le système d'heure d'été européen.
Étape 1: liste de pièces et outils
Les pièces:
Coûts totaux des pièces (hors impression 3d) environ 30 €, -.
- Arduino Nano V3 (compatible) sans en-têtes
- Alimentation 5V 0,6A (34x20x15mm)
- Relais statique 5V - Actif bas - 2A 230VAC
- Horloge temps réel DS3231 (petite)
- Écran OLED 0.96" SPI 128*64 pixels
- Encodeur rotatif - EC11 - 20mm
- Bouton 6mm arbre 15mm * 17mm
- Carte de circuit imprimé de planche à pain,
- 4 * vis M3x25mm
- boîtier imprimé en 3D
- Gaine thermorétractable
- Fils
- Bornier à vis (pour connecter les fils neutres)
Outils nécessaires:
- Fer à souder
- Fil de soudure
- Pompe à dessouder
- Pince à dénuder
- Fraises
- Imprimante 3D (pour imprimer le boîtier)
- Petits outils assortis
ATTENTION
Ce circuit fonctionne sur 230v AC et si vous n'êtes pas habitué à travailler avec une tension secteur ou si vous n'avez pas suffisamment d'expérience pour travailler avec une tension secteur 230v AC, veuillez rester à l'écart de ce projet
Je n'assume aucune responsabilité pour toute perte ou dommage résultant directement ou en conséquence de la suite de ce projet
Il est toujours conseillé de prendre les précautions et les précautions nécessaires lorsque vous travaillez avec le secteur AC
Étape 2: préparer l'écran OLED et l'horloge en temps réel
Le boîtier imprimé en 3D est conçu pour une taille minimale. Par conséquent, les en-têtes de l'écran OLED et de l'horloge en temps réel doivent être supprimés.
En vue de l'étape suivante, éliminez toute soudure restante des trous avec la pompe à dessouder.
Étape 3: préparer l'encodeur rotatif
L'encodeur rotatif a des connecteurs fragiles. Pour éviter tout dommage, montez un morceau de carte de circuit imprimé sur l'encodeur.
Sur la photo, la connexion à la terre (en haut à droite et au milieu en bas) est également déjà préparée.
Remarque: assurez-vous que l'encodeur rotatif avec carte de circuit imprimé s'insère dans le boîtier sans toucher l'Arduino. Il peut être nécessaire de rectifier la carte de circuit imprimé pour obtenir un ajustement parfait.
Étape 4: Enceinte
Imprimez les trois parties du boîtier avec une imprimante 3D. Reportez-vous aux instructions sur Thingiverse.
Étape 5: Désactiver le voyant d'alimentation Arduino (facultatif)
Pour éviter d'avoir une lueur verte dans la minuterie, la LED d'alimentation de l'Arduino peut être désactivée.
Notez que cette modification est facultative.
La modification de l'Arduino Nano consiste à retirer la résistance à côté de la led d'alimentation (voir cercle rouge sur la photo).
Étape 6: Alimentation + Relais à semi-conducteurs
Dans cette étape, l'alimentation et le relais à semi-conducteurs sont combinés et montés dans la partie inférieure du boîtier.
Les connexions entre l'alimentation et le relais se font au bas de ces composants. Le bornier à vis du relais servira à se connecter à l'Arduino.
Remarque: lors des connexions, assurez-vous que les trous de montage du relais à semi-conducteurs restent libres.
- Souder un fil de connexion entre le relais statique A1 à l'une des connexions AC de l'alimentation
- Soudez un fil à l'autre connexion CA de l'alimentation (cela sera connecté au bornier à vis neutre à l'étape 7)
- Souder un fil entre l'alimentation -Vo au relais DC-
- Souder un fil pour connecter l'alimentation +Vo au relais DC+
Remarque: il peut être nécessaire de raccourcir les fils de l'alimentation et du relais pour pouvoir les intégrer dans le boîtier.
Étape 7: Arduino Nano + Alimentation + Relais à semi-conducteurs
Dans cette étape, l'Arduino Nano est connecté à l'alimentation et au relais à semi-conducteurs.
- Coupez deux fils d'environ 70 mm de long. Dénudez 30 mm d'isolation d'un côté et 4 mm de l'autre.
- Soudez le côté avec une isolation dénudée de 30 mm à l'Arduino + 5V et GND, avec le fil qui passe à travers
- Coupez deux tubes thermorétractables de 20 mm de long et montez-les sur la partie dénudée de 25 mm. Cela isole les fils jusqu'à la connexion avec le bornier à vis de montage DC+ et DC- du relais statique.
- Notez que les fils pour GND et +5V doivent se croiser pour se connecter correctement au bornier à vis du relais.
- Coupez un fil d'environ 40 mm de long et dénudez 4 mm d'isolation aux deux extrémités. Soudez un côté à la connexion A2 à l'ARRIÈRE de l'Arduino et connectez l'autre côté à la connexion CH1 du bornier à vis à montage à semi-conducteurs.
ATTENTION
L'Arduino est alimenté directement par l'alimentation stable +5V au lieu d'utiliser le régulateur de puissance interne Arduino. Par conséquent, il n'est pas sûr de connecter USB lorsque l'Arduino est alimenté par l'alimentation.
Débranchez toujours le secteur 230VAC avant d'utiliser la connexion USB Arduino.
Étape 8: Arduino Nano + Horloge en temps réel
Dans cette étape, l'horloge en temps réel est connectée à l'Arduino, en partie à l'aide des câbles préparés à l'étape précédente.
- Soudez le fil provenant de l'Arduino GND (également connecté au DC- du relais) à « – » de l'horloge en temps réel.
- Soudez le fil provenant de l'Arduino +5V (également connecté au DC+ du relais) au '+' de l'horloge temps réel.
- Coupez deux fils d'environ 40 mm de long et dénudez 4 mm d'isolation aux deux extrémités.
- Soudez un fil entre l'Arduino A4 et l'horloge temps réel D (SDA).
- Soudez un fil entre l'Arduino A5 et l'horloge temps réel C (SCL).
- Façonnez les fils de l'horloge temps réel pour vous assurer qu'ils n'interfèrent pas avec l'encodeur rotatif. Pour cela, les fils doivent être au fond de l'enceinte.
Étape 9: connectez l'écran OLED
Dans cette étape, l'écran OLED SPI est ajouté à l'Arduino.
- Coupez 2 fils de 65 mm de long et dénudez 4 mm d'isolation aux deux extrémités.
- Soudez un fil à la connexion GND de l'écran OLED. Soudez ce fil au fil isolé du tube thermorétractable provenant de l'Arduino GND (reportez-vous à l'étape 4) et connectez les deux fils au bornier à vis à montage CC du relais à semi-conducteurs.
- Soudez un fil à la connexion VCC de l'écran OLED. Soudez ce fil au fil isolé du tube thermorétractable provenant de l'Arduino +5V (reportez-vous à l'étape 4) et connectez les deux fils au bornier à vis à montage DC+ du relais à semi-conducteurs.
- Coupez 5 fils de 65 mm de long et dénudez 4 mm d'isolation aux deux extrémités.
- Soudez un fil pour connecter D0 (CLK) à Arduino D10
- Soudez un fil pour connecter D1 (MOSI / DATA) à Arduino D9
- Soudez un fil pour connecter RES (RT) à Arduino D8
- Soudez un fil pour connecter DC à Arduino D11
- Soudez un fil pour connecter CS à Arduino D12
Remarque: L'ordre des fils d'affichage n'est pas logique. C'est le résultat de l'utilisation d'abord de l'exemple Adafruit, puis de la modification des connexions, car l'utilisation de D13 entraîne une LED rouge sur l'Arduino tout le temps.
Alternative
Il est possible d'utiliser un ordre « normal » pour les connexions SPI. Pour cela, la définition de la sortie numérique du programme Arduino dans oledcontrol.cpp doit être ajustée en conséquence:
// Utilisation du logiciel SPI
// définitions des broches
#définir CS_PIN 12
#définir RST_PIN 8
#define DC_PIN 11
#définir MOSI_PIN 9
#définir CLK_PIN 10
Étape 10: Encodeur rotatif
Le schéma montre les connexions de l'Arduino à l'encodeur rotatif (encodeur vu de dessus).
- Coupez 4 fils de 45 mm et dénudez 4 mm d'isolation aux deux extrémités.
- Connectez Arduino GND aux connecteurs en haut à droite et en bas au milieu de l'encodeur
- Connectez Arduino D2 en bas à gauche de l'encodeur
- Connectez Arduino D3 en bas à droite de l'encodeur
- Connectez Arduino D4 en haut à gauche de l'encodeur
Étape 11: Installation dans le boîtier
Installez toute l'électronique dans la partie basse du boîtier:
- Faites glisser l'Arduino sur la fente verticale
- Glissez l'horloge en temps réel dans le compartiment inférieur
- Faites glisser l'alimentation et le relais dans le compartiment supérieur, assurez-vous que le relais repose sur ses supports.
Étape 12: connexion au secteur/lumière à allumer
ATTENTION
Assurez-vous de prendre les précautions et les précautions nécessaires lorsque vous travaillez avec le secteur, assurez-vous que le secteur est déconnecté
Je n'assume aucune responsabilité pour toute perte ou dommage résultant directement ou en conséquence de la suite de ce projet
- Connectez la phase secteur AC au bornier à vis A1 (gauche) du relais.
- Connecter la phase de la lumière à commuter au bornier à vis B1 (droite) du relais.
- Utilisez un bornier à vis séparé pour connecter le fil neutre du secteur CA, le fil neutre léger et le fil neutre de l'alimentation.
- Pour réduire la tension, montez une attache autour de chacun des câbles d'alimentation.
Étape 13: Finition du boîtier
Dans cette étape, le montage dans le boîtier est terminé
- Faites glisser l'écran OLED à travers le trou de montage de l'écran dans la partie centrale du boîtier.
- Faites glisser l'encodeur rotatif à travers le trou dans la partie centrale, assurez-vous que l'anti-rotation s'aligne. Montez l'encodeur rotatif à l'aide de la rondelle et de l'écrou fournis.
- Montez la partie supérieure du boîtier et fermez le boîtier en montant les quatre vis M3x25mm par le bas.
Étape 14: Programmation de l'Arduino
ATTENTION
L'Arduino est alimenté directement par l'alimentation stable +5V au lieu d'utiliser le régulateur de puissance interne Arduino. Par conséquent, il n'est pas sûr de connecter USB lorsque l'Arduino est alimenté par l'alimentation.
Débranchez toujours le secteur 230VAC avant d'utiliser la connexion USB Arduino.
Récupérez le programme de minuterie Arduino depuis GitHub.
Ce programme utilise l'IDE Arduino, qui peut être obtenu ici.
Le programme utilise les bibliothèques supplémentaires suivantes:
SSD1303Ascii
Bibliothèque Arduino Wire
Notez que la bibliothèque dusk2dawn est également utilisée, mais incluse en tant que code en raison d'un changement dans son interface.
Pour garantir un calcul correct du crépuscule / de l'aube, la longitude, la latitude et le fuseau horaire doivent être définis.
Comme décrit dans l'exemple dusk2dawn, un moyen simple de trouver la longitude et la latitude de n'importe quel endroit est de trouver l'endroit dans Google Maps, de cliquer avec le bouton droit sur l'endroit sur la carte et de sélectionner "Qu'y a-t-il ici ?". En bas, vous verrez une carte avec les coordonnées.
La longitude et la latitude sont codées en dur dans le programme, dans Dusk2Dawn.cpp lignes 19 et 20:
/* La latitude et la longitude de votre emplacement doivent être définies ici.
* * CONSEIL: Un moyen simple de trouver la longitude et la latitude de n'importe quel endroit est de * trouver le lieu dans Google Maps, de cliquer avec le bouton droit sur le lieu sur la carte et de * sélectionner « Qu'y a-t-il ici ? ». En bas, vous verrez une carte avec les coordonnées *. */ #définir LATITUDE 52.097105; // Utrecht #définir LONGTITUDE 5.068294; // Utrecht
Le fuseau horaire est également codé en dur dans Dusk2Dawn.cpp ligne 24. Par défaut, il est défini sur Pays-Bas (GMT + 1):
/* Entrez votre fuseau horaire (décalage par rapport à GMT) ici.
*/ #définir le FUSEAU HORAIRE 1
Lors de la programmation de l'Arduino pour la première fois, la mémoire EEPROM doit être initialisée. Pour cela, changez timer.cpp ligne 11 pour faire l'initialisation de l'EEPROM:
// passer à true pour la première programmation
#define INITIALIZE_EEPROM_MEMORY false
Téléchargez le programme sur l'Arduino et démarrez l'Arduino.
Désactivez l'initialisation de l'EEPROM et téléchargez à nouveau le programme sur l'Arduino. La minuterie se souviendra désormais des paramètres de l'heure de commutation lors du redémarrage.
Étape 15: Configuration de l'heure et des heures de commutation
Concepts d'interaction utilisateur:
- Un appui court est utilisé pour confirmer les sélections. De plus, dans l'écran principal de la minuterie, un appui court allume ou éteint la lumière.
- Un appui long est utilisé pour entrer dans le menu à partir de l'écran principal de la minuterie. N'importe où dans le menu, un appui long ramènera à l'écran principal de la minuterie.
- '>' Cursus de sélection. Ce curseur indique l'option sélectionnée dans un menu.
Écran principal de la minuterie
L'écran principal de la minuterie affiche:
Jour de la semaine
Heure actuelle 16:00
État actuel de la minuterie et prochaine heure de commutation Minuterie OFF jusqu'à 17:12
Aube et crépuscule Aube 08:05 Crépuscule 17:10
Réglage de l'heure correcte
Appuyez longuement pour entrer dans le menu. Les options suivantes sont affichées:
RetourRégler l'heureProgramme de jour de semaineProgramme de week-endOptions
Sélectionnez régler l'heure pour régler la date et l'heure de l'horloge en temps réel. Saisissez les valeurs correctes pour:
AnnéeMoisJourHeure
La minuterie détermine automatiquement le jour de la semaine. Le passage à l'heure d'été se fait également automatiquement. L'heure d'été est implémentée pour le fuseau horaire européen uniquement.
Réglage du programme horaire
La minuterie a 2 programmes, un pour les jours de semaine, un pour le week-end. Notez que le vendredi est considéré comme faisant partie du week-end, les lumières peuvent rester allumées un peu plus longtemps.
Chaque minuterie a un moment d'allumage et d'extinction. Le moment peut être soit:
- Heure: heure exacte spécifiée
- Aube: basculer en fonction de l'heure calculée de l'aube
- Crépuscule: basculer en fonction de l'heure calculée du crépuscule
Pour le crépuscule et l'aube, il est possible d'entrer une valeur de correction de 59 minutes avant ou après.
Exemples:
Pour allumer une lumière toute la nuit, sélectionnez allumer à (crépuscule + 10min), éteindre à (aube - 10min)
Pour allumer une lumière le soir, sélectionnez allumer au crépuscule, éteindre à l'heure: 22h30.
Options
Dans l'écran des options, un délai d'attente peut être défini pour la commutation de l'écran.
Lorsque l'écran est éteint, une pression sur le bouton de l'encodeur permet de revenir à l'écran principal de la minuterie.
Conseillé:
Comment faire une horloge analogique et une horloge numérique avec une bande LED à l'aide d'Arduino: 3 étapes
Comment faire une horloge analogique et une horloge numérique avec une bande LED à l'aide d'Arduino Horloge numérique avec Led Strip et module MAX7219 Dot avec Arduino. Elle corrigera l'heure avec le fuseau horaire local. L'horloge analogique peut utiliser une bande LED plus longue, elle peut donc être accrochée au mur pour devenir une œuvre d'art
Horloge de retraite / Compte à rebours / Horloge Dn : 4 étapes (avec photos)
Retirement Clock / Count Up / Dn Clock: J'avais quelques-uns de ces écrans à matrice de points LED 8x8 dans le tiroir et je réfléchissais à ce que je devais en faire. Inspiré par d'autres instructables, j'ai eu l'idée de construire un affichage de compte à rebours/up pour compter jusqu'à une date/heure future et si l'heure cible p
ESP8266 Horloge réseau sans RTC - Nodemcu NTP Horloge Pas de RTC - PROJET HORLOGE INTERNET : 4 étapes
ESP8266 Horloge réseau sans RTC | Nodemcu NTP Horloge Pas de RTC | PROJET D'HORLOGE INTERNET: Dans le projet, un projet d'horloge sans RTC prendra du temps sur Internet en utilisant le wifi et l'affichera sur l'écran st7735
Horloge basée sur Arduino utilisant le module d'horloge en temps réel (RTC) DS1307 et 0.96 : 5 étapes
Horloge basée sur Arduino utilisant le module d'horloge en temps réel (RTC) DS1307 et 0.96 : Salut les gars, dans ce tutoriel, nous verrons comment créer une horloge de travail à l'aide d'un module d'horloge en temps réel DS1307 & Afficheurs OLED. Nous allons donc lire l'heure du module d'horloge DS1307. Et imprimez-le sur l'écran OLED
Faire une horloge avec M5stick C en utilisant Arduino IDE - Horloge temps réel RTC avec M5stack M5stick-C : 4 étapes
Faire une horloge avec M5stick C en utilisant Arduino IDE | Horloge en temps réel RTC avec M5stack M5stick-C : Salut les gars dans ce instructables, nous allons apprendre à faire une horloge avec la carte de développement m5stick-C de m5stack à l'aide d'Arduino IDE. semaine du mois sur l'écran