Почта

    Если Вы желаете поделится в этом блоге своим проектом или реализацией чужого, присылайте мне на почту.

воскресенье, 20 ноября 2016 г.

Часы - радио термометр c Bluetooth

Автор: RoboC

Лампа: ИН-17, ИН-19
Схема: есть ( PIC16f887)
Плата:есть (Sprint-Layout 6)  
Прошивка:есть
Исходник:нет
Описание: eсть
Особенности: датчик температуры,  датчик давления, датчик влажности,выносной радио датчик  и часы в одном флаконе,управление со смартфона по bluetooth.

Схема:
Скачать схему 300dpi

Что умеют:
  • дата,время;
  • температура по проводу DS18b20;
  • температура по радио (1 версия RFM70/73, 2 версия SE8R01 /аналог nRF24L01);
  • атмосферное давление ;
  • влажность;
  • RBG подсветка;
  • 1я версия сохраняет статистику в 24L512;
  • управление часами по bluetooth с помощью приложение(с кнопок только базовые функции - установка времени, включение/выключение подсветки,включение/выключение bluetooth);
  • ночной режим.

Все началось в далеком 2014 году! Мной сделал этот  термометр и как развитие проекта возникла идея добавить к нему часы. Быстренько все было собрано на монтажке:
Внимательные читатели заметили ключевые отличия с конечной схемой:
  • Не хватает дополнительных анодных ключей для нижней платы.
Я планировал отключать лампы при помощи 155ИД1, подавая на ее ножки комбинацию больше 10. Но в реальности из 12 микросхем которые у меня были , 10 шт выдавали "мусор" в таком режиме, поэтому пришлось добавить  для каждой лампы свой анодный ключ.
  • Ламп на нижней индикаторной лампе всего 4.
Изначально задумка корпуса была такой,  т.к. ИН-17 у меня было только 4 :)
Планировалась большая сенсорная кнопка включения :)

Проект изменен, лампы докуплены , пришла пора сделать первую плату.






Смотрится прикольно, особенно правильная пятерка.  Затем надо определиться с размером верхней и нижней плат.



Делаем собственно верхнюю плату и впаиваем лампы,не забывая впаять светодиоды и проверить их :



Разводка платы - не легкое дело.


В результате получилась совсем не сложная плата ;)
Переходных отверстий совсем мало!!!
Начинаем сборку как всегда с преобразователей DC-DC 180В  и 3.3В.


Очередь анодных ключей  и светодиодов(каждый проверить!).


Осталось дело за малым - собрать все остальное :)




Итак!!! Электроника работает и нужно что то думать о корпусе.
Там все впритык и куча проводов :( , зато корпус маленький и смотрится зачётно.


     Вместе с работой по изготовлению корпуса, шёл процесс по созданию мобильного приложения для смартфона или планшета.
Т.к. я этим делом не занимался и не интересовался в прошлом, то перспектива осваивать Eclips + Java Development Kit (JDK ) не радовала.
"Пошерстив" по просторам инета , натолкнулся на достаточно простой способ создавать простые мобильные приложения в графической среде, используя визуальный язык программирования - App Inventor. Подкупило то, что процесс напоминал очень сильно язык\программу Scratch, благодаря которому  я пытался обучить  когда то программированию свою дочку.
     Сама программа ничем не примечательна. Она посылает, используя мостик Смарт-блютуз- UART , команды в МК. Со стороны МК связь по bluetooth обеспечивает модуль HC-05(можно НС-06) или другой. Исходник программы я выкладываю.
 4 вывода, которые используются у модуля HC-05, расписаны на картинке выше. Скорость порта 9600-8-n-1.


 На этом моменте( готовая программа и электроника, но без корпуса) проект замирает в коробочке на стеллаже на год с небольшим, оставив только видео на YouTube :)




   Файлы проекта для модуля RFM70/RFM73 (используется общий радио датчик с этим моим термометром. ):

Прошивка
Программа для стартфона
Исходник программы для смартфона.
Перечень компонентов.
Платы с промаркированными компонентами.

    Прошёл год с небольшим. За это врепмя,как это не странно, достаточно часто люди спрашивали об этом проекте и обычно отсылка платы и схемы охлаждало пыл соискателей.  Наконец, к 2000 странице на РадиоКоте решил я "добить" этого монстра.  Т.к. радио модули RFM70/73 уже вышли "из моды"  , их вытеснил более дешевый nRF24L01, логично было бы переделать радио часть на этот модуль.
Но вот беда - 24ка размером раза в 2 больше чем RFM73  и в, почти сделанный, корпус он никак не влазил.
    Как же быть? Решение - радио модуль на чипе SE8R01. Ценой  0.4$  и размерами как RFM73 , он хорошо подошел. Вот только  Vcc и Gnd  выводы у этих модулей наоборот :)
Работа над корпусом продолжена!



   

В прорези заливается прозрачная ювелирная смола и после покраски свет от информационных светодиодов будет виден свкозь нее (краску).
 Устаревший  датчик давления BMP085, так же заменен на новый BMP180.

Вот так ужасно смотрятся "потрошки" часов.

Вид после сборки.


Слева виден индикатор включенного  Bluetooth.

Про радио датчик.
В моем варианте датчик выполнен для питания от аккумуляторов 18650 Li-ion, коих у меня завалялось пару штук. В качестве зарядника использована плата с Али, на микросхеме  TP4056. LDO на 3.3В я сдул с платы BMP180, т.к. она там не нужна, я  формирую ей сам нужное напряжение питания. Контроллер помельче взял PIC16F886  в корпусе SSOP-28 (купил я их давно 10ок :) )

Получилась вот такая плата:



DS18b20  с подоконника выбрасываю за окно на проводе.
Решил так , что бы не беспокоится об влиянии отрицательной температуры на аккумуляторы и  не возится с заменой батареек.
Заказал на Али такую коробочку:

Как придет, выкину разъем USB  и поставлю свою платку сверху.
Будет датчик в коробочке.

Продолжение следует ... 

UPD 2017/12/01:

Прошивка датчика под SE8R01(на али ищется как подобный nrf24L01, если написано 24L01  и чип сделан каплей, то 99% это он!)
Прошивка платы под SE8R01 (как я и писал выше, не забывайте что у этого модуля питание наоборот с RFM70/RFM73)
Плата датчика.
Я питаю датчик от 18650 (кейс для нее выше на картинке) + зарядка на TP4056.
Платы передатчика имеет одинаковый размер с платкой зарядки из Китая.
Сам датчик, находится внутри помещения, наружу выкинут только провод c ds18b20. 


Законченный и отлаженный вариант для RFM73.






Схема там несколько изменена, добавлена поддержка датчиков DHT-22 для улицы и дома.
Поляк пересобрал приложение для Android , изменив его интерфейс.
 
Ссылка на форум с архивом и видео.

61 комментарий:

  1. Интересно! Ждем продолжения.

    ОтветитьУдалить
  2. Помнится вы "грозились" все датчики переселить на радиомодуль. Ждать нам такого обновления или собирать как есть? Или собирать и ждать:)

    ОтветитьУдалить
    Ответы
    1. Да, собственно, это не сложно, но времени не хватает на все :(.
      Для RFM73 ничего не будет дорабатываться, 99.7% флеша занято.
      У SE8R01 я выкинул статистику, на которую и так флеша не хватило, но нужены ли 2 радио там?

      Удалить
  3. Нельзя ли добавить схему в лучшем разрешении в раздел скачать, а то очень плохо читаются надписи? И будет ли версия полностью радио или это нереально?

    ОтветитьУдалить
    Ответы
    1. Добавил ссылку под схемой.

      Удалить
    2. Под SE8R01 возможно.
      Вы как будете схему рисовать мне на почту напишите обговорим этот вопрос.

      Удалить
  4. Буду собирать как есть и так ОЧЕНЬ здорово получилось! Я по своей специальности страшно далёк от электроники и тут вам слабый помощник... Я только собиратель:) Полное радио освободило бы датчики от неминуемого нагрева, а корпус от лишних дырок соответственно...только плюсы:) И пикалку им....пусть хоть в 12 пикнут:) "И тут Остапа понесло......"

    ОтветитьУдалить
  5. "Меня терзают смутные сомнения"... На схеме раздельное управление цветовыми каналами - led1-led5, а на видео и печатке - led7-led12. А нет ли других серьёзных несоответствий схеме? А то я собрался рисовать платы по схеме... "Да призадумалась, а сыр во рту держала"....

    ОтветитьУдалить
    Ответы
    1. О, ужас!!! :) Если вы собираете мою плату, то прошивка соответствует плате на 100%.
      Если вы разводите свою плату то:
      -подключение ИД1 к лампам для вас не важно, вы подключаете как удобно(порядок цифр я переставлю программно).
      -подключение светиков к MBI для Вас не важны. Тут главное не перепутать 3 пары. Причем порядок пар не важен. А то у поляка получилось парой 1 и 6 лампа, 2 и 3 лампа, 4 и 5. Обидно :( Пары выделены физически и программно не исправишь.
      - мигающие точки между (раз у Вас ИН-12, скорее всего они понадобятся)лампами можно подключать к DS3231, но удобнее это сделать к свободному порту MBI (конечно же через ключ). Можно учесть и тот и тот вариант.

      Пришлете мне письмецо, ну не первый же Вы раз :), и вопрос быстренько решается непосредственно под вашу плату.

      Когда я делаю часы , то не рисую схему,а сразу рисую плату. А по плате, когда все заработало, рисую схему => плата главнее!

      Удалить
    2. Для понимания: аппаратно в камне привязаны только шина I2C(SDA,SCL),ССС1(GCLK),UART(BthRx,BthTx) и куда угодно не переместишь вывод Кеу, только на какой то из выводов для АЦП АNx.
      При наличии свободного времени, я постараюсь исправить несоответствие в подключении светодиодов на схеме:)
      Так же я буду благодарен Вам за найденные ошибки.

      Удалить
  6. Спасибо за развёрнутый ответ! Значит буду курить и схему, и плату, помня кто из них важнее:)

    ОтветитьУдалить
  7. Зачем у ламп ИН-19А и ИН-19В подключены неиспользуемые символы (dB A/B ...)? Или они всё-таки как то используются?

    ОтветитьУдалить
    Ответы
    1. При тесте и анти отравлении намного красивей когда все символы подключены.
      Символ A/B, например, используется при форматировании флеш.


      Удалить
  8. Вопрос по питанию схемы: 155ид1 от чего запитаны?
    Схему и плату(платы) собираюсь развести в P-CAD. Хотелось бы поменьше ошибок. Сверстаю выложу. Проверите?

    ОтветитьУдалить
  9. Непопулярность будильников в часах на ГРИ, на мой взгляд, обусловлена в основном неудобством управления им, а управление со смартфона по bluetooth кажется устраняет этот недостаток. Так может имеет смысл расширить возможности Всемометра, ведь возможные проблемы с отключением питания можно решить добавлением с схему ионистора?

    ОтветитьУдалить
    Ответы
    1. Там место и для литеврй батареи есть, но проблема была в другом - 99.8℅ флеша занято.
      В ревизии под se8r01, я порезал функционал статистики 10% освободилось.Но будильник же в смарте круче :)
      Вот едечасный сигнал можно и добавить на свободную ножку mbi5030.

      Удалить
    2. А если ежесигналом управлять со смартфона, то получится бу-----ик:)....

      Удалить
  10. Можно не подключать радиомодуль? Какие параметры при этом будет индицировать устройство и будет ли оно вообще корректно работать без модуля?

    ОтветитьУдалить
    Ответы
    1. Да будет корректно работать и без подсветки ,и без радио.
      Напишите на почту я отключу для вас экран уличной температуры, чтоб не раздражал нулями.

      Удалить
    2. Они на платах индикации, если мне не изменяет память.

      Удалить
  11. Здравствуйте! А будет ли вместо DHT-11 работать DHT-22&

    ОтветитьУдалить
    Ответы
    1. С прошивкой под dht-22 будет :)

      Удалить
    2. И еще вопрос, 1 и 2 версии работают с одной прошивкой? то есть без микросхемы памяти будет работать и 1 и 2 версии, просто не будет записи статистики?

      Удалить
    3. Да без 512 все будет работать!
      Радио на каком модуле?
      Я смотрю Китай перестал продавать почти se8r01 :(


      Удалить
    4. Паяю платы, возник вопрос - на аноды ИН-14 и ИН-19 резисторы на 10кОм на платах не увидел, есть ли они?

      Удалить
    5. Мне помнится, они на платах индикации.

      Удалить
    6. Этот комментарий был удален автором.

      Удалить
    7. Если их нет на плате, то я их забыл.
      Но дорожки прорезаны и резисторы установлены.

      Удалить
    8. Так и пришлось сделать

      Удалить
    9. По мере пайки плат появляются все новые вопросы - а точки ИН-14 куда подключены? К выходу TOCH1, т.е. к коллектору VT11, если я правильно понял? И подключены обе или только правые?

      Удалить
    10. Я в пути. Буду через часик.

      Удалить
    11. RC5 - точка, одна (левая).
      Если нужна правая, то надо править прошивку,т.к. её придётся переставлять в другой разряд.

      Удалить
  12. В поиске на али следует писать не se8r01, а аналогичные NRF24L01 и предложение пока есть.... А что появилась прошивка под dht-22? У меня dht-11 врет процентов на 10:(

    ОтветитьУдалить
  13. Собрал часики, не хватает только mbi5030 и радиомодуля при включении происходит перебор цифр и знаков на индикаторах, затем все тухнет и дальше ничего не происходит, подскажите в чем дело.

    ОтветитьУдалить
    Ответы
    1. Проверьте стоят ли подтягиваюшие резисторы на шине I2c.
      На sda и scl должен быть высокий уровень. Так же подягивающие дом датчиков должны стоять.

      Если все это есть, то фотки на почту. Она под шапкой.

      Удалить
  14. Алексей! А возможно ли и время вывести на верхний ряд, без изменения схемы? Эдакий пятиламповый всемометр получить...

    ОтветитьУдалить
  15. Так я в курсе:) Но делают же часы на и на 1, и на 2 индикаторах. На 3 не видел, но даже лучше чем на двух. 1 и 2 индикаторы показывают часы и затем 2 и 3- минуты. Понятно, что на любителя, но компактно и все в одном флаконе...

    ОтветитьУдалить
    Ответы
    1. именно в этом варианте, часы и так есть на 6 нижних индикаторах. Зачем?

      Удалить
  16. Просто люблю компактность, а на ин-16 у меня аллергия:) Вот заменить 11 на 22 точно стоило бы, 11 ну просто страшно врут...

    ОтветитьУдалить
  17. Нельзя ли добавить Исходник?

    ОтветитьУдалить
  18. Доброго дня! Нет у меня ИН17.... Можно ли вместо них использовать ИН12 а вместо ИН14, ИН16?

    ОтветитьУдалить
    Ответы
    1. Можно. Если нужно переставить цифры ,то напишите мне письмо и решим эту проблему.
      Ин-16 меньше чем ин14 и вместе с ин-19 будут смотреться не очень.

      Удалить
  19. здравствуйтеб а немогли бы вы коротко описать алгоритм роботы станции, саму последовательность действий?

    ОтветитьУдалить
    Ответы
    1. Верхняя часть показывает по очереди температуру, давление,влажность, температуру с радио.
      Нижняя часть показывает часы с секундами.
      О алгоритме чего идёт речь?Последовательность действий чего?

      Удалить
    2. Как роботает программа, последовательность шагов.

      Удалить
    3. Программа представляет собой обычную машину состояний!
      Начальная инициализация , затем бесконечный цикл опроса изменения состояния (примерно 3000 раз в секунду).
      По прерыванию от таймера работает индикация(для нее очень важны точные тайминги).
      На этом же таймере сидят счетчики для разных задач, выполнение которых зависит от времени или выполняется по времени.
      Квантование времени для задач не реализовано.

      Удалить
  20. какая чвстота моргания ламп?

    ОтветитьУдалить
  21. А что за данные он показывает с буквой М?

    ОтветитьУдалить
    Ответы
    1. батарею датчика, насколько мне помнится.

      Удалить
  22. Здравствуйте.Также проблема с запуском.после перебора индикация тухнет.Подтягивающие 4.7к
    стоят.После перебора на 15,16н.ds3231 появляются импульсы и через секуду исчезают,на индикаторе в этот момент видно запуск секунд.Подключе,пока,только 18в20.Отсутствие батарейки может блокировать ds3231.Где копать?

    ОтветитьУдалить
    Ответы
    1. Батарейка нет.
      Подтягивающие резисторы на все датчики должны стоять, даже если их нет.
      Подтягивающие резисторы 3.3к на шине i2c, для ds3231.
      Похоже, часы пытаются опросить dht и виснут.

      Напишите мне на почту (под шапкой), я пришлю прошивку , которая у меня прошита.

      Удалить
  23. Этот комментарий был удален автором.

    ОтветитьУдалить
  24. Можно заменить в этом проекте SE8R01 на nRF24L01?

    ОтветитьУдалить
    Ответы
    1. Да, напишите мне на почту и я пришлю прошивку.

      Удалить