Пт май 26, 2023 08:27:52
С выбором куда слать запросы, в UART, в радио с выбором параметров связи и прочих штук.
Практически везде, где устанавливаются подобные счетчики на столбах - автоматически собирают показания и отправляют их в личный кабинет раз в месяц, для этого их такие умные и устанавливали
МетерТулз вроде что-то отсылал в счётчик при закрытии окна.
В идеале - все данные должны отображаться в веб интерфейсе, возможно со статистикой (где ее хранить только вопрос)
Так что я думаю логический финал проекта - опенсурс проект, со ссылкой на заказ готовых плат на JlcPcb и прошивкой на гитхабе
Пн июн 19, 2023 12:45:48
transmitt_byte[7] = 0x09;
transmitt_byte[3] = 0x20;
transmitt_byte[9] = 0x1c;
transmitt_byte[14] = 0x00;
packetType=3;
110>v1>400 or 110>v2>400 or 110>v3>400 or i1>60 or i2>60 or i3>60
Первый запрос от пульта к счётчику:
73 55 20 00 7C 64 FE FF 01 00 00 00 00 CE 55
73 - преамбула
55 - начало пакета
20 - циклический адрес (ну или как там по умному)
в зависимости от длинны пакета, по нему считается
контрольная сумма
7C 64 - сетевой адрес в hex (мл. байт старший байт)
FE FF - канал связи (от оптопорта другие значения)
01 - открыть канал связи
00 00 00 00 - пароль (по умолчанию - 0)
CE - контрольная сумма
55 - конец пакета
Эти данные появляются в RAM процессора при формировании запроса к счётчику.
Затем загружаются в СС1101 по SPI и передаются в эфир.
73 55 04 00 FE FF 7C 64 01 A8 05 5B 00 09 05 7C 64 A7 55
73 - преамбула
55 - начало пакета
04 - циклический адрес
00
FE FF - тип соединения (адрес или устройство ?)
7C 64 - сетевой адрес
01 - на какую команду ответ
A8 - ?
05 - ? изменяется в зависимости от дня
5B - ?
00 - ?
09 05 - версия ПО (9.5)
7C 64 - сетевой адрес
A7 - КС
55 - конец пакета
transmitt_byte[9]=0x2B;
transmitt_byte[14]=0x00;
Вт июн 20, 2023 01:05:15
void packetParser_7_mqtt() {
if ( (resultbuffer[0] == 0x73) and (resultbuffer[1] == 0x55) and (resultbuffer[2] == 0x1E) and (resultbuffer[6] == (atoi(MeterAdressValue) & 0xff)) and
(resultbuffer[7] == ((atoi(MeterAdressValue) >> 8) & 0xff)) and (resultbuffer[8] == 0x2B) and (resultbuffer[12] == 0x0)
resultbuffer[12] == 0x0
resultbuffer[13] == 0x0
Чт июн 22, 2023 09:09:51
Вс июн 25, 2023 18:45:59
байты start1 start2
0x73 0x55 стартовая последовательность
третий байт - parameters
бит 7 "1" - данные шифруются "0" - нет
6 "0"- пакет для устр. с малыми вычисл. мощн. (счётчики) "1"- с с большими (УСПД)
5 направление пакета "1" запрос "0" ответ
4,3,2,1,0 - длинна пакета (включая байт parameters)
четвёртый байт
0x00 - резерв, всегда равен "0"
пятый и шестой...
addr dest
2 байта Адрес устройства (может принимать значения от 0 до 65535 00001…65000 (0х0001…0хFDE8) - адреса счетчиков)
65535 (0xFFFF) - адрес для широковещательных команд
Address Source: Адрес программы опроса = 0xFFFF
Command: Код команды - число от 0 до 255, служит идентификатором для расшифровки структуры поля Data
Password / Status: Пароль для пакета запроса, Статус для пакета ответа.
Пароль заполняется только для пакетов, которые адресованы устройству
Пакет перед посылкой подлежит обработке механизмом байтстаффинга.
Пакет при приеме подлежит обработке механизмом обратного байтстаффинга.
Стартовая последовательность - 0х73 0х55, стоповая - 0х55, все что между ними, подлежит байтстаффингу.
При байтстаффинге анализируется каждый байт, и:
0х55 заменяется на 0х73 0х11,
0х73 заменяется на 0х73 0х22.
При обратном байтстаффинге проводится противоположная замена.
Все значения более 1-го байта передаются как: первый байт всегда младший и идет первым!!!
Пн июн 26, 2023 20:45:37
Address Source: Адрес программы опроса = 0xFFFF
Байт 3 для 1 и 2 пакета равен 0х20, а для остальных 0х21
RequestPacket_9_pre()
transmitt_byte[3] = 0x20;
transmitt_byte[9] = 0x1C; //команда запроса даты/времени
transmitt_byte[14] = 0x00;
packetType = 4; //количество ответных пакетов
Пн июн 26, 2023 21:27:23
transmitt_byte[3] = 0x20;
transmitt_byte[9] = 0x1C; //команда запроса даты/времени
transmitt_byte[14] = 0x00;
packetType = 4; //количество ответных пакетов
Вт июн 27, 2023 10:29:50
Вт июн 27, 2023 12:16:06
Вт июн 27, 2023 19:44:16
Вт июн 27, 2023 22:14:50
Вт июн 27, 2023 22:46:29
Вт июн 27, 2023 22:50:18
Вт июн 27, 2023 22:56:26
Вт июн 27, 2023 23:04:09
Вт июн 27, 2023 23:07:38
Вт июн 27, 2023 23:25:38
Вт июн 27, 2023 23:28:53
Вт июн 27, 2023 23:36:32
Вт июн 27, 2023 23:38:13