Table des matières:

Construire un tableau de bord météo à l'aide de l'API Dark Sky : 5 étapes (avec photos)
Construire un tableau de bord météo à l'aide de l'API Dark Sky : 5 étapes (avec photos)

Vidéo: Construire un tableau de bord météo à l'aide de l'API Dark Sky : 5 étapes (avec photos)

Vidéo: Construire un tableau de bord météo à l'aide de l'API Dark Sky : 5 étapes (avec photos)
Vidéo: Le Plus Grand Point Noir Du Monde ?😱 2024, Novembre
Anonim
Image
Image

Dark Sky est spécialisé dans les prévisions et la visualisation météo. L'aspect le plus cool de Dark Sky est son API météo que nous pouvons utiliser pour récupérer les données météo de presque n'importe où dans le monde. Ce n'est pas seulement le temps est pluvieux ou ensoleillé, mais la température, le point de rosée, les rafales de vent, l'humidité, les précipitations, la pression, l'indice UV, etc., tous facilement disponibles où vous voulez, quand vous voulez.

Apprenons à utiliser l'API super simple de Dark Sky. Si vous débutez dans l'utilisation des API, je vous promets que ce sera vraiment facile ! Et si vous avez déjà utilisé des API, j'espère que nous pourrons vous apprendre quelque chose de nouveau avec le code que nous avons utilisé.

Ce dont vous aurez besoin pour ce projet:

  • Compte API Dark Sky
  • Compte Etat initial
  • Raspberry Pi ou ordinateur portable

Étape 1: Mise en route

Nous avons déjà beaucoup travaillé pour vous en assemblant le code et en organisant les informations. Nous aurons juste besoin que vous fassiez quelques ajustements en cours de route. Si vous voulez un peu de défi, apportez quelques modifications à notre code et aux données météorologiques envoyées, les possibilités sont illimitées !

Pour récupérer tout ce que nous avons préparé pour vous, vous devrez cloner le référentiel à partir de GitHub. GitHub est un service qui nous permet de stocker, réviser et gérer des projets comme celui-ci. Vous voudrez exécuter ce script sur un appareil dédié. Un Raspberry Pi est une option parfaite pour exécuter des applications comme ce tutoriel.

Pour cloner le référentiel, tout ce que nous avons à faire est d'aller dans le terminal de notre Pi, ou le terminal de votre ordinateur qui est SSH dans votre pi et tapez cette commande:

$ git clone

Appuyez sur Entrée et vous verrez ces informations:

Clonage dans 'darksky'…

remote: Comptage d'objets: 2, terminé. remote: Total 2 (delta 0), réutilisé 0 (delta 0), pack-used 2 Déballage des objets: 100 % (2/2), terminé. Vérification de la connectivité… terminé.

Une fois que vous voyez cela, félicitations, vous avez cloné avec succès le dépôt GitHub et vous disposez de tous les fichiers nécessaires pour créer ce projet. Avant de passer à l'étape suivante, prenons le temps d'explorer ce répertoire et d'apprendre quelques commandes de ligne de commande de base.

Tapez la commande ci-dessous dans votre terminal:

$ ls

Cette commande répertorie tout ce qui est disponible dans le répertoire dans lequel vous vous trouvez actuellement. Cette liste montre que notre GitHub Repo a été cloné avec succès dans notre répertoire sous le nom « darksky ». Voyons ce qu'il y a dans ce répertoire. Pour accéder à un répertoire, il vous suffit de taper « cd » puis de taper le nom du répertoire dans lequel vous souhaitez accéder.

Dans ce cas, nous taperons:

$ cd ciel noir

Une fois que nous avons appuyé sur Entrée, vous verrez que nous sommes maintenant dans le répertoire darksky. Tapons à nouveau "ls" pour voir quels fichiers nous avons installés sur notre pi.

README.md darksky.py …

Ici, nous voyons que nous avons notre document readme et nos fichiers python. Jetons un coup d'œil à darksky.py en utilisant la commande "nano". La commande nano nous permet d'ouvrir l'éditeur de texte nano où nous avons tout notre code python pour chaque segment de ce projet. Allez-y et tapez:

$ nano darksky.py

Ici vous pouvez voir tout le code que nous avons préparé pour vous pour ce projet. Nous n'allons pas encore apporter de modifications à ce document, mais n'hésitez pas à faire défiler et voir ce que nous allons faire plus tard dans ce didacticiel.

Étape 2: Utilisation de l'API Dark Sky

Etat initial
Etat initial

Pour utiliser l'API Dark Sky, vous avez d'abord besoin de votre propre clé API. Ne vous inquiétez pas, l'obtention d'une clé API est rapide et gratuite. Tout ce que vous avez à faire est d'aller sur le site Web et de cliquer sur « Essayer gratuitement » pour créer un compte.

  • Vous recevez 1 000 appels API gratuits chaque jour. Chaque demande d'API dépassant la limite quotidienne gratuite coûte 0,0001 $.
  • Cette limite se réinitialise automatiquement chaque jour à minuit UTC.
  • La demande de prévision renvoie les prévisions météorologiques actuelles pour la semaine prochaine.
  • La demande Time Machine renvoie les conditions météorologiques observées ou prévues pour une date passée ou future.

Votre clé secrète d'API Dark Sky ressemblera à ceci: 0123456789abcdef9876543210fedcba.

Vous pouvez effectuer un appel API vers Dark Sky en saisissant une URL dans votre navigateur au format suivant:

api.darksky.net/forecast/[clé]/[latitude], [longitude]

Remplacez "key" par votre clé API Dark Sky et longitude/latitude par ce que vous voulez. Vous pouvez trouver votre longitude et latitude en allant sur Google Maps et en recherchant votre position. Ces valeurs seront dans l'URL. Copiez et collez l'URL du ciel sombre ci-dessus avec votre clé d'accès et vos valeurs ajoutées dans une barre d'adresse.

Une fois que vous faites cela, vous verrez quelque chose comme ceci:

day", "nearestStormDistance":57, "nearestStormBearing":15, "precipIntensity":0, "precipProbability":0, "temperature":53.9, "apparentTemperature":53.9, "dewPoint":29.59, "humidity":0.39, "pression":1022.45, "windSpeed":3.87, "windGust":9.25, "windBearing":259, "cloudCover":0.01, "uvIndex":3, "visibility":7.8, "ozone":309.71}, "minutely":{"summary":"Clear pour l'heure.", "icon":"clear-day", "data":[{"time":1550615280, "precipIntensity":0, "precipProbability":0 }, …

Cela peut être un peu écrasant et difficile à lire, donc ce que je recommande de faire est d'utiliser un formateur JSON pour aider à rendre les données plus lisibles. Lorsque vous faites cela, cela ressemblera à quelque chose comme ceci:

objet {9}

latitude: 37.8267 longitude: -122.4233 fuseau horaire: America/Los_Angeles actuellement {19} heure: 1550615286 résumé: icône claire: jour clair la tempête la plus procheDistance: 57 la tempête la plus proche: 15 précipIntensité: 0 précipProbabilité: 0 température: 53,9 apparenteTempérature: 53,9 point de rosée: 29,59 humidité: 0.39 pression: 1022.45 ventVitesse: 3.87 vent Rafale: 9.25 vent Portée: 259 cloudCover: 0.01 uvIndex: 3 visibilité: 7.8 ozone: 309.71

Vous venez de passer un appel API ! Vous avez vu comme c'était facile? Vous n'avez même pas eu à écrire une seule ligne de code. Maintenant que vous maîtrisez les API, nous pouvons passer à la partie flux de données.

Étape 3: État initial

Nous voulons diffuser toutes nos données météorologiques sur un service cloud et faire en sorte que ce service transforme nos données en un joli tableau de bord auquel nous pouvons accéder depuis notre ordinateur portable ou notre appareil mobile. Nos données ont besoin d'une destination. Nous utiliserons l'état initial comme destination.

Étape 1: Inscrivez-vous pour le compte d'État initial

Accédez à https://iot.app.initialstate.com et créez un nouveau compte. Vous bénéficiez d'un essai gratuit de 14 jours et toute personne disposant d'une adresse e-mail edu peut s'inscrire à un plan étudiant gratuit.

Étape 2: Installez l'ISStreamer

Installez le module Python Initial State sur votre Raspberry Pi. Dans l'invite de commande, exécutez la commande suivante:

$ cd /home/pi/$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Étape 3: créez de l'Automagic Après l'étape 2, vous verrez quelque chose de similaire à la sortie suivante à l'écran:

pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Début de l'installation facile d'ISStreamer Python ! Cela peut prendre quelques minutes à installer, prenez un café:) Mais n'oubliez pas de revenir, j'aurai des questions plus tard ! Trouvé easy_install: setuptools 1.1.6 Pip trouvé: pip 1.5.6 de /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) version majeure de pip: 1 version mineure de pip: 5 ISStreamer trouvé, mise à jour… Exigence déjà à jour: ISStreamer dans /Library/Python/2.7/site-packages Nettoyage… Voulez-vous obtenir automatiquement un exemple de script ? [o/N] Où voulez-vous enregistrer l'exemple ? [par défaut:./is_example.py] Veuillez sélectionner l'application Initial State que vous utilisez: 1. app.initialstate.com 2. [NOUVEAU !] iot.app.initialstate.com Entrez le choix 1 ou 2: Entrez iot.app Nom d'utilisateur.initialstate.com: Entrez le mot de passe iot.app.initialstate.com:

Lorsqu'on vous demande si vous souhaitez obtenir automatiquement un exemple de script, mettez "y" pour oui et appuyez sur Entrée pour enregistrer votre script dans l'emplacement par défaut. Pour la question sur l'application que vous utilisez, sélectionnez 2 (sauf si vous vous êtes inscrit avant novembre 2018) et entrez votre nom d'utilisateur et votre mot de passe.

