• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Дистанционное снятие показаний с электросчетчика КАСКАД-1-МТ с дальнейшей передачей показаний в Home Assistant с помощью BLE

Slacky

Member
Спасибо форуму и его участникам. Без вас было бы все намного труднее :)

Готового устроства пока нет. Но на макетке все работает. Присылает в двух рекламных пакетах 3 тарифа (можно и четыре, но я больше 3 не встречал) в kWh, напряжение сети и мощность.

Подробности тут
 

mega2000

Member
Спасибо форуму и его участникам. Без вас было бы все намного труднее :)

Готового устроства пока нет. Но на макетке все работает. Присылает в двух рекламных пакетах 3 тарифа (можно и четыре, но я больше 3 не встречал) в kWh, напряжение сети и мощность.

Подробности тут
а на esp планируете реализовать? было-бы очень интересно, особенно когда есть такой: https://aliexpress.ru/item/1005003198358721.html
 

Slacky

Member
а на esp планируете реализовать? было-бы очень интересно, особенно когда есть такой: https://aliexpress.ru/item/1005003198358721.html
А я не уверен, что это корректно заработает. Вот такое я испытывал

Отсюда. Так вот он сам себя ловит на отраженку и ничего не работает.
 

mega2000

Member
можно попробовать tfdu4100
у меня работает на есп проект от Vad-07 для меркурия 231
 

mega2000

Member
каюсь, не прочитал.
буду ждать заказанную ТВ-04 или портирование на есп
 

Slacky

Member
каюсь, не прочитал.
буду ждать заказанную ТВ-04 или портирование на есп
А чего там ждать? Основной код обмена прописан в файле kaskad_1_mt.c. Нужно только свой uart.c написать. Кстати, сам оптопорт я как раз проверял на esp32 :)

Лови :))

C:
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_log.h"
#include "driver/uart.h"
#include "string.h"
#include "driver/gpio.h"

#include "uart.h"

static const int RX_BUF_SIZE = 1024;


void uart_init() {
    const uart_config_t uart_config = {
        .baud_rate = 9600,
        .data_bits = UART_DATA_8_BITS,
        .parity = UART_PARITY_DISABLE,
        .stop_bits = UART_STOP_BITS_1,
        .flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
        .source_clk = UART_SCLK_APB,
    };
    // We won't use a buffer for sending data.
    uart_driver_install(UART_NUM_1, RX_BUF_SIZE * 2, 0, 0, NULL, 0);
    uart_param_config(UART_NUM_1, &uart_config);
    uart_set_pin(UART_NUM_1, TXD_PIN, RXD_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
}

int send_to_uart(const uint8_t *data, size_t len) {
    const int bytes = uart_write_bytes(UART_NUM_1, data, len);
    printf("send_to_uart: %u\r\n", bytes);
    return bytes;
}

int resp_from_uart(uint8_t *data, uint32_t len) {
    const int bytes = uart_read_bytes(UART_NUM_1, data, len, 100 / portTICK_RATE_MS);
    printf("resp_from_uart: %u\r\n", bytes);
    return bytes;
}

size_t get_data_len_from_uart() {
    size_t len = 0;
    if (uart_get_buffered_data_len(UART_NUM_1, &len) == ESP_OK) return len;
    return 0;
}
 

mega2000

Member
Ещё вопрос, можно использовать модуль TB-2 ?
С программированием дружу посредственно, так что прошу сильно не пинать.
В схеме указан блок питания hkl01 на 5в, на 3,3 будет hkl03.
 

Slacky

Member
Ещё вопрос, можно использовать модуль TB-2 ?
С программированием дружу посредственно, так что прошу сильно не пинать.
В схеме указан блок питания hkl01 на 5в, на 3,3 будет hkl03.
Про TB-02 ничего не знаю, даже не смотрел.
Про питание. Отказался от hk (но что 5 вольт, что 3, посадочные места одинаковые) - большой больно, не лезет в вилку, которую я выбрал для корпуса. Схема по питанию чисто номинальная. Плату развел, заказал. Придет, поверю, выложу ...

Но сразу скажу, питание будет внешнее, типа, как зарядка у телефона ...
 

Slacky

Member
Посмотрел спецификацию на TB-02. Там чип TLSR8250 (что это я не знаю, на оф. сайте телинка про этот чип упоминаний нет). Такого модуля у меня нет, проверить не могу.

Схему по питанию изменил. Запитываться будет от microUSB.
 

pvvx

Активный участник сообщества

Slacky

Member
Не могу прошить с помощью python, видимо 3.8 старая версия.
Подключил к usb-ttl и попробовал прошить спомощью https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html Подключается конфигуратор секунд на 20 и отключается. Так и задумано?
Нет. Только что скачал с github'а архив. Собрал, залил, соединился. Все работает. Попробуйте очистить flash полностью и потом залить по-новой.

Да, виндоус должен выкинуть запрос на разрешение подключения ...
 

pvvx

Активный участник сообщества
Не могу прошить с помощью python, видимо 3.8 старая версия.
Подключил к usb-ttl и попробовал прошить спомощью https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html Подключается конфигуратор секунд на 20 и отключается. Так и задумано?
Не использовать FTDI чипы. На них не выйдет эмулировать Telink S-Wire протокол.

Если используете программу программатора с обратной связью TX-RX через 750Ом..1.2кОм, то на адаптере надо убрать светодиод на входе RX...
К USBCOMFlashTx.html это не относится. Он тупо передает в чип последовательность близкую к Telink S-Wire протоколу, без каких-либо проверок.
Устанавливаемые скорости COM порта автоматически (по умолчанию) в программах программаторов менять не желательно.
 

mega2000

Member
Не использовать FTDI чипы. На них не выйдет эмулировать Telink S-Wire протокол.

Если используете программу программатора с обратной связью TX-RX через 750Ом..1.2кОм, то на адаптере надо убрать светодиод на входе RX...
К USBCOMFlashTx.html это не относится. Он тупо передает в чип последовательность близкую к Telink S-Wire протоколу, без каких-либо проверок.
Устанавливаемые скорости COM порта автоматически (по умолчанию) в программах программаторов менять не желательно.
Адаптер на ch340g, s-wire подпал ко 2 ноге
 

mega2000

Member
Ещё вопрос:
в HA у вас блютус напрямую, а если через Esphome?
esp32_ble_tracker:
sensor: ?
 
Сверху Снизу