Table des matières:

Encore une autre station météo (Y.A.W.S.) : 18 étapes (avec photos)
Encore une autre station météo (Y.A.W.S.) : 18 étapes (avec photos)

Vidéo: Encore une autre station météo (Y.A.W.S.) : 18 étapes (avec photos)

Vidéo: Encore une autre station météo (Y.A.W.S.) : 18 étapes (avec photos)
Vidéo: bagarre il lui donne une patate 2024, Juillet
Anonim
Encore une autre station météo (Y. A. W. S.)
Encore une autre station météo (Y. A. W. S.)

Ce projet est mon point de vue sur la station météo toujours populaire. Le mien est basé sur un ESP8266, un écran OLED de.96" et un réseau de capteurs environnementaux BME280. Les stations météorologiques semblent être un projet très populaire. Le mien se différencie des autres en utilisant un réseau de capteurs BME280 au lieu du populaire capteur de température et d'humidité DHT22. Le BME280 dispose d'un capteur de température, d'humidité et de pression atmosphérique. Il utilise également l'interface I2C. L'écran OLED.96" utilisé est également I2C. Il peut être acheté en tant que I2C ou SPI ou les deux. J'ai opté pour la version I2C pour simplifier le câblage. Avec l'écran OLED et le BME280 utilisant I2C et 3,3 V, il était très facile de créer un câble en « Y » pour connecter les deux appareils à l'ESP8266. Lors du développement de ce projet, je suis tombé sur plusieurs projets de stations météorologiques sur Internet qui utilisent l'ESP8266, le même écran OLED et le BME280. Ce n'est donc pas une idée originale, mais c'est une mise en œuvre originale.

Le BME280 fournit des données d'environnement interne. Les informations météorologiques extérieures sont obtenues à partir d'OpenWeatherMap.org. Vous devrez vous inscrire sur OpenWeatherMap.org pour obtenir une clé pour accéder aux données météorologiques. Ils offrent un service gratuit, ce que j'ai utilisé. Voir l'étape Comment obtenir une clé OpenWeatherMap pour obtenir des instructions sur la façon d'obtenir une clé.

Un serveur de temps NTP est utilisé pour obtenir l'heure et le jour de la semaine.

Les données météorologiques, l'heure et l'environnement sont affichées sur l'écran OLED. Chaque information a son propre écran formaté. Les écrans sont affichés pendant cinq secondes avant de passer à un autre. OpenWeatherMap.org est accessible toutes les quinze minutes pour actualiser les informations météorologiques. Le BME280 est lu toutes les cinquante-cinq secondes environ. La police utilisée sur chaque écran est automatiquement ajustée pour afficher toutes les informations dans la plus grande police possible.

L'ESP8266 est également configuré pour être un serveur Web. Toutes les informations météo sont accessibles via un navigateur depuis votre téléphone, tablette ou ordinateur. L'un des écrans affichés indique l'adresse IP du serveur Web.

L'ESP8266 est disponible dans une variété de formes et de tailles. Je choisis un kit de développement GEEKCREIT DoIt ESP12E V2. Celui-ci est entièrement compatible avec la « norme » NodeMCU pour les modules autonomes ESP8266. Il dispose d'un régulateur 3,3 V intégré, d'un CH340 comme pont USB vers série et du circuit de réinitialisation automatique NodeMCU. Vous êtes libre d'utiliser n'importe quel module ESP8266-12 que vous possédez. Sachez simplement que vous devrez peut-être ajouter un régulateur 3,3 V ou d'autres circuits pour le programmer. J'en ai également construit un à l'aide d'un Witty Cloud ESP8266. Cela m'a permis de tout emballer dans un cube de 1,5 pouce. La carte pont USB inférieure est déconnectée après programmation. J'ai ajouté une broche d'en-tête à angle droit au trou de 3,3 V sur la carte Witty. Le harnais était composé de deux coques à quatre broches, une coque à deux broches et deux coques à une broche.

