Merge branch 'master' of github.com:pvvx/THB2

This commit is contained in:
pvvx 2024-02-21 03:56:49 +03:00
commit 5c4b98d06a

View file

@ -1,5 +1,8 @@
# BTHome THB1, THB2, BTH01, TH05(HW: v1.3..1.6)
Custom firmware for Tuya [THB2](https://pvvx.github.io/THB2), [THB1](https://pvvx.github.io/THB1), [BTH01](https://pvvx.github.io/BTH01/), [TH05_V1.3](https://pvvx.github.io/TH05-v1.3), [TH05_V1.4](https://pvvx.github.io/TH-05).
Custom firmware for Tuya devices on the PHY622x2 chipset
| [THB1](https://pvvx.github.io/THB1) | [THB2](https://pvvx.github.io/THB2) | [BTH01](https://pvvx.github.io/BTH01/) | [TH05_V1.3](https://pvvx.github.io/TH05-v1.3) | [TH05_V1.4](https://pvvx.github.io/TH-05) |
|:---:|:---:|:---:|:---:|:---:|
| ![THB1](https://pvvx.github.io/THB1/img/THB1.jpg) | ![THB2](https://pvvx.github.io/THB2/img/THB2.jpg) | ![BTH01](https://pvvx.github.io/BTH01/img/BTH01.jpg) | ![TH05V1.3](https://pvvx.github.io/TH05-v1.3/img/TH05-V1.3.jpg) | ![TH05V1.4](https://pvvx.github.io/TH-05/img/TH05V14.jpg) |
* Программа для настройки и BLE OTA [PHY62x2BTHome.html](https://pvvx.github.io/THB2/web/PHY62x2BTHome.html)
@ -22,8 +25,8 @@ THB1 - файл bin\BOOT_BTH1_v13.hex
! ри настройках по умолчанию_ !
* Интервал BLE рекламы в формате BTHome v2 равен 5 секундам.
* Опрос датчика влажности и температуры производится каждый второй интервал BLE рекламы - период 10 секунд.
* Интервал BLE рекламы в формате [BTHome v2](https://bthome.io) равен 5 секундам.
* Опрос датчика влажности и температуры производится каждый второй интервал BLE рекламы - период 10 секунд.
* Измерение напряжения батареи происходит каждую минуту.
* Кнопка используется для быстрого подключения к старым BT-адаптерам. Нажатие кнопки переключает интервал BLE рекламы на более короткий период (1562.5 мс). Действие продолжится 60 секунд, затем интервал восстановится на установленный в настройках.
* Измеренное среднее потребление от источника в 3.3В при сканировании термометров THB2 и BTH01 в пассивном режиме составляет до 8 мкА. Для TH05_V1.4 среднее потребление около 23 мкА - [таков ток установленных компонентов](https://github.com/pvvx/THB2/issues/8#issuecomment-1908982171).
@ -40,7 +43,7 @@ THB1 - файл bin\BOOT_BTH1_v13.hex
| 1.0 | Первая релизная версия |
| 1.1 | Добавлен триггер - вывод TX2 срабатывающий по установленным значениям температуры и/или влажности с гистерезисами. Передача состояния вывода RX2 при connect. Для термометров с экраном добавлен показ смайлика с "комфортом". Дополнены: изменение имени и MAC устройства. |
| 1.2 | Обработка и передача событий open/close со счетчиком с вывода маркированного "RX2" (для THB2 - "RX1"). |
| 1.3Beta | Добавление теста THB1. Следующий этап уменьшения потребления для версий с LCD дисплеем и опция отключения дисплея. |
| 1.3 | Добавлен THB1 и TH05V1.3. Следующий этап уменьшения потребления для версий с LCD дисплеем и опция отключения дисплея. |
## Прошивка:
@ -57,7 +60,7 @@ THB1 - файл bin\BOOT_BTH1_v13.hex
| RX | TX1 |
| RTS | RESET |
Название контактов на устройстве смотреть в [THB2](https://pvvx.github.io/THB2), [BTH01](https://pvvx.github.io/BTH01/), [TH-05_V1.4](https://pvvx.github.io/TH-05).
Название контактов на устройстве смотреть в описании по ссылкам: [THB1](https://pvvx.github.io/THB1), [THB2](https://pvvx.github.io/THB2), [BTH01](https://pvvx.github.io/BTH01/), [TH05_V1.3](https://pvvx.github.io/TH05-v1.3), [TH05_V1.4](https://pvvx.github.io/TH-05)
2. Запустить:
```
@ -93,6 +96,87 @@ python3 rdwr_phy62x2.py -p COM11 -b 1000000 -r we 0 ff_thb2.bin
4. Прошивка зашита. Устройство работает.
## Распределение Flash 512 килобайт
| Адрес | Описание | Размер |
|---|---|---|
| 0x00000 | Используется ROM | 8 килобайт |
| 0x02000 | Boot Info для ROM | 4 килобайта |
| 0x03000 | FW Boot с функцией OTA | 52 килобайта |
| 0x10000 | FW APP | 128 килобайт |
| 0x30000 | Запись истории | 304 килобайт |
| 0x7C000 | Сохранение настроек (EEP) | 16 килобайт |
## FW Boot и OTA
* `FW Boot` имеет функцию OTA, но не имеет функции записи истории и прочих дополнений. Служит для обработки OTA при любых неудачных или неправильных обновлениях.
* `FW APP` не имеет функции OTA, для OTA перезагружается в `FW Boot`. Имеет дополнительные функции и расширения.
Поддерживаемые функции и сервисы описываются включенными битами в 32-х битном поле `dev_id.services`.
`FW Boot` запускается по старту, и если не нажата кнопка, проверяет есть или нет запись `FW APP`. Если есть запускает `FW APP`. Если кнопка при старте нажата - запускается `FW Boot`.
При соединении указывается:
_Software:_ **V**x.x - значит работает `FW APP`
_Software:_ **B**x.x - значит работает `FW Boot`
На термометрах с экраном, если не включено отображение времени, при первом старте показывает:
* "Bot 12" - работает Boot версия 1.2
* "APP 12" - работает APP версия 1.2
Принудительно перезагрузиться в `FW Boot` из `FW APP` возможно двумя способами:
1. Отключить питание и удерживая кнопку включить питание.
2. Подать команду `7233` в меню `Service` программы PHY62x2BTHome.html и отключить соединение.
Полная перезагрузка - Подать команду `7201` в меню `Service` программы PHY62x2BTHome.html и отключить соединение.
Через USB-UART адаптер App можно записать сразу после boot. Пример:
```
python3 rdwr_phy62x2.py -p COM11 -e wh ./bin/BOOT_TH05V13_v13.hex
python3 rdwr_phy62x2.py -p COM11 -r we 0x10000 ./bin/TH05V13_v13.bin
```
## Событие Open/Close и счет импульсов
С версии 1.2 поддерживается опрос вывода подключенного к геркону или контакту, замыкающемуся на GND.
Максимальная частота переключения - 100 раз в секунду.
Если контакт имеет дребезг, тогда желательно зашунтировать контакт конденсатором.
При замыкании или размыкании передается блок из 5 BLE реклам следующих друг за другом через период в 50 мс.
При каждом событии "Open" прибавляется счетчик.
Значение счетчика передается совместно с каждым событием "Open/Close".
Входной контакт на плате термометра:
* На [THB1](https://pvvx.github.io/THB1) - маркирован как `RX`
* На [THB2](https://pvvx.github.io/THB2) - маркирован как `RX`
* На [BTH01](https://pvvx.github.io/BTH01/) - маркирован как `RX2`
* На [TH05_V1.3](https://pvvx.github.io/TH05-v1.3) - маркирован как `RX0`
* На [TH05_V1.4](https://pvvx.github.io/TH-05) - маркирован как `RX2`
![image](https://github.com/pvvx/THB2/assets/12629515/09f6f810-f2e2-4b61-9c84-f7c3770bb76a)
## Вывод управления внешним устройством по температуре и/или влажности
Контакт на печатной плате с маркировкой "TX" или "TX2" управляется с помощью уставок с гистерезисами по температуре и влажности.
Имеется возможность переключения на инверсное управление выводом.
Настройка производится в PHY62x2BTHome.html.
Работа выхода назначается с помощью установки значения гистерезиса:
* Если значение гистерезиса равно нулю - переключений не будет.
* Если значение гистерезиса больше нуля - переключение (включение) произойдет при значении ниже уставка + гистерезис.
* Если значение гистерезиса меньше нуля - переключение (включение) произойдет при значении выше уставка + гистерезис.
---
## Сборка прошивки.