Отлично работает со светодиодными или энергосберегающими лампами.
Внутри стоит симистр BTA16.
Тесты:
- Энергосберегающая 21W – не мерцает
- Светодиодная 10W – мерцает
- 2 x Светодиодные Лампы 10W – не мерцают
- 3 x Светодиодные Лампы 10W – не мерцают
Оригинал.
Pin(hardware) для BK7231N
Отпаяли оригинальный Wi-Fi чип BK7231N – хотя для него тоже есть прошивка как Tasmota, но очень кривая. Впаяли ESP-01 и все отлично работает.
ESP-01
Особенности проекта:
Подготовка платы для производства.
Ну вот наконец то приехали готовые платы от PCBWay.
Минимальная настройка для управления.
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)
Хотелось бы рассказать что нужно сделать чтобы заказать поверхностный монтаж плат у PCBWay. Какие файлы необходимы и последовательность действий. Мы изготовили одну такую плату. Для тестирования данной возможности решили сначала распаять только все сопротивление и некоторые конденсаторы. Внизу вы видите результат монтажа.
Как и везде Вам нужны будут два файла BOM (Bill of Materials) и CPL (Component Placement List). Данные файлы вы можете получить из Ваших программ в которых вы создавали схемы и разводили их. У каждого сервиса который занимается поверхностным монтажом есть свои нюансы для этих файлов. Вот пример таких для PCBWay.
BOM Файл.
CPL Файл.
А теперь самое важное и интересное. В BOM файле есть поле Mfg Part# – так вот это поле нужно заполнить самим, взяв номера деталей которые вы хотите разместить на своей плате. Получить данный номер можно в On-Line магазине по продаже электронных компонентов (лучше конечно китайский). Есть такой известный магазин https://www.lcsc.com/ в котором можно найти практически все что Вам нужно. Заходите на сайт магазине, находите нужный Вам элемент и копируете его Mfg Part к себе в BOM файл.
Выделено желтым цветом. Выбирайте детали подешевле и конечно по наличию в магазине. После того как все файлы готовы Вы можете перейти к заказу на изготовление платы и заказ поверхностный монтажа. При оформлении заказа и заполнения полей, если Вы что то не поняли их можно не заполнять.
После этого Вам пришлют BOM файл с ценами на детали которые Вы выбрали. Если Вас все устраивает Вы соглашаетесь, оплачиваете и процесс изготовления и монтажа будет запущен в работу. Не смущайтесь если увидите что время монтажа будет указан очень долгим. В действительности все делается примерно в течении недели.
Вот наш полностью готовый проект.
Маленькая погодная станция, которая работает от батарейки. В основе станции наш любимый модулю ESP-12F с прошивкой Tasmota. Принцип работы очень просто, передавать температуру, влажность и давление каждые 5-15 минут. В Tasmot-e есть возможность переводить ESP-12F в режим сна (DeepSleepTime) для сохранения энергии. После нескольких экспериментов, стало понятно что все работает. Еще в Tasmota-e есть отличная функция, показывать напряжение питание модуля. Для включения нужно в конфигурации подключить опцию #define USE_ADC_VCC. Смотрите рисунок ниже с данными по состоянию питания. Сейчас все это тестируется. 12.01.2023 Включен режим DeepSleepTime 900; Teleperiod 30
Особенности проекта:
Плата разработана на DipTrace-е, производство плат было заказано на PCBWay (Многофункциональный сервис по изготовлению печатных плат). Давно пользуюсь услугами данного производителя плат, нареканий нет, быстрое и качественное изготовление и быстрая доставка.
SMALL-Weather-Station-ESP8266 Схема (Schematics)
LedLink = GPIO12
Корпус.
Tyco 65002 55x55x32
DeepSleep
https://github.com/tasmota/docs-7.1/blob/master/DeepSleep.md
Все отлично работает.
Пример работы:
tele/SWS/LWT Offline 01-12 10:16:28 tele/SWS/SENSOR {"Time":"2023-01-12T10:16:25","DS18B20":{"Id":"3C41F6492F31","Temperature":22.5}} 01-12 10:16:25 tele/SWS/STATE {"Time":"2023-01-12T10:16:25","Uptime":"0T00:00:26","UptimeSec":26,"Vcc":3.231} 01-12 10:16:25 tele/SWS/SENSOR {"Time":"2023-01-12T10:16:10","DS18B20":{"Id":"3C41F6492F31","Temperature":22.3}} 01-12 10:16:10 tele/SWS/STATE {"Time":"2023-01-12T10:16:10","Uptime":"0T00:00:11","UptimeSec":11,"Vcc":3.194} 01-12 10:16:10 tele/SWS/LWT Online 01-12 10:16:00
Напряжение.
На батарейке CR123A – работает 1 Месяц. Будем изучать как продлить жизнь.
В режиме DeepSleep INA219 показывает 1 мА. Вот график с частотой просыпания 5 минут.
Улучшенная версия 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)
Готовим платы к производству.
Всегда можно посмотреть процесс изготовления Вашей платы.
Процесс сборки (Монтаж 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
Управление 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
Схема: DipTrace Schematic – module-for-onega-tasmota
Тестовая прошивка.(Работает) 2023.04.19 Home-Assistant видит только GPIO выключатели.
Tasmota – Видит BMP280 и DS18B20 и LDR.
https://ptvo.info/
Тип платы: CC2530
Тип устройства: Роутер
Имя производителя: RomikGSMzigBee
Идентификатор модели: GSMzigBeeRouter
Описание расположения: Moscow
Обновить дату и время сборки в прошивке: 2023-04-18
Включить сторожевой таймер (watchdog): Да
Отключить сброс устройства через процедуру включения/выключения: Да
Отключить удаленную настройку интервала во время работы: Да
Индикатор статуса: P01, Подключение или ошибки
Установить интервал отправки отчетов (с): 150
Выходные контакты:
P07: Выход 2, GPIO, Внешняя подтяжка к + (Роль: Универсальный), Запоминать состояние
P06: Выход 3, BMP280 (I2C SDA), Внешняя подтяжка к + (Адрес (десят-ый): 118)
P05: Выход 4, I2C SCL/SPI CLK, Внешняя подтяжка к +
P10: Выход 5, GPIO, Внешняя подтяжка к + (Роль: Универсальный), Запоминать состояние
P13: Выход 6, DS18B20, Внешняя подтяжка к + (Идентификатор сенсора (необязат., шестнад-ый): )
P04: Выход 7, АЦП (макс. 3.3В) (Коэффициент: 1, Сдвиг: 0)
Входные контакты:
P20: Вход 1, Внешнее пробуждение, Внешняя подтяжка к +
Вот так выглядит данные SENSOR на Tasmota.
{"ZbReceived":{"0x7779":{"Device":"0x7779","Power":0,"Endpoint":2,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","Power":0,"Endpoint":5,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","AnalogValue":99273,"AnalogInDescription":"Pa,00","Endpoint":3,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","AnalogValue":28.99,"AnalogInDescription":"C,00","Endpoint":3,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","AnalogValue":27.69,"AnalogInDescription":"C,28-FF-64-0E-7E-73-74-32","Endpoint":6,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","AnalogValue":3.29,"AnalogInDescription":"V","Endpoint":7,"LinkQuality":111}}}
Дополнительные модули.
ZigBee E18-MS1-PCB/IPX (https://ptvo.info/cc2530-based-zigbee-coordinator-and-router-112/)
P2.0 – Отключить от GND – для работы как Coordintaor ZigBee (Перерезать дорожку)
Маркировка на плате R1 и R3 – перепутаны !!!
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
Одновременно запаивать не нужно.
Программирование модуля: https://zigbee.blakadder.com/flashing_ccloader.html
P.S. External sensor power control – it is a special output type. The firmware sets the configured output to the HIGH state before reading a sensor’s value, and sets it to LOW after that. The CC2530 and CC2531 chips allow you to use pins P10 and P11 to supply power up to 20 mA to external sensors.
https://ptvo.info/zigbee-configurable-firmware-features/power-saving-mode/
Хочу поделиться небольшим проектом для умных домов на базе прошивки Tasmota. Основной модуль ESP32-Wroom-32(32D). Особенность проекта в том что, на борту присутствует GSM модуль SIM800L для управление по GSM. Есть проблема, в прошивке Tasmota еще не поддерживает данный модуль, но мы надеемся что скоро появиться поддержка или мы сами придумаем как его можно использовать, так как он реально необходим для нормально контролера умного дома.
Основной функционал который будет выполнять наш контроллер:
Изготовление проекта.
После того как схема нарисована и разведена и получены гербер файлы, можно заказывать изготовление печатных плат. Для создания схем и разводку печатных плат я использую DipTrace так как давно с ним работаю. В этот раз было решено заказать изготовление платы на PCBWay. Это достаточно известная компания с очень большим количеством клиентов и с очень положительными отзывами. К тому же с возможностью оплатить из России. Далее я напишу процесс заказа печатных плат в PCBWay. Для начала конечно нужно зарегистрироваться на сайте https://www.pcbway.ru/
Процесс заказа довольно просто, даже если Вы новичок и делаете это впервые.
Первый Ваш шаг, это ввести размеры платы и количество слоев и количество необходимых плат (минимальное количество плат 5 – это у всех производителей). После чего нажимаем рассчитать и переходим к детальному выбору возможных опций. Учтите что стоимость изготовления плат размера более чем 100х100 будет совсем другой. Так что лучше сразу определиться с размером Вашего проекта.
На фото приведены стандартные предлагаемые опции для изготовления плат. Если Вы новичок то достаточно оставить все как есть. Стоит только выбрать цвет вашей платы (паяльная маска). Мне больше нравиться красная и белая – так как на них четче видно надписи и площадки элементов. Остальные параметры можно оставить как есть, когда у Вас появиться опыт и другие потребности Вы сможете их поменять. Параметры выбран, можно переходить к загрузки Ваших гербер файлов.
Выбираем Ваш файл с гербер-файлами и загружаем. Как правильно создать гербер файл есть очень много информации в интернете, просто поищите. Вот пример(ссылка) того что нужно выбрать для DipTrace при экспорте гербер-файлов. Если все правильно то вы у себя в личном кабинете должны увидеть свои платы и даже посмотреть их через встроенный Online Gerber Viewer. После чего специалисты начнут его проверят, если ошибок нет то будет написано что Вы можете оплатить заказ и они начнут его Выполнять. Ошибки НЕ в схеме, ошибки в гербер файлах, к разводке никакого отношения не имеет. Если Вы вдруг допустили ошибку на стадии проектирования или разводке, то Вам про нее никто ничего не скажет. Вот так выглядят платы проекта готовых к изготовлению.
Заметки об выборе доставки. Я бы посоветовал выбирать доставку ePacket – так как Вы сможете отслеживать движение Вашего заказа. CDEK – выбирать не стоит – так как он будет отслеживаться только на территории России, да и стоимость и время доставки реально одинаково.
Ну вот прошли 3-4 недели и мы получили платы. Начинаем собирать. Качество изготовление великолепное, все четко видно, площадки идеальны. При сборке феном с верху и снизу проблем с платой не обнаружили все было великолепно. Светодиоды я обычно припаиваю феном, но грея снизу, чтобы не повредить корпуса светодиодов. Пожелание: SMD конденсаторы не советую использовать – достаточно сложно паять. На фото видно что получилось. Успехов.
SPI порт на плате – соответствие подписи.
Конфигурирование:
Управление 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 модулем.