Étape 4: Exécutez l'exemple de script

Exécutez le script de test pour vous assurer que nous pouvons créer un flux de données sur votre compte Initial State. Écrivez la commande suivante:

$ python is_example.py

Étape 6: Exemple de données

Revenez à votre compte Initial State dans votre navigateur Web. Un nouveau compartiment de données appelé "Python Stream Example" aurait dû s'afficher à gauche dans votre étagère de journaux (vous devrez peut-être actualiser la page). Cliquez sur ce bucket pour afficher vos données.

Étape 4: Tableau de bord météo du ciel étoilé

Tableau de bord météo ciel étoilé
Tableau de bord météo ciel étoilé

Maintenant pour la partie amusante. Nous sommes prêts à commencer à utiliser l'API Dark Sky pour créer un tableau de bord météo et capturer l'historique météo pour l'emplacement que nous choisissons. Pour ce faire, nous allons utiliser le script Python: https://github.com/initialstate/darksky/blob/master/darksky.py. Ce script appelle simplement l'API Dark Sky à l'aide de votre clé API et récupère les informations météorologiques sur un intervalle de temps spécifié. Il diffuse également ces données sur votre compte Initial State, ce qui vous permettra de créer un tableau de bord météorologique Dark Sky.

Vous pouvez soit copier ce script sur votre Pi, soit y accéder via le référentiel GitHub que nous avons cloné précédemment. Vous pouvez le faire en vous rendant dans votre répertoire darksky en tapant:

$ cd ciel noir

À partir de là, vous pourrez accéder au fichier python que nous exécuterons pour créer notre tableau de bord météo. Avant de l'exécuter, vous devez définir les paramètres souhaités et insérer vos clés. Nano dans le fichier darksky.py en tapant:

$ nano darksky.py

Modifiez ensuite la section vers le haut du script:

# --------- Paramètres utilisateur ---------

CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "PLACEZ VOTRE CLE D'API DARK SKY ICI" BUCKET_NAME = ":partly_sunny: " + CITY + " Météo" BUCKET_KEY = "ds1" ACCESS_KEY = " PLACEZ VOTRE ÉTAT INITIAL CLÉ ICI" MINUTES_BETWEEN_READS = 15 # ---------------------------------

Vous devez définir les coordonnées GPS et le nom de la ville souhaités. Vous devez également insérer votre clé d'API Dark Sky et votre clé d'accès au compte Initial State ou vos données n'iront nulle part. Le paramètre MINUTES_BETWEEN_READS définira la fréquence à laquelle votre script interrogera l'API Dark Sky pour obtenir des informations météorologiques. 15 minutes fournissent un intervalle agréable à long terme. Pour des raisons de test à court terme, vous pouvez définir cette valeur sur 0,5 minute. Apportez vos modifications, puis entrez Ctrl+X pour quitter et enregistrer.

Une fois vos paramètres définis, vous êtes prêt à exécuter votre script:

$ python darksky.py

Si vous vous connectez à votre Pi et que vous souhaitez laisser ce script s'exécuter sans interruption pendant une longue période, vous pouvez utiliser la commande nohup (pas de raccrochage) comme suit:

$ nohup python darksky.py &

Ce script va faire un peu plus que simplement lire les données météo et les envoyer à l'état initial. Ce script va tirer parti de la prise en charge des emoji intégrée aux outils d'Initial State pour rendre le tableau de bord un peu plus cool. Vous pouvez voir la logique utilisée pour prendre l'état météorologique de l'icône actuellement -> et le convertir en un jeton emoji dans la fonction weather_icon. Quelque chose de similaire se produit pour la phase de lune dans la fonction moon_icon et la direction du vent dans la fonction wind_dir_icon.

Étape 5: Conclusion

Conclusion
Conclusion
Conclusion
Conclusion

Accédez à votre compte Initial State et examinez vos données. J'ai changé toutes mes valeurs de pourcentage en jauges à arc, les précipitations en jauge de liquide et la température en jauge de température. Vous pouvez passer à n'importe quel type de type de tuile et choisir vos couleurs pour les jauges et les graphiques en courbes. Vous pouvez rendre votre tableau de bord sombre ou clair et intégrer le produit final dans un site Web à l'aide d'un iFrame intégré.

Si vous souhaitez utiliser la mise en page du tableau de bord d'un partage public comme tableau de bord, vous pouvez importer une mise en page dans votre compartiment de données en suivant les instructions ici. Vous pouvez ajouter une image d'arrière-plan à votre tableau de bord pour lui donner plus de contexte.

L'URL de partage public de notre tableau de bord est

Maintenant que vous maîtrisez l'API Dark Sky, les possibilités sont infinies ! Il existe un nombre illimité d'API gratuites en ligne à explorer, alors lancez-vous.

Conseillé: