Улучшенная версия 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 Вольт.
- Схема.
Готовим платы к производству.
Всегда можно посмотреть процесс изготовления Вашей платы.
Процесс сборки (Монтаж PCB)
Analog1 = Напряжение на GSM модеме. R1 = 4.7K, R2 = 10K
V = (R1+R2)/R2 * (Analog1 * 3.3)/4095
V= ((4700+10000)/10000) * (3359*3.3)/4095 = 3.97V
Import string def rule_adc(value, trigger) var i=string.find(trigger,"#A") var tr=string.split(trigger,i+2) var adc=number(tr[1]) print("value of adc",adc," is ",value) # V = (R1+R2)/R2 * (Analog1 * 3.3)/4095 var V= ((4700+10000)/10000) * (value*3.3)/4095 print("Voltage:",V) end tasmota.add_rule("ANALOG#A1",rule_adc)
Управление RGB(WS2812B) светодиодом:
SetOption17 1 – To set color units to R,G,B,W (0-255):
color 255,0,0,0 – Red
color 0,255,0,0 – Green
color 0,0,255,0 – Blue
color 0,0,0,255 – White
backlog color 0,0,255,0;dimmer 40
Улучшения по сравнению с предыдущими версиями.
Еще немного фото.
Настройка:
Для инициализации GSM модема при старте или рестарте.
rule ON System#Boot do backlog power1 on;power1 off endon
При всех модулях.
backlog webbutton1 R1;
webbutton2 R2;
webbutton3 R3;
webbutton4 R4;
webbutton5 GSM;
webbutton6 WLED;
webbutton7 CLOCK;
webbutton8 IN1;
webbutton9 IN2;
webbutton10 IN3;
webbutton11 IN4
- SetOption146 1 # to enable display of ESP32 internal temperature
- 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
Посылаем SMS BerryScript:
var ser,msg
ser = serial(16, 17,115200, serial.SERIAL_8N1)
def sim800l(cmd, idx, payload, payload_json)
ser = serial(16, 17,115200, serial.SERIAL_8N1)
ser.write(bytes().fromstring(‘AT+CMGF=1\n’))
msg = ser.read()
ser.write(bytes().fromstring(‘AT+CMGS=\”+74951234567\”\n’))
msg = ser.read()
ser.write(bytes().fromstring(payload))
msg = ser.read()
ser.write(bytes().fromstring(‘\032’)) # 1A Ctrl-Z
msg = ser.read()
ser.flush()
print(‘SMS Done’)
tasmota.resp_cmnd_done()
end
tasmota.add_cmd(‘sms’, sim800l)
def p8() tasmota.cmd(“power8 toggle”) end
def p9() tasmota.cmd(“power9 toggle”) end
def p10() tasmota.cmd(“power10 toggle”) end
def p11() tasmota.cmd(“power11 toggle”) end
# tasmota.add_cron(“*/10 * * * * *”, p8, “Power8”)
# tasmota.add_cron(“*/15 * * * * *”, p9, “Power9”)
# tasmota.add_cron(“*/20 * * * * *”, p10, “Power10”)
# tasmota.add_cron(“*/25 * * * * *”, p11, “Power11”)
Еще Варианты меню.
backlog webbutton1 R1;
webbutton2 R2;
webbutton3 R3;
webbutton4 R4;
webbutton5 RST;
webbutton6 TL1;
webbutton7 TL2;
webbutton8 TL3;
webbutton9 TL4;
webbutton10 TL5;
webbutton11 TL6;
webbutton12 TL7;
webbutton13 TL8;
webbutton14 WLED;
webbutton15 CLK;
webbutton16 IN1;
webbutton17 IN2;
webbutton18 IN3;
webbutton19 IN4