Table des matières:

Horloge de prévision météo utilisant l'ancienne alarme et Arduino : 13 étapes (avec photos)
Horloge de prévision météo utilisant l'ancienne alarme et Arduino : 13 étapes (avec photos)

Vidéo: Horloge de prévision météo utilisant l'ancienne alarme et Arduino : 13 étapes (avec photos)

Vidéo: Horloge de prévision météo utilisant l'ancienne alarme et Arduino : 13 étapes (avec photos)
Vidéo: 52 IoT - Retour d'expériences 2024, Novembre
Anonim
Horloge de prévision météo utilisant l'ancienne alarme et Arduino
Horloge de prévision météo utilisant l'ancienne alarme et Arduino
Horloge de prévision météo utilisant l'ancienne alarme et Arduino
Horloge de prévision météo utilisant l'ancienne alarme et Arduino

J'avais un réveil cassé qui traînait et j'ai eu l'idée de le convertir en horloge et en station météo.

Pour ce projet, vous aurez besoin de:

  • Ancien réveil circulaire
  • Arduino Nano
  • Module capteur BME280 (température, humidité, pression)
  • Module d'affichage LCD de Nokia 5110
  • Horloge temps réel DS1307
  • Chargeur de batterie au lithium TP4056
  • Une vieille batterie Li-ion récupérée sur un téléphone portable
  • Petit module booster 3.7v à 5v
  • Résistance dépendante de la lumière (LDR - posemètre)
  • Buzzer (utilisé récupéré d'un ancien PC)
  • 3 boutons poussoirs
  • Un tas de résistances (2x10k, 270 ohm) et un transistor (2N2222A ou similaire)
  • Certains tube rétractable large
  • PCB de rebut à utiliser comme décoration de plaque avant
  • Câble d'extension micro-USB (les côtés femelle et mâle sont micro-USB)
  • Carte prototype 2x8cm et quelques fils

Étape 1: tout démonter

Tout démonter
Tout démonter

J'ai d'abord démonté l'ancienne horloge. Cloches, moteur, mécanisme d'horloge cassé…

Étape 2: Boutons pour les paramètres numériques

Boutons pour les paramètres numériques
Boutons pour les paramètres numériques
Boutons pour les paramètres numériques
Boutons pour les paramètres numériques
Boutons pour les paramètres numériques
Boutons pour les paramètres numériques
Boutons pour les paramètres numériques
Boutons pour les paramètres numériques

Comme la nouvelle horloge sera entièrement numérique avec un mini-ordinateur à l'intérieur, j'ai ajouté 3 boutons simples et jolis sur le côté.

À l'aide d'un morceau d'aluminium, j'ai découpé une superposition pour créer une étiquette. Les lettres des étiquettes ont été créées à l'aide des poinçons et d'un marqueur noir.

Étape 3: Condensateur pour le moteur

Condensateur pour le moteur
Condensateur pour le moteur

Je garderai les vieilles cloches pour alimenter l'alarme avec le moteur. L'ancien mécanisme d'horloge cassé avait un condensateur en céramique avec l'étiquette 104. Je l'ai retiré du circuit imprimé et l'ai soudé directement au moteur - cela aidera à éviter les pointes de puissance lors de la mise en marche du moteur pendant l'alarme. Il est également important de noter que le moteur sera contrôlé via un transistor, mais nous en reparlerons plus tard.

Étape 4: Nouveau visage pour l'horloge

Nouveau visage pour l'horloge
Nouveau visage pour l'horloge
Nouveau visage pour l'horloge
Nouveau visage pour l'horloge

Depuis que j'ai décidé de créer un nouveau visage pour l'horloge, j'ai pris une carte de circuit imprimé de ma poubelle et j'ai utilisé un pistolet thermique de constructeur pour retirer rapidement tous les composants. Le trou au milieu est fait pour l'écran numérique de la nouvelle horloge.

Étape 5: Affichage numérique à partir d'un ancien téléphone portable

Affichage numérique de l'ancien téléphone mobile
Affichage numérique de l'ancien téléphone mobile
Affichage numérique de l'ancien téléphone mobile
Affichage numérique de l'ancien téléphone mobile

Pour ce projet, j'ai décidé d'utiliser un écran LCD d'un ancien téléphone mobile Nokia 5110. Ces écrans sont largement disponibles à la vente sous forme de module, ils consomment très peu d'énergie et il existe de bonnes bibliothèques pour l'Arduino. Si vous achetez un nouveau module avec écran 5110, vous sauvez la planète car tous les nouveaux modules sont créés à partir de téléphones 5110, 3110 et 3210 récupérés !

Étape 6: connexion des circuits

Connexion des circuits
Connexion des circuits
Connexion des circuits
Connexion des circuits
Connexion des circuits
Connexion des circuits

Vous avez peut-être déjà deviné que j'avais l'intention d'utiliser une carte Arduino pour contrôler cette horloge. Le projet est facilement reproductible même pour les fans débutants d'Arduino car je n'ai pas créé mes propres circuits imprimés. Il s'agit d'une carte Arduino Nano avec des modules qui y sont connectés - capteur de température, de pression et d'humidité BME280, horloge RTC DS1307, chargeur de batterie au lithium TP4056, petit module d'appoint 3.7v à 5v, résistance dépendante de la lumière (LDR - posemètre) et un buzzer (extrait de l'ancien PC).

