update script
This commit is contained in:
@@ -4,17 +4,22 @@ import time
|
||||
|
||||
# Настройки MQTT
|
||||
MQTT_BROKER = "192.168.31.225" # Адрес MQTT брокера
|
||||
MQTT_PORT = 1883 # Порт MQTT
|
||||
MQTT_USER = "test" # Имя пользователя
|
||||
MQTT_PASSWORD = "1234" # Пароль
|
||||
MQTT_PORT = 1883 # Порт MQTT
|
||||
MQTT_USER = "test" # Имя пользователя
|
||||
MQTT_PASSWORD = "1234" # Пароль
|
||||
|
||||
# Топики
|
||||
MQTT_CONTROL_TOPIC = "motor/control/command" # Топик для управления двигателем
|
||||
MQTT_DRIVER_TOPIC = "motor/control/driver" # Топик для управления драйвером
|
||||
MQTT_SPEED_TOPIC = "motor/control/step_per_sec" # Топик для установки скорости шагов в секунду
|
||||
MQTT_RPM_TOPIC = "motor/control/rpm" # Топик для установки скорости оборотов в минуту
|
||||
MQTT_DRIVER_TOPIC = "motor/control/driver" # Топик для управления драйвером
|
||||
MQTT_SPEED_TOPIC = "motor/control/step_per_sec" # Топик для установки скорости шагов в секунду
|
||||
MQTT_RPM_TOPIC = "motor/control/rpm" # Топик для установки скорости оборотов в минуту
|
||||
MQTT_RESET_STEPS_TOPIC = "motor/control/totalsteps/reset" # Топик для сброса шагов
|
||||
|
||||
def on_connect(client, userdata, flags, rc):
|
||||
if rc == 0:
|
||||
print("Connected to MQTT broker")
|
||||
# Подписка на все топики для получения обратной связи
|
||||
client.subscribe("motor/feedback/#")
|
||||
else:
|
||||
print(f"Failed to connect, return code {rc}")
|
||||
|
||||
@@ -23,6 +28,41 @@ def send_command(topic, command):
|
||||
client.publish(topic, command)
|
||||
print(f"Sent command: {command} to topic {topic}")
|
||||
|
||||
def handle_command(command):
|
||||
"""Обработка команд"""
|
||||
parts = command.split()
|
||||
if not parts:
|
||||
return
|
||||
|
||||
cmd = parts[0].lower()
|
||||
|
||||
# Используем словарь для обработки команд
|
||||
command_handlers = {
|
||||
"start": lambda: send_command(MQTT_CONTROL_TOPIC, "start"),
|
||||
"stop": lambda: send_command(MQTT_CONTROL_TOPIC, "stop"),
|
||||
"turnon": lambda: send_command(MQTT_DRIVER_TOPIC, "turnon"),
|
||||
"turnoff": lambda: send_command(MQTT_DRIVER_TOPIC, "turnoff"),
|
||||
"resetsteps": lambda: send_command(MQTT_RESET_STEPS_TOPIC, "reset"),
|
||||
}
|
||||
|
||||
# Обработка команд с параметрами
|
||||
if cmd == "rpm" and len(parts) > 1:
|
||||
try:
|
||||
rpm = int(parts[1])
|
||||
send_command(MQTT_RPM_TOPIC, str(rpm))
|
||||
except ValueError:
|
||||
print("Invalid RPM value. Please enter a number.")
|
||||
elif cmd == "speed" and len(parts) > 1:
|
||||
try:
|
||||
speed = int(parts[1])
|
||||
send_command(MQTT_SPEED_TOPIC, str(speed))
|
||||
except ValueError:
|
||||
print("Invalid speed value. Please enter a number.")
|
||||
elif cmd in command_handlers:
|
||||
command_handlers[cmd]()
|
||||
else:
|
||||
print("Unknown command. Use 'start', 'stop', 'rpm <value>', 'speed <value>', 'resetsteps', or 'exit'")
|
||||
|
||||
def main():
|
||||
# Создание клиента MQTT
|
||||
global client
|
||||
@@ -47,6 +87,7 @@ def main():
|
||||
print(" turnoff - выключить управление двигателем")
|
||||
print(" rpm <value> - установить скорость оборотов (например: rpm 200)")
|
||||
print(" speed <value> - установить скорость шагов в секунду (например: speed 2000)")
|
||||
print(" resetsteps - сбросить счетчик шагов")
|
||||
print(" exit - выход")
|
||||
|
||||
while True:
|
||||
@@ -54,28 +95,8 @@ def main():
|
||||
|
||||
if command == "exit":
|
||||
break
|
||||
elif command == "start":
|
||||
send_command(MQTT_CONTROL_TOPIC, "start")
|
||||
elif command == "stop":
|
||||
send_command(MQTT_CONTROL_TOPIC, "stop")
|
||||
elif command == "turnon":
|
||||
send_command(MQTT_DRIVER_TOPIC, "turnon")
|
||||
elif command == "turnoff":
|
||||
send_command(MQTT_DRIVER_TOPIC, "turnoff")
|
||||
elif command.startswith("speed "):
|
||||
try:
|
||||
speed = int(command.split()[1])
|
||||
send_command(MQTT_SPEED_TOPIC, str(speed))
|
||||
except ValueError:
|
||||
print("Invalid speed value. Please enter a number.")
|
||||
elif command.startswith("rpm "):
|
||||
try:
|
||||
rpm = int(command.split()[1])
|
||||
send_command(MQTT_RPM_TOPIC, str(rpm))
|
||||
except ValueError:
|
||||
print("Invalid speed value. Please enter a number.")
|
||||
else:
|
||||
print("Unknown command. Use 'start', 'stop', 'speed <value>', or 'exit'")
|
||||
|
||||
handle_command(command)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\nShutting down...")
|
||||
|
||||
Reference in New Issue
Block a user