1) Термостата в устройстве нет. Регулируется фактически только мощность на нагревателе с помощью ШИМа. Поэтому или перегревает содержимое бутылочки или сильно недогревает.
2) Неудобное управление.
3) Самая главная причина - я его ещё не разбирал...
Поэтому устройство было разобрано. Сделать это не сложно - "кнопка" просто пришита к наружной стенке. Отпарываем, выковыриваем герметик, которым залита плата. Правда на фото ниже на плате уже другой МК, забыл сделать фото до начала "раскопок". На родном контроллере сверху отсутствует маркировка, а на брюхе есть - на схеме это отображено. Теперь можно срисовать схему устройства. В оригинале стоит МК без маркировки, по распиновке очень похож на pic12F629. Но это точно не он. При попытках чтения "оно" определялось как pic16F886 или pic16F884, при этом все слитые дампы отличались. После попыток чтения дампа, МК перестал нормально работать - запускался через раз, иногда на выходе присутствовал некорректный сигнал... Вобщем я его добил. Ну что ж, подумал я - "доработка неизбежна". Вначале хотел поставить ATTiny13, т.к. под неё есть почти готовый проект, но по цоколёвке получалось очень неудобно... Случайно нашёл у себя pic12F629, поэтому будем осваивать PIC... Красным цветом я обозначил изменения в схеме, которые я внёс при доработке. Собственно добавлен датчик температуры DS18B20, R9 4,7к - подтяжка линии 1-wire, и R8 4,7к - подтяжка кнопки, т.к. в pic12F629 на этом входе нет возможности включить pull-up. Ну и токоограничивающий резистор в цепи светодиода увеличил в 4 раза, чтобы не светил так ярко. Всё, из схематических доработок всё. Датчик располагаем внутри "конвертика", МК прошиваем, плату ставим на место, заливаем силиконом и пришиваем на место.
Кстати о прошивке. Совсем забыл описать, что бы мне хотелось видеть в функционале:
так сказать ТЗ и заодно описание работы.
1) Включение устройства сразу при подаче питания. Удобство работы с Powerbank - подключил и забыл.
2) Выключение - длинным нажатием кнопки (Синий индикатор).
3) Установка 4х температур. Настройка - короткие нажатия кнопки. (Мерцание: Синий - 40°C, Зелёный - 45°C, Красный - 50°C, Белый - BOOST 70°C)
4) Режим "BOOST" (Белый индикатор) - повышенная температура (70°C) на 15 минут (красный индикатор моргает), после чего возврат к установленной температуре и поддержание.
5) Сохранение в памяти текущей выбранной температуры (кроме BOOST - он не сохраняется).
6) Индикация установленной температуры при включении (мерцание индикатора), как при выборе настройки.
7) Реализация простого ШИМ, с возможностью плавной регулировки мощности нагрева вблизи установленной температуры.
8) Индикация текущего режима работы (Нагрев 100% - красный, нагрев 70% - желтый, нагрев 50% - зелёный, выключен нагрев - белый, устройство выключено кнопкой - синий, синий моргает - ошибка датчика).
9) Работа с Powerbank - в режиме выключен нагрев ШИМ около 10-20%, чтобы Powerbank не отключал питание.
Т.к. я до этого мало имел дело с PIC'ами, и не знал в чём их
Из особенностей получившейся конструкции:
1) ШИМ очень низкочастотный (период 0,5сек) выбран из-за того, что не все Powerbank`и видели нагрузку даже 20% при более высокочастотном ШИМе. Из-за этого видно мерцание RGB индикатора при вкл/выкл нагрузки.
2) Ещё мерцание индикатора происходит при чтении температуры с датчика DS18B20, т.к. оно осуществляется в общем цикле, а не по прерываниям (особенность библиотеки).