Сервис поверхностного монтажа печатных плат – PCBWay.

Хотелось бы рассказать что нужно сделать чтобы заказать поверхностный монтаж плат у 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 файл с ценами на детали которые Вы выбрали. Если Вас все устраивает Вы соглашаетесь, оплачиваете и процесс изготовления и монтажа будет запущен в работу. Не смущайтесь если увидите что время монтажа будет указан очень долгим. В действительности все делается примерно в течении недели.

Вот наш полностью готовый проект.

https://www.pcbway.ru/

 

Small Weather Station (ESP8266) ESP-12F

Маленькая погодная станция, которая работает от батарейки. В основе станции наш любимый модулю ESP-12F с прошивкой Tasmota. Принцип работы очень просто, передавать температуру, влажность и давление каждые 5-15 минут. В Tasmot-e есть возможность переводить ESP-12F в режим сна (DeepSleepTime) для сохранения энергии. После нескольких экспериментов, стало понятно что все работает. Еще в Tasmota-e есть отличная функция, показывать напряжение питание модуля. Для включения нужно в конфигурации подключить опцию #define USE_ADC_VCC. Смотрите рисунок ниже с данными по состоянию питания. Сейчас все это тестируется. 12.01.2023 Включен режим DeepSleepTime 900; Teleperiod 30

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

    • Подключение внешнего питания 5В для настройки и тестирования
    • Отключение и включения DeepSleep режима для модуля
    • Выводы для программирования самого модуля
    • На плату можно установить DS18B20 датчик температуры
    • Возможность установки модулей BMP180, BMP280, BME280
    • Питающий элемент CR123A – батарейка (Аккумулятор ставить нельзя)
    • SMALL-Weather-Station-ESP8266 Схема (Schematics)

Плата разработана на DipTrace-е, производство плат было заказано на PCBWay (Многофункциональный сервис по изготовлению печатных плат). Давно пользуюсь услугами данного производителя плат, нареканий нет, быстрое и качественное изготовление и быстрая доставка.

SMALL-Weather-Station-ESP8266 Схема (Schematics)

LedLink = GPIO12

Корпус.

Tyco 65002 55x55x32

DeepSleep

  • backlog SetOption36 0;SetOption65 1;wificonfig 4; TelePeriod 30; TimeZone +3
  • deepsleeptime 300 # 5 Минут
  • DeepSleepTime 600, it will wake-up every 10 minutes (e.g., 8:00, 8:10, 8:20, …)
  • SetOption24 1 => Давление в мм.р.c. (mmHg)
  • SetOption53 1 => Показать IP в GUI – удобно.

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 (SSR) Versiaon 3.0

Улучшенная версия 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)

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

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

При всех модулях.

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”)

ZigBee Module для Onion/Tasmota PCB 1.0

 

Тестовая прошивка.(Работает) 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

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

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/

R3,R2 – Запаять для использования порта P0.2(RX),P0.3(TX) как UART (Смотреть на плату)
R1,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/