Ноя 182022
 

Улучшенная версия ESP32-GSM-Tasmota-Relay V3.0. Исправлены ошибки, удалены не нужные интерфейсы OpenTherm, добавлены 4xSSR (Твердотельные реле), добавлена возможность установить BMP280 и RTC(Real Time Clock DS3231) одновременно и даже подключить TM1637. SPI на плате также присутствует. Небольшой пример использования Berry на Tasmota для отправки SMS и управление портами через GSM. gsm-berry-tasmota-ver-1-0 (PDF)

  • ESP32-WROOM-32(D) – прошивка Tasmota
  • 4 Изолированные Входа. (12V)
  • 4 SSR  – Твердотельные реле (2А) – Индикация включения.
  • 4 LED (Индикация входов или Выходов)
  • Индикация питания 3V, 4V(GSM), Контроль напряжения 4V через GPIO (ADC)
  • Индикатор состояния сети (WiFi, MQTT, etc.)
  • RS485 Интерфейс.
  • Buzzer – зуммер.
  • WS2812B – Индикация.
  • Установка модулей RTC-DS3231, BMP280, SPI Модулей
  • Внешнее подключение 2xGPIO, I2C, 3.3V, GND.
  • Можно установить модуль GSM SIM800L или ZigBee E18-MS1-PCB/IPX (Описание ниже)
  • USB для перепрограммирования.
  • Питание 9-15 Вольт.

Схема. (Schematics)

Готовим платы к производству. 

https://www.pcbway.ru/

Всегда можно посмотреть процесс изготовления Вашей платы.

Процесс сборки (Монтаж PCB)

Улучшения по сравнению с предыдущими версиями.

Еще немного фото.

Настройка: 

Для инициализации GSM модема при старте или рестарте.

rule ON System#Boot do backlog power1 on;power1 off endon

Дополнительные модули.

