54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
|
||
#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)
|