Table des matières:

Horloge météo baromètre Raspberry Pi : 9 étapes (avec photos)
Horloge météo baromètre Raspberry Pi : 9 étapes (avec photos)

Vidéo: Horloge météo baromètre Raspberry Pi : 9 étapes (avec photos)

Vidéo: Horloge météo baromètre Raspberry Pi : 9 étapes (avec photos)
Vidéo: Station météo avec Raspberry PI 2024, Novembre
Anonim
Horloge météo baromètre Raspberry Pi
Horloge météo baromètre Raspberry Pi

Dans cette instructable, je vais vous montrer comment construire une horloge thermomètre/baromètre de base à l'aide d'un Raspberry Pi 2 avec un capteur BMP180 I2C s'affichant sur un écran I2C Adafruit 4 chiffres 7 segments. Le Pi utilise également un module d'horloge I2C en temps réel DS3231 pour garder l'heure lorsque le Pi est redémarré.

L'horloge parcourt 4 étapes pendant 5 secondes chacune. D'abord, il montre la température en Celsius, puis en Fahrenheit puis la pression barométrique en kPa * (il parcourt ce nombre vers la gauche en raison du nombre limité de chiffres) et enfin il montre une tendance du changement de pression barométrique entre maintenant et la moyenne du heure précédente.

Ce qui rend cette horloge différente de la plupart, c'est qu'elle utilise une base de données MySQL sur le Pi pour enregistrer les données du BMP180 chaque minute. Comme la pression barométrique actuelle n'est pas aussi précieuse que son mouvement vers le haut ou vers le bas sur une période de temps donnée, il utilise cette base de données pour calculer une moyenne pour une période d'une heure entre 2 heures et 1 heure auparavant et la compare à la pression actuelle. Une augmentation significative de la pression barométrique indiquait généralement une amélioration des conditions météorologiques, alors qu'une forte baisse pourrait avertir d'une tempête imminente.

L'horloge est logée dans un boîtier en ABS imprimé en 3D avec le BMP180 dans un capuchon ventilé à l'arrière de l'horloge pour empêcher la chaleur générée par le Pi d'affecter les lectures de température. Je fournirai le schéma Autodesk 123D Design si vous souhaitez imprimer le vôtre.

L'horloge est alimentée par une verrue murale USB standard et consomme environ 450 mA au total.

Je n'entrerai pas dans trop de détails sur la configuration de base du Pi et de l'I2C, car cela a été couvert dans de nombreux autres instructables auxquels je fournirai des liens.

Étape 1: préparer le Pi

Préparer le Pi
Préparer le Pi

Configurez votre Raspberry Pi - Détails sur Raspberrypi.org

  1. Téléchargez et installez votre distribution Linux sélectionnée sur une carte SD - J'ai utilisé Raspbian
  2. Branchez le pi et démarrez-le
  3. J'ai utilisé un adaptateur micro WiFi pour connecter le pi à mon routeur car le boîtier de l'horloge masque le port Ethernet.
  4. J'ai utilisé le mode sans tête où vous vous connectez au pi en utilisant SSH, donc tout ce dont vous avez besoin de brancher est l'alimentation.
  5. Configurez I2C sur le Pi - J'ai suivi ces instructions sur le site Adafruit.

Étape 2: câblez le tout

Câblez tout
Câblez tout

Tous les modules que j'utilise dans ce projet sont tolérants à 5 V et utilisent I2C qui est un protocole à 2 fils utilisé pour que les circuits intégrés communiquent entre eux, le câblage est donc assez simple. Connectez tous les VCC à 5V, toutes les masses ensemble et toutes les lignes SCA et SCL ensemble selon le schéma. Travail accompli.

Étape 3: Testez votre I2C

Testez votre I2C
Testez votre I2C

Une partie de l'installation I2C consiste à exécuter i2cdetect qui devrait ressembler à l'image ci-jointe si tout est câblé correctement.

Ci-dessous les adresses correspondantes

  1. 0x70 = Affichage 7 segments
  2. 0x77 = BMP180 Thermomètre / Capteur baromètre
  3. 0x68 = module d'horloge temps réel DS3231
  4. 0x57 = DS3231 à bord EEPROM pour stocker les données d'alarme.

Étape 4: Installez MySQL et PhpMyAdmin

Installer MySQL et PhpMyAdmin
Installer MySQL et PhpMyAdmin

L'installation de mySQL est assez simple si vous suivez le tutoriel ici

sudo apt-get install mysql-server

