webwinkelkeur logo

4.7 Ø

5477+ Bewertungen
webwinkelkeur logoAlle ansehen

5477+ Bewertungen

5477+ Bewertungen

Bestellen bis 16:00 Uhr für Versand am selben Tag

14 Tage Rückgabe

DE

DE

Privat

Geschäftlich

Raspberry Pi-Projekt: Wettervorhersage-Bot

Anfänger
40 Min
151,35

Holen Sie sich den Telegram-Bot und den API-Schlüssel

A. Erstellen Sie einen Telegram-Bot, indem Sie den BotFather in Telegram kontaktieren.

B. Notieren Sie sich das Bot-Token, das Sie vom BotFather erhalten.

C. Registrieren Sie sich auf der OpenWeatherMap-Website und erhalten Sie einen kostenlosen API-Schlüssel

Installieren von Python-Bibliotheken

Bevor Sie den Code ausführen können, müssen Sie sicherstellen, dass die erforderlichen Python-Bibliotheken auf Ihrem Raspberry Pi 5 installiert sind. Sie können diese Bibliotheken mit pip, dem Python-Paketmanager, installieren. Öffnen Sie ein Terminal auf Ihrem Raspberry Pi 5 und führen Sie die folgenden Befehle aus, um Python und Pip zu installieren:

sudo apt-get update
sudo apt-get upgrade
sudo apt install python3
sudo apt install python3-pip

Installieren Sie nun die Python-Bibliotheken

pip install requests
pip install python-telegram-bot

Starten Sie abschließend Ihren Raspberry Pi neu, um die Installation abzuschließen:

sudo reboot

Code

Kopieren Sie den Code und fügen Sie ihn in Thonny ein. Ersetzen Sie die Platzhalter im Code (wie „JE_BOT_TOKEN“ und „JE_OPENWEATHERMAP_API_KEY“) durch das tatsächliche Bot-Token und den API-Schlüssel, den Sie erhalten haben.

import requests
import datetime
from telegram import Bot
import time
import asyncio

 

 


# Vervang ‘JE_BOT_TOKEN’ door je eigen Telegram bot token
bot_token = ‘JE_BOT_TOKEN_HIER’


# Vervang ‘STAD’ door de naam van de stad waarvoor je het weer wilt ophalen
stad = ‘Amersfoort’


# Vervang ‘JE_OPENWEATHERMAP_API_KEY’ door je eigen gratis OpenWeatherMap API-sleutel
api_key = ‘JE_OPENWEATHERMAP_API_KEY_HIER’

 


# Functie om het weerbericht op te halen
async def get_weer():
    base_url = ‘http://api.openweathermap.org/data/2.5/weather’
    params = {
        ‘q’: stad,
        ‘appid’: api_key,

        ‘units’: ‘metric’ # Gebruik ‘imperial’ voor Fahrenheit in plaats van Celsius
     }
    response = requests.get(base_url, params=params)
    weer_data = response.json()


    if response.status_code == 200:
        weer_beschrijving = weer_data[‘weather’][0][‘description’]
        temperatuur = weer_data[‘main’][‘temp’]
        return f’Het weer in {stad} vandaag: {weer_beschrijving}, Temperatuur: {temperatuur}°C’
    else:
        return ‘Het weerbericht kon niet worden opgehaald.’

 

 


# Functie om een Telegram-bericht te versturen
async def send_telegram_bericht(bericht):
    bot = Bot(token=bot_token)
    chat_id = ‘JE_CHAT_ID_HIER’ # Vervang dit door je eigen chat-ID


    await bot.send_message(chat_id=chat_id, text=bericht)


    # Code continu uitvoeren

 

 

async def main():

    while True:
        now = datetime.datetime.now()
        if now.hour == 14 and now.minute == 5: # Vervang dit door je gewenste tijd
            weer_rapport = await get_weer()
            await send_telegram_bericht(weer_rapport)

            # Wacht even om te voorkomen dat er snel achter elkaar meerdere berichten worden verstuurd
            await asyncio.sleep(60) # Wacht 60 seconden (pas aan indien nodig)
        else:
            # Wacht even voordat de tijd opnieuw wordt gecontroleerd
            await asyncio.sleep(60) # Wacht 60 seconden (pas aan indien nodig)

 

 


if __name__ == “__main__”:
    asyncio.run(main())

Code ausführen

A. Speichern Sie das Python-Skript unter einem geeigneten Namen, beispielsweise weer_project.py .

B. Navigieren Sie zu dem Ordner, in dem Sie das Python-Skript gespeichert haben.

C. Führen Sie das Skript mit dem folgenden Befehl aus:

python weer_project.py

Das Skript wird ausgeführt und prüft jede Minute, ob es Zeit ist, die Wettervorhersage abzurufen und an Ihren Telegram-Chat zu senden. Um zu testen, ob es richtig funktioniert, können Sie die Zeit auf einen um 2 Minuten abweichenden Zeitpunkt einstellen und dann den Code ausführen.

Und das war es! Hat es nicht funktioniert? Bitte schauen Sie sich die vorherigen Schritte noch einmal an, um zu sehen, was schief gelaufen ist. War es erfolgreich? Dann schauen Sie sich unsere Projekte an!