а на esp планируете реализовать? было-бы очень интересно, особенно когда есть такой: https://aliexpress.ru/item/1005003198358721.htmlСпасибо форуму и его участникам. Без вас было бы все намного труднее
Готового устроства пока нет. Но на макетке все работает. Присылает в двух рекламных пакетах 3 тарифа (можно и четыре, но я больше 3 не встречал) в kWh, напряжение сети и мощность.
Подробности тут
А я не уверен, что это корректно заработает. Вот такое я испытывала на esp планируете реализовать? было-бы очень интересно, особенно когда есть такой: https://aliexpress.ru/item/1005003198358721.html
Почитайте ссылку, которую я дал. Там автор все проверил. irda и оптопорт, это две большие разницы ...можно попробовать tfdu4100
у меня работает на есп проект от Vad-07 для меркурия 231
А чего там ждать? Основной код обмена прописан в файле kaskad_1_mt.c. Нужно только свой uart.c написать. Кстати, сам оптопорт я как раз проверял на esp32каюсь, не прочитал.
буду ждать заказанную ТВ-04 или портирование на есп
#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;
}
Про TB-02 ничего не знаю, даже не смотрел.Ещё вопрос, можно использовать модуль TB-2 ?
С программированием дружу посредственно, так что прошу сильно не пинать.
В схеме указан блок питания hkl01 на 5в, на 3,3 будет hkl03.
У вас тоже наверняка в TB-04 теперь стоит TLSR8250.Посмотрел спецификацию на TB-02. Там чип TLSR8250 (что это я не знаю, на оф. сайте телинка про этот чип упоминаний нет). Такого модуля у меня нет, проверить не могу.
А как-нибудь программно это можно проверить?У вас тоже наверняка в TB-04 теперь стоит TLSR8250.
Почитал. А, ну и ладно тогда
Нет. Только что скачал с github'а архив. Собрал, залил, соединился. Все работает. Попробуйте очистить flash полностью и потом залить по-новой.Не могу прошить с помощью python, видимо 3.8 старая версия.
Подключил к usb-ttl и попробовал прошить спомощью https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html Подключается конфигуратор секунд на 20 и отключается. Так и задумано?
Не использовать FTDI чипы. На них не выйдет эмулировать Telink S-Wire протокол.Не могу прошить с помощью python, видимо 3.8 старая версия.
Подключил к usb-ttl и попробовал прошить спомощью https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html Подключается конфигуратор секунд на 20 и отключается. Так и задумано?
Адаптер на ch340g, s-wire подпал ко 2 ногеНе использовать FTDI чипы. На них не выйдет эмулировать Telink S-Wire протокол.
Если используете программу программатора с обратной связью TX-RX через 750Ом..1.2кОм, то на адаптере надо убрать светодиод на входе RX...
К USBCOMFlashTx.html это не относится. Он тупо передает в чип последовательность близкую к Telink S-Wire протоколу, без каких-либо проверок.
Устанавливаемые скорости COM порта автоматически (по умолчанию) в программах программаторов менять не желательно.