Sur la photo ci-dessus, la carte sur laquelle le module ESP8266 est branché est une carte de circuit imprimé que j'ai développée comme carte de dérivation pour l'ESP8266 et l'ESP32. Il acceptera les cartes ESP8266 à corps étroit compatibles NodeMCU, la carte Witty Cloud ESP8266 ou une carte ESP32 de GEEKCREIT. Toutes les broches GPIO disponibles sont réparties en en-têtes pour un accès facile. J'ai constaté que la plupart des cartes de développement n'ont jamais assez de broches d'alimentation et de masse. Chaque fois que vous souhaitez attacher quelque chose, vous avez besoin d'au moins une broche de terre et la plupart du temps une broche pour alimenter l'appareil. Chaque rangée de broches GPIO est accompagnée d'une broche d'alimentation 3,3 V et d'une broche de masse. J'utilise la même disposition que celle de First Robotics, la puissance au milieu. J'aime cette disposition car si vous branchez quelque chose à l'envers, vous ne libérez pas la fumée magique. La carte a quelques extras, un capteur IR, un interrupteur à bouton-poussoir et une LED tricolore. Des cavaliers peuvent être utilisés pour se connecter à l'une de ces fonctionnalités. Si vous êtes intéressé par l'une de ces cartes de dérivation ESPxx, contactez-moi.

Étape 1: Ce dont vous aurez besoin:

Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin

1 – Carte capteur de température, d'humidité et de pression BME280 I2C

J'ai acheté le mien sur Ebay depuis la Chine pour environ 1,25 $ avec la livraison gratuite. Également disponible chez Adafruit ou Sparkfun

1 -.96 , 128x64, écran OLED I2C utilisant le pilote SSD1306

J'ai acheté le mien sur Ebay en provenance de Chine pour environ 4,00 $. Le mien est blanc. Vous pouvez trouver du bleu et du blanc avec une zone de jaune sur le dessus. Certains sont vendus en tant que SPI et I2C. Vous devrez peut-être déplacer certaines résistances pour sélectionner le fonctionnement I2C. La partie importante est qu'il utilise la puce de pilote SD1306. Également disponible chez Adafruit.

1 – NodeMCU ESP8266-12 avec CH340

Vous pouvez utiliser n'importe quel module ESP8266-12 que vous voulez. Je préfère ceux avec le pont USB vers série CH340. Il y a eu une vague de fausses puces de pont FTDI et SI il y a quelques années, je ne fais plus confiance à rien d'autre qu'au CH340.

2 – Coquilles DuPont 4 broches, pas de 0,1 pouce (2,54 mm)

2 – Coquilles DuPont 2 broches, pas de 0,1 pouce (2,54 mm)

12 – Pinces femelles DuPont pour fil 22-28 awg

Je reçois le mien sur Ebay. Vous pouvez également utiliser Molex ou toute autre marque que vous préférez. Broches serties ou IDC À vous de choisir. Veillez à acheter les bonnes broches pour vos coquilles. Ils ne sont pas mélangés et assortis. Vous pouvez également simplement souder les fils aux cartes et éliminer les connecteurs. Si vous utilisez les broches serties, vous aurez besoin d'une pince à sertir. N'essayez pas de sertir avec une paire de pinces. Ça ne marche pas.

Bloc d'alimentation mural 1 - 5V, 1A minimum.

Ceux-ci sont bon marché et disponibles sur Ebay. Obtenez-en un avec un connecteur micro USB ou tout autre appareil compatible avec votre carte ESP8266.

Vous aurez également besoin de huit morceaux de fil 22-28 awg pour tout connecter ensemble. Ou vous pouvez simplement câbler le tout sur un morceau de planche de perforation. C'est comme tu veux.

J'ai inclus une image de ce qui a été utilisé pour construire la station météo à l'aide d'un Witty Cloud ESP8266. Une image détaille où ajouter une broche d'en-tête à angle droit au capteur 3,3 V. L'une des deux coques à broche est remplacée par deux coques à une broche. Les fils de terre et de 3,3 V sont insérés dans les coques à une broche.

Suivez ce lien pour obtenir les fichiers de code source du référentiel GitHub; ESP8266-Station météo. Le dossier zip ou le dossier cloné aura un dossier WeatherStation qui contient WeatherStation.ino et BME280.h. Ce sont les fichiers de code source. Il existe également plusieurs fichiers pdf. Les fichiers pdf ont à peu près les mêmes informations que cette instructable.

Étape 2: Outils:

