রিয়েল টাইম ওয়েদার অ্যাপ

প্র্যাকটিস প্রোজেক্টস - পাইথন প্রোগ্রামিং (Python Programming) - Computer Programming

313

রিয়েল-টাইম ওয়েদার অ্যাপ হলো এমন একটি অ্যাপ্লিকেশন যা ব্যবহারকারীদের নির্দিষ্ট শহরের বর্তমান আবহাওয়ার তথ্য সরবরাহ করে। এই প্রোজেক্টে আমরা Python-এর Tkinter এবং OpenWeatherMap API ব্যবহার করে একটি রিয়েল-টাইম ওয়েদার অ্যাপ তৈরি করব।


প্রজেক্ট: রিয়েল-টাইম ওয়েদার অ্যাপ

ফিচারস

  1. ব্যবহারকারীর ইনপুট অনুযায়ী নির্দিষ্ট শহরের বর্তমান তাপমাত্রা, আবহাওয়া বিবরণ, আর্দ্রতা, এবং বাতাসের গতি দেখানো।
  2. Tkinter এর GUI ব্যবহার করে সহজ ইন্টারফেস প্রদান।
  3. 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()

কোড ব্যাখ্যা

  1. city_entry: ব্যবহারকারীর কাছ থেকে শহরের নাম ইনপুট নেয়ার জন্য একটি Entry উইজেট।
  2. get_weather() Function: এই ফাংশনটি OpenWeatherMap API থেকে নির্দিষ্ট শহরের আবহাওয়া তথ্য সংগ্রহ করে এবং তা প্রক্রিয়াকরণ করে result_label-এ দেখায়।
  3. API Key: OpenWeatherMap API-তে YOUR_API_KEY এর জায়গায় আপনার প্রাপ্ত API কী বসাতে হবে।
  4. result_label: আবহাওয়ার তথ্য ব্যবহারকারীর কাছে দেখানোর জন্য একটি লেবেল।
  5. Error Handling: try-except ব্যবহার করে API কল করার সময় যদি কোনো সমস্যা হয়, তবে ব্যবহারকারীকে ত্রুটির বার্তা দেখানো হয়।

উপসংহার

এই রিয়েল-টাইম ওয়েদার অ্যাপটি Python Tkinter এবং OpenWeatherMap API ব্যবহার করে তৈরি করা হয়েছে। এটি ব্যবহারকারীর ইনপুট শহরের আবহাওয়া, তাপমাত্রা, আর্দ্রতা এবং বাতাসের গতি দেখাতে সক্ষম। এই প্রোজেক্টটি Python-এ API ব্যবহার এবং GUI অ্যাপ্লিকেশন তৈরির জন্য একটি চমৎকার উদাহরণ।

Content added By
Promotion

Are you sure to start over?

Loading...