Полезное

вторник, 10 декабря 2013 г.

Радио-термометр ИН-14,ИН-19

Автор: RoboC
Лампа: ИН-14, ИН-19
Схема: есть ( PIC 16F886)
Плата:есть  
Прошивка:есть
Исходник:есть ( Proton PicBasic )
Описание: есть
Ссылка первоисточник: ---
Особенности:  Измерение температуры дома (проводной датчик) и на улице (радио датчик). Индивидуальная на каждую лампу RGB подсветка на MBI5030 .
Добавил схему и прошивку без радио(2 проводных датчика, без 5030)


Схема:





          Данный девайс умеет показывать температуру в квартире и через радио датчик температуру на улице. Есть RGB подсветка с 3 эффектами, их кол-во ограничено моей скудной фантазией(в МК памяти занято 25%). Присутствует 1 кнопка, которая, собственно, нужна для переключения световых эффектов(плавный перелив,гирлянда,свечи,нет подсветки).
          Температура показывается по очереди с периодичностью 10-15 сек. При демонстрации показаний на улице мигает знак "ГРАДУС ЦЕЛЬСИЯ".  Т.к в термометре показания меняются медленно , где то раз в 5-7 мин проходит тест, который перебирает все символы, для предотвращения их отравления.

Программа написана на Proton PicBasic.

         Почему выбран именно 16f886.Ответ прост - цена.Доступный мне 16f628 стоит 13.40 грн. и у него намного меньше возможностей, чем у 16f886 по цене 17грн, да и количество выводов позволяет отказаться от навязчивой 155ИД1.

Как все начиналось?
Ездил я на ХАмфест (кто не знает Яндекс в помощь!) и прикупил платку с лампами ИН-14 и вместе с ними в блоке попались мне ИН-19А,ИН-19Б,ИН-19В. Ну не выбрасывать же их? Немного порисовав в спирите, "родил" схему, только отдаленно похожую на ту, что Вы видите выше.