Outils
Outils
Outils
Outils

Après avoir essayé de nombreuses marques de sertisseuses, j'ai trouvé que l'ingénieur japonais PA-21 ou PA-09 fonctionne mieux pour les sertissages mâles et femelles DuPont. Il est disponible sur Ebay ou Amazon. L'un ou l'autre fonctionnera pour les broches DuPont. Le PA-09 fera également les broches des connecteurs JST couramment utilisés sur les batteries LiPo. Voici un lien vers une vidéo sur l'utilisation des sertisseuses Engineer avec les sertissages DuPont; Comment utiliser les pinces à sertir PA-21

Instructables a récemment eu un excellent tutoriel sur l'utilisation des pinces à sertir Weierli Tools SN-28B avec des broches et des coques DuPont. Vous pouvez voir ça ici; Faites un bon pin-crimp Dupont À CHAQUE FOIS !

Étape 3: Fabriquez le harnais:

Faire le harnais
Faire le harnais
Faire le harnais
Faire le harnais

Le faisceau de câbles est la clé de ce projet. Il s'agit d'un câble "Y" de base à quatre fils. Ci-dessus, une photo du harnais que j'ai fait. L'écran OLED et le réseau de capteurs BME280 ont le même brochage. Cela signifie que les deux coques à quatre broches sont identiques après l'insertion des fils sertis. J'ai fait mon harnais avec les fils à double sertissage entrant dans les deux coques à deux broches qui se fixent à la carte ESP8266. Au lieu de cela, vous pouvez choisir de fourrer les fils à double sertissage dans l'une des coques à quatre broches, ce qui en fait une connexion en guirlande. L'un ou l'autre fonctionnera.

  1. Coupez tous vos fils à longueur. J'aime utiliser des couleurs différentes pour chaque fil; rouge pour 3.3V, noir pour masse, jaune pour SCL et vert pour SDA.
  2. Dénudez une extrémité de chaque fil d'environ 0,1 pouce.
  3. Torsadez les brins ensemble et ajoutez un sertissage femelle.
  4. Une fois que tous les fils ont un sertissage à une extrémité, dénudez tous les fils sur environ 0,2 pouce.
  5. Torsadez les brins de deux fils de même couleur ensemble.
  6. Une fois tordu, coupez à environ 0,1 pouce et ajoutez un sertissage femelle.
  7. Lorsque toutes les paires de fils sont serties, il est temps d'insérer les extrémités serties dans les coques.
  8. Les deux coques à quatre broches sont bourrées, de gauche à droite, de rouge, noir, jaune, vert ou 3.3V, Gnd, SCL, SDA.
  9. L'une des deux coques de broches reçoit les fils rouge et noir.
  10. L'autre coque à deux broches reçoit les fils jaune et vert.

Étape 4: Astuce:

Conseil
Conseil
Conseil
Conseil
Conseil
Conseil

J'ai constaté que lorsque j'utilise du fil 28 awg avec les broches à sertir, elles ont tendance à tomber. Ce que je fais pour éviter cela, c'est de dénuder l'extrémité du fil deux fois plus longtemps que d'habitude. Torsadez les fils exposés ensemble. Ensuite, repliez le fil torsadé pour doubler l'épaisseur. Maintenant, quand je le sertisse, le fil est assez épais pour tenir fermement.

Étape 5: Connectez-les tous ensemble:

Connectez tout ensemble
Connectez tout ensemble
Connectez tout ensemble
Connectez tout ensemble
Connectez tout ensemble
Connectez tout ensemble
  1. Branchez les coques à quatre broches sur l'écran OLED et les cartes BME280.
  2. Alignez le fil rouge avec les broches Vcc et 3V3.
  3. Branchez la coque rouge/noir à deux broches sur une paire de broches 3V3 (3,3 V) et GND sur la carte ESP8266. Il y a trois endroits sur la carte où les broches 3V3 et GND sont adjacentes. Évitez les broches Vin (5V) et GND car elles libéreront la fumée magique de vos cartes OLED et BME280. Assurez-vous que le fil rouge est connecté à la broche 3V3.
  4. Branchez la coque à deux broches jaune/vert sur D1 et D2 sur la carte ESP8266. Le fil jaune (SCL) doit être sur D1.

