Программа для термостата W1209 (STM8S3003F)

Ответить
aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#1

Сообщение aidar_i » 17.03.2023{, 13:48}

Проект для термостата из Али W1209 (для варианта с STM8S003F).
Несмотря на небольшую память МК умудрился засунуть из FLProg программу термостата с терморезистором NTC. В программе ставлю Ардуино Уно, пины совпадают. В проекте NTC 10ком, регулирует температуру от-50 до 110 градусов. Но подключив терморезистор от 3d принтера можно регулировать температуру до 300 градусов. Для этого в параметре блока нужно поставить сопротивление терморезистора (100ком) и увеличить параметр max.
Блок 7 сегментного дисплея сделан , для экономии памяти, с применением регистров, так же аналогично ПБ выходы МК на регисторах.
Термостат показывает текущую температуру, при нажатии коротко кнопку SET, выводится режим настройка (моргает) температуры, необходимой для поддерживания.
При удержании кнопки длительно, выводится режим настройка гистерезиса.
При удержании кнопок + и - начинается прокрутка чисел.
Настройки сохраняются в EEPROM, для этого сделал блоки и для него.
Так же есть новый ПБ для генератора с длительностью импульса в 1 цикл.
Прошиваю через ST LINK.
NTC+3x7seg dispW1209_3.flp
(3.05 МБ) 90 скачиваний
СпойлерПоказать
Снял небольшое видео
Использовать версию FLprog не старше 8.0.2, я на нем компилировал.
Ядро Sduino, плата STM8S103F
Как установить ядро и прошивать STM8s смотрите здесь viewtopic.php?f=227&t=8507&p=125197&hilit=Stm8s#p123042

Новая версия блока с настройками аналогичными штатной прошивке и дополнительными настройками, читайте описание блока. Блок работает без библиотек!
W1209_Термостат.flp
(3.6 МБ) 27 скачиваний
Генератор таблицы терморезисторов для W1209
https://github.com/rtek1000/NTC_Lookup_ ... /tree/main
Пример со своей таблицей.
W1209_Термостат_своя таблица.flp
(3.6 МБ) 18 скачиваний
Номинал резистора R2 смотрите тут:
СпойлерПоказать
w1209.png

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#2

Сообщение Dryundel » 17.03.2023{, 18:38}

aidar_i, а как Вы это компилировали?
Что то я не нашел нигде STM8S003, а на STM8S103 ошибка.

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#3

Сообщение aidar_i » 17.03.2023{, 21:14}

Dryundel писал(а):
17.03.2023{, 18:38}
aidar_i, а как Вы это компилировали?
Что то я не нашел нигде STM8S003, а на STM8S103 ошибка.
Ставлю в ардуино иде Stm8s103 ядро sduino, он отличается от 003 только обьемом еепром.
https://github.com/tenbaht/sduino

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#4

Сообщение Dryundel » 17.03.2023{, 21:38}

aidar_i писал(а):
17.03.2023{, 21:14}
Ставлю Stm8s103 ядро sduino, он отличается только обьемом еепром.
https://github.com/tenbaht/sduino
Именно с ней и не компилируется.
Win 10 x64, FLP 8.1.0, Версия ядра 0.5.0
Ошибка компиляции для платы STM8S103F3 Breakout Board.

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#5

Сообщение aidar_i » 17.03.2023{, 22:18}

aidar_i писал(а):
17.03.2023{, 16:29}
Именно с ней и не компилируется.
Помнишь, писал, что не нравится библиотека FLprog, она и мешается, поэтому я для программы 8.1.0 выделил из библиотеки таймер отдельно. В скомпилированном скетче менял название библиотеки. А потом плюнул и откатился на 8.0.2.
Вообще то можно в библиотеке оставить только таймер, все остальное убрать. Тогда название не нужно менять в скетче.

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#6

Сообщение aidar_i » 19.03.2023{, 14:35}

Немного доработал проект и ПБ, добавил новые ПБ, получилось уменьшить скетч на 341 байта. Можно , при желании, что то еще добавить.
в первом сообщении заменил проект и описание.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#7

Сообщение Dryundel » 19.03.2023{, 18:00}

aidar_i, а как на счет ПИД туда вшить? Может получится?

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#8

Сообщение aidar_i » 19.03.2023{, 18:29}

Думал, но пока работал над освобождением памяти, попробую, скорее придётся делать ПБ. Ещё не разобрался со входами на регисторах. Таймеры кушают много, сделать бы их тоже с регистрами.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#9

Сообщение Dryundel » 19.03.2023{, 18:56}

aidar_i, вопрос...
А зачем надо было вообще float использовать?
С аналога int приходит. Та почему бы им не оперировать?

Отправлено спустя 2 минуты 15 секунд:
А в дисплее точку намертво прикрутить и всё.

Отправлено спустя 3 минуты 36 секунд:
aidar_i писал(а):
19.03.2023{, 14:35}
в первом сообщении заменил проект и описание.
А вот это очень зря. Оставляйте релизы. Добавляйте актуальные версии.
Во первых, это помогает следить за ходом разработки.
А во вторых, по скачиванию виден интерес аудитории к проекту.

Аватара пользователя
Phazz
Полковник
Сообщения: 2553
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Программа для термостата W1209 (STM8S3003F)

#10

Сообщение Phazz » 19.03.2023{, 20:53}

Тема интересная. Но из термостата сделать опять термостат. Немного не понял смысл этого мероприятия).

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#11

Сообщение Dryundel » 19.03.2023{, 21:00}

