Многоканальный 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 контактов, нижний подключен к земле, все остальные - к ножкам микроконтроллера через диоды. Если замкнуть любой с этих выводом на массу, то в программе и на веб-форме будет отображаться состояние канала "Активен".
Внимание: для нормальной передачи данных в названии датчиков (которое указывается в программе) должны быть только английские и руские буквы, цифры, скобки (не кавычки!), запятая, точка, тире и пробел.
Микроконтроллер прошивается так само, как в Предыдущей статье.
скачал. пишет ошибка проверки устройства при запуске программы
ОтветитьУдалитьпрошивку конечно же поменял
ОтветитьУдалитьИсправил. Скачайте заново архив, там новая прошивка, бутлоадер и программа. Но бутлоадер можете оставить тот же.
ОтветитьУдалитьзапустилось сразу. работает без проблем. темпер надо сравнить. о результате напишу
ОтветитьУдалитьСкачал - прошил. Наблюдается таже картина что и предыдущего оппонента. Со старой программой девайс работает.
ОтветитьУдалитьЗначит вы тоже прошили прошивкой с прошлой версии. Скачайте файлы этой статьи, там будет нужная прошивка
ОтветитьУдалитьПри запуске программы появляется окно ошибки: "Failed to get data for 'Indentation'" и если вовремя не нажать кнопку "ок" выскакивает множество окон в цикле "Access violation at address 00406B9C in module "USB Thermometer.exe".Read of address 00000000" Прошивка вновь была скачана с саита и залита в контроллер.
ОтветитьУдалитьКакая ос и разрядность?
ОтветитьУдалитьКак именно вы прошивали МК?
Win XP 32bit. Микроконтроллер прошивается так само, как в Предыдущей статье.
ОтветитьУдалитьа бутлоадер нормально работает?
ОтветитьУдалитьБутлоадер работает без проблем. Прошивка залетает на ура. Также прошивка без проблем работает с предыдущей версией программы.
ОтветитьУдалитьПредполагаю что что-то случилось в самой XP(завтра буду пробовать на другой машине).
ОтветитьУдалитьА можно переписать прошивку под кварц 12Мгц? А то от флешек мертвых их куча в SMD исполнении лежит. А на 16Мгц только обычные в продаже у нас.
ОтветитьУдалитьПросто откройте проект в AVR Studio, зайдите Project->Configuration Options и измените 16000000 на 12000000
ОтветитьУдалитьВсе пошло на другом компе а на мой у девайса похоже аллергия. Спасибо автору за хорошее и нужное в быту устройство.
ОтветитьУдалитьМожно ли получить фаилы проекта последней версии или фаил прошивки контроллера скомпилированный под кварц на 12 МГц.
ОтветитьУдалитьВсегда пожалуйста:)
ОтветитьУдалитьЯ добавил исходники. Скачайте их, в опциях установите 12000000 и скомпилируйте. Разве это сложно?
ОтветитьУдалитьСпасибо. Будем пробовать.
ОтветитьУдалитьKibermaster Можно ли получить файл Bootloadera скомпилированный под кварц на 12 МГц (никак не получается скомпилировать - куча ошибок) надеюсь только на вас.
ОтветитьУдалитьошибки выскакивают в окне Messages, не обращайте на них внимания, главное - чтобы ошибок не было в окне Build (там будет токо 2 Warning). Кстати, та отдельно надо скомплировать проект usb термометра и файл бутлоадера, как для термометра, я написал вам выше, а для бутлоадера откройте bootloader.aps, затем слева Other files->Makefile и в нем измените F_CPU на 12000000, потoм F7, как я писал, в окне Messages будут ошибки, а в Builde просто 2 предупреждения
ОтветитьУдалитьСпасибо вам большое за консультацию. Компиляция прошла успешно (в окне Messages ошибки, а в Builde просто 2 предупреждения) буду пробовать.
ОтветитьУдалитьСобрал устройство с подключением по версии 2. Устройство определяется, программа работает только на включение\выключение каналов. Самих датчиков не видно. Светодиод горит постоянно. В чем может быть причина? Если убрать DS18B20 светодиод начинает мигать.
ОтветитьУдалитьпроблема на 1-wire. Если транзисторы целые, то паленный датчик.
ОтветитьУдалитьДобрый день!!! датчик целый, проверял на другом устройстве, транзисторы тоже исправны. Подскажите как выставить фьюзы в PoniProg? С уважением Михаил!!!!
ОтветитьУдалитьhttp://avr.roboforum.ru/ это вам поможет
ОтветитьУдалитьЗдравствуйте. Kibermaster как возможно добавить в программу функцию записи показаний с датчика, в отдельный txt файл?
ОтветитьУдалитьОбнаружил ошибку на meteo.kibermaster.net название входящих каналов - "Выходящие каналы:"
ОтветитьУдалитьНа какое максимальное расстояние может быть удален датчик температуры DS18B20 ?
ОтветитьУдалитьв зависимсоти от того, что за провод и сколько помех. На 50м с галимым кабелем работает без проблем
ОтветитьУдалитьМожете выложить печатную плату второго варианта? спасибо
ОтветитьУдалитьвообще то, вариант платы только один
ОтветитьУдалитьВ архиве печатка от варианта без входных каналов, я пробую сам дорисовать контакты на первом варианте
ОтветитьУдалитьперезалил. И пишите через reply, иначе комменты буду удалять
ОтветитьУдалитьСобрал устройство на ATMEGA8A-PU. Не работает измерение температуры, входные и выходные каналы работают, и еще горит транзистор, уже два сжег, почитал умные книжки поставил резистор в разрыв 2 ноги контролера (чтоб не горел транзистор), и еще светит постоянно светодиод, убрал оба транзистора, замкнул 2 и 3 ноги через резистор 2.2 ком, светодиод стал мигать, температуру все равно не определяет, осцилом смотрел, идет ресет, а от датчика тишина. В чем может быть проблема? Может есть глобальная разница между 8 и 8А?
ОтветитьУдалитьПри нормальной работе светодиод должен мигать.
ОтветитьУдалитьЕсли ставите резистор между 2 и 3 ножками, то оба транзисторы и 2 резистора возле них (100 и 4,7) нужно убрать, а линию 1-wire (средняя ножка термодатчика)подключить к второй ноге атмеги. После испульса сброса, датчик полюбом должен ответить, если не отвечает, значит он не рабочий, так же проверьте правильность подключения питания датчика. Если подключить питание не правильно, то датчик очень сильно греется, после чего часто выходит из строя
УРА ЗАРАБОТАЛО!!! СПАСИБО БОЛЬШОЕ!!! убрал резюк на 4.7 ком и все заработало, через сайт тоже проверил, тоже пашет, прозьба, сложно доработать программу чтобы по событию (по заданному параметру температуры пищало в колонки компьютера (чтобы зря не занимать исполнительный канал).
ОтветитьУдалитьМож когда то и доделаю, сейчас времени нет...
ОтветитьУдалитьХорошо, повешу пока реле через оптопару, хороший у Вас девайс получился!
ОтветитьУдалитьВ какой версии СИ вы писали программу? Исходники второй версии не выложите?
ОтветитьУдалитьИсходники продвинутой версии выложить не могу. Писал в С++ builder 2010
ОтветитьУдалитьДоброго времени суток.
ОтветитьУдалитьСделал устройство, очень доволен работой. Маленький минус - не идет отправка на WEB-сервер. Не скажете, почему. Фаерволл проверял, везде зарегался правильно.
--
С уважением, Владимир С.
дело в том, что ip адрес сервера иногда меняется провайдером, если хотите, чтобы работало, можете поменять в исходниках программы ip на 91.222.136.250
ОтветитьУдалитьПрога отсылает данные именно на этот адресс, посмотрел в фаерволе своего роутера на MikroTik RouterOS v.6.2. На страницу захожу - нет данных. И в проге в строке состояния пишет: Программа запущена.
ОтветитьУдалитьВыше смотрел, нет исходников продвинутой версии.
ОтветитьУдалитьладно, я как дома буду - посмотрю.
ОтветитьУдалитьПишите через Reply, иначе буду удалять
Спасибо, сорри...
ОтветитьУдалитьДоброго времени суток!
ОтветитьУдалитьПроблема не исчезла. Пробовал на двух разных ПК - данные до сервера не доходят.
я еще не исправлял
ОтветитьУдалитьА когда исправите?
ОтветитьУдалитькогда будет время. Сейчас его нет(((
ОтветитьУдалитьесли нужно удаленно следить за температурой, советую посмотреть на Lan control и xcontrol
Здравствуйте! Давно искал многоканальный термометр и увидев Вашу работу - был крайне рад, то что нужно! Скажите возможно ли добавить функцию логгера/регистратора суточной температуры хотя бы с 4-5 датчиков (если можно то на всех возможных датчиках) в виде графика по типу графика температуры в тестовых программах Aida. Это позволит очень точно наблюдать за разными зонами и выбрать в какой нужно задействовать управляемый выход для поддержания нужной температуры.
ОтветитьУдалитьС Уважением!
Прошло 9 месяцев а вопрос остался без ответа... Если нет времени на проекты - так хоть ответьте людям.
ОтветитьУдалитьФункцию добавить, конечно, можно, если понимаете в программировании.
ОтветитьУдалить