Vérifiez vos connexions. Si tout semble bon, vous êtes prêt à alimenter la carte ESP8266.

Étape 6: Comment obtenir une clé OpenWeatherMap

Comment obtenir une clé OpenWeatherMap
Comment obtenir une clé OpenWeatherMap

Vous aurez besoin d'une clé API pour accéder au site Web OpenWeatherMap.org et obtenir les informations météorologiques actuelles. Les prochaines étapes détaillent comment s'inscrire avec OpenWeatherMap.org et obtenir une clé API.

Suivez ce lien vers OpenWeatherMap.org.

Cliquez sur API vers le milieu du haut de la page Web.

Étape 7: Comment obtenir une clé OpenWeatherMap, abonnez-vous

Comment obtenir une clé OpenWeatherMap, abonnez-vous
Comment obtenir une clé OpenWeatherMap, abonnez-vous

Sur le côté gauche, sous Données météo actuelles, cliquez sur le bouton S'abonner.

Étape 8: Comment obtenir une clé OpenWeatherMap, obtenir une clé API

Comment obtenir une clé OpenWeatherMap, obtenir une clé API
Comment obtenir une clé OpenWeatherMap, obtenir une clé API

Cliquez sur Get APIkey et Start dans la colonne Free.

Étape 9: Comment obtenir une clé OpenWeatherMap, s'inscrire

Comment obtenir une clé OpenWeatherMap, s'inscrire
Comment obtenir une clé OpenWeatherMap, s'inscrire

Cliquez sur le bouton S'inscrire sous Comment obtenir la clé API (APPID).

Étape 10: Comment obtenir une clé OpenWeatherMap, créer un compte

Comment obtenir une clé OpenWeatherMap, créer un compte
Comment obtenir une clé OpenWeatherMap, créer un compte

Remplissez tous les champs. Lorsque vous avez terminé, cochez la case J'accepte les conditions d'utilisation et la politique de confidentialité. Cliquez ensuite sur le bouton Créer un compte.

Vérifiez votre courrier électronique pour un message d'OpenWeatherMap.org. L'e-mail contiendra votre clé API. Vous devrez copier la clé API dans le code source de la station météo afin d'obtenir la météo actuelle.

Le service gratuit OpenWeatherMap.org a quelques limitations. Tout d'abord, vous ne pouvez pas y accéder plus d'une fois toutes les dix minutes. Cela ne devrait pas être un problème car le temps ne change pas si rapidement. Les autres limitations concernent les informations disponibles. Tous les abonnements payants fourniront des informations météorologiques plus détaillées.

Étape 11: Configurez l'IDE Arduino:

Configurez l'IDE Arduino
Configurez l'IDE Arduino

Le développement du programme a été effectué à l'aide de la version 1.8.0 de l'IDE Arduino. Vous pouvez télécharger le dernier IDE Arduino ici; IDE Arduino. Le site Web d'Arduino contient d'excellentes instructions sur l'installation et l'utilisation de l'IDE. La prise en charge de l'ESP8266 peut être installée dans l'IDE Arduino en suivant les instructions données par ce lien: ESP8266 Addon to Arduino. Sur la page Web, cliquez sur le bouton « Cloner ou télécharger » et sélectionnez « Télécharger le zip ». Le fichier ReadMe.md contient des instructions sur la façon d'ajouter le support ESP8266 à l'IDE Arduino. Il s'agit d'un fichier texte brut que vous pouvez ouvrir avec n'importe quel éditeur de texte.

Les cartes ESP8266 sont de toutes tailles et de toutes formes et utilisent différentes puces de pont USB vers série. Je préfère les cartes qui utilisent la puce de pont CH340. Il y a quelques années, FTDI, SI et d'autres se sont lassés des clones bon marché prétendant être leurs pièces. Les fabricants de puces ont modifié leur code de pilote pour ne fonctionner qu'avec leurs propres pièces d'origine. Cela a entraîné beaucoup de frustration lorsque les gens ont découvert que les ponts USB vers série ne fonctionnaient plus. De nos jours, je m'en tiens aux ponts USB vers série basés sur CH340 pour éviter d'acheter des cartes qui peuvent ou non fonctionner. Dans tous les cas, vous devrez trouver et installer le bon pilote pour la puce de pont utilisée sur votre carte. Ceci est un lien vers le site officiel des pilotes CH340; CH341SER_EXE.

