Июл 122023
 

Так все работает – Ethernet and Tasmota – ESP32 LAN8720A Board – All is Working.

ESP32 LAN8720 board
GPIO16 – OSC_ENABLE NC – Осциллятор ENABLE (белый провод, 4.7K к Ground)
GPIO22 – EMAC_TXD1 TX1
GPIO19 – EMAC_TXD0 TX0
GPIO21 – EMAC_TX_EN TX_EN
GPIO26 – EMAC_RXD1 RX1
GPIO25 – EMAC_RXD0 RX0
GPIO27 – EMAC_CRS_DV CRS
GPIO00 – EMAC_CLK (Возле кнопки)  nINT/REFCLK (50MHz) 
GPIO23 – SMI_MDC MDC
GPIO18 – SMI_MDIO MDIO
GND GND
3V3 VCC

Tasmota Config Ethernet:


#define USE_ETHERNET       // Add support for ethernet (+20k code)
#define USE_WT32_ETH01     // Add support for Wireless-Tag WT32-ETH01
#define ETH_TYPE         0 // [EthType] 0 = ETH_PHY_LAN8720
#define ETH_ADDRESS      1 // [EthAddress] 0 = PHY0 .. 31 = PHY31
#define ETH_CLKMODE      0 // [EthClockMode] 0 = ETH_CLOCK_GPIO0_IN

NC - to - GROUND - and - 1 PIN of OSC 50 Mhz

NC – to – GROUND – and – 1 PIN of OSC 50 Mhz

GPIO0

GPIO0

 Posted by at 11:15
Июн 212023
 

Скоро будет схема и описание.

Tasmota Rules:

BACKLOG SETOPTION114 1;SWITCHMODE 1

RULE
ON SYSTEM#BOOT DO POWER0 OFF ENDON
ON POWER1#STATE=1 DO POWER2 ON ENDON
ON POWER1#STATE=0 DO POWER2 OFF ENDON
ON POWER2#STATE=1 DO POWER1 ON ENDON
ON POWER2#STATE=0 DO POWER1 OFF ENDON
ON MQTT#DISCONNECTED DO POWER0 OFF ENDON
ON SWITCH1#STATE=1 DO POWER2 OFF ENDON
ON SWITCH1#STATE=0 DO POWER1 ON ENDON

RULE2
ON EVENT#MCPINT_D4=0 DO POWER2 OFF ENDON
ON EVENT#MCPINT_D5=0 DO POWER2 OFF ENDON

RULE3
ON EVENT#MCPINT_D3=1 DO POWER1 ON ENDON
ON EVENT#MCPINT_D3=0 DO POWER2 OFF ENDON

 

Правила для системы авто-полива. Отображения индикации.

RULE
ON EVENT#MCPINT_D3=1 DO POWER1 TOGGLE ENDON
ON EVENT#MCPINT_D3=0 DO POWER1 TOGGLE ENDON
ON EVENT#MCPINT_D4=1 DO POWER2 TOGGLE ENDON
ON EVENT#MCPINT_D4=0 DO POWER2 TOGGLE ENDON
ON EVENT#MCPINT_D5=1 DO POWER3 TOGGLE ENDON
ON EVENT#MCPINT_D5=0 DO POWER3 TOGGLE ENDON
ON SYSTEM#BOOT DO POWER0 0 ENDON

 Posted by at 13:51
Май 312023
 

LAN Ethernet на LAN8720 и ESP32. Версия 1.0

Схема: DipTrace Schematic – LAN-ESP32-Relay-V1.0

Ethernet РАБОТАЕТ.

Template for Tasmota: {“NAME”:”ESP32-DevKit-Romik”,”GPIO”:[0,1,1,1,1,1,0,0,1,0,1,1,3840,1,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1],”FLAG”:0,”BASE”:5}

https://hackaday.io/project/85389-wesp32-wired-esp32-with-ethernet-and-poe/log/160416-the-phy-reset-saga

По возможности для подключения использовать только передающие контакты.

p.s. Так как есть небольшая ошибка в схеме.

 

Май 302023
 

include/tasmota.h

MAX_FRIENDLYNAMES = 8 


SetOption24 Set pressure units : 0 = hPa (default) 1 = mmHg
SetOption146 1 = enable display of ESP32 internal temperature

https://tasmota.github.io/docs/


Rule1
ON system#boot DO backlog var1 0;power0 off ENDON
ON power2#state=1 DO if (var1!=1) ruletimer1 0;var1 1 endif ENDON
ON event#MCPINT_D0=1 DO if (var1==1) var1 2;ruletimer1 10 endif ENDON
ON rules#timer=1 DO Backlog var1 0;power2 off ENDON

Если включить Power2 то включается режим ожидания MCPINT_D0, как только D0=1 то через 10 секунд Power2 выключиться.