ZigBee E18-MS1-PCB/IPX (https://ptvo.info/cc2530-based-zigbee-coordinator-and-router-112/)

E18-MS1-PCB-Module-Romik-V1.0 (Схема) Schematics

https://ptvo.info/cc2530-based-zigbee-coordinator-and-router-112/

R1,R2 – Запаять для использования порта P0.2(RX),P0.3(TX) как UART
R3,R4 – Запаять для использования порта P1.4(RX),P1.5(TX) как UART
Одновременно запаивать не нужно.

Окт 032022
 

Хочу поделиться небольшим проектом для умных домов на базе прошивки Tasmota. Основной модуль ESP32-Wroom-32(32D). Особенность проекта  в том что, на борту присутствует GSM модуль SIM800L для управление по GSM. Есть проблема, в прошивке Tasmota еще не поддерживает данный модуль, но мы надеемся что скоро появиться поддержка или мы сами придумаем как его можно использовать, так как он реально необходим для нормально контролера умного дома.

Основной функционал который будет выполнять наш контроллер:

  • 4 – Выключателя с опторазвязкой и индикация на плате их состояния
  • OpenTherm – Интерфейс.
  • RS-485 – Интерфейс.
  • Buzzer – звуковой сигнал.
  • GSM Модуль SIM800L – Ошибка в подключении.(Описание внизу)
  • WS2812B – Индикация состояние чего угодно.
  • I2C – для подключения дисплея или модуль расширения с реле.
  • 3 – Цифровых входа для подключения датчиков температуру или других.
  • На плате есть разъем для подключения SPI модуля RC-522 или других.
  • Питание 9-12 Вольт. Корпус с монтажом на DIN рейку.

Схема (Schematics)

Изготовление проекта.

После того как схема нарисована и разведена и получены гербер файлы, можно заказывать изготовление печатных плат. Для создания схем и разводку печатных плат я использую DipTrace так как давно с ним работаю. В этот раз  было решено заказать изготовление платы на PCBWay.  Это достаточно известная компания с очень большим количеством клиентов и с очень положительными отзывами. К тому же с возможностью оплатить из России.  Далее  я напишу процесс заказа печатных плат в PCBWay. Для начала конечно нужно зарегистрироваться на сайте https://www.pcbway.ru/ 

Процесс заказа довольно просто, даже если Вы новичок и делаете это впервые.

Первый Ваш шаг, это ввести размеры платы и количество слоев и количество необходимых плат (минимальное количество плат 5 – это у всех производителей). После чего нажимаем рассчитать и переходим к детальному выбору возможных опций. Учтите что стоимость изготовления плат размера более чем 100х100 будет совсем другой. Так что лучше сразу определиться с размером Вашего проекта.

На фото приведены стандартные предлагаемые опции для изготовления плат. Если Вы новичок то достаточно оставить все как есть. Стоит только выбрать цвет вашей платы (паяльная маска). Мне больше нравиться красная и белая – так как на них четче видно надписи и площадки элементов. Остальные параметры можно оставить как есть, когда у Вас появиться опыт и другие потребности Вы сможете их поменять. Параметры выбран, можно переходить к загрузки Ваших гербер файлов.

Выбираем Ваш файл с гербер-файлами и загружаем. Как правильно создать гербер файл есть очень много информации в интернете, просто поищите. Вот пример(ссылка) того что нужно выбрать для DipTrace при экспорте гербер-файлов. Если все правильно то вы у себя в личном кабинете должны увидеть свои платы и даже посмотреть их через встроенный Online Gerber Viewer. После чего специалисты начнут его проверят, если ошибок нет то будет написано что Вы можете оплатить заказ и они начнут его Выполнять. Ошибки НЕ в схеме, ошибки в гербер файлах, к разводке никакого отношения не имеет. Если Вы вдруг допустили ошибку на стадии проектирования или разводке, то Вам про нее никто ничего не скажет.  Вот так выглядят платы проекта готовых к изготовлению.

Заметки об выборе доставки. Я бы посоветовал выбирать доставку ePacket – так как Вы сможете отслеживать движение Вашего заказа. CDEK – выбирать не стоит – так как он будет отслеживаться только на территории России, да и стоимость и время доставки реально одинаково.

Ну вот прошли 3-4 недели и мы получили платы. Начинаем собирать. Качество изготовление великолепное, все четко видно, площадки идеальны. При сборке феном с верху и снизу проблем с платой не обнаружили все было великолепно. Светодиоды я обычно припаиваю феном, но грея снизу, чтобы не повредить корпуса светодиодов. Пожелание: SMD конденсаторы не советую использовать – достаточно сложно паять. На фото видно что получилось. Успехов.

SPI порт на плате – соответствие подписи.

Конфигурирование:

  • SetOption146 1 # to enable display of ESP32 internal temperature
  • sserialconfig 8N1 # Для доступа к SIM800L
  • GPIO4 – Reset SIM800L
  • backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TelePeriod 150; TimeZone +3

Управление MCP23008:

Входа
backlog sensor29 0,2,1; sensor29 1,2,1; sensor29 2,2,1; sensor29 3,2,1

Индикация входа
backlog sensor29 4,5,0; sensor29 5,5,0; sensor29 6,5,0; sensor29 7,5,0

rule2 on event#MCPINT_D0=1 do power3 on endon on event#MCPINT_D0=0 do power3 off endon
on event#MCPINT_D1=1 do power4 on endon on event#MCPINT_D1=0 do power4 off endon
on event#MCPINT_D2=1 do power5 on endon on event#MCPINT_D2=0 do power5 off endon
on event#MCPINT_D3=1 do power6 on endon on event#MCPINT_D3=0 do power6 off endon

Тестовый скрипт для посылки SMS:

rule3 on event#MCPINT_D0=0 do sms() endon

def sim800l()
  var ser = serial(16, 17,115200, serial.SERIAL_8N1)

  ser.write(bytes().fromstring(‘AT+CMGF=1\n’))
  var msg = ser.read()
  print(msg.asstring())
  ser.write(bytes().fromstring(‘AT+CMGS=\”+7XXX1234567\”\n’))
  msg = ser.read()
  print(msg.asstring())
  ser.write(bytes().fromstring(‘Hello from Tasmota.\n’))
  msg = ser.read()
  print(msg.asstring())
  ser.write(bytes().fromstring(‘\032’)) # 1A Ctrl-Z
  msg = ser.read()
  print(msg.asstring())
  ser.flush()
  print(‘SMS Done’)
  tasmota.resp_cmnd_done()
end

tasmota.add_cmd(‘sms’, sim800l)

Украсим немного:

backlog WebButton1 GSM;WebButton2 WLED;WebButton3 OLED

backlog WebButton4 GP0;WebButton5 GP1;WebButton6 GP2;WebButton7 GP3

Ошибка подключения модуля SIM800L. 

Видимо немного поспешил, ошибка заключается в том что уровни на UART у SIM800 должны быть не более 2.8v, а у ESP32 они составляют 3.3V, поэтому если не согласовать RX на SIM800L, то он начинает терять данные. Вот минимум того что необходимо сделать: поставить делитель на вход SIM800L от ESP32.

Установка модуля ZigBee. (https://ptvo.info/cc2530-based-zigbee-coordinator-and-router-112/)

В корпусе.

С ZigBee модулем.

Май 172022
 

DipTrace Schematic – Button-ESP-MCP-V2.0.2022 (PDF)

Output via MCP23017 – для включения светодиодов.

backlog sensor29 8,5,0; sensor29 9,5,0; sensor29 10,5,0; sensor29 11,5,0
backlog sensor29 12,5,0; sensor29 13,5,0; sensor29 14,5,0; sensor29 15,5,0

Input via MCP23017 – Кнопки 

backlog sensor29 0,2,1; sensor29 1,2,1; sensor29 2,2,1; sensor29 3,2,1
backlog sensor29 4,2,1; sensor29 5,2,1; sensor29 6,2,1; sensor29 7,2,1

9-я – Кнопка

SwitchMode1 15

Send only MQTT message on switch change. This will stop the switch from controlling power outputs.

tele/tasmota/SENSOR = {“Time”:”2021-01-01T00:00:00″,”Switch1“:”OFF”}
tele/tasmota/SENSOR = {“Time”:”2021-01-01T00:00:00″,”Switch1“:”ON”}

Дополнительные параметры.

backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TelePeriod 150; TimeZone +3

SetOption36 0 – 0 Disable boot loop control
SetOption65 1 – 1 Disable – Device recovery using fast power cycle detection
SetOption59 1 – 1 Enable Send tele/%topic%/STATE in addition to stat/%topic%/RESULT for commands: State, Power and any command causing a light to be turned on.
wificonfig 4 = Retry other AP without rebooting (default)

Display SSD1306

displaymode 0

rule1 on tele-DS18B20#Temperature do publish cmnd/LCDKNOP/DisplayText [s1][l1c1]Dacha: %value% C endon

LEDLink – можно заменить на PWM и управлять подсветкой кнопок.

- platform: mqtt
name: "LCDSA-Brightness"
unique_id: "LCDSA-Brightness"
command_topic: "cmnd/LCDSA/POWER1"
state_topic: "stat/LCDSA/RESULT"
state_value_template: "{{value_json.POWER1}}"
brightness_command_topic: "cmnd/LCDSA/Dimmer"
brightness_state_topic: "stat/LCDSA/RESULT"
brightness_scale: 100
brightness_value_template: "{{value_json.Dimmer}}"
payload_on: "ON"
payload_off: "OFF"
availability_topic: "tele/LCDSA/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
retain: false
Янв 282022
 

Если кому нужно продам. Пишите.

Подключение модуля SSR Version 1.0 (PDF)

DipTrace Schematic.3-SSR-V1.0

MCP23008-E/SO, 8-битный расширитель порта ввода/вывода

backlog sensor29 0,5,0; sensor29 1,5,0; sensor29 2,5,0
backlog sensor29 3,2,1; sensor29 4,2,1; sensor29 5,2,1

backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TelePeriod 150; TimeZone +3

SetOption36 0 – 0 Disable boot loop control
SetOption65 1 – 1 Disable – Device recovery using fast power cycle detection
SetOption59 1 – 1 Enable Send tele/%topic%/STATE in addition to stat/%topic%/RESULT for commands: State, Power and any command causing a light to be turned on.
wificonfig 4 = Retry other AP without rebooting (default)

Корпус

https://www.chipdip.ru/product/d4mg

https://www.electronshik.ru/item/ECT/D4M-RU

Янв 202022
 

Варистор: VDR-10D471K

Схема: DipTrace Schematic – D3MG

Варианты использования: 

Нельзя одновременно подавать 5В на вход и подключать сети 220В.

Для управления WS2812 – можно использовать проект WLED.

Config для WS2812 Home-Assistant


- platform: mqtt
    name: "WS2812 LED"
    unique_id: "WS2812_LED_CTRL"
    command_topic: "cmnd/5relayNew/POWER1"
    state_topic: "stat/5relayNew/RESULT"
    state_value_template: "{{value_json.POWER1}}"
    brightness_command_topic: "cmnd/5relayNew/Dimmer"
    brightness_state_topic: "stat/5relayNew/RESULT"
    brightness_scale: 100
    brightness_value_template: "{{value_json.Dimmer}}"
    rgb_command_topic: "cmnd/5relayNew/Color"
    rgb_state_topic: "stat/5relayNew/RESULT"
    rgb_value_template: "{{value_json.Color.split(',')[0:3]|join(',')}}"
    effect_command_topic: "cmnd/5relayNew/Scheme"
    effect_state_topic: "stat/5relayNew/RESULT"
    effect_value_template: "{{value_json.Scheme}}"
    effect_list:
      - 0
      - 1
      - 2
      - 3
      - 4
    payload_on: "ON"
    payload_off: "OFF"
    availability_topic: "tele/5relayNew/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"    
    qos: 1
    retain: false

With Tasmota, you should set the number of leds too, using the Pixels command.

Ноя 302021
 

DipTrace Schematic – Replace-CC2530-to-ESP07s

OUTPUT GP4 GP5 GP6 GP7
backlog sensor29 4,5,0; sensor29 5,5,0; sensor29 6,5,0; sensor29 7,5,0

INPUT GP0 GP1 GP2 GP3
backlog sensor29 0,2,1; sensor29 1,2,1; sensor29 2,2,1; sensor29 3,2,1

backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TimeZone +3;TelePeriod 150

На пурпурном модуле добавить землю на MCP23008 !

 

Ноя 112021
 

Вот что получилось.

ZibGee – Tasmota – MQTT Координатор.

 

ZigBee 4 симистора и 4 входа, 4x5v Выходов, DS18B20

Коричневый.

Коричневый+красный

VCC = 3.3V

ZigBee координатор: Rule ON System#Boot do TCPStart 8888 endon

Прошивка https://ptvo.info/

Прошивка: RomikZigBeeSwitch

Как прошить: https://zigbee.blakadder.com/flashing_ccloader.html

Прошивка: objcopy –gap-fill 0xFF –pad-to 0x040000 -I ihex Romik.Switch.V1.hex -O binary Romik.Switch.V1.bin
./ccloader /dev/ttyUSB0 Romik.Switch.V1.bin 1

Выходные контакты:
P20: Выход 1, GPIO, Внешняя подтяжка к +
P21: Выход 2, GPIO, Внешняя подтяжка к +
P22: Выход 3, GPIO, Внешняя подтяжка к +
P13: Выход 4, GPIO, Внешняя подтяжка к +
P12: Выход 5, GPIO, Внешняя подтяжка к +
P17: Выход 6, GPIO, Внешняя подтяжка к +
P16: Выход 7, GPIO, Внешняя подтяжка к +
P15: Выход 8, GPIO, Внешняя подтяжка к +

Входные контакты:
P00: Вход 1, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 1
P01: Вход 2, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 2
P04: Вход 3, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 3
P05: Вход 4, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 4
P06: Вход 5, DS18B20, Внешняя подтяжка к +

Схема – повторять не нужно – много недоработок.

DipTrace Schematic – zigbee-relay-v1.0

HA


sensor:

  - platform: mqtt
    unique_id: ZigBeeTempDS18B20
    name: "ZigBeeTest Temperature"
    state_topic: "tele/ZigBeeTest/SENSOR"
    value_template: "{{ value_json.ZbReceived['0xCE98'].AnalogValue | float }}"
    unit_of_measurement: "°C"
    availability_topic: "tele/ZigBeeTest/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    device_class: temperature

 


- platform: mqtt
    unique_id: ZigBeeV1Switch_4
    name: ZigBeeV1Switch_4
    state_topic: "tele/ZigBeeTest/SENSOR"
    value_template: |-
      {%- if value_json.ZbReceived is defined and value_json.ZbReceived['0xCE98'] is defined -%}
      {%- if value_json.ZbReceived['0xCE98'].Endpoint == 4 -%}
      {%- if value_json.ZbReceived['0xCE98'].Power == 1 -%}
      ON
      {% else %}
      OFF
      {% endif %}
      {% endif %}
      {% endif %}
    state_on: "ON"
    state_off: "OFF"
    command_topic: "cmnd/ZigBeeTest/ZbSend"
    payload_on: '{ "device":"0xCE98", "Endpoint":4, "send":{"Power":"on"} }'
    payload_off: '{ "device":"0xCE98", "Endpoint":4, "send":{"Power":"off"} }'
    availability_topic: "tele/ZigBeeTest/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    retain: false

Координатор работает прекрасно.

p.s. В исполнительном устройстве нужно отрезать от МОДУЛЯ ножки P24,P23 так как они используются для входа кварца 32.768 и на плате (с нижней стороны) соединить P23-P13,P24-P12.

Координатор Tasmota-ZigBee:

LWT: Для Home-Assistant – Над правилами нужно еще поработать.

Rule 
ON zbstate#Status==30 DO publish tele/ZigBeeTest/LWT Online ENDON
ON zbreceived#?#Reachable==false DO publish tele/ZigBeeTest/LWT Offline ENDON
ON zbreceived#0xCE98 DO publish tele/ZigBeeTest/LWT Online ENDON

Включение PerminJoin по кнопке BOOT=GPIO0

rule2 ON Switch1#State=2 DO zbpermitjoin 1 ENDON

p.s. Управление ключами с другой Tasmota:

publish cmnd/ZigBeeTest/zbsend { “device”:”0xCE98″, “Endpoint”:4, “send”:{“Power”:”off”} }

Схема дополнительного модуля: DipTrace Schematic – Replace-CC2530-to-ESP07s

Последняя прошивка 15-06-2022 года.

Окт 132021
 

Схема.

Порты реле внизу.

Порты выхода Реле 1-5 Реле и просто 6-7-8 порты Output 5V.

backlog sensor29 0,5,0; sensor29 1,5,0; sensor29 2,5,0; sensor29 3,5,0
backlog sensor29 4,5,0; sensor29 5,5,0; sensor29 6,5,0; sensor29 7,5,0

backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TimeZone +3;TelePeriod 150

Входы:

backlog sensor29 8,2,1; sensor29 9,2,1; sensor29 10,2,1; sensor29 11,2,1

Правила пример:

on event#MCPINT_D11=1 do power4 on endon on event#MCPINT_D11=0 do power4 off endon
on event#MCPINT_D10=1 do power3 on endon on event#MCPINT_D10=0 do power3 off endon
on event#MCPINT_D9=1 do power2 on endon on event#MCPINT_D9=0 do power2 off endon
on event#MCPINT_D8=1 do power1 on endon on event#MCPINT_D8=0 do power1 off endon

При рестарте ВЫКЛЮЧИТЬ ВСЕ РЕЛЕ:

ON system#boot DO Power0 0 ENDON

Схема: DipTrace Schematic – 5-Relay-Version-1.0.dch Лист 1