Многоканальный 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).

Вливайтесь в общение

54 комментария

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  13. Обнаружил ошибку на meteo.kibermaster.net название входящих каналов — «Выходящие каналы:»

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

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

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

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

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

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

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

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

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

          2. Мож когда то и доделаю, сейчас времени нет…

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

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

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

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


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

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

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

    1. ладно, я как дома буду — посмотрю.
      Пишите через Reply, иначе буду удалять

      1. Доброго времени суток!
        Проблема не исчезла. Пробовал на двух разных ПК — данные до сервера не доходят.

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

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

  19. Прошло 9 месяцев а вопрос остался без ответа… Если нет времени на проекты — так хоть ответьте людям.

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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *