Taula de continguts:

Tauler de control de l'API AirVisual Quality Air: 5 passos
Tauler de control de l'API AirVisual Quality Air: 5 passos

Vídeo: Tauler de control de l'API AirVisual Quality Air: 5 passos

Vídeo: Tauler de control de l'API AirVisual Quality Air: 5 passos
Vídeo: Visual Studio: стендап сообщества .NET — 19 сентября 2019 г. — .NET Conf, веб-редакторы и многое другое 2024, Desembre
Anonim
Image
Image

AirVisual (https://www.airvisual.com) és un lloc web que proporciona dades sobre la qualitat de l’aire a tot el món. Tenen una API que utilitzarem per obtenir dades de qualitat de l’aire que s’enviaran a un tauler de control. Interaccionarem amb aquesta API de manera similar a com ho vam fer amb el tauler del temps.

Aquest és un projecte senzill que us ensenya a utilitzar una API. Comencem!

Pas 1: Introducció

API AirVisual
API AirVisual

Ja hem unit la major part del codi, però necessitareu que feu uns quants ajustos en el camí. També hi ha moltes oportunitats per ampliar el que hem fet.

Per recuperar totes les coses que us hem preparat, haureu de clonar el dipòsit de GitHub. GitHub és un servei increïble que ens permet emmagatzemar, revisar i gestionar projectes com aquest. Voldreu executar aquest script en un dispositiu dedicat. Podeu utilitzar un ordinador portàtil, Raspberry Pi o un altre ordinador de placa única. Per clonar el dipòsit tot el que hem de fer és entrar al terminal del nostre ordinador o Pi i escriure aquesta ordre:

$ git clone

Feu clic a Intro i veureu aquesta informació:

$ git clone https://github.com/InitialState/airvisual.git Clonació a 'airvisual' … remot: Enumeració d'objectes: 13, fet. remot: Compte d'objectes: 100% (13/13), fet. remot: Compressió d'objectes: 100% (12/12), fet. remot: Total 13 (delta 2), reutilització 0 (delta 0), reutilització del paquet 0 Desembalatge d'objectes: 100% (13/13), fet.

Un cop ho veieu, enhorabona, heu clonat correctament el repositori de GitHub i teniu tots els fitxers necessaris per crear aquest projecte. Passem al nou directori. Per canviar el directori, només cal que escriviu “cd” i, a continuació, escriviu el nom del directori al qual voleu anar. En aquest cas, escriurem:

$ cd airvisual

Quan premem Intro, veureu que ara som al directori airvisual. Escrivim "ls" per veure quins fitxers hem instal·lat. Hauríeu de semblar el següent:

LICÈNCIA README.md airquality.py

Necessitem alguns altres elements abans de poder editar el codi, així que anem a veure l'API de qualitat de l'aire a continuació.

Pas 2: API AirVisual

API AirVisual
API AirVisual
API AirVisual
API AirVisual

AirVisual té una API de contaminació i qualitat de l’aire (AQI) que permet fins a 10.000 trucades API al mes de forma gratuïta. Podeu inscriure-us al nivell de la comunitat. Un cop us registreu, podeu anar a My Air i a la pestanya API. És aquí on trobareu les claus i la documentació de l'API a l'API.

Feu clic al botó + Clau nova per crear la nostra primera clau d'accés a l'API. A Selecciona pla, utilitzeu el menú desplegable per seleccionar Comunitat i feu clic a Crea. Si tot va bé, veureu un missatge d'èxit i podeu tornar al tauler de l'API per trobar la vostra informació clau nova. El valor clau (números i caràcters) és el que necessiteu per a aquest projecte. Si consulteu la documentació de l'API, veureu que hi ha diversos tipus de trucades a l'API que podeu fer. Per a aquest projecte volem obtenir les dades de ciutat més properes basades en les coordenades GPS. Per a aquesta trucada necessitareu la vostra longitud, latitud i clau API. Introduïu aquests paràmetres a la trucada següent, introduïu-los a la barra d'adreces del navegador i premeu Intro.

api.airvisual.com/v2/nearest_city?lat={{LATITUDE}}&lon={{LONGITUDE}}&key={{YOUR_API_KEY}}

Això retornarà les dades de la ciutat més propera en funció de les coordenades GPS. Serà una cosa així:

Recomano utilitzar un formatador JSON per obtenir una millor visió de les dades. Si el feu servir, es veurà una mica així:

"status": "èxit", "data": {"city": "Nashville", "state": "Tennessee", "country": "EUA", "ubicació": {"type": "Punt", "coordenades": [- 86.7386, 36.1767]}, "current": {"weather": {"ts": "2019-04-08T19: 00: 00.000Z", "_v": 0, "createdAt": "2019-04-08T19: 04: 18.662Z "," hu ": 88," ic ":" 04d "," pr ": 1012," tp ": 18," updatedAt ":" 2019-04-08T19: 46: 53.140Z "," wd ": 90, "ws": 3.1}, "contaminació": {"ts": "2019-04-08T18: 00: 00.000Z", "aqius": 10, "mainus": "p2", "aqicn": 3, "maincn": "p2"}

Ara podem veure fàcilment que tenim informació sobre la ubicació, el temps i la contaminació. Els dos valors en què ens centrem en aquest projecte són l’índex de qualitat de l’aire dels EUA (aquis) i el principal contaminant (mainus). El valor de l'índex de qualitat de l'aire ens indica quin és el valor local de la qualitat de l'aire i com afecta això a la vostra salut. A continuació es mostra el gràfic amb codis de colors. El principal contaminant ens indica quin és el principal contaminant de l’aire per a la vostra zona (partícules, òxid de nitrogen, ozó, monòxid de carboni, òxid de sofre). Aquests contaminants solen ser subproductes de les piles de fum o les emissions dels vehicles.

Ara que ja sabem utilitzar l'API Visual Air, el següent que necessitarem és una plataforma de tauler per mostrar les dades.

Pas 3: estat inicial

Estat inicial
Estat inicial
Estat inicial
Estat inicial

Volem transmetre totes les nostres dades meteorològiques a un servei al núvol i que aquest servei converteixi les nostres dades en un bonic tauler de control. Les nostres dades necessiten una destinació, de manera que utilitzarem l’Estat inicial com a destinació.

Registreu-vos al compte estatal inicial

Aneu a https://iot.app.initialstate.com i creeu un compte nou.

Instal·leu ISStreamer

Instal·leu el mòdul Initial State Python al vostre ordinador portàtil o al Raspberry Pi. En un símbol del sistema, executeu l'ordre següent:

$ / curl -sSL https://iot.app.initialstate.com -o - | sudo bash

Feu una mica d’Automagic

Després d'executar l'ordre curl, veureu una cosa similar a la següent sortida a la pantalla:

$ / curl -sSL https://iot.app.initialstate.com -o - | sudo bash

Contrasenya: Començant a instal·lar fàcilment ISStreamer Python. Això pot trigar uns quants minuts a instal·lar-se, prendre un cafè:) Però no oblideu tornar, ja que tindré preguntes més endavant. Trobat easy_install: setuptools 1.1.6 Trobat pip: pip 1.5.6 de /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versió major pip: 1 versió pip menor: 5 ISStreamer trobat, actualitzant-se … Requisit ja actualitzat: ISStreamer a /Library/Python/2.7/site-packages Neteja … Voleu obtenir automàticament un exemple de script? [Sí / N] On voleu desar l'exemple? [predeterminat:./is_example.py] Seleccioneu l'aplicació Estat inicial que utilitzeu: 1. app.initialstate.com 2. [NOU!] iot.app.initialstate.com Introduïu l'opció 1 o 2: Introduïu iot.app Nom d'usuari de.initialstate.com: Introduïu la contrasenya iot.app.initialstate.com:

Quan se us demani que obtingueu automàticament un exemple de script, escriviu y. Això crearà un script de prova que podem executar per assegurar-nos que podem transmetre dades a l'estat inicial. El següent missatge us preguntarà on voleu desar el fitxer d'exemple. Podeu escriure un camí local personalitzat o prémer Retorn per acceptar la ubicació predeterminada. Finalment, se us preguntarà quina aplicació d’estat inicial utilitzeu. Si recentment heu creat un compte, seleccioneu l'opció 2 i introduïu el nom d'usuari i la contrasenya. Després d’aquesta instal·lació es completarà.

Tecles d'accés

Vegem l'exemple de script que es va crear. $ nano is_example.py A la línia 15, veureu una línia que comença amb streamer = Streamer (bucket_ … access_key = "…" paràmetre en aquesta mateixa línia. Aquesta llarga sèrie de lletres i números és la vostra clau d'accés al compte d'estat inicial. Si aneu al vostre compte d'estat inicial al navegador web, feu clic al vostre nom d'usuari a la part superior dreta i aneu a "la meva configuració", trobareu la mateixa clau d'accés a la part inferior de la pàgina a "Tecles d'accés de transmissió". Cada vegada que creeu un flux de dades, aquesta clau d'accés dirigirà aquest flux de dades al vostre compte (per tant, no comparteix la teva clau amb qualsevol persona).

Executeu l'Exemple Executeu l'script de prova per assegurar-vos que podem crear un flux de dades al vostre compte d'estat inicial. Executeu el següent a l'indicador d'ordres:

$ python és_exemple.py

Dades d’exemple

Torneu al vostre compte d’estat inicial al navegador web. A la part esquerra del prestatge del dipòsit hauria d’haver aparegut un nou dipòsit de dades anomenat “Exemple de corrent de Python” (és possible que hagueu d’actualitzar la pàgina). Feu clic en aquest dipòsit per veure les dades.

Ja esteu a punt per començar a transmetre dades reals des de l'API AirVisual.

Pas 4: Tauler de qualitat de l'aire

Tauler de qualitat de l'aire
Tauler de qualitat de l'aire
Tauler de qualitat de l'aire
Tauler de qualitat de l'aire
Tauler de qualitat de l'aire
Tauler de qualitat de l'aire
Tauler de qualitat de l'aire
Tauler de qualitat de l'aire

Ara per la part divertida. Estem preparats per començar a utilitzar l'API AirVisual per crear un quadre de comandament de la qualitat de l'aire i capturar les dades de contaminació atmosfèrica per on vulguem. Aquest script airquality.py simplement crida a l'API AirVisual mitjançant la vostra clau API i recupera la informació actual de la contaminació atmosfèrica. També transmet aquestes dades al vostre compte d’estat inicial, cosa que us permetrà crear un tauler de qualitat de l’aire.

Podeu accedir a l'script mitjançant el dipòsit de Github que vam clonar anteriorment. El primer que hem de fer és assegurar-nos que estem al directori AirVisual:

$ cd airvisual

A partir d’aquí podreu accedir al fitxer python que executarem per crear el nostre tauler de qualitat de l’aire. Hem de fer alguns canvis al fitxer abans d’executar-lo. Per obrir el fitxer python, utilitzeu l'ordre nano per obrir l'editor de text:

$ nano airquality.py

Un cop obert l'editor de text, veureu el següent a la part superior del vostre script:

# --------- Configuració de l'usuari ---------

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "AIR VISUAL API KEY" BUCKET_NAME = "Qualitat de l'aire local" BUCKET_KEY = "aq1" ACCESS_KEY = "INITIAL STATE ACCES KEY" MINUTES_BETWEEN_READS = 5 # - -------------------------

cal que introduïu la vostra latitud, longitud, clau API AirVisual i clau d'accés a l'estat inicial. El paràmetre MINUTES_BETWEEN_READS definirà la freqüència amb què el vostre script sondejarà l'API AirVisual per obtenir informació sobre la qualitat de l'aire. 5 minuts de temps suficient perquè no superi el límit de 10.000 trucades API al mes. Per fer proves a curt termini, podeu establir-lo en 0,5 minuts. Un cop hàgiu introduït els paràmetres, deseu i sortiu de l'entrada de text escrivint Control + X. Ara ja esteu preparat per executar el vostre script:

$ python airquality.py

Si voleu deixar aquest script en execució ininterromput durant molt de temps, podeu utilitzar l'ordre nohup (sense penjar) de la següent manera:

$ nohup python airquality.py &

Un cop s'executi, aneu a Estat inicial per veure les vostres dades. El tauler hauria de ser semblant a la imatge següent. Teniu la vostra ubicació GPS, el vostre índex de qualitat de l’aire i el vostre principal contaminant.

La meva recomanació seria canviar el valor AQI per un mosaic de calibre. A més, moveu les rajoles i canvieu-ne la mida segons calgui. Si el feu servir per a un tauler de control incrustat, podeu moure-les per adaptar-les segons calgui.

Si decidiu fer que el vostre valor AQI sigui un indicador, podeu establir el llindar de color perquè sigui similar al gràfic d’índex de qualitat de l’aire. Això us proporciona una actualització instantània sobre el lloc del valor AQI al gràfic quan comproveu el tauler. Podeu afegir una imatge de fons al tauler per donar-li més context.

Per tant, teniu tot el necessari per crear un quadre de comandament de la qualitat de l’aire. Però, què passa si voleu afegir-ne més o afegir-ho a un tauler meteorològic que ja hàgiu creat? Si és així, continua llegint.

Pas 5: feu un tauler de temps total

Feu un tauler de temps total
Feu un tauler de temps total

Les dades de qualitat de l’aire no són suficients per a vosaltres? Doncs hi ha moltes opcions per afegir-ne més al tauler o transmetre aquestes dades a un tauler meteorològic que ja teniu.

Transmet el temps i la qualitat de l'aire en un únic tauler de control

Si ja heu implementat el nostre projecte DarkSky API o Hyper-Local Weather Dashboard, podeu afegir aquestes dades de qualitat de l’aire al vostre tauler de control existent. És bastant senzill, tot el que heu de fer és canviar els paràmetres de l’escriptura de qualitat de l’aire per tenir el mateix nom de dipòsit, clau de dipòsit i clau d’accés que el que heu utilitzat per al tauler del temps. Això permetrà enviar les dades al mateix tauler. Ara tindreu un tauler de temps total.

Feu que el vostre fitxer Python del temps faci una trucada per executar el fitxer Python de qualitat de l’aire

Una altra opció si no voleu executar dos programes diferents és posar el fitxer python de qualitat de l’aire al directori del projecte meteorològic. Feu que el fitxer python del projecte meteorològic faci una trucada al fitxer de qualitat de l’aire perquè s’executi quan s’executa el fitxer meteorològic. Una vegada més, assegureu-vos de posar el mateix nom de dipòsit, clau de dipòsit i clau d'accés perquè s'executin al mateix tauler.

Creeu un fitxer únic amb temps i qualitat de l'aire

I si us sentiu veritablement atrevits, podeu introduir part del codi de qualitat de l’aire al vostre script python meteorològic i només heu d’executar un únic script. Es requerirà una mica més de codificació que les altres dues opcions, però permet un programa simplificat.

Transmet informació addicional des de l'API AirVisual

Com vau veure quan vam fer una trucada a l'API AirVisual, té més informació que només la qualitat de l'aire. També proporciona temperatura, humitat, velocitat del vent, direcció del vent i pressió atmosfèrica. Podem enviar aquesta informació a Initial State de la mateixa manera que hem enviat el valor de l’índex de qualitat de l’aire i el principal contaminant. Només cal que escriviu uns quants més enunciats.

Recomanat: