Raspberry Pi progetto: Bot delle previsioni del tempo
Con questo progetto lo farai Raspberry Pi 5 essere in grado di inviarti un bollettino meteorologico giornaliero tramite Telegram. Questo bollettino meteorologico contiene informazioni come le condizioni meteorologiche attuali e la temperatura per una città selezionata. Questo progetto offre una grande opportunità per imparare a... Raspberry Pi può utilizzare per applicazioni pratiche e per familiarizzare con la programmazione Python. Imparerai anche come utilizzare un'API. È anche possibile creare questo progetto con il file Raspberry Pi 4B.
Questa guida trattava:
- accessori
- Ottieni il bot Telgram e la chiave API
- Installa le librerie Python
- Code
- Esegui il codice
- Principiante 40%
- 30 45-min 45%
- Costa € 105,81 55%
Passaggio 1: forniture:
- Raspberry Pi 5 RAM da 4 GB/8 GB
- Raspberry Pi Alimentatore 4B / Adattatore di alimentazione USB-C PD da 27 W
- Scheda Micro SD con Raspberry Pi OS
- Cavo da micro HDMI a HDMI
- mouse
- Tastiera
- Monitorare
- Account Telegram: hai bisogno di un account Telegram per ricevere le notifiche di Telegram
Passaggio 2: ottieni il bot di Telegram e la chiave API
a. Crea un bot di Telegram contattando il BotFather in Telegram.
B. Prendi nota del token bot che ricevi da BotFather.
C. Registrati sul sito Web OpenWeatherMap e ottieni una chiave API gratuita
Passaggio 3: installa le librerie Python
Prima di poter eseguire il codice, assicurati di avere installate le librerie Python necessarie Raspberry Pi 5. È possibile installare queste librerie utilizzando seme, il gestore dei pacchetti Python. Apri un terminale su di te Raspberry Pi 5 ed esegui i seguenti comandi per installare python e pip:
sudo apt-get update
sudo apt-get upgrade
sudo apt install python3
sudo apt install python3-pip
Ora installa le librerie Python
richieste di installazione pip
pip installa python-telegram-bot
Infine, riavvia il Raspberry Pi per completare l'installazione:
sudo reboot
Passaggio 4: codice
Copia e incolla il codice in Thonny. Sostituisci i segnaposto nel codice (come "YOUR_BOT_TOKEN" e "YOUR_OPENWEATHERMAP_API_KEY") con il token bot e la chiave API effettivi che hai ottenuto.
richieste di importazione
importa datetime
dal Bot di importazione telegrammi
tempo di importazione
importa asincio
# Sostituisci 'YOUR_BOT_TOKEN' con il tuo token bot di Telegram
bot_token = 'IL TUO_BOT_TOKEN_QUI'
# Sostituisci 'CITTÀ' con il nome della città per la quale desideri recuperare il meteo
città = 'Amersfoort'
# Sostituisci 'YOUR_OPENWEATHERMAP_API_KEY' con la tua chiave API OpenWeatherMap gratuita
api_key = 'IL TUO_OPENWEATHERMAP_API_KEY_QUI'
# Funzione per ottenere le previsioni del tempo
asincrono def get_weather():
base_url = 'http://api.openweathermap.org/data/2.5/weather'
parametri = {
'q': città,
'appid': chiave_api,'unità': 'metrico' # Usa 'imperiale' per Fahrenheit invece di Celsius
}
risposta = request.get(base_url, params=params)
dati_meteo = risposta.json()
se response.status_code == 200:
meteo_descrizione = meteo_data['meteo'][0]['descrizione']
temperatura = dati_meteo['main']['temp']
return f'Il tempo a {city} oggi: {weather_description}, Temperatura: {temperature}°C'
altro:
return 'Non è stato possibile recuperare le previsioni del tempo.'
# Funzione per inviare un messaggio Telegram
async def send_telegram_message(messaggio):
bot = Bot(token=bot_token)
chat_id = 'YOUR_CHAT_ID_HERE' # Sostituiscilo con il tuo ID chat
attendono bot.send_message(chat_id=chat_id, text=messaggio)
# Esegui il codice continuamente
asincrono def main():
mentre vero:
adesso = datetime.datetime.now()
if now.hour == 14 and now.minute == 5: # Sostituiscilo con l'ora desiderata
report_meteo = attendono get_weather()
attendono send_telegram_message(weather_report)# Attendi qualche istante per evitare che vengano inviati più messaggi in rapida successione
wait asyncio.sleep(60) # Attendi 60 secondi (aggiustalo se necessario)
altro:
# Attendi un attimo prima che l'ora venga nuovamente controllata
wait asyncio.sleep(60) # Attendi 60 secondi (aggiustalo se necessario)
se __name__ == "__main__":
asyncio.run(main())
Passaggio 5: esegui il codice
a. Salva lo script Python con un nome appropriato, ad es weer_project.py
.
B. Passa alla cartella in cui hai salvato lo script Python.
C. Esegui lo script con il seguente comando:
python meteo_project.py
Lo script si avvia e controlla ogni minuto se è il momento di recuperare le previsioni del tempo e inviarle alla tua chat di Telegram. Per verificare se funziona correttamente, è possibile regolare l'ora su un tempo a 2 minuti di distanza e quindi eseguire il codice.
E questo è tutto! Non ha funzionato? Dai un'occhiata ai passaggi precedenti per vedere cosa è andato storto. Ha funzionato? Allora dai un'occhiata ai nostri progetti!