L'ESP8266 n'a pas de matériel I2C dédié. Tous les pilotes I2C pour l'ESP8266 sont basés sur le bit-banging. L'une des meilleures bibliothèques ESP8266 I2C est la bibliothèque brzo_I2C. Il a été écrit en langage assembleur pour l'ESP8266 afin de le rendre aussi rapide que possible. La bibliothèque d'affichage OLED que j'utilise utilise la bibliothèque brzo_I2C. J'ai ajouté du code pour accéder au réseau de capteurs BME280 à l'aide de la bibliothèque brzo_I2C.

Vous pouvez obtenir la bibliothèque OLED ici: Bibliothèque ESP8288-OLED-SSD1306.

Vous pouvez obtenir la bibliothèque brzo_I2C ici: Bibliothèque Brzo_I2C.

Les deux bibliothèques devront être installées dans votre IDE Arduino. Le site Web Arduino contient des instructions sur l'installation des bibliothèques zip dans l'IDE ici: Comment installer les bibliothèques Zip.

Astuce: Après avoir installé le package des cartes ESP8266 et les bibliothèques, fermez l'IDE Arduino et rouvrez-le. Cela garantira que les cartes et bibliothèques ESP8266 apparaîtront dans l'IDE.

Étape 12: Sélectionnez votre tableau:

Sélectionnez votre tableau
Sélectionnez votre tableau

Ouvrez l'IDE Arduino. Si vous ne l'avez pas encore fait, installez l'addon ESP8266, la bibliothèque brzo_i2c et la bibliothèque de pilotes OLED.

Cliquez sur " Outils" dans la barre de menu supérieure. Faites défiler le menu déroulant jusqu'à l'endroit où il est écrit « Board: ». Faites glisser jusqu'au menu déroulant " Board Manager" et faites défiler jusqu'à; " NodeMCU 1.0 (module ESP-12E) ". Cliquez dessus pour le sélectionner. Laissez tous les autres paramètres à leur valeur par défaut.

Étape 13: Sélectionnez le port série:

Sélectionnez le port série
Sélectionnez le port série

Cliquez sur " Outils" dans la barre de menu supérieure. Faites défiler le menu déroulant jusqu'à l'endroit où il est écrit " Port ". Sélectionnez le port qui convient à votre ordinateur. Si votre port ne s'affiche pas, soit votre carte n'est pas branchée, soit vous n'avez pas chargé le pilote de votre puce de pont, soit votre carte n'était pas branchée lorsque vous avez ouvert l'IDE Arduino. Une solution simple consiste à fermer l'IDE Arduino, à brancher votre carte, à charger les pilotes manquants, puis à rouvrir l'IDE Arduino.

Étape 14: WeatherStation.ino

Vous pouvez soit utiliser les boutons de téléchargement ci-dessus, soit suivre ce lien vers GitHub pour obtenir le code source; ESP8266-Station météorologique.

