Рубрики
Без рубрики

Как построить будильник в Python

Добро пожаловать всем, сегодня мы собираемся построить будильник с помощью Python. Как алар … Теги с Python, CodeNewie, начинающими, программированием.

Добро пожаловать всем, сегодня мы собираемся построить Будильник с использованием Python.

Как работает будильник?

Будильник обычно требует, чтобы вы установили конкретное время, которое вы хотите тревоги для звонка. После того, как вы устроили предпочтительное время, сигнал тревоги будет постоянно соответствовать времени, которое вы предоставили текущее время. Как только оба совпадают, тревожные кольца.

Это очень общее представление о том, как обычно работает настоящий будильник. Будильник, мы будем строить, последуют тот же механизм.

Настройка проекта

Установка требуемых модулей/библиотек

Хорошо Так что сначала первые вещи!

В этом проекте мы собираемся использовать некоторые внешние модули, которые уже были доступны другими разработчиками. Эти модули помогут нам сэкономить много времени и усилий. Все, что нам нужно сделать, это импортировать их в наш проект, чтобы начать работу.

Импорт модулей довольно просты. Все, что вам нужно сделать, это запустить простой PIP Установить Команда с терминала и наш указанный модуль будет загружен в нашей системе.

Нам нужны 2 разных модуля для нашего проекта – datetime & Playsound Отказ

Давайте запустим команду установки PIP и загрузите оба этих модуля.

pip install datetime

datetime – Мы будем использовать этот модуль для получения текущего времени, который невозможен без этого модуля.

pip install playsound

Playsound – Мы будем использовать этот модуль для воспроизведения нашего сигнала тревоги после того, как тревожные кольца.

Скачать будильник рингтон

Мы почти на месте! Последнее, прежде чем мы начнем наш проект, мы должны загрузить рингтон, который будет воспроизведен, когда наша тревога уходит.

Вы можете скачать сигнал тревоги из здесь Отказ Не только тревожные тона, вы можете использовать любую музыку, которую вам нравится для этого проекта. Все, что вам нужно сделать, это убедиться, что расширение файла файла аудио .wav . Другое дело, чтобы убедиться, что пытается сохранить аудиофайл в той же папке, что и ваш код.

Давайте код

Итак, первое, что мы собираемся сделать, это, конечно, импортируют оба наших модуля, мы только что установили.

from datetime import datetime
from playsound import playsound

Оба наших модуля теперь готовы к использованию.

Теперь давайте попросим пользователя на то время, когда тревога будет выключена.

alarm_time = input("Enter time in 'HH:MM:SS AM/PM' format: ")

Нам нужно иметь предварительно определенный формат, в котором пользователь вступит в момент времени. Здесь мы используем стандартное формат времени HH: мм: SS AM/PM который просит час, минуту, второй и период (AM/PM). Мы сохраним этот вклад в Alarm_time Переменная.

Теперь мы знаем, что человеческие ошибки очень возможны, и, следовательно, нам нужен, чтобы убедиться, что ввод времени пользователь предоставлен именно в формате, который мы просили.

Для этого мы создадим функцию, которая сделает работу, которая будет выполнять задание подтверждения времени, предоставляемое пользователем, если формат времени является неожиданным или недействительным, то наша функция отобразит сообщение на консоли и попросит пользователя повторно ввести время Отказ

def validate_time(alarm_time):
    if len(alarm_time) != 11:
        return "Invalid time format! Please try again..."
    else:
        if int(alarm_time[0:2]) > 12:
            return "Invalid HOUR format! Please try again..."
        elif int(alarm_time[3:5]) > 59:
            return "Invalid MINUTE format! Please try again..."
        elif int(alarm_time[6:8]) > 59:
            return "Invalid SECOND format! Please try again..."
        else:
            return "ok"

Вот наша функция под названием validate_time. . Давайте сломаемся и понять, что происходит –

  • Наша функция принимает ввод пользователя в качестве параметра Alarm_time Отказ
  • В первом Если заявление , в Len (Alarm_time) Мы проверяем длину Пользователь ввода будет ровно 11 символов Отказ Если нет, то это будет вернуть Заявление, задающее пользователю повторно ввести значение. Если пользовательский ввод имеет ровно 11 символов, то еще Блок выполнит, именно здесь становится более глубокая проверка нашего пользовательского ввода.
  • В первом, если заявление в течение остального блока Мы подтверждаем первые два персонажа нашего ввода, которые являются HH Отказ Там может быть небольшой шанс, что пользователь может ввести неверные часы, как и что-то более 12 часов. Здесь на Alarm_time [0: 2] С Мы используем оператор нарезки для доступа к первым двум символам ввода пользователя. Вход не более 12 часов, то выполнение будет двигаться вперед к следующему условному оператору. Но если вход более 12 часов, то он будет вернуть Заявление, просив пользователя повторно ввести время.
  • Следующие два условных заявления делают ту же работу, что и первая , сравнение минут и секунд соответственно.
  • Если вклад все хорошее, то, еще Блок нашей функции вернет Хорошо Отказ Теперь, вот где работа наша функция окончена.

Потрясающий! Наше Validate_time . Функция теперь готова к использованию!

Теперь пришло время называть нашу функцию.

while True:
    alarm_time = input("Enter time in 'HH:MM:SS AM/PM' format: ")

    validate = validate_time(alarm_time.lower())
    if validate != "ok":
        print(validate)
    else:
        print(f"Setting alarm for {alarm_time}...")
        break

Здесь мы храним вывод функции в вариабельную проверку, которую мы используем, чтобы судить, действителен ли вход или нет. Если он недействителен, то пользователю будет предложено ввести время снова. Если нет, то исполнение будет отправляться на следующий шаг.

Теперь мы уверены, что вход, предоставляемый пользователем, и теперь мы можем отдельно хранить значения в разные переменные. Посмотрите на код.

alarm_hour = alarm_time[0:2]
alarm_min = alarm_time[3:5]
alarm_sec = alarm_time[6:8]
alarm_period = alarm_time[9:].upper()

Здесь мы используем оператор нарезки для хранения определенной единицы времени в определенные переменные. HH будет храниться в Alarm_hour , Мм в Alarm_min. и так далее.

Далее подходит дальше, теперь мы должны получить текущее время, чтобы сравнить его с предоставленным пользователем временем.

now = datetime.now()

    current_hour = now.strftime("%I")
    current_min = now.strftime("%M")
    current_sec = now.strftime("%S")
    current_period = now.strftime("%p")

Помните наши datetime Модуль мы импортировали в начале нашего проекта. Мы, наконец, собираемся использовать это.

Во-первых, мы используем datetime.now () Чтобы получить текущее время, и мы храним эти данные в сейчас Переменная.

Next UP Мы используем% Notiation для извлечения конкретных временных данных из сейчас. Это именно похоже на то, что мы только что сделали с пользовательским входом. сейчас .streftime () используется для данных в строковом формате для сравнения.

Потрясающий! Мы почти закончили!

if alarm_period == current_period:
        if alarm_hour == current_hour:
            if alarm_min == current_min:
                if alarm_sec == current_sec:
                    print("Wake Up!")
                    playsound('D:/Library/Documents/Projects/Coding/Beginner Python Projects/Alarm Clock/alarm.wav')

Теперь это были основной механизм нашей тревоги. Мы просто используем, если операторы сравнивают текущее время времени и пользователя.

Здесь, если период пользователя и текущий период (AM/PM) совпадает, то следующий Если Заявление выполняется, что сделает сравнение между пользовательским часом ввода и текущего часа. Этот же процесс повторяется до последнего Если утверждение выполняется.

Наконец, когда последний Если Заявление выполняется и если он совпадает, Проснись! Будут напечатаны на консоли и тонус тревоги будет воспроизведен.

Чтобы воспроизвести сигнал тревоги, мы используем наши Playsound модуль. Все, что мы сделали, пройдено Абсолютный адрес нашего аудиофайла к Playsound () И он играл аудиофайл в соответствии с нашим запросом.

Теперь, прежде чем мы завершите, для нас важно поставить весь код, который мы написали для окончательной части, в цикл, так что она продолжает выполняться до наших тревоги.

while True:
    now = datetime.now()

    current_hour = now.strftime("%I")
    current_min = now.strftime("%M")
    current_sec = now.strftime("%S")
    current_period = now.strftime("%p")

    if alarm_period == current_period:
        if alarm_hour == current_hour:
            if alarm_min == current_min:
                if alarm_sec == current_sec:
                    print("Wake Up!")
                    playsound('D:/Library/Documents/Projects/Coding/Beginner Python Projects/Alarm Clock/alarm.wav')
                    break

Здесь выглядит хорошо … Мы также добавили Перерыв Заявление в конце, чтобы выполнение нашей тревоги остановится после того, как сигнал тревоги будет.

ТЫ СДЕЛАЛ ЭТО! Дайте себе погладить на спину ⭐

Исходный код

Вы можете найти полный исходный код этого проекта здесь – mindninjax/python-projects-for-origers

Служба поддержки

Большое спасибо за чтение! Я надеюсь, что вы нашли этот новичок в проекте полезным.

Если вам нравится моя работа, пожалуйста, рассмотрите возможность Покупая меня кофе Так что я могу принести больше проектов, больше статей для вас.

Также, если у вас есть какие-либо вопросы или сомнения, не стесняйтесь связаться со мной на Twitter , LinkedIn и Github Отказ Или вы также можете опубликовать комментарий/обсуждение, и я сделаю все возможное, чтобы помочь вам: D

Оригинал: “https://dev.to/mindninjax/alarm-clock-python-project-4jn4”