রিয়েল-টাইম ওয়েদার অ্যাপ হলো এমন একটি অ্যাপ্লিকেশন যা ব্যবহারকারীদের নির্দিষ্ট শহরের বর্তমান আবহাওয়ার তথ্য সরবরাহ করে। এই প্রোজেক্টে আমরা Python-এর Tkinter এবং OpenWeatherMap API ব্যবহার করে একটি রিয়েল-টাইম ওয়েদার অ্যাপ তৈরি করব।
প্রজেক্ট: রিয়েল-টাইম ওয়েদার অ্যাপ
ফিচারস
- ব্যবহারকারীর ইনপুট অনুযায়ী নির্দিষ্ট শহরের বর্তমান তাপমাত্রা, আবহাওয়া বিবরণ, আর্দ্রতা, এবং বাতাসের গতি দেখানো।
- Tkinter এর GUI ব্যবহার করে সহজ ইন্টারফেস প্রদান।
- API ব্যবহার করে রিয়েল-টাইম ডেটা রিটার্ন করা।
প্রয়োজনীয় লাইব্রেরি
- tkinter: GUI তৈরি করতে।
- requests: OpenWeatherMap API থেকে ডেটা সংগ্রহ করতে।
প্রথমে টার্মিনালে requests লাইব্রেরি ইন্সটল করতে হবে:
pip install requests
Step 1: OpenWeatherMap API কী সংগ্রহ করা
OpenWeatherMap API থেকে একটি API কী প্রয়োজন, যা OpenWeatherMap ওয়েবসাইটে একটি বিনামূল্যে অ্যাকাউন্ট খুলে সহজেই পাওয়া যায়।
Step 2: Tkinter এবং অন্যান্য মডিউল ইম্পোর্ট করা
import tkinter as tk
from tkinter import messagebox
import requests
Step 3: Tkinter GUI সেটআপ এবং এন্ট্রি ফিল্ড তৈরি
Tkinter GUI তৈরি করে ব্যবহারকারীদের কাছে শহরের নাম ইনপুট নেয়ার ব্যবস্থা করা হবে।
# মেইন Tkinter উইন্ডো তৈরি
root = tk.Tk()
root.title("Real-Time Weather App")
root.geometry("400x400")
# শহরের নামের লেবেল এবং এন্ট্রি ফিল্ড
tk.Label(root, text="Enter City Name:", font=("Arial", 14)).pack(pady=10)
city_entry = tk.Entry(root, font=("Arial", 14), width=20)
city_entry.pack(pady=10)
Step 4: আবহাওয়া ডেটা রিটার্ন করার ফাংশন তৈরি
এই ফাংশনটি ব্যবহারকারীর ইনপুট শহর অনুযায়ী OpenWeatherMap API কল করবে এবং আবহাওয়া সংক্রান্ত তথ্য ফিরিয়ে দেবে।
def get_weather():
city = city_entry.get()
api_key = "YOUR_API_KEY" # এখানে আপনার API কী লিখুন
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric"
try:
response = requests.get(url)
data = response.json()
if data["cod"] == 200:
temp = data["main"]["temp"]
weather_desc = data["weather"][0]["description"]
humidity = data["main"]["humidity"]
wind_speed = data["wind"]["speed"]
result = f"City: {city}\nTemperature: {temp}°C\nWeather: {weather_desc}\nHumidity: {humidity}%\nWind Speed: {wind_speed} m/s"
result_label.config(text=result)
else:
messagebox.showerror("Error", f"City '{city}' not found!")
except requests.exceptions.RequestException:
messagebox.showerror("Error", "Failed to retrieve data. Please check your internet connection.")
Step 5: GUI উইজেট এবং বাটন তৈরি
Tkinter GUI-তে আবহাওয়া দেখানোর জন্য একটি Get Weather বাটন এবং একটি লেবেল তৈরি করা হবে।
# আবহাওয়া ডেটা দেখানোর জন্য লেবেল
result_label = tk.Label(root, text="", font=("Arial", 12), justify="left")
result_label.pack(pady=20)
# আবহাওয়া তথ্য রিটার্ন করার বাটন
get_weather_button = tk.Button(root, text="Get Weather", command=get_weather, font=("Arial", 12))
get_weather_button.pack(pady=10)
Step 6: Tkinter মেইন লুপ চালানো
root.mainloop()
পূর্ণ কোড একসাথে
import tkinter as tk
from tkinter import messagebox
import requests
# মেইন Tkinter উইন্ডো তৈরি
root = tk.Tk()
root.title("Real-Time Weather App")
root.geometry("400x400")
# শহরের নামের লেবেল এবং এন্ট্রি ফিল্ড
tk.Label(root, text="Enter City Name:", font=("Arial", 14)).pack(pady=10)
city_entry = tk.Entry(root, font=("Arial", 14), width=20)
city_entry.pack(pady=10)
# আবহাওয়া ডেটা রিটার্ন করার ফাংশন
def get_weather():
city = city_entry.get()
api_key = "YOUR_API_KEY" # এখানে আপনার API কী লিখুন
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric"
try:
response = requests.get(url)
data = response.json()
if data["cod"] == 200:
temp = data["main"]["temp"]
weather_desc = data["weather"][0]["description"]
humidity = data["main"]["humidity"]
wind_speed = data["wind"]["speed"]
result = f"City: {city}\nTemperature: {temp}°C\nWeather: {weather_desc}\nHumidity: {humidity}%\nWind Speed: {wind_speed} m/s"
result_label.config(text=result)
else:
messagebox.showerror("Error", f"City '{city}' not found!")
except requests.exceptions.RequestException:
messagebox.showerror("Error", "Failed to retrieve data. Please check your internet connection.")
# আবহাওয়া ডেটা দেখানোর জন্য লেবেল
result_label = tk.Label(root, text="", font=("Arial", 12), justify="left")
result_label.pack(pady=20)
# আবহাওয়া তথ্য রিটার্ন করার বাটন
get_weather_button = tk.Button(root, text="Get Weather", command=get_weather, font=("Arial", 12))
get_weather_button.pack(pady=10)
root.mainloop()
কোড ব্যাখ্যা
- city_entry: ব্যবহারকারীর কাছ থেকে শহরের নাম ইনপুট নেয়ার জন্য একটি
Entryউইজেট। - get_weather() Function: এই ফাংশনটি OpenWeatherMap API থেকে নির্দিষ্ট শহরের আবহাওয়া তথ্য সংগ্রহ করে এবং তা প্রক্রিয়াকরণ করে
result_label-এ দেখায়। - API Key: OpenWeatherMap API-তে
YOUR_API_KEYএর জায়গায় আপনার প্রাপ্ত API কী বসাতে হবে। - result_label: আবহাওয়ার তথ্য ব্যবহারকারীর কাছে দেখানোর জন্য একটি লেবেল।
- Error Handling:
try-exceptব্যবহার করে API কল করার সময় যদি কোনো সমস্যা হয়, তবে ব্যবহারকারীকে ত্রুটির বার্তা দেখানো হয়।
উপসংহার
এই রিয়েল-টাইম ওয়েদার অ্যাপটি Python Tkinter এবং OpenWeatherMap API ব্যবহার করে তৈরি করা হয়েছে। এটি ব্যবহারকারীর ইনপুট শহরের আবহাওয়া, তাপমাত্রা, আর্দ্রতা এবং বাতাসের গতি দেখাতে সক্ষম। এই প্রোজেক্টটি Python-এ API ব্যবহার এবং GUI অ্যাপ্লিকেশন তৈরির জন্য একটি চমৎকার উদাহরণ।
Read more