Raspberry Pi projet : Bot de prévisions météo
Avec ce projet, vous Raspberry Pi 5 pouvoir vous envoyer un bulletin météo quotidien via Telegram. Ce rapport météo contient des informations telles que les conditions météorologiques actuelles et la température d'une ville que vous sélectionnez. Ce projet offre une excellente opportunité d'apprendre à... Raspberry Pi peut être utilisé pour des applications pratiques et pour se familiariser avec la programmation Python. Vous apprendrez également à utiliser une API. Il est également possible de créer ce projet avec le Raspberry Pi 4B.
Ce manuel couvre:
- Provisions
- Obtenez le bot Telgram et la clé API
- Installer les bibliothèques Python
- Code
- Exécuter le code
- Débutant 40%
- 60-75 min 45%
- Coûte 105,81 € 55%
Étape 1: Fournitures:
- Raspberry Pi 5 4 Go / 8 Go de RAM
- Raspberry Pi Alimentation 4B / Adaptateur secteur USB-C PD 27 W
- Carte Micro SD avec Raspberry Pi OS
- Câble micro-HDMI vers HDMI
- La souris
- Clavier
- Surveiller
- Compte Telegram : vous avez besoin d'un compte Telegram pour recevoir des notifications Telegram
Étape 2 : Obtenez le bot Telegram et la clé API
a. Créez un bot Telegram en contactant le BotFather dans Telegram.
b. Notez le jeton de bot que vous recevez du BotFather.
c. Inscrivez-vous sur le site OpenWeatherMap et obtenez une clé API gratuite
Étape 3 : Installer les bibliothèques Python
Avant de pouvoir exécuter le code, assurez-vous que les bibliothèques Python nécessaires sont installées sur vous Raspberry Pi 5. Vous pouvez installer ces bibliothèques en utilisant pépin, le gestionnaire de packages Python. Ouvrez un terminal sur vous Raspberry Pi 5 et exécutez les commandes suivantes pour installer python et pip :
sudo apt-get update
sudo apt-get upgrade
sudo apt install python3
sudo apt install python3-pip
Installez maintenant les bibliothèques Python
demandes d'installation pip
pip installe python-telegram-bot
Enfin, redémarrez le Raspberry Pi pour terminer l'installation :
sudo reboot
Étape 4 : Coder
Copiez et collez le code dans Thonny. Remplacez les espaces réservés dans le code (tels que « VOTRE_BOT_TOKEN » et « VOTRE_OPENWEATHERMAP_API_KEY ») par le jeton de bot et la clé API que vous avez obtenus.
demandes d'importation
importer datetime
à partir du Bot d'importation de télégrammes
temps d'importation
importer asyncio
# Remplacez 'YOUR_BOT_TOKEN' par votre propre jeton de bot Telegram
bot_token = 'VOTRE_BOT_TOKEN_HERE'
# Remplacez 'CITY' par le nom de la ville pour laquelle vous souhaitez récupérer la météo
ville = 'Amersfoort'
# Remplacez 'YOUR_OPENWEATHERMAP_API_KEY' par votre propre clé API OpenWeatherMap gratuite
api_key = 'VOTRE_OPENWEATHERMAP_API_KEY_HERE'
# Fonction pour obtenir les prévisions météo
async def get_weather() :
base_url = 'http://api.openweathermap.org/data/2.5/weather'
paramètres = {
'q' : ville,
'appid' : api_key,'units': 'metric' # Utilisez 'impérial' pour Fahrenheit au lieu de Celsius
}
réponse = requêtes.get(base_url, params=params)
Weather_data = réponse.json()
si réponse.status_code == 200 :
météo_description = météo_data['météo'][0]['description']
température = météo_data['main']['temp']
retour f'La météo à {city} aujourd'hui : {weather_description}, Température : {temperature}°C'
autre:
return 'Les prévisions météorologiques n'ont pas pu être récupérées.'
# Fonction pour envoyer un message Telegram
async def send_telegram_message(message):
bot = Bot(jeton=bot_token)
chat_id = 'YOUR_CHAT_ID_HERE' # Remplacez-le par votre propre identifiant de chat
attendre bot.send_message(chat_id=chat_id, text=message)
# Exécuter du code en continu
async def main() :
tandis que True:
maintenant = datetime.datetime.now()
if now.hour == 14 et now.minute == 5 : # Remplacez ceci par l'heure souhaitée
Weather_report = attendre get_weather()
attendre send_telegram_message (weather_report)# Veuillez patienter un instant pour éviter que plusieurs messages ne soient envoyés en succession rapide
wait asyncio.sleep(60) # Attendez 60 secondes (ajustez si nécessaire)
autre:
# Attendez un moment avant que l'heure soit à nouveau vérifiée
wait asyncio.sleep(60) # Attendez 60 secondes (ajustez si nécessaire)
si __name__ == «__main__»:
asyncio.run(main())
Étape 5 : Exécuter le code
a. Enregistrez le script Python sous un nom approprié, par exemple weer_project.py
.
b. Accédez au dossier dans lequel vous avez enregistré le script Python.
c. Exécutez le script avec la commande suivante :
python météo_project.py
Le script démarre et vérifie chaque minute s'il est temps de récupérer le bulletin météo et de l'envoyer à votre chat Telegram. Pour tester si cela fonctionne correctement, vous pouvez ajuster l'heure à une heure située dans 2 minutes, puis exécuter le code.
Et c'était tout ! Ça n'a pas marché ? Revenez sur les étapes précédentes pour voir ce qui n’a pas fonctionné. Est-ce que ça a marché ? Alors jetez un œil à nos projets !