Les fichiers WeatherStation.ino et BME280.h doivent être dans le même dossier. Le nom du dossier doit correspondre au nom du fichier.ino (sans l'extension.ino). Il s'agit d'une exigence Arduino.

Étape 15: Modifier WeatherStation.ino

Cliquez sur "Fichier" dans la barre de menu supérieure. Cliquez sur "Ouvrir". Dans la boîte de dialogue Ouvrir un fichier, recherchez le dossier WeatherStation et sélectionnez-le. Vous devriez voir deux onglets, un pour WeatherStation et un pour BME280.h. Si vous n'avez pas les deux onglets, vous avez ouvert le mauvais dossier ou vous n'avez pas téléchargé les deux fichiers ou vous ne les avez pas enregistrés dans le bon dossier. Réessayer.

Vous devrez modifier le fichier WeatherStation.ino pour ajouter le SSID et le mot de passe de votre réseau WiFi. regardez autour de la ligne 62 pour ce qui suit;

// mettre le SSID et le mot de passe de votre réseau WiFi ici

const char* ssid = "yourssid"; const char* mot de passe = "mot de passe";

Remplacez " yourssid " par le SSID de votre réseau WiFi.

Remplacez " mot de passe " par le mot de passe de votre réseau WiFi.

Vous devrez également ajouter votre clé OpenWeatherMap et le code postal de votre lieu de résidence. Regardez autour de la ligne 66 pour ce qui suit;

// mettez votre clé OpenWeatherMap.com et le code postal ici

const char* owmkey = "votreclé"; const char* owmzip = "votrezip, pays";

Remplacez " yourkey " par la clé obtenue à partir d'OpenWeatherMap.org.

Remplacez " yourzip, country " par votre code postal et votre pays. Votre code postal doit être suivi d'une virgule et de votre pays ("10001, nous").

Ensuite, vous devez définir votre fuseau horaire et activer/désactiver l'heure d'été (DST). Regardez autour de la ligne 85 pour ce qui suit;

// Le temps brut renvoyé est en secondes depuis 1970. Pour ajuster les fuseaux horaires, soustraire

// le nombre de secondes de différence pour votre fuseau horaire. La valeur négative // soustraira le temps, la valeur positive ajoutera le temps #define TZ_EASTERN -18000 // nombre de secondes en cinq heures #define TZ_CENTRAL -14400 // nombre de secondes en quatre heures #define TZ_MOUTAIN -10800 // nombre de secondes en trois heures #define TZ_PACIFIC -7200 // nombre de secondes en deux heures

// Ajustez l'heure de votre fuseau horaire en remplaçant TZ_ESTERN par l'une des autres valeurs.

#define TIMEZONE TZ_EASTERN // remplacez-le par votre fuseau horaire

Il existe un groupe d'instructions #define qui définissent le décalage horaire pour différents fuseaux horaires. Si votre fuseau horaire est là, remplacez " TZ_EASTERN " dans la définition " TIMEZONE ". Si votre fuseau horaire n'est pas répertorié, vous devrez en créer un. Le serveur NTP donne l'heure en tant que Greenwich Mean Time. Vous devez soit ajouter soit soustraire un certain nombre d'heures (en secondes) pour arriver à votre heure locale. Copiez simplement l'une des instructions " #define TZ_XXX" puis modifiez le nom et le nombre de secondes. Remplacez ensuite "TZ_EASTERN" par votre nouveau fuseau horaire.

Vous devez également décider d'utiliser ou non l'heure d'été. Pour désactiver l'heure d'été, remplacez le "1" par un "0" dans la ligne suivante;

#define DST 1 // défini sur 0 pour désactiver l'heure d'été

Lorsqu'elle est activée, l'heure d'été avance ou retarde automatiquement l'heure d'une heure, le cas échéant.

Étape 16: Téléchargez le code sur votre ESP8266

Téléchargez le code sur votre ESP8266
Téléchargez le code sur votre ESP8266

Cliquez sur l'icône de flèche circulaire tournée vers la droite qui se trouve juste en dessous de « Modifier » dans la barre de menu supérieure. Cela compilera le code et le téléchargera sur votre tableau. Si tout se compile et se télécharge correctement, après quelques secondes, l'écran OLED devrait s'allumer et le message de connexion devrait apparaître.

Étape 17: Comment afficher le site Web des données météorologiques

Comment afficher le site Web de données météorologiques
Comment afficher le site Web de données météorologiques

L'image ci-dessus montre la page Web desservie par la station météo. Vous pouvez y accéder depuis votre PC, téléphone ou tablette. Ouvrez simplement un navigateur et saisissez l'adresse IP de la station météo comme URL. L'adresse IP de la station météo s'affiche sur l'un des écrans de la station météo. Cliquez sur Actualiser la page pour mettre à jour les informations.

Étape 18: Félicitations, vous avez terminé

C'est ça. Vous devriez maintenant avoir une station météo fonctionnelle. Votre prochaine étape pourrait être de concevoir et de fabriquer un boîtier pour abriter votre station météo. Ou peut-être souhaitez-vous ajouter quelques écrans supplémentaires pour afficher le refroidissement éolien, le point de rosée, les heures de lever ou de coucher du soleil ou un graphique des changements de pression barométrique ou prédire la météo à l'aide de la pression barométrique. Amusez-vous et profitez.

Conseillé: