Вы когда-нибудь смотрели утром в потолок, в ужасе от горы рутины впереди? И я делал это часто. До того дня, пока я не сломался. Я решил автоматизировать все свои утренние дела с помощью Python, и результаты оказались просто потрясающими.

Точка невозврата

Эта среда была особенно напряженной. Будильник предательски не прозвенел, я пролил кофе на последнюю чистую рубашку и опоздал на автобус, из-за чего приехал на важную встречу позже положенного срока. Мне пришла в голову мысль: «Неужели мне придется так жить всю жизнь? Это была веха. Бесконечный утренний хаос довел меня до грани, и я решил, что мне нужно снова взять ситуацию под контроль.

Идея

Моя идея родилась из шутки моего друга Сэма. Мы болтали за чашкой кофе, и он небрежно сказал: «Было бы здорово, если бы вы могли запланировать утро так, чтобы оно работало само собой». » Мы посмеялись, но идея запомнилась мне. Почему нет? Я довольно хорошо разбирался в кодировании. Я автоматизировал небольшие задачи не раз. Можно ли автоматизировать все утро?

Первые шаги

На следующий день я начал думать. Что меня больше всего раздражает по утрам? Приготовьте кофе, выберите одежду, проверьте погоду, составьте график и т. д. Я составил список и понял, что с помощью нескольких скриптов смогу избавиться от этих досадных недоразумений.

Включи свет

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

фото Мостафа Сафадель на Unsplash

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

from phue import Bridge
import time
def gradual_light(bridge_ip, light_id, duration):
   bridge = Bridge(bridge_ip)
   bridge.connect()
   for brightness in range(0, 256, 5):
       bridge.set_light(light_id, 'bri', brightness)
       time.sleep(duration / 51)  # There are 51 steps from 0 to 255 in increments of 5
gradual_light('192.168.1.2', 1, 600)

Синхронизация по расписанию

фото Бехнам Норузи на Unsplash

Отрегулировав свет, я сосредоточился на своей повседневной жизни. Мне нужен был способ быстро получить обзор моего списка дел без необходимости проверять несколько приложений одновременно. Я написал сценарий, который извлекает мое расписание из Календаря Google и читает его вслух, используя библиотеку преобразования текста в речь.

import os
from google.oauth2 import service_account
from googleapiclient.discovery import build
import pyttsx3

def get_events():
    SCOPES = ['
    SERVICE_ACCOUNT_FILE = 'path/to/your/service-account-file.json'
    credentials = service_account.Credentials.from_service_account_file(
            SERVICE_ACCOUNT_FILE, scopes=SCOPES)
    service = build('calendar', 'v3', credentials=credentials)
    now = datetime.datetime.utcnow().isoformat() + 'Z'
    events_result = service.events().list(calendarId='primary', timeMin=now,
                                        maxResults=10, singleEvents=True,
                                        orderBy='startTime').execute()
    events = events_result.get('items', [])
    return events
def read_schedule():
    events = get_events()
    if not events:
        text="No upcoming events found."
    else:
        text="Your schedule for today:"
        for event in events:
            start = event['start'].get('dateTime', event['start'].get('date'))
            text += f"\n{start}: {event['summary']}"
    engine = pyttsx3.init()
    engine.say(text)
    engine.runAndWait()
read_schedule()

Автоматизировать кофе

Фото Тайлера Никса на Unsplash

Прежде всего я решил закрыть вопрос с завариванием кофе. Для этого я приобрел умную кофеварку, которой можно управлять с помощью телефона. Затем я написал сценарий Python, используя библиотеку, взаимодействующую с API кофеварки. Каждую ночь перед сном я устанавливал будильник и запускал сценарий, который начинал варить кофе за десять минут до моего пробуждения. Это, казалось бы, небольшое изменение позволило мне каждое утро просыпаться от запаха свежего кофе. Маленькое, но чудо.

import requests
import time

def brew_coffee():
    # Replace with your coffee maker's API endpoint and access token
    api_url = "
    access_token = "your_access_token_here"
    
    headers = {
        "Authorization": f"Bearer {access_token}",
        "Content-Type": "application/json"
    }
    
    response = requests.post(api_url, headers=headers)
    if response.status_code == 200:
        print("Coffee is brewing!")
    else:
        print("Failed to start coffee maker.")
# Set this script to run 10 minutes before your alarm
brew_coffee()

Автоматизируем гардероб

Фото Хуй Нгуен, Unsplash

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

import requests

def get_weather():
    response = requests.get("
    weather = response.json()
    return weather['current']['temp_c'], weather['current']['condition']['text']
def suggest_outfit(temp, condition):
    if temp 

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

import cv2
import numpy as np
import requests

def capture_wardrobe_image():
    camera = cv2.VideoCapture(0)
    return_value, image = camera.read()
    cv2.imwrite('wardrobe.jpg', image)
    camera.release()
    cv2.destroyAllWindows()
def suggest_outfit():
    # Replace with your image recognition model API
    api_url = "
    image_path = "wardrobe.jpg"
    
    with open(image_path, 'rb') as image_file:
        files = {'file': image_file}
        response = requests.post(api_url, files=files)
    
    if response.status_code == 200:
        outfit_suggestion = response.json()
        print(f"Suggested outfit: {outfit_suggestion}")
    else:
        print("Failed to get outfit suggestion.")
# Capture wardrobe image and suggest outfit
capture_wardrobe_image()
suggest_outfit()

Обновления погоды и расписания

фото Андре Бенц на Unsplash

ЧИТАТЬ   10 подарков, от которых у женщин дрожат глаза, но они продолжают их приносить и носить

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

import requests
from datetime import datetime

def get_weather():
    api_url = "
    params = {
        "key": "your_weather_api_key",
        "q": "your_location"
    }
    response = requests.get(api_url, params=params)
    return response.json()
def get_schedule():
    # Replace with your calendar API
    api_url = "
    params = {
        "access_token": "your_calendar_access_token"
    }
    response = requests.get(api_url, params=params)
    return response.json()
def send_reminder(message):
    # Replace with your preferred notification method
    print(f"Reminder: {message}")
# Get weather and schedule
weather = get_weather()
schedule = get_schedule()
# Decision logic based on weather and schedule
if weather['current']['condition']['text'].lower() == 'rain':
    send_reminder("It's going to rain. Don't forget your umbrella!")
else:
    send_reminder("No rain today. Dress comfortably.")
for event in schedule['events']:
    event_time = datetime.fromisoformat(event['start_time'])
    if event_time.hour 

Завтрак и другие вопросы

Фото Look Studio, Unsplash

Завтрак — еще одна серьезная проблема. Я часто пропускал это занятие или перекусывал чем-то нездоровым по дороге на работу. Поэтому я разработал сценарий, который взаимодействовал с умной системой инвентаризации холодильника и кладовой. Он отслеживал продукты, которые у меня были под рукой, и предлагал рецепты, исходя из моих предпочтений и потребностей в питании. Я также запрограммировал блендер так, чтобы он начинал готовить смузи, как только я выхожу из душа.

import requests

def get_pantry_inventory():
    # Replace with your smart pantry API
    api_url = "
    response = requests.get(api_url)
    return response.json()
def suggest_recipe(inventory):
    # Replace with your recipe suggestion API
    api_url = "
    response = requests.post(api_url, json=inventory)
    return response.json()
def start_smoothie_blender(recipe):
    # Replace with your smart blender API
    api_url = "
    response = requests.post(api_url, json=recipe)
    if response.status_code == 200:
        print("Smoothie is being made!")
    else:
        print("Failed to start smoothie blender.")
# Get pantry inventory and suggest recipe
inventory = get_pantry_inventory()
recipe = suggest_recipe(inventory)
print(f"Suggested recipe: {recipe}")
# Start smoothie blender with the suggested recipe
start_smoothie_blender(recipe)

Напоминания о тренировках

Наконец, я установил для себя напоминания о тренировках. Я написал сценарий, который использует API Twilio для отправки текстовых сообщений с напоминанием о необходимости тренировки в 8 утра.

from twilio.rest import Client

account_sid = 'your_account_sid'
auth_token = 'your_auth_token'
client = Client(account_sid, auth_token)
message = client.messages.create(
    body="Time to work out!",
    from_='+1234567890',
    to='+0987654321'
)
print(message.sid)

Выполнение

Когда сценарии были готовы, пришло время опробовать их на практике. Я объединила их в один целостный утренний распорядок. Я создал мастер-скрипт, который контролировал все процессы – от звонка будильника до приготовления кофе и выбора костюма.

import threading

def morning_routine():
    alarm_thread = threading.Thread(target=play_alarm)
    coffee_thread = threading.Thread(target=brew_coffee)
    weather_thread = threading.Thread(target=get_weather_and_suggest_outfit)
    alarm_thread.start()
    coffee_thread.start()
    weather_thread.start()
    alarm_thread.join()
    coffee_thread.join()
    weather_thread.join()
def get_weather_and_suggest_outfit():
    temp, condition = get_weather()
    outfit = suggest_outfit(temp, condition)
    print(f"Today's weather: {temp}°C and {condition}. Suggested outfit: {outfit}")
morning_routine()

Результат

Первое утро, когда я тестировал систему, было нервным. Что если что-то пойдет не так? Но все работало как часы. Будильник включил мою любимую песню в 7 утра. Я встал с кровати и через пять минут квартиру наполнил запах свежесваренного кофе. Я сидел с чашкой и слушал, как компьютер читает мне последние письма. К тому времени, как я допил кофе, я точно знал, как будет выглядеть мой день, и в 8 утра получил сообщение с напоминанием о необходимости заняться спортом.

ЧИТАТЬ   ВТБ: до конца года все обращения клиентов будут обрабатываться с помощью искусственного интеллекта

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

Ложка дегтя

Однако не все были довольны моим новым образом жизни. Некоторые друзья думали, что я сошел с ума. «Вы позволяете машинам контролировать вашу жизнь», — говорили они. «Что если что-то пойдет не так?» »

Однажды утром девушка устроила мне настоящую сцену. «Послушай, я знаю, что тебе нравится твоя техника, — начала она, — но тебе не кажется, что ты заходишь слишком далеко? Что произойдет, если у вас пропадет подключение к Интернету или ваши скрипты зависнут? Ты исчезнешь!

Она была права. Я стал очень зависим от системы. Дело в том, что сбой системы – это не вопрос «если», а вопрос «когда». Чтобы снизить риск, я предоставил резервные варианты. Если кофеварка не включалась, я получал уведомление и мог запустить ее вручную. Если бы камера гардероба сломалась, у меня был список готовых нарядов, из которого я могла выбрать тот, который мне нужен. Скрипт прогноза погоды? Ну а при необходимости я всегда мог вручную проверить прогноз на телефоне.

Заключение

Автоматизация моей утренней рутины с помощью Python была больше, чем просто увлекательным занятием: она изменила ход моей жизни. Она показала мне ценность автоматизации и то, как технологии могут неожиданным образом улучшить нашу жизнь. Конечно, это может показаться излишним, но для такого человека, как я, это просто идеальный вариант.

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

ЧИТАТЬ   20 человек, которые столкнулись с такими плохими ситуациями, что у нас свело скулы

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

Надеюсь, вы нашли эту статью полезной. Спасибо, что нашли время прочитать это.

Source

От admin