New Project: ZMPT SCT013 ESP32 W5500

  • Основной контролер ESP32 (ESP32-DevKitC-32)
  • Схема W5500-Tasmota-V1
  • 4 x Реле NO (Normal Open) с искрогасителями.
  • 4 x Входа
  • Внешние подключение I2C
  • 2 x Входа для SCT013 (Датчики тока) в Tasmota работают
  • ADS1115 АЦП для SCT013 – Датчики тока
  • 1 x ZMPT101B 
  • WiFi + Ethernet 10/100
  • На плате 4 GPIO Выхода/Входа
  • Индикация включения реле, питание, WiFi/MQTT (Tasmota)
  • Питание 220 Вольт
  • EthType 8
  • EthClockMode 3
  • autoexec.be: autoexec.be.txt
  • Berry Script Выводим Свои данные в Web Interface Tasmota autoexec.DisplayMyData.be.txt
  • Поправка для правильного показа Тока с датчиков SCT013: autoexec.DisplayCurrentGood2026.be.txt

  

Схема подключения: w5500-pinout-connect

SCT013 50A/1V Данные практически совпадают с реальным током. Tasmota считывает данные с ADS1115 в дифференциальном режиме. Sensor12 D3 = 1.024V full range, D : differential mode, present only 2 channels where channel 0 is AIN0 – AIN1 and channel 1 in AIN2 – AIN3.

  • SCT013-50A/1V = Данные совпадают по текущему току.
    • Current = Current
  • SCT013-20A/1V = Данные удваиваются – нужно делить пополам.
    • Current = Current/2

on system#boot do backlog telnet start;sensor12 D3 endon

MAX7219 (8×8)x6 LED Матрица для корпуса D4MG

rule on system#boot do backlog displayrotate 0;
DisplayHeight 8;DisplayWidth 48;
power4 on;
displaydimmer 1;
displaytext 123456 endon

Rules – Вывод информации каждые 10 секунд.


rule ON System#Boot DO RuleTimer1 10 ENDON
     on DS18B20#Temperature do var2 %value% ENDON
     ON Rules#Timer=1 DO backlog led %var2%; RuleTimer1 10 ENDON

Выводим Температуру и Давление


Rule2
  ON BMP280#Temperature DO var1 %value% ENDON
  ON BMP280#Pressure DO led %var1%,%value% ENDON

------------------------- autoexec.be -------------
  
import string

def led8x8(cmd, idx, payload, payload_json) 

 var parts = string.split(payload,",")

  var Tempe = parts[0]
  var Press = parts[1]

 var temp = int(Tempe) 
 var pres = int(Press)

 if temp < -9 
  tasmota.cmd('displaytext '..(temp)..(pres)) 
 elif (temp < 0) && (temp > -10) 
  tasmota.cmd('displaytext '..(temp)..'^'..(pres)) 
 elif temp == 0 
  tasmota.cmd('displaytext -'..(temp)..'^'..(pres)) 
 elif (temp > 0) && (temp < 10) tasmota.cmd('displaytext +'..(temp)..'^'..(pres)) elif temp > 9 
  tasmota.cmd('displaytext '..(temp)..'^'..(pres)) 
 end 

end 

tasmota.add_cmd('led', led8x8)