Phazz писал(а):
19.03.2023{, 20:53}
Но из термостата сделать опять термостат. Немного не понял смысл этого мероприятия).
Тема эта не новая и очень полезная. Эти китайские термостаты очень не удобны для использования в быту. Надо выставить две пороговые температуры для гистерезиса, не перепутать какое значение где выставить. А объяснить жене, а тем паче бабушке, что такое гистерезис, ваще непосильная задача.
Данный вариант позволяет просто убавлять и прибавлять требуемую температуру двумя кнопками плюс и минус. А уж гистерезис может лежать глубоко в настройках и никого не волновать.

Аватара пользователя
Phazz
Полковник
Сообщения: 2553
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Программа для термостата W1209 (STM8S3003F)

#12

Сообщение Phazz » 19.03.2023{, 21:05}

Dryundel, теперь понятно. У меня были когда-то такие термостаты. Заменил штатный на бойлере. Ну если еще сделать из него таймер и возможность делать аппроксимацию значений АЦП для подключения других датчиков на аналоговый вход. То получится дешёвая платформа для быстрого прототипирования.

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#13

Сообщение aidar_i » 19.03.2023{, 22:51}

Dryundel писал(а):
19.03.2023{, 19:02}
А зачем надо было вообще float использовать?
Про это тоже думал в блоке датчика нтс умножить данные на 10 и изменить в дисплее на интежер.
Нет, точку нельзя, - 10, 100 без точек.
Первоначально я просто хотел сделать термостат до 300 градусов. Да и не нашел нигде код для него от ардуинщиков, странно, он ведь продавался десятками тысяч и сейчас тоже, но китайцы заменили stm8s на какой-то МК.
Можно из него сделать, что хотите, хоть таймер, хоть подключить другие датчики, w1209 в качестве отладочной платы очень неплох.
Хочу создать тему Программирование STM8S и там продолжить разработки, если кто имеет знания или опыт по этим МК, присоединяйтесь.

Аватара пользователя
Phazz
Полковник
Сообщения: 2553
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Программа для термостата W1209 (STM8S3003F)

#14

Сообщение Phazz » 20.03.2023{, 00:10}

А можно ссылочку на термостат с правильным контроллером)

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#15

Сообщение Dryundel » 20.03.2023{, 00:30}

Phazz писал(а):
20.03.2023{, 00:10}
А можно ссылочку на термостат с правильным контроллером)
Так а не факт, что Вам придет именно с правильным чипом. Есть модули с микросхемой один в один как STM8, но без надписей и по факту это что то другое, китайское. И где то на форумах читал что ее заменяют на STM8 и все ок. А другие пишут, что не вышло. Тема эта совсем не новая и перепрошивку делали еще лет 5 назад помню. Так же перепрошивали и под DS18B20.
https://yandex.ru/search/?text=w1209+пр ... =suggest_B

Аватара пользователя
Phazz
Полковник
Сообщения: 2553
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Программа для термостата W1209 (STM8S3003F)

#16

Сообщение Phazz » 20.03.2023{, 00:51}

Я так понимаю нужен еще программатор?

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#17

Сообщение aidar_i » 20.03.2023{, 00:51}

Правильные сейчас есть ли, не знаю, я заказывал недавно, пришёл с неизвестным мк. Это нужно с продавцом общаться.
Если есть с китайским аналогичным STM8S003, то можно поменять на него, видел видео, если не работает нужно проверить соединения, там есть варианты, где дисплей подключен немного по другим пинам , дисплеи идут тоже разные, общ катод или анод.

Отправлено спустя 3 минуты 14 секунд:
Phazz писал(а):
20.03.2023{, 00:51}
Я так понимаю нужен еще программатор?
ST Link, купил недавно за 221рублей с Али. Он и для STM32 идёт.

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#18

Сообщение aidar_i » 21.09.2023{, 23:21}

Выпустили прошивку для W1209 для Ардуино Иде . Обернул его в блок и в библиотеку. Проверил , работает, смотрите описание блока и README в библиотеке.
Есть уже новая версия в первом сообщении.
Библиотеку встроил в блок.
Новый блок термостата.flp
(1.41 МБ) 60 скачиваний
Для того , чтобы после первой прошивки настройки по умолчанию сохранились в настройках термостата нужно выполнить:
Сброс к заводским настройкам:
- - - Установите параметр P7 в положение ВЫКЛ.
- - - Выключите питание.
- - - Нажмите и удерживайте клавиши Вверх «+» и Вниз «-».
- - - Включите питание
- - - Подождите, пока на дисплее не появится надпись "rSt".
- - - Отпустите все клавиши
- - - Подождите, пока появится текущая температура.

aidar_i
Полковник
Сообщения: 3125
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Программа для термостата W1209 (STM8S3003F)

#19

Сообщение aidar_i » 02.10.2023{, 10:09}

Изменил блок, параметры термостата вывел в параметры блока, чтобы не копаться в библиотеке.
Минимум и Максимум вывел в виде строки массива, а по Умолчанию каждый параметр массива отдельным пунктом.
Таблица термостата создается специальным генератором, встроенным в блок и устанавливаемым в папку библиотек программы, вставляется в параметрах.
После первой прошивки настройки по умолчанию сохраняются (помог Naladchik), при повторной прошивке нужно, как описано выше, сбросить к заводским настройкам.
Внимательно читайте описание блока и описания параметров!
Выложил в первом сообщении здесь

Ответить

Вернуться в «Arduino. Другие МК»