DmitrMakeev commited on
Commit
b3f165a
·
verified ·
1 Parent(s): 5f10aa5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -3
app.py CHANGED
@@ -3,7 +3,9 @@ from flask import request, jsonify
3
  import os
4
  import sqlite3
5
  from datetime import datetime
6
-
 
 
7
  from dotenv import load_dotenv
8
  import globs
9
 
@@ -175,8 +177,55 @@ def get_all_data():
175
  return jsonify({'status': 'error', 'message': str(e)}), 500
176
 
177
 
178
-
179
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
 
181
 
182
 
 
3
  import os
4
  import sqlite3
5
  from datetime import datetime
6
+ import matplotlib.pyplot as plt
7
+ import io
8
+ import base64
9
  from dotenv import load_dotenv
10
  import globs
11
 
 
177
  return jsonify({'status': 'error', 'message': str(e)}), 500
178
 
179
 
180
+ # Маршрут для вывода ph
181
+ @app.route('/plot_ph', methods=['GET'])
182
+ def plot_ph():
183
+ try:
184
+ conn = sqlite3.connect('system_data.db')
185
+ cursor = conn.cursor()
186
+
187
+ # Выполняем запрос для получения данных по параметру ph
188
+ cursor.execute('SELECT date_time, ph FROM system_data ORDER BY date_time')
189
+ rows = cursor.fetchall()
190
+
191
+ conn.close()
192
+
193
+ # Проверяем, есть ли данные
194
+ if not rows:
195
+ return jsonify({'status': 'error', 'message': 'Нет данных для построения графика'}), 400
196
+
197
+ # Разделяем данные на оси X (время) и Y (значения ph)
198
+ dates = [row[0] for row in rows]
199
+ ph_values = [float(row[1]) for row in rows]
200
+
201
+ # Создаем график
202
+ plt.figure(figsize=(10, 6))
203
+ plt.plot(dates, ph_values, marker='o', linestyle='-', color='b')
204
+ plt.title('График значений pH')
205
+ plt.xlabel('Дата и время')
206
+ plt.ylabel('Значение pH')
207
+ plt.xticks(rotation=45)
208
+ plt.grid(True)
209
+
210
+ # Сохраняем график в буфер
211
+ buffer = io.BytesIO()
212
+ plt.savefig(buffer, format='png')
213
+ buffer.seek(0)
214
+
215
+ # Кодируем график в base64
216
+ plot_data = base64.b64encode(buffer.getvalue()).decode('utf-8')
217
+
218
+ # Возвращаем график в формате HTML
219
+ return f'''
220
+ <html>
221
+ <body>
222
+ <h1>График значений pH</h1>
223
+ <img src="data:image/png;base64,{plot_data}" alt="График pH">
224
+ </body>
225
+ </html>
226
+ '''
227
+ except Exception as e:
228
+ return jsonify({'status': 'error', 'message': str(e)}), 500
229
 
230
 
231