Table des matières:
- Étape 1: préparer le Pi
- Étape 2: câblez le tout
- Étape 3: Testez votre I2C
- Étape 4: Installez MySQL et PhpMyAdmin
- Étape 5: installer les modules Python
- Étape 6: Code pour se connecter à la base de données
- Étape 7: Code pour afficher la température
- Étape 8: Boîtier imprimé en 3D
- Étape 9: Choses à faire
Vidéo: Horloge météo baromètre Raspberry Pi : 9 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
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
Configurez votre Raspberry Pi - Détails sur Raspberrypi.org
- Téléchargez et installez votre distribution Linux sélectionnée sur une carte SD - J'ai utilisé Raspbian
- Branchez le pi et démarrez-le
- J'ai utilisé un adaptateur micro WiFi pour connecter le pi à mon routeur car le boîtier de l'horloge masque le port Ethernet.
- 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.
-
Configurez I2C sur le Pi - J'ai suivi ces instructions sur le site Adafruit.
Étape 2: câblez le 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
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
- 0x70 = Affichage 7 segments
- 0x77 = BMP180 Thermomètre / Capteur baromètre
- 0x68 = module d'horloge temps réel DS3231
- 0x57 = DS3231 à bord EEPROM pour stocker les données d'alarme.
Étape 4: Installez 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.
- Module Adafruit_BMP085
- module SDL_DS3231
- 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
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
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
- 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.
- 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.
- Il y a quelques problèmes de conception mineurs avec la fissuration de la base qui seront également corrigés.
- 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é:
Baromètre IoT : 5 étapes (avec photos)
Baromètre IoT : Mesurez et enregistrez la température et la pression atmosphérique avec ce baromètre IoT.Je souhaite présenter un baromètre IoT. Il permet de mesurer et de stocker des données de température et de pression dans la plate-forme IoT Adafruit. J'ai publié un projet similaire qui m
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 électronique C51 4 bits - Horloge en bois : 15 étapes (avec photos)
Horloge électronique C51 4 bits - Horloge en bois : J'ai eu du temps libre ce week-end, alors je suis allé de l'avant et j'ai assemblé cette horloge numérique électronique bricolage 4 bits de 2,40 AU $ que j'ai achetée sur AliExpress il y a quelque temps
Station météo Acurite 5 en 1 utilisant un Raspberry Pi et Weewx (d'autres stations météo sont compatibles) : 5 étapes (avec photos)
Station météo Acurite 5 en 1 utilisant un Raspberry Pi et Weewx (d'autres stations météo sont compatibles) : Lorsque j'ai acheté la station météo Acurite 5 en 1, je voulais pouvoir vérifier la météo chez moi pendant mon absence. Quand je suis rentré à la maison et que je l'ai configuré, j'ai réalisé que je devais soit connecter l'écran à un ordinateur, soit acheter leur hub intelligent