Software_and_hardware/Версия_3.0/Server.py
2025-02-15 08:04:21 +03:00

58 lines
2.0 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\Версия_3.0\Server.py
import serial
import serial.tools.list_ports
import minimalmodbus
from flask import Flask, jsonify, render_template
app = Flask(__name__)
def find_arduino_port():
ports = list(serial.tools.list_ports.comports())
for port in ports:
if "Arduino" in port.description or "CH340" in port.description:
return port.device
return None
# Настройки порта
port = find_arduino_port() # Укажите порт, к которому подключен Arduino
slave_id = 1 # ID устройства (адрес Arduino)
baudrate = 9600
timeout = 1 # Время ожидания в секундах
if port is None:
print("Arduino не подключено или не найдено")
else:
print(f"Подключено к порту: {port}")
@app.route('/')
def index():
return render_template('index.html') # Отдача HTML файла
# Настроим модбас клиента
client = minimalmodbus.Instrument(port, slave_id) # Создаем объект клиента Modbus
client.serial.baudrate = baudrate # Устанавливаем скорость
client.serial.timeout = timeout # Время ожидания ответа
client.mode = minimalmodbus.MODE_RTU # Используем RTU
@app.route('/status', methods=['GET'])
def get_status():
try:
# Чтение 4 регистров с адреса 0
result = client.read_registers(0, 1, functioncode=3)
pin_state = result[0] # Состояние пина
return jsonify({
'port': port,
'pinState': pin_state
})
except minimalmodbus.NoResponseError:
return jsonify({'error': 'Нет ответа от устройства'})
except Exception as e:
return jsonify({'error': str(e)})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)