Software_and_hardware/Сервер.py

54 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#python d:\Антоше\Универ\Гит\Software_and_hardware\Сервер.py
#python d:\Антоше\Универ\Гит\Software_and_hardware\Проверка_портов.py
from flask import Flask, jsonify
from pymodbus.client.serial import ModbusSerialClient
import serial.tools.list_ports
# Определяем порт Arduino (ищем доступные порты)
def find_arduino_port():
ports = serial.tools.list_ports.comports()
for port in ports:
if "Arduino" in port.description or "CH340" in port.description:
return port.device
return None
# Настройки Modbus
PORT = find_arduino_port() or "COM3" # Если не нашли, используем COM3
BAUDRATE = 115200
TIMEOUT = 1
# Подключение к Modbus
client = ModbusSerialClient(port=PORT, baudrate=BAUDRATE, timeout=TIMEOUT, stopbits=1, bytesize=8, parity='N')
client.unit = 1
app = Flask(__name__)
@app.route("/modbus-status", methods=["GET"])
def get_modbus_status():
if client.connect():
print(f"Подключение успешно к {port}")
# Чтение катушек (биты, например, с адреса 0)
result = client.read_coils(0, 1) # Чтение одного бита (катушки) с адреса 0
if result.isError():
print("Ошибка при чтении катушек")
else:
print(f"Значение катушки: {result.bits}")
client.close()
else:
print("Не удалось подключиться к порту.")
if __name__ == "__main__":
print(f"Сервер запущен на порту {PORT}")
app.run(host="0.0.0.0", port=5000, debug=True)