Jetez également un œil aux croquis - ils montrent toutes les connexions. Je pense que tout est très facile à lire et à comprendre, mais si vous avez des questions, posez-les simplement dans les commentaires ci-dessous.

Quelques remarques sur la configuration:

  • Le moteur est connecté directement de la batterie à travers le transistor. Arduino contrôle le transistor via la résistance et la broche PWM D5.
  • Les broches D7-12 sont utilisées pour le connecteur LCD. La terre et le VCC sont connectés au rail sur la carte de jonction.
  • Le LDR a été installé sur le cadran et la résistance + 3 fils sortants ont été soudés juste à l'arrière du cadran.
  • Pour la connexion des boutons, j'ai utilisé la fonction PULLUP interne à l'intérieur d'Arduino. Le bouton Menu est attaché à l'interruption et je n'ai réalisé que plus tard que vous pouvez également utiliser PULLUP interne pour l'interruption. L'interruption pour le bouton Menu est nécessaire pour que le code ne scanne pas l'état des boutons tout le temps.
  • L'horloge surveillera et affichera également l'état de la batterie afin que la batterie soit directement connectée à la broche A0. La tension de la batterie n'est jamais supérieure à 4,2 V, il est donc sûr de connecter la batterie directement à la broche analogique Arduino.
  • Le buzzer est directement connecté à la broche PWM D6. Bien que ce ne soit pas une bonne pratique, je m'en suis tiré car Arduino Nano pourrait gérer des spécifications plus élevées que celles indiquées et aussi parce que le buzzer ne fonctionnera pas en continu. La même configuration brûlerait facilement les broches sur les cartes ESP, donc dans ces cas, je recommande d'utiliser le contrôle du transistor.
  • L'horloge avait déjà un interrupteur alors j'ai décidé de l'utiliser. Il a l'air naturel sur le dos.

Étape 7: Tableau de jonction pour des connexions faciles

Carte de jonction pour des connexions faciles
Carte de jonction pour des connexions faciles
Carte de jonction pour des connexions faciles
Carte de jonction pour des connexions faciles

Tous les modules nécessitent des connexions positives et à la terre, j'ai donc décidé d'utiliser une carte prototype de 2x8 cm et j'y ai soudé des rails de 5V et de terre. J'y ai également réalisé un petit rail I2C car j'avais plusieurs modules utilisant l'interface I2C.

De l'autre côté, j'ai soudé des broches standard afin de pouvoir connecter et déconnecter les modules en cas de besoin.

Certains des composants supplémentaires y ont également été soudés, tels que le transistor et la résistance pour le contrôle du moteur et une résistance pour le bouton Menu qui utilise l'interruption. J'ai montré les schémas dans la section précédente.

btw Pouvez-vous voir le capteur LDR déjà installé sur le cadran de l'horloge sur la première image ?

Étape 8: Configuration de l'alimentation

Configuration de l'alimentation
Configuration de l'alimentation

J'ai utilisé une vieille batterie Lithium-ion de mon téléphone portable pour alimenter cette horloge. Habituellement, les batteries de téléphones portables qui sont remplacées ont encore une bonne capacité (au moins la moitié de ce qu'elles étaient lorsqu'elles étaient neuves). Leur avantage est qu'ils ont un circuit de protection contre les décharges intégré et qu'ils sont également très minces et peuvent donc être utilisés dans des scénarios de petit espace.

Pour connecter la batterie, il suffit de souder les fils aux broches + et - de la batterie. Ne vous inquiétez pas, vous n'endommagerez pas la cellule car il y a un contrôleur et un espace vide entre les broches et les produits chimiques de la cellule.

Sur cette photo vous pouvez voir la batterie ainsi que le contrôleur de charge TP4056 ainsi que le booster 5V connectés entre eux et à la batterie. J'ai utilisé des tubes rétractables pour que tout soit isolé et compact.

Étape 9: Micro USB pour charger et mettre à jour le micrologiciel

Micro USB pour charger et mettre à jour le firmware
Micro USB pour charger et mettre à jour le firmware

Une fois le tout soudé, j'ai collé le buzzer et le capteur température/pression/humidité sur le panneau arrière. Ils s'intègrent tous parfaitement dans les fentes existantes des anciennes commandes de cadran d'horloge.

Il était maintenant temps d'installer le port Micro USB à l'arrière. Pourquoi Micro USB si Nano utilise Mini USB ? Tout simplement parce que dans les ménages, la plupart des câbles USB proviennent de téléphones portables et il serait pratique que l'horloge puisse également prendre cela.

