Description
the purpose of the application: to give the air quality, humidity, pressure, temperature and wind speed of your city.
Code
To carry out the project, we will use the service of an API.
The first thing to do is get a free key. This key must be renewed every year We will use API from airvisual.com
here is the API documentation link https://api-docs.iqair.com/?version=latest
Link to activate a free key https://www.iqair.com/dashboard/api
API request syntax : http://api.airvisual.com/v2/cities?state={{STATE_NAME}}&country={{COUNTRY_NAME}}&key={{YOUR_API_KEY}}
In the code which follows the city and the country are in France, you will have to adapt to your city and country. and of course translate the answers into English.
import urllib2
def airqualite(ville,region):
try:
#lecture du flux de API en parametres ville et region cles 1 an 2021
url = urllib2.urlopen("http://api.airvisual.com/v2/city?city="+ville+"&state="+region+"&country=Your COUNTRY&key=YOUR API KEY")
f = url.read()
# creation tableau a partir de API airvisual et suppresion des virgules
tableau = f.replace(","," ")[1:1000].decode('utf-8')
#print(tableau)
# extration des données dans des variables avec modification du type en entier
Mqualite = int(tableau[(tableau.find('aqius'))+7:(tableau.find('aqius'))+10])
Mhumide = int(tableau[(tableau.find('hu'))+4:(tableau.find('hu'))+6])
Mpression = int(tableau[(tableau.find('pr'))+4:(tableau.find('pr'))+8])
Mtemperature = int(tableau[(tableau.find('tp'))+4:(tableau.find('tp'))+6])
Mvitessevent = int(tableau[(tableau.find('ws'))+4:(tableau.find('ws'))+5])
#print type(Mqualite)
#print (Mqualite)
# test niveau de pollution
if Mqualite <= 50 :
Audio.Say("Le Niveau de pollution est de " + str(Mqualite) + " . La qualité de l'air est jugée satifaisante, et la pollution de l'air pose peu ou pas de risque")
if Mqualite > 50 and Mqualite <= 100 :
Audio.Say("Niveau de pollution est de : " + str(Mqualite) + " La qualité de l'air est acceptable. Cependant, pour certains polluants, un très petit nombre de personnes qui sont particulièrement sensibles à la pollution de l'air peuvent avoir des problèmes de santé modérés. Les enfants et les adultes actifs, ainsi que les personnes souffrant de maladies respiratoires, comme l'asthme, devraient limiter leur effort prolongé en plein air")
if Mqualite > 100 and Mqualite <= 150 :
Audio.Say("Niveau de pollution est de : " + str(Mqualite) + " La qualité de l'air est mauvaise . les personnes sensibles peuvent avoir des effets sur leur santé. Le grand public n'est pas susceptible d'être affecté. Les enfants et les adultes actifs, ainsi que les personnes souffrant de maladies respiratoires, comme l'asthme, devraient limiter leur effort prolongé en plein air")
if Mqualite > 150 and Mqualite <= 200 :
Audio.Say("Niveau de pollution est de : " + str(Mqualite) + " La qualité de l'air est mauvaise . Tout le monde peut commencer à éprouver des effets sur la santé; les membres des groupes sensibles peuvent éprouver des effets plus graves sur la santé Les enfants et les adultes actifs, ainsi que les personnes souffrant de maladies respiratoires, comme l'asthme, devraient éviter les efforts prolongés à l'extérieur; tout le monde, en particulier les enfants, devrait limiter l'effort prolongé en plein air")
if Mqualite > 200 and Mqualite <= 300 :
Audio.Say("Niveau de pollution est de : " + str(Mqualite) + " La qualité de l'air est trés mauvaise . Avertissements de santé de conditions d'urgence . Toute la population est plus suceptible d'être affecté")
if Mqualite > 300 :
Audio.Say("Niveau de pollution est de : " + str(Mqualite) + " La qualité de l'air est trés dangereuse . Alerte de santé, tout le monde peut ressentir des effets de santé plus graves . éviter de sortir .")
Audio.Say("humidité de l'air est de " + str(Mhumide) +" pourcent")
sleep(1)
Audio.Say("la préssion est de " + str(Mpression) + " bar")
sleep(1)
Audio.Say("la température est de " + str(Mtemperature) +" degré")
sleep(1)
Audio.Say("la vitesse du vent est de " + str(Mvitessevent) +" Kilomètre heure")
except IOError:
Audio.Say("je n'ai pas de capteur pour cette ville ou clés périmé")
except OSError:
Audio.Say("oups il y a une erreur OS")
except ValueError:
Audio.Say("oups il y a une erreur de valeur ")
except:
Audio.Say(sys.exc_info()[0])
raise
airqualite("nice","PACA")
You can act with AIMBOT to define several cities
to change city airqualite("your city","your region")
Very nice. Thanks!