Умный дом
pip install aiogram paho-mqtt
sudo apt update
sudo apt install mosquitto mosquitto-clients
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
# Управление светом
import paho.mqtt.publish as publish
from aiogram import Bot, Dispatcher, types
import asyncio
# 🔑 Вставьте ваш Telegram API-ключ
TOKEN = "YOUR_TELEGRAM_BOT_TOKEN"
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
# 📌 Настройки MQTT
MQTT_BROKER = "mqtt.example.com" # Замените на ваш MQTT-сервер
MQTT_PORT = 1883 # Стандартный порт
MQTT_TOPIC_LIGHT = "home/light"
# 📌 Команда для включения света
@dp.message_handler(commands=["light_on"])
async def light_on(message: types.Message):
publish.single(MQTT_TOPIC_LIGHT, "ON", hostname=MQTT_BROKER, port=MQTT_PORT)
await message.reply("💡 Свет включен!")
# 📌 Команда для выключения света
@dp.message_handler(commands=["light_off"])
async def light_off(message: types.Message):
publish.single(MQTT_TOPIC_LIGHT, "OFF", hostname=MQTT_BROKER, port=MQTT_PORT)
await message.reply("💡 Свет выключен!")
# 📌 Запуск бота
async def main():
await dp.start_polling()
asyncio.run(main())
# Код для устройства
import paho.mqtt.client as mqtt
import RPi.GPIO as GPIO # Для Raspberry Pi
# 📌 Настройки
MQTT_BROKER = "mqtt.example.com"
MQTT_TOPIC_LIGHT = "home/light"
RELAY_PIN = 17 # Подключаем реле к пину GPIO 17
# 📌 Настраиваем Raspberry Pi
GPIO.setmode(GPIO.BCM)
GPIO.setup(RELAY_PIN, GPIO.OUT)
# 📌 Функция обработки сообщений MQTT
def on_message(client, userdata, msg):
command = msg.payload.decode()
if command == "ON":
GPIO.output(RELAY_PIN, GPIO.HIGH) # Включаем свет
print("💡 Свет включен")
elif command == "OFF":
GPIO.output(RELAY_PIN, GPIO.LOW) # Выключаем свет
print("💡 Свет выключен")
# 📌 Подключаемся к MQTT
client = mqtt.Client()
client.on_message = on_message
client.connect(MQTT_BROKER)
# 📌 Подписываемся на топик и ждем сообщения
client.subscribe(MQTT_TOPIC_LIGHT)
client.loop_forever()