Comme je voulais l'utiliser à la fois pour charger et mettre à jour les fonctions d'horloge et de station météo - j'ai dénudé le câble USB, acheminé les fils d'alimentation via le chargeur TP4056 et les fils Data+/Data- directement vers la prise USB d'Arduino Nano. Vous pouvez le voir sur le schéma que j'ai montré dans les sections précédentes.

Étape 10: Assemblage final

L'assemblage final
L'assemblage final
L'assemblage final
L'assemblage final
L'assemblage final
L'assemblage final

Il était maintenant temps de tout remettre dans l'horloge d'origine. J'ai utilisé un tube thermorétractable pour isoler les composants et les modules. Même l'Arduino était enveloppé dans un tube rétractable.

Survolez la première photo pour voir où chaque composant a été placé.

Étape 11: Le Code

Comme vous pouvez le voir, l'horloge est entièrement emballée à l'intérieur. Cela a permis de créer quelque chose de plus sophistiqué que l'ancienne horloge que j'avais - étant donné qu'il y a bien sûr des compétences en programmation. J'ai écrit le code initial mais j'ai demandé à mon ami d'intervenir et de m'aider.

Jusqu'à présent, outre l'horloge elle-même, voici les fonctions que ce projet prend déjà en charge:

  • Affichage de l'heure et de la date (ainsi que l'heure et l'activation de l'alarme sur le même écran)
  • L'écran s'allume dans des conditions sombres ou lorsqu'un mouvement est détecté (en fonction des changements de lumière)
  • Prévisions météo (ensoleillé, nuageux, pluvieux)
  • Affichage de la température, de la pression et de l'humidité (pour l'humidité il indiquera s'il fait trop sec)
  • Menu pour les paramètres: alarme, changement d'heure, activer/désactiver l'affichage de la date, activer/désactiver les notifications sonores de changement de météo et basculer entre les unités impériales et métriques
  • Paramètres d'alarme - marche/arrêt, réglage de l'heure, réglage de la mélodie et/ou des cloches pour les notifications

Dernier code:

Le code va être mis à jour à l'avenir avec de nouvelles fonctionnalités, alors assurez-vous de vérifier les mises à jour du firmware:-)

Si vous êtes nouveau dans le monde Arduino, voici les étapes que je vous recommanderais de faire:

  • Installez le pilote USB pour votre carte (par exemple CH340)
  • Installer l'IDE Arduino
  • Installer les bibliothèques utilisées dans ce projet
  • Téléchargez à partir de GitHub et téléchargez le dernier code du projet sur l'horloge à l'aide d'un câble micro USB (vous pouvez en utiliser un à partir d'un téléphone portable)

L'algorithme de prévision est le suivant:

Arduino Nano obtient de nouvelles données du capteur BME280 toutes les 12 minutes. Le cycle de mesure est de 3 heures. Après 3 heures, la plage de surveillance de la pression (valeur max et min pendant 3 heures) se déplace par rapport aux valeurs moyennes de la plage actuelle et de la valeur de pression actuelle. Toutes les heures, la direction du changement de pression avec la valeur de pression actuelle est enregistrée. Les unités kPa sont utilisées pour le calcul des prévisions.

En raison des limitations de mémoire de Nano, l'algorithme de prévision a dû être simplifié. Mais malgré des simplifications, il est capable de prévoir les précipitations dans les 12 à 24 prochaines heures, même si les prévisions sont désormais plus pessimistes - la valeur par défaut est « Météo nuageux ».

"Temps ensoleillé" - la valeur actuelle de la pression est supérieure à la norme de 7 points, la pression ne baisse pas et la différence entre les valeurs min et max au cours des 3 dernières heures ne dépasse pas 2 points.

Précipitations possibles "Temps pluvieux" - la pression actuelle est inférieure de 15 points à la norme et la différence entre les valeurs min et max est supérieure à 2 points OU La pression diminue et la différence entre la valeur actuelle et la norme est de 3 à 30 points.

Pour améliorer la qualité des prévisions, il est recommandé de modifier votre "altitude" dans le fichier de code principal. Vous pouvez obtenir votre altitude par exemple ici:

Étape 12: vidéo étape par étape

Image
Image

S'il était difficile de suivre ce que j'ai fait ci-dessus, voici également une version vidéo avec toutes les étapes indiquées.

Étape 13: Derniers mots

Dans l'ensemble, de mon point de vue, le niveau de difficulté de ce projet n'est pas élevé et n'importe qui pourrait le faire. Si vous n'avez pas une vieille horloge, vous pouvez en trouver une pas chère dans un marché aux puces local.

Tous les composants sont à bas prix et sont disponibles sur Sparkfun/Aliexpress/eBay/Amazon.

J'espère que ce tutoriel vous a intéressé et vous serais reconnaissant de soutenir mon premier concours Instructable in the Clock.

Concours d'horloges
Concours d'horloges
Concours d'horloges
Concours d'horloges

Finaliste du concours d'horloges

Conseillé: