Категории
Как анализировать качество центрального электроснабжения с помощью базы данных и датчиков
28.06.2026 | из категории: эпоха 2040
Как измерить приближение глобального кризиса по синусоиде у себя в розетке
Калужская область Сценарий: НПЗ горит, свет пока есть
«Покупай панели, когда они дешёвые, а ставь — когда график напряжения поплыл.
Твой датчик — это анти-СМИ, он не врёт.»
🔍 Какие параметры сети мониторить
Напряжение (V)
Норма: 220-230В
Просадка ниже 210В = перегруз сети. Дефицит газа/угля.
Норма: 220-230В
Просадка ниже 210В = перегруз сети. Дефицит газа/угля.
Частота (Hz)
Норма: 50.00 ± 0.2
Плавающая частота = слабая синхронизация, диспетчеры на пределе.
Норма: 50.00 ± 0.2
Плавающая частота = слабая синхронизация, диспетчеры на пределе.
THD (Искажения)
Норма: < 5%
Синусоида в «пилу» — в сеть врубили дешёвые инверторы/майнинг.
Норма: < 5%
Синусоида в «пилу» — в сеть врубили дешёвые инверторы/майнинг.
Дребезг/Скачки
Отключения веток
Частые пропадания = веерные отключения по графику.
Отключения веток
Частые пропадания = веерные отключения по графику.
🛠 Железо для датчика (бюджетный вариант)
- ESP32 / ESP8266 — мозг, шлёт данные по Wi-Fi.
- Трансформатор тока (ZMPT101B) — для замера напряжения (оптическая развязка).
- Датчик тока SCT-013 — чтобы видеть мощность и пусковые токи (опционально).
- Понижающий модуль 220В -> 5В (HLK-PM01) — питание для ESP.
- Резистивный делитель для замера частоты (через оптопару PC817 для синхронизации с нулём).
Итог: ~1500-2000 руб за комплект. Всё паяется на коленке и прячется в бокс на DIN-рейку.
🧠 Структура БД (MySQL)
Создаём таблицу для хранения «сырых» замеров. Чтобы потом рисовать годовые графики и ловить тренды.
-- База: energy_monitor
CREATE TABLE IF NOT EXISTS grid_quality (
id INT AUTO_INCREMENT PRIMARY KEY,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
voltage_rms FLOAT COMMENT 'Среднекв. напряжение (В)',
frequency FLOAT COMMENT 'Частота (Гц)',
thd_percent FLOAT COMMENT 'Коэф. гармоник (%)',
peak_voltage FLOAT COMMENT 'Пиковое напряжение',
sag_count INT DEFAULT 0 COMMENT 'Счётчик просадок за сутки',
swell_count INT DEFAULT 0 COMMENT 'Счётчик скачков',
outage_flag BOOLEAN DEFAULT FALSE COMMENT 'Было отключение',
raw_adc TEXT COMMENT 'JSON сырых данных для анализа'
);
-- Индекс для быстрых выборок по времени
CREATE INDEX idx_timestamp ON grid_quality(timestamp);
🐍 Скрипт для записи (MicroPython / Python)
Код для ESP32, который раз в 5 минут шлёт данные на ваш сервер с MySQL.
import network, urequests, json, time from machine import ADC, Pin import mysql.connector # если на сервере, или API-шлюз # -------- Заглушка для замера (ADC) -------- adc_voltage = ADC(Pin(34)) adc_voltage.atten(ADC.ATTN_11DB) # диапазон 0-3.6В def measure_network(): # Здесь логика расчёта RMS и частоты через Zero-Crossing raw = adc_voltage.read() # 0-4095 voltage = (raw / 4095.0) * 3.3 * 100 # примерный калибр freq = 50.0 # Заглушка, реально считаем по таймерам thd = 2.1 # Заглушка return voltage, freq, thd # -------- Отправка в БД (через API) -------- def save_to_mysql(voltage, freq, thd): sql = f"INSERT INTO grid_quality (voltage_rms, frequency, thd_percent) VALUES ({voltage}, {freq}, {thd})" # Тут либо прямой драйвер MySQL, либо POST на ваш PHP/Python бэкенд print(f"SQL: {sql}") # Главный цикл while True: v, f, t = measure_network() save_to_mysql(v, f, t) time.sleep(300) # 5 минут
📊 Аналитика (SQL-запрос для поиска тренда)
Через год запускаешь этот запрос и смотришь: если среднее напряжение упало на 5-10В, а частота стала гулять — пора покупать инвертор.
SELECT
DATE(timestamp) as day,
AVG(voltage_rms) as avg_voltage,
MIN(voltage_rms) as min_voltage,
AVG(frequency) as avg_freq,
STDDEV(frequency) as freq_jitter,
SUM(sag_count) as total_sags
FROM grid_quality
WHERE timestamp > DATE_SUB(NOW(), INTERVAL 1 YEAR)
GROUP BY day
ORDER BY day;
📌 Как понять, что «пора лезть на дерево» (покупать панели)
- Шаг 1. Купи маленькую панель на 100-200 Вт сейчас (пока дешёво) и спрячь в гараже.
- Шаг 2. Собирай датчик по схеме выше. Включи логирование.
- Шаг 3. Смотри графики раз в месяц. Если в течение 3-х месяцев подряд min_voltage опускается ниже 210В, а freq_jitter растёт — это сигнал.
- Шаг 4. В этот момент докупай аккумуляторы (LiFePO4) и гибридный инвертор. Спрос на них взлетит через 2-3 недели после первых веерных отключений.
Страховка от инфопомех: СМИ скажут «всё стабильно», а твой график покажет искажённую синусоиду.
Доверяй ферриту и АЦП, а не телевизору.
🗄 Как поднять визуализацию (Grafana + MySQL)
Если хочешь красиво — подними Grafana, подключи к ней твою БД и настрой дашборд:
- График напряжения за год (с порогом 210В).
- Heatmap частоты — покажет, как часто она уходит за пределы 49.8-50.2 Гц.
- Счётчик отключений (outage_flag) по месяцам.