37. Lektion: Request: Unterschied zwischen den Versionen

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche
K (Wetter Web Seite)
(Wetter Web Seite)
Zeile 61: Zeile 61:
 
url = f'https://api.openweathermap.org/data/2.5/weather?q={city name},{country code}&appid={API key}'
 
url = f'https://api.openweathermap.org/data/2.5/weather?q={city name},{country code}&appid={API key}'
 
url = f'https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}'
 
url = f'https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}'
 +
 +
url = f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&lang={lang}&units={units}'
  
 
</pre>
 
</pre>
Zeile 127: Zeile 129:
  
 
api_key = '3e55a61880698b8a4f912216b7ec6755'
 
api_key = '3e55a61880698b8a4f912216b7ec6755'
# api_key = '3ecdd8a467d072e969d159a83a47339f'
+
 
# api_key = 'c710309ef5aadccdc82c51631f6edaeb'
+
 
city = 'Hamburg'
 
city = 'Hamburg'
 
country = 'de'
 
country = 'de'

Version vom 6. Februar 2024, 15:13 Uhr

Webserver ansprechen

Zur einfacheren Verbindung mit dem Wlan kann man sich ein Modul wie wlantools.py schreiben. Diese Datei muss sich im Verzeichnis "/" oder "/lib" befinden.

# wlantools.py
#
# Modul mit Funktionen zum Wlan.
#

import network

# Wlan Verbindung herstellen

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
    print('connecting to network...')
    wlan.connect(SSID, PW)
    while not wlan.isconnected():
        pass
print('network config:', wlan.ifconfig())

Anwendung:

>>> import wlantools as wl
network config: ('192.168.5.120', '255.255.255.0', '192.168.5.1', '192.168.5.1')
>>> wl.wlan.ifconfig()[0]
'192.168.5.120'

Beim Importieren wird die Datei wlantools.py ausgeführt. Dadurch wird die Verbindung zum Wlan hergestellt. Im Hauptprogramm steht es dann unter wl.wlan() zur Verfügung.

Wetter Web Seite


https://openweathermap.org
API anklicken
Current Weather Data
Subscripe
API-Key holen
Ganz oben auf API klicken, dann die API Doc anklicken
Dort den Abschnitt Built-in API request by city name suchen
https://openweathermap.org/current

api_key = '3e55a61880698b8a4f912216b7ec6755'
city = 'Hamburg'
country = 'de'
lat = None
lon = None
units = 'metric'
lang = 'de'

url = f'https://api.openweathermap.org/data/2.5/weather?q={city name}&appid={API key}'
url = f'https://api.openweathermap.org/data/2.5/weather?q={city name},{country code}&appid={API key}'
url = f'https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}'

url = f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&lang={lang}&units={units}'

Die empfangenen Daten im Json-Format: Es handelt sich um ein komplexes Dictionary.

{
  "coord": {
    "lon": 10.99,
    "lat": 44.34
  },
  "weather": [
    {
      "id": 501,
      "main": "Rain",
      "description": "moderate rain",
      "icon": "10d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 298.48,
    "feels_like": 298.74,
    "temp_min": 297.56,
    "temp_max": 300.05,
    "pressure": 1015,
    "humidity": 64,
    "sea_level": 1015,
    "grnd_level": 933
  },
  "visibility": 10000,
  "wind": {
    "speed": 0.62,
    "deg": 349,
    "gust": 1.18
  },
  "rain": {
    "1h": 3.16
  },
  "clouds": {
    "all": 100
  },
  "dt": 1661870592,
  "sys": {
    "type": 2,
    "id": 2075663,
    "country": "IT",
    "sunrise": 1661834187,
    "sunset": 1661882248
  },
  "timezone": 7200,
  "id": 3163858,
  "name": "Zocca",
  "cod": 200
}                        


# request_001.py
#

import wlantools as wt
import urequests as ur

api_key = '3e55a61880698b8a4f912216b7ec6755'

city = 'Hamburg'
country = 'de'
lat = None
lon = None
units = 'metric'
lang = 'de'

# url = f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}'
# url = f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&lang={lang}'
url = f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&lang={lang}&units={units}'

data = ur.get(url).json()

print(data)
print()
print(f'Das Wetter in {city}:')
print(f'{data["weather"][0]["description"]}')
print(f'Temperatur: {data["main"]["temp"]} °C')
print(f'Luftfeuchte: {data["main"]["humidity"]} %')
print(f'Luftdruck: {data["main"]["pressure"]} mm')




Daten auswerten

Die Daten werden im Json-Format gesendet.



Links:

Navigation

Zurück zur "Micropython Kurs 2023 Teil 2" Startseite
Zurück zur "Micropython Kurs 2023" Startseite
Zurück zur Programmieren Startseite
Zurück zur Wiki Startseite