این کد به زبان پایتون طراحی شده است تا به طور پیوسته وضعیت شارژ باتری دستگاه را بررسی کند و در صورتی که دستگاه از برق جدا شده و به باتری متصل باشد، یک هشدار صوتی پخش کند. این هشدار تا زمانی که دستگاه دوباره به برق وصل شود ادامه خواهد داشت. در ادامه، توضیحات دقیقتر کد آورده شده است:
- وارد کردن کتابخانهها:
- کتابخانه psutil: این کتابخانه برای دسترسی به اطلاعات سیستم از جمله وضعیت باتری دستگاه استفاده میشود.
- کتابخانه time: این کتابخانه برای ایجاد تاخیر در اجرای برنامه (در اینجا هر یک ثانیه) استفاده میشود.
- کتابخانه pygame: کتابخانهای برای پردازش و پخش صدا در پایتون است.
- تنظیمات pygame برای پخش صدا:
- تابع pygame.mixer.init() برای پیکربندی بخش پخش صدا در pygame استفاده میشود.
- تعریف تابع battery_alert:
- در این تابع، وضعیت باتری دستگاه به طور پیوسته بررسی میشود.
- متغیر alert_playing برای پیگیری وضعیت هشدار صوتی استفاده میشود. اگر هشدار در حال پخش باشد، از پخش دوباره آن جلوگیری میشود.
- بررسی وضعیت باتری:
- تابع psutil.sensors_battery() اطلاعات باتری دستگاه را برمیگرداند، از جمله وضعیت شارژ و وضعیت اتصال به برق.
- متغیر plugged بررسی میکند که آیا دستگاه به برق متصل است یا خیر.
- پخش هشدار صوتی:
- اگر دستگاه از برق جدا شده باشد و هشدار صوتی هنوز پخش نشده باشد (alert_playing برابر False باشد)، پیام "Power is disconnected! Running on battery." در کنسول چاپ شده و فایل صوتی sg.mp3 بارگذاری و به صورت مداوم پخش میشود.
- اگر دستگاه به برق متصل باشد و هشدار در حال پخش باشد، پیام "Battery is plugged in. Alarm stopped." چاپ شده و پخش صدا متوقف میشود.
- استراحت بین بررسیها:
- با استفاده از time.sleep(1)، برنامه هر یک ثانیه یکبار وضعیت باتری را بررسی میکند.
- اجرای تابع battery_alert:
- در پایان، این تابع به طور پیوسته اجرا میشود و وضعیت باتری را نظارت میکند.
- هشدار صوتی: در صورتی که دستگاه از برق جدا شود، یک هشدار صوتی پخش میشود که با استفاده از کتابخانه pygame انجام میشود.
- نظارت پیوسته: وضعیت باتری هر یک ثانیه یکبار بررسی میشود و در صورت تغییر وضعیت، به صورت خودکار واکنش نشان داده میشود.
- استفاده از کتابخانه psutil: برای دسترسی به اطلاعات باتری و وضعیت شارژ دستگاه.
- کنترل وضعیت هشدار: با استفاده از متغیر alert_playing از پخش مکرر هشدار صوتی جلوگیری میشود.
این برنامه میتواند به عنوان یک ابزار برای نظارت بر وضعیت شارژ باتری و اطلاعرسانی به کاربر در صورت نیاز به شارژ دستگاه مفید باشد.
import psutil
import time
import pygame
# پیکربندی pygame برای پخش صدا
pygame.mixer.init()
def battery_alert():
alert_playing = False # بررسی اینکه آیا هشدار در حال پخش است یا خیر
while True:
battery = psutil.sensors_battery()
plugged = battery.power_plugged # وضعیت اتصال به برق
if not plugged and not alert_playing: # اگر برق قطع شده باشد و صدای هشدار هنوز پخش نشده باشد
print("برق قطع شده است! از باتری استفاده میشود.")
pygame.mixer.music.load("sg.mp3") # بارگذاری فایل صدا
pygame.mixer.music.play(-1) # پخش مداوم صدا
alert_playing = True # وضعیت هشدار به پخش تنظیم شود
elif plugged and alert_playing: # اگر باتری به برق متصل شده باشد و صدا در حال پخش باشد
print("باتری به برق متصل شد. آلارم متوقف شد.")
pygame.mixer.music.stop() # توقف پخش صدا
alert_playing = False # وضعیت هشدار به غیرفعال تنظیم شود
time.sleep(1) # هر ۱ ثانیه وضعیت چک شود
battery_alert()