Сначала устройство жило в такой вот коробочке. 

       Вы спросите, что там за лампа ИН-13 на фото? Да-да предполагалось, что уличная температура будет показываться в цифровом виде, а комнатная посредством ИН-13, но из за выбранного корпуса от этого пришлось отказаться. Руки робота из разбитой игрушки сынишки, которые держали ИН-13, слишком похабно сделаны китайцами.Да и смотрелось все в стиле "франкинштейна".

       Пришло время попробовать все в неоне.Как раз кстати пришлись драйверы MBI5030 с "РКС" и MSS_JA подогнал RGB диоды попробовать. Получилась вот такая плата индикации: 

 Изготовил плату по технологии ЛУТ(http://cxem.net/master/45.php ). Стороны совмещал конвертиком. 

 Руки чесались впаять лампы, чуть не забыл про светодиоды под ними!!! 




 И все равно мучился потом, впаивая резисторы . 
 После того как все заработало в коробочке и начало светиться приятным красненьким цветом, началась самая длительная часть изготовления - производство корпуса.

Нашлись у меня в ящике пару сгоревших экономок и корпус от фискального блока РРО, который я распилил и склеил так, как мне нужно было. Еще сбегал в магазин мебельной фурнитуры и прикупил 2 держателя для полочек стеклянных. К сожалению , как хотел - в виде четверти сферы я не нашел, купил такие как на фото.Что поделаешь,город маленький. 



Закончил верх и примеряю низ. Отверстия под лампы вырезаны лазером в акриловой пластине, которая вклеена в корпус.

 Надо же к чему то крепить плату


 Почти готовый корпус.


 Оставшиеся платы блока питания и блока МК. 
 Сделаны ЛУТом,плата МК со второй стороны металлизирована(маркером покрасил ее перманентным). 
 Что получилось Вы можете наблюдать на картинке. 

Немного слов о радио части и о датчике.
Т.к. мой друг собирал часы из этой статьи(http://ucprog.ucoz.ru/publ/chasy_termometr_led_s_radiodatchikom/1-1-0-1 ) и ему хотелось тоже такой термометр собрать. Протокол и датчик слизал оттуда.

Протокол радиопередачи слизан с IR NEC (хорошая синхронизация, проще декодировать по сравнению с RC5).

Данные радиодатчика температуры содержат следующие байты:
- Серийный номер (101).
- Значение температуры.
- Значение знака температуры.
- Значение десятых долей температуры.
- Байт CRC8.

Данные с радиозвонка:
- Серийный номер (00000001).
- Значение номера звонка
- Нулевой байт
- Байт CRC8.

Единица передается импульсом 500 мкс с паузой 1600 мкс, 0 – 500/520. Перед посылкой байтов отправляется преамбула из 8-ми нулей и опознавательный сигнал длительностью 10мс. Общее время передачи составляет приблизительно 80 мсек. На пульты от автомобильных сигнализаций декодер приемника не реагирует.


Хотя сейчас пожалуй я бы применил пару RFM-01 и RFM-02.
Вот такие радио модули я прикупил в магазине хотя их можно сделать и самому(http://cxem.net/rmodem/rmodem14.php ):  

 Приемник слишком плохой, поэтому передатчик надо питать 3 батарейками.От 3Вольт прием не стабильный .
Их тех что есть в продаже,эта пара должна работать:

RT4-433 Модули приема и передачи на 433/868 МГц
RR4-433 Модули приема и передачи на 433/868 МГц

Еще одна пара:
HM-R433
HM-T433

Еще встречал в инете дешевые комплекты для Ардуино, но это уже для мазохистов.



Не обязательно зацикливаться на 433Мгц, подойдут комплекты и на другие частоты.

Для некоторых радио модулей нужно отдельное питание 5В(мои работают нормально от основного), в схеме предусмотрено 3.3В питание(не проверял работу).


Фото радио датчика в исполнении crocodil (Radiokot).







 Видео:

           Программировать контроллер можно простеньким и надежным программатором Extra-PIC .Советую собирать полную версию. Если что то буду править, добавлю тут. Почта указана сверху.   Удачных всем свершений! Upd: 15/06/2013 Добавил прошивку с отключенной подсветкой. Переключение на уличную температуру - долгое нажатие кнопки,по прошествии, примерно, 10 сек, вернется на домашнюю температуру. С этой прошивкой устройство можно использовать как обычный комнатный термометр,не подключая радио модуль. Схема:  
Архив:
Платы..    
Прошивка исходник   
Прошивка исходник радио-модуля    
Прошивка: отключена подсветка, перекл. - долгое удержание.     

upd: 2014/02/08     

Тем, кому  лень собирать радио и не лень сверлить стену для датчика на улицу, посвящается:
Прошивка

upd: 2014/04/03

Желающие могут проверить последнюю схему в протеусе: проект протеус, прошивка .   

upd: 2016/09/05    

Вариант термометра от  alfa2 (РадиоКот).  

RGB подсветка убрана полностью.

 Платы сделаны по технологии ЛУТ, фото в процессе монтажа:

Мой вариант радио датчика не устроил.   

alfa2 говорит: 

Долго ли, коротко ли, в итоге переделал схему "Радиодатчика", как посчитал правильно с моей точки зрения, добавил 2-а транзистора с обвязкой. 
Для удобства еще бы изменить прошивку "Радиодатчика", так как период включение на передачу либо через 1 сек, а это много, либо через 5 мин, а это мало. Смена показаний термометра дом/улица происходит через 16 сек, обрыв связи с радио датчиком идентифицируется через 32 сек, думаю период в 30 сек./2 мин. будет как раз то что нужно. Так как сам в программировании не комильфо, за помощью обратился к Станиславу Дмитриеву он прислал новую прошивку под вариант 30 сек/2 мин











Загрузить файл главной платы.
Загрузить прошивку радио модуля.

Посмотреть подробности на сайте автора.

4 комментария:

  1. Доброго!
    Собрал ваш термометр, только без уличного датчика. Хотел использовать проводной датчик для улицы. Оказалось, что он минусовую (отриц) т-ру показывать не умеет, так и стоит "+" перед цифрами. Знак "-" при включении тестируется.
    RoboC, можно ли подправить прошивку, чтобы комнатный термометр показывал и отрицательную температуру?
    с ув. Юрий

    ОтветитьУдалить
  2. Добрый!

    Собрал первый вариант схемы. Прошивка из темы 16F886_21_st.hex

    Проводной датчик температуру показывает, с разницей 5 градусов в плюс (датчики менял) т.е. в комнате +22 показывает +27, датчик же 18B20 цифровой.

    От беспроводного датчика температуру принимает только в момент включения, после теста цифр, мигает С и показывает уличную температуру, после ни разу не показал.
    Схема датчика посылает посылки каждую 1 сек. (вижу сигнал на понораме SDR приемника). Прошивка из темы radio_modul_1.4_dachic_universal.hex

    Тест цифр от окисления не запускается, часы проработали сутки.

    Куда копать?

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

      Ох...! Я уже не помню даже что и как и где тут.
      В программировании на Бейсике понимаете? Могу поискать исходники.
      Насколько мне помнится, присутствие датчика определяется длинным импульсом вначале посылки.Некоторые передатчик обрезали длину этого импульса(т.е. он есть, но короткий) и как следствие МК считал посылку мусором. Пару человек на этом точно спотыкались.

      Удалить
  3. о бейсик, давно не ковырял, на коте сейчас стукнусь

    ОтветитьУдалить