Your robot gives you the air quality and the weather (python language)

Description

the purpose of the application: to give the air quality, humidity, pressure, temperature and wind speed of your city.

Related Hardware
EZ-B v4
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")


ARC Pro

Upgrade to ARC Pro

ARC Pro is your passport to a world of endless possibilities in robot programming, waiting for you to explore.