Rule1
ON button1#state DO Backlog Power1 %value%; RuleTimer1 600 ENDON
ON Rules#Timer=1 DO Power1 off ENDON

RuleTimer1 600 ENDON
Additionally RuleTimer1 will begin to countdown 10 minutes

ON Rules#Timer=1 DO Power1 off ENDON
After the RuleTimer1 expires the light will be turned off (if you forgot to turn it off)

Выключит Power1 через 10 минут.


When SetOption114 1 all switches are detached from their respective relays and will send MQTT messages instead in the form of {“Switch”:{“Action”:””}}.

SwitchMode 1
Set switch to follow mode (0 = OFF, 1 = ON)

RULE
ON SWITCH1#STATE=1 DO POWER2 OFF ENDON
ON SWITCH1#STATE=0 DO POWER1 ON ENDON


Управление насосом в колодце.

BACKLOG SETOPTION114 1;SWITCHMODE 1

RULE
ON SYSTEM#BOOT DO POWER0 OFF ENDON
ON POWER1#STATE=1 DO POWER2 ON ENDON
ON POWER1#STATE=0 DO POWER2 OFF ENDON
ON POWER2#STATE=1 DO POWER1 ON ENDON
ON POWER2#STATE=0 DO POWER1 OFF ENDON
ON MQTT#DISCONNECTED DO POWER0 OFF ENDON
ON SWITCH1#STATE=1 DO POWER2 OFF ENDON
ON SWITCH1#STATE=0 DO POWER1 ON ENDON

 Posted by at 16:53
Май 232023
 

Отлично работает со светодиодными или энергосберегающими лампами.
Внутри стоит симистр BTA16.

Тесты:

  • Энергосберегающая 21W – не мерцает
  • Светодиодная 10W – мерцает
  • 2 x Светодиодные Лампы 10W – не мерцают 
  • 3 x Светодиодные Лампы 10W – не мерцают

Май 032023
 

Оригинал.

Pin(hardware)  для BK7231N

  • 11 – Кнопка
  • 12 – LED
  • 8 – IR Receive
  • 9 – IR Send

Отпаяли оригинальный Wi-Fi чип BK7231N – хотя для него тоже есть прошивка как Tasmota, но очень кривая. Впаяли ESP-01 и все отлично работает.

ESP-01

  • GPIO3 – IR Send
  • GPIO0 – IR Receive
  • GPIO2 – LED
  • RST – Кнопка (11 он BK7231)
Янв 302023
 

Особенности проекта:

  • WiFi ESP32-WROOM-32(E,D) – Основная прошивка Tasmota
  • ESP32-WROOM-32E (ESP32-D0WD-V3 rev.3) – Работает.
  • Ethernet to WiFi – Onion Omega2+ 
  • 4 – Solid State Relay – Твердотельных реле (2А)  Индикация включения.
  • 4 – Оптронных входа (Изолированные Входа)
  • 1 – 220 Вольт вход (Изолированный Вход)
  • WS2812B – Индикация. LedLink – Индикация WiFi and MQTT
  • Индикация напряжений 3.3В, 4.2В
  • Интерфейсы Ethernet (Omega2+), WiFi
  • Установить модуля GSM SIM800L 
  • USB для перепрограммирования ESP32 (Boot перемычка на всякий случай)
  • Внешнее подключение 4xGPIO, I2C, 3.3V, GND.
  • Внутренние подключение 2xGPIO (Например Display ТМ1637) Boot, Reset
  • Питание 9-15 Вольт.
  • Дополнительный модуль ZigBee 
  • Схема: DipTrace Schematic – Onion-Tasmota-V1.0 (PDF)

 

https://www.pcbway.ru/

Подготовка платы для производства. 

Ну вот наконец то приехали готовые платы от PCBWay. 

Минимальная настройка для управления.

  • SetOption146 1 # to enable display of ESP32 internal temperature
  • backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TelePeriod 150; TimeZone +3

SwitchMode5 1 – Switch5 is mode 1

Rule2 ON switch5#state DO backlog sms %value%; restart 1 ENDON

/etc/init.d/sms3 restart – Так как будет потерна связь с GSM модемом.


def send_sms(cmd, idx, payload, payload_json)
  var ser = serial(16, 17,115200, serial.SERIAL_8N1)
  ser.flush()
  ser.write(bytes().fromstring('AT+CMGF=1\n')) # Text mode
  ser.write(bytes().fromstring('AT+CMGS="+71231231212"\n'))
  ser.write(bytes().fromstring('220 is '))
  if payload == "1"
   ser.write(bytes().fromstring('ON'))
  else
   ser.write(bytes().fromstring('OFF'))    
  end
  ser.write(bytes().fromstring('\n'))
  ser.write(bytes().fromstring('\032'))
  ser.flush()
  tasmota.resp_cmnd_done()
end

tasmota.add_cmd('sms', send_sms)