J'ai également installé phpMyAdmin qui est un site Web qui fonctionne sur Apache et que vous pouvez utiliser pour créer et gérer des bases de données mySQL. Tutoriel ici

sudo apt-get installer phpmyadmin

Une fois installé, j'ai configuré une base de données appelée BP180 à l'aide de phpMyAdmin avec la structure selon l'image.

J'utilise également un module python appelé mysqlDB que vous pouvez installer en utilisant

sudo apt-get installer python-mysqldb

Étape 5: installer les modules Python

Téléchargez et installez les modules python ci-dessous que vous utiliserez pour vous connecter aux capteurs.

  1. Module Adafruit_BMP085
  2. module SDL_DS3231
  3. Module Adafruit 7 segments

Étape 6: Code pour se connecter à la base de données

L'extrait de code ci-dessous est utilisé pour enregistrer la température et la pression barométrique et est appelé à partir d'un script cron (tâches planifiées Linux) qui s'exécute toutes les 5 minutes. Pour apprendre à utiliser crond, consultez ce tutoriel.

NB ! Ne vous embêtez pas à détruire mes compétences en codage, je ne suis pas un développeur, donc oui, il existe probablement un million de façons meilleures, plus rapides, plus fluides et plus propres de le faire

Vous remarquerez dans le code que la température est décrémentée de 7 degrés ce qui équivaut à la chaleur générée par le Raspberry Pi même avec le BMP180 monté à l'extérieur du boîtier. Quand je l'avais à l'origine à l'intérieur du boîtier, il faisait environ 15 degrés plus chaud que la température ambiante. Cela semble assez linéaire, mais je n'ai pas eu l'occasion de tester les extrêmes. Un retour d'expérience serait apprécié.

Étape 7: Code pour afficher la température

Code pour afficher la température
Code pour afficher la température
Code pour afficher la température
Code pour afficher la température
Code pour afficher la température
Code pour afficher la température
Code pour afficher la température
Code pour afficher la température

Ce code est appelé pour faire défiler l'affichage selon l'introduction.

Encore une fois, je ne suis pas un développeur donc le code est vraiment approximatif, mais ça marche

Étape 8: Boîtier imprimé en 3D

Boîtier imprimé en 3D
Boîtier imprimé en 3D
Boîtier imprimé en 3D
Boîtier imprimé en 3D
Boîtier imprimé en 3D
Boîtier imprimé en 3D
Boîtier imprimé en 3D
Boîtier imprimé en 3D

Vient ensuite la conception de l'enceinte. C'était assez difficile car la forme est sujette à la déformation car certaines parties de la coque extérieure ne font que 2 mm d'épaisseur. J'ai d'abord dessiné des maquettes du Pi et de toutes les pièces, puis j'ai conçu l'enceinte qui l'entoure. L'impression a pris environ 7 heures sur mon RapMan 3.2 (qui est une imprimante assez lente) à une profondeur de couche de 0,25.

Le schéma ci-joint est fait dans Autodesk 123D Design qui, je pense, est un logiciel gratuit fantastique.

Notez que certains des trous comme ceux nécessaires pour monter le Pi ne sont pas dans la conception car il est préférable de les percer par la suite au cas où votre impression se déformerait un peu. Main ferme, un foret de 3 mm est tout ce dont vous avez besoin. Marquez la profondeur sur la mèche avec du ruban adhésif afin de ne pas passer accidentellement à travers votre impression de 7 heures comme je l'ai fait.

Étape 9: Choses à faire

Choses à faire
Choses à faire
  1. L'horloge en temps réel était un ajout après que le boîtier ait été imprimé pour la 5ème fois, il est donc actuellement collé à chaud sur le côté du boîtier, ce qui n'a pas l'air bien, j'aimerais donc refaire le design et ajouter un endroit pour cela.
  2. La luminosité de l'affichage à 7 segments est actuellement réglée sur sa plus légère, ce qui n'est pas optimal pour des conditions de forte luminosité. J'aimerais ajouter une photorésistance en haut du boîtier et régler la luminosité à 7 segments en fonction des conditions de luminosité ambiante.
  3. Il y a quelques problèmes de conception mineurs avec la fissuration de la base qui seront également corrigés.
  4. Toutes les idées sont les bienvenues.

J'espère que vous avez apprécié cette instructable et que vous l'avez trouvée assez inspirante pour vous permettre de continuer. L'idée est de fournir une plate-forme que vous pouvez utiliser pour ajouter vos propres idées. S'amuser!

Conseillé: