Многоканальный USB-термометр. Продвинутая версия.

Обновление №4 (17.02.2012). Выложил исходники программы МК

Недавно написал статью Многоканальный USB-термометр. В устройстве вроде бы есть все, что требуется от такого термометра, но через время захотелось просматривать температуру через инет и не только с компа, а и с мобилки. Писать все изменения не буду, напишу все, что добавил после предыдущей статьи.

Должен признаться, что веб-сервис был довольно глючный, поэтому он несколько раз усовершенствовался и до сегодняшнего дня был в режиме тестирования. Теперь он полностью работоспособен! Программа для ПК и прошивка не изменялись.



Основное окно программы практически не поменялось:


Первые 2 столбца стали более узкие. Снизу добавил строку состояния.

Также поменялось окно настроек:Добавлена возможность изменения шрифта и цвета для мини-окна, а чтобы окно было более компактное, вы можете изменить отступ верхней строчки (где название датчика) и двух нижних от средней. С установками как на скрине это будет выглядеть вот так:



Просмотр температуры через Интернет.


Для просмотра температуры через инет я сделал специальный сервис, находится он на сайте http://meteo.kibermaster.net/. Для его использования, Вам нужно быть зарегистрированным на  http://kibermaster.net/, после чего нужно привязать свой аккаунт к сайту http://meteo.kibermaster.net/. Для этого, на том сайте выбираем "Регистрация", появится вот такая форма:

Вводим логин, пароль и email, который вы вводили при регистрации на http://kibermaster.net/, жмем "Зарегистрировать", Если данные введены правильно, тогда ваш аккаунт будет успешно прикреплен. Теперь откройте программу USB-Thermometer, выберите "Настройки", в поле "Пользователь" введите свой логин, а в поле "Пароль" - свой пароль, поставьте галочку "Включить" и нажмите "Сохранить". Подождите пока программа передаст данные на веб-сервер (максимум 2 минуты), после передачи, внизу программы будет написано "Время. Данные переданы, ответ сервера DONE":



Если возникнут какие то ошибки (неправильный пароль и т.д.), то они будут отображаться в этой строке.

Итак, программа успешно передала данные на сервер, теперь можно из посмотреть с любого браузера. Заходим на http://meteo.kibermaster.net/, Вы увидите поля для ввода логина и пароля:

Вводим данные, нажимаем "Войти". Если поля заполенны правильно, то вот что Вы увидите:



Дата и время, когда была переданы данные программой, ниже в таблице порядковый номер датчика, в следующей колонке его название, если название не установлено, то вместо него будет отображаться адрес датчика, и в третьей колонке - значение. Чтобы обновить данные, нужно просто обновить страницу, вводить заново логин и пароль не придется (используется сессия).

Мой баннер.


Благодаря этой функции, Вы можете создать небольшой баннер, в котором будет отображаться текст и температура. Этот банер можно разместить у себя на сайте, на форуме в подписи или еще где то. Нажимаем на ссылку "Мой баннер".

В поле "Строка баннера" нужно вписать текст с параметрами, по которым будет создаваться баннер. к примеру: "У меня в доме $280DFECF020000BC, на улице $283BCAE401000078 (Я из Полтавы)". После знака доллара ($) должен быть 16-значный адрес датчика, который можно увидеть в таблице ниже. Далее нужно выбрать размер шрифта, цвет текста и фона, затем нажать Сохранить. Теперь, при следующей передачи данных программой будет создан баннер в виде изображения, который Вы можете использовать для своих целей. Чтобы банер отображался на форуме в вашей подписи, Вам достаточно вставить в подпись код со строки "Код для вставки". К примеру, мой баннер выглядит вот так:

Как видите, сайт очень простой, я не ставил туда всякие картинки, баннеры и лишний текст. Почему? Чтобы у сайта был минимальный размер и его можно было свободно просматривать даже через мобилку с GPRS.
Обновление:

По просьбам читателей, добавил отображение состояния каналов на веб-странице, теперь вот что отображается в браузере:



 

Также, изменилось окно программы:

Печатная плата выглядит вот так:

Слева расположены 6 контактов, нижний подключен к земле, все остальные - к ножкам микроконтроллера через диоды. Если замкнуть любой с этих выводом на массу, то в программе и на веб-форме будет отображаться состояние канала "Активен".

 

Внимание: для нормальной передачи данных в названии датчиков (которое указывается в программе) должны быть только английские и руские буквы, цифры, скобки (не кавычки!), запятая, точка, тире и пробел.

Микроконтроллер прошивается так само, как в Предыдущей статье.

Приобрести готовое устройство можно здесь.


 

Скачать программу USB-Thermometer,  драйверы, исходники и прошивку (900 Kb).

Комментарии

  1. скачал. пишет ошибка проверки устройства при запуске программы

    ОтветитьУдалить
  2. прошивку конечно же поменял

    ОтветитьУдалить
  3. Исправил. Скачайте заново архив, там новая прошивка, бутлоадер и программа. Но бутлоадер можете оставить тот же.

    ОтветитьУдалить
  4. запустилось сразу. работает без проблем. темпер надо сравнить. о результате напишу

    ОтветитьУдалить
  5. Скачал - прошил. Наблюдается таже картина что и предыдущего оппонента. Со старой программой девайс работает.

    ОтветитьУдалить
  6. Значит вы тоже прошили прошивкой с прошлой версии. Скачайте файлы этой статьи, там будет нужная прошивка

    ОтветитьУдалить
  7. При запуске программы появляется окно ошибки: "Failed to get data for 'Indentation'" и если вовремя не нажать кнопку "ок" выскакивает множество окон в цикле "Access violation at address 00406B9C in module "USB Thermometer.exe".Read of address 00000000" Прошивка вновь была скачана с саита и залита в контроллер.

    ОтветитьУдалить
  8. Какая ос и разрядность?
    Как именно вы прошивали МК?

    ОтветитьУдалить
  9. Win XP 32bit. Микроконтроллер прошивается так само, как в Предыдущей статье.

    ОтветитьУдалить
  10. а бутлоадер нормально работает?

    ОтветитьУдалить
  11. Бутлоадер работает без проблем. Прошивка залетает на ура. Также прошивка без проблем работает с предыдущей версией программы.

    ОтветитьУдалить
  12. Предполагаю что что-то случилось в самой XP(завтра буду пробовать на другой машине).

    ОтветитьУдалить
  13. А можно переписать прошивку под кварц 12Мгц? А то от флешек мертвых их куча в SMD исполнении лежит. А на 16Мгц только обычные в продаже у нас.

    ОтветитьУдалить
  14. Просто откройте проект в AVR Studio, зайдите Project->Configuration Options и измените 16000000 на 12000000

    ОтветитьУдалить
  15. Все пошло на другом компе а на мой у девайса похоже аллергия. Спасибо автору за хорошее и нужное в быту устройство.

    ОтветитьУдалить
  16. Можно ли получить фаилы проекта последней версии или фаил прошивки контроллера скомпилированный под кварц на 12 МГц.

    ОтветитьУдалить
  17. Всегда пожалуйста:)

    ОтветитьУдалить
  18. Я добавил исходники. Скачайте их, в опциях установите 12000000 и скомпилируйте. Разве это сложно?

    ОтветитьУдалить
  19. Спасибо. Будем пробовать.

    ОтветитьУдалить
  20. Kibermaster Можно ли получить файл Bootloadera скомпилированный под кварц на 12 МГц (никак не получается скомпилировать - куча ошибок) надеюсь только на вас.

    ОтветитьУдалить
  21. ошибки выскакивают в окне Messages, не обращайте на них внимания, главное - чтобы ошибок не было в окне Build (там будет токо 2 Warning). Кстати, та отдельно надо скомплировать проект usb термометра и файл бутлоадера, как для термометра, я написал вам выше, а для бутлоадера откройте bootloader.aps, затем слева Other files->Makefile и в нем измените F_CPU на 12000000, потoм F7, как я писал, в окне Messages будут ошибки, а в Builde просто 2 предупреждения

    ОтветитьУдалить
  22. Спасибо вам большое за консультацию. Компиляция прошла успешно (в окне Messages ошибки, а в Builde просто 2 предупреждения) буду пробовать.

    ОтветитьУдалить
  23. Собрал устройство с подключением по версии 2. Устройство определяется, программа работает только на включение\выключение каналов. Самих датчиков не видно. Светодиод горит постоянно. В чем может быть причина? Если убрать DS18B20 светодиод начинает мигать.

    ОтветитьУдалить
  24. проблема на 1-wire. Если транзисторы целые, то паленный датчик.

    ОтветитьУдалить
  25. Добрый день!!! датчик целый, проверял на другом устройстве, транзисторы тоже исправны. Подскажите как выставить фьюзы в PoniProg? С уважением Михаил!!!!

    ОтветитьУдалить
  26. http://avr.roboforum.ru/ это вам поможет

    ОтветитьУдалить
  27. Здравствуйте. Kibermaster как возможно добавить в программу функцию записи показаний с датчика, в отдельный txt файл?

    ОтветитьУдалить
  28. Обнаружил ошибку на meteo.kibermaster.net название входящих каналов - "Выходящие каналы:"

    ОтветитьУдалить
  29. На какое максимальное расстояние может быть удален датчик температуры DS18B20 ?

    ОтветитьУдалить
  30. в зависимсоти от того, что за провод и сколько помех. На 50м с галимым кабелем работает без проблем

    ОтветитьУдалить
  31. Можете выложить печатную плату второго варианта? спасибо

    ОтветитьУдалить
  32. вообще то, вариант платы только один

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

    ОтветитьУдалить
  34. перезалил. И пишите через reply, иначе комменты буду удалять

    ОтветитьУдалить
  35. Собрал устройство на ATMEGA8A-PU. Не работает измерение температуры, входные и выходные каналы работают, и еще горит транзистор, уже два сжег, почитал умные книжки поставил резистор в разрыв 2 ноги контролера (чтоб не горел транзистор), и еще светит постоянно светодиод, убрал оба транзистора, замкнул 2 и 3 ноги через резистор 2.2 ком, светодиод стал мигать, температуру все равно не определяет, осцилом смотрел, идет ресет, а от датчика тишина. В чем может быть проблема? Может есть глобальная разница между 8 и 8А?

    ОтветитьУдалить
  36. При нормальной работе светодиод должен мигать.
    Если ставите резистор между 2 и 3 ножками, то оба транзисторы и 2 резистора возле них (100 и 4,7) нужно убрать, а линию 1-wire (средняя ножка термодатчика)подключить к второй ноге атмеги. После испульса сброса, датчик полюбом должен ответить, если не отвечает, значит он не рабочий, так же проверьте правильность подключения питания датчика. Если подключить питание не правильно, то датчик очень сильно греется, после чего часто выходит из строя

    ОтветитьУдалить
  37. УРА ЗАРАБОТАЛО!!! СПАСИБО БОЛЬШОЕ!!! убрал резюк на 4.7 ком и все заработало, через сайт тоже проверил, тоже пашет, прозьба, сложно доработать программу чтобы по событию (по заданному параметру температуры пищало в колонки компьютера (чтобы зря не занимать исполнительный канал).

    ОтветитьУдалить
  38. Мож когда то и доделаю, сейчас времени нет...

    ОтветитьУдалить
  39. Хорошо, повешу пока реле через оптопару, хороший у Вас девайс получился!

    ОтветитьУдалить
  40. В какой версии СИ вы писали программу? Исходники второй версии не выложите?

    ОтветитьУдалить
  41. Исходники продвинутой версии выложить не могу. Писал в С++ builder 2010

    ОтветитьУдалить
  42. Доброго времени суток.
    Сделал устройство, очень доволен работой. Маленький минус - не идет отправка на WEB-сервер. Не скажете, почему. Фаерволл проверял, везде зарегался правильно.

    --
    С уважением, Владимир С.

    ОтветитьУдалить
  43. дело в том, что ip адрес сервера иногда меняется провайдером, если хотите, чтобы работало, можете поменять в исходниках программы ip на 91.222.136.250

    ОтветитьУдалить
  44. Прога отсылает данные именно на этот адресс, посмотрел в фаерволе своего роутера на MikroTik RouterOS v.6.2. На страницу захожу - нет данных. И в проге в строке состояния пишет: Программа запущена.

    ОтветитьУдалить
  45. Выше смотрел, нет исходников продвинутой версии.

    ОтветитьУдалить
  46. ладно, я как дома буду - посмотрю.
    Пишите через Reply, иначе буду удалять

    ОтветитьУдалить
  47. Доброго времени суток!
    Проблема не исчезла. Пробовал на двух разных ПК - данные до сервера не доходят.

    ОтветитьУдалить
  48. я еще не исправлял

    ОтветитьУдалить
  49. когда будет время. Сейчас его нет(((
    если нужно удаленно следить за температурой, советую посмотреть на Lan control и xcontrol

    ОтветитьУдалить
  50. Здравствуйте! Давно искал многоканальный термометр и увидев Вашу работу - был крайне рад, то что нужно! Скажите возможно ли добавить функцию логгера/регистратора суточной температуры хотя бы с 4-5 датчиков (если можно то на всех возможных датчиках) в виде графика по типу графика температуры в тестовых программах Aida. Это позволит очень точно наблюдать за разными зонами и выбрать в какой нужно задействовать управляемый выход для поддержания нужной температуры.
    С Уважением!

    ОтветитьУдалить
  51. Прошло 9 месяцев а вопрос остался без ответа... Если нет времени на проекты - так хоть ответьте людям.

    ОтветитьУдалить
  52. Функцию добавить, конечно, можно, если понимаете в программировании.

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

Отправить комментарий

Популярные сообщения из этого блога

Прием команд с пульта дистанционного управления

STM32F4. Обновление прошивки с карты памяти (Bootloader SD)

Работа с шиной 1-wire. Подключение термодатчика DS18B20 к AVR