В общем обычный термометр Ds18B20.. все бы хорошо. сделал скриптец для сохранения температуры в файлик. когда его руками запускаю все ок. когда через кронтаб.. термометр часто возвращает значение 85.0 градусов в интернете прочитал что надо спаять 1 и 3 контакты.. пробовал соединить ..почему то разницы не увидил.
Ссылку на схему электрическую принципиальную дай, подскажем
>В общем обычный термометр Ds18B20.. все бы хорошо. сделал скриптец для сохранения
>температуры в файлик. когда его руками запускаю все ок. когда через
>кронтаб.. термометр часто возвращает значение 85.0 градусов в интернете прочитал что
>надо спаять 1 и 3 контакты.. пробовал соединить ..почему то разницы
>не увидил.А это часом градусы не Фаренгейта?
>В общем обычный термометр Ds18B20..
>термометр часто возвращает значение 85.0 градусовДелай 10---20 итераций съёма показаний, сортируй полученные данные по возрастанию/убыванию, и выбирай значение из середины.
>Делай 10---20 итераций съёма показаний, сортируй полученные данные по возрастанию/убыванию, и выбирай
>значение из середины.
А с чем связано то эти 85градусов? и что значит 10--20 интераций съёма.
>>Делай 10---20 итераций съёма показаний, сортируй полученные данные по возрастанию/убыванию, и выбирай
>>значение из середины.
>А с чем связано то эти 85градусов? и что значит 10--20 интераций
>съёма.
Это ошибка датчика, сигнализирующая об недостаточности питания для снятия показания температуры при использовании пассивного питания.
Помоему в даташите на датчики есть подобный момент.
>Это ошибка датчика, сигнализирующая об недостаточности питания для снятия показания температуры при
>использовании пассивного питания.
> Помоему в даташите на датчики есть подобный момент.
А каким либо образом это исправить можно? (п.с. длина провода от ком порта до датчика 7м)
Люди ну подскажите как избавиться от данной ошибки :( в ручную все ок а когда через кронтаб тока и умеет 85 гардусов показывать.. как избавиться от нехватки напряжения или чего то..
вот схема если что
http://msevm.com/main/therm/ds1820.bmp
>Люди ну подскажите как избавиться от данной ошибки :( в ручную все
>ок а когда через кронтаб тока и умеет 85 гардусов показывать..
>как избавиться от нехватки напряжения или чего то..
>вот схема если что
>http://msevm.com/main/therm/ds1820.bmp
ИМХОЭто надо править в исходнике программы (задержки выставлять правильнее), или подавать питание +5 на третью ногу датчика.
>ИМХО
>
>Это надо править в исходнике программы (задержки выставлять правильнее), или подавать питание
>+5 на третью ногу датчика.подскажите пж как добавить питание +5 ? (где то читал что надо спаять 1 и 3 ноги- это верно?) переделать исходники для меня сложнее чем подать +5 вот тока подскажите как и что. заранее спасибо
>>ИМХО
>>
>>Это надо править в исходнике программы (задержки выставлять правильнее), или подавать питание
>>+5 на третью ногу датчика.
>
>подскажите пж как добавить питание +5 ? (где то читал что надо
>спаять 1 и 3 ноги- это верно?) переделать исходники для меня
>сложнее чем подать +5 вот тока подскажите как и что. заранее
>спасибо1 нога - общий
2 нога - данные
3 питание в активном режиме, в пассивном режиме замыкается на общий, тоесть на 1ыйв пассивном режиме от напряжения на 2ой ноге заряжается внутренний конденсатор, и от него чип и питается во время съема значения температуры. Если не хватает заряда, то получается 85 градусов.
Тоесть помоему достаточно просто подать +5 на третью ногу.
Да, не забудте про защитный стабилитрон на конце линии связи, помоему смысл в нем всетаки есть ) Хотя у нас на линии в метров 40 работало и без него, но фигово )
>1 нога - общий
>2 нога - данные
>3 питание в активном режиме, в пассивном режиме замыкается на общий, тоесть
>на 1ый
>
>в пассивном режиме от напряжения на 2ой ноге заряжается внутренний конденсатор, и
>от него чип и питается во время съема значения температуры. Если
>не хватает заряда, то получается 85 градусов.
>
>Тоесть помоему достаточно просто подать +5 на третью ногу.
>
>Да, не забудте про защитный стабилитрон на конце линии связи, помоему смысл
>в нем всетаки есть ) Хотя у нас на линии в
>метров 40 работало и без него, но фигово )
Хорошо, это я сделаю, но если не сложно поясните мне ситуацию снимаю данные с термометра програмкой digitemp в общем когда вручную пишу скажем ./digitemp -blabla он отлично показывает температуру, как дело доходит до кронтаб - увы и ах.. кроме 85градусов он больше ничего не записывает в лог.. иногда в самом начале (после ребута компа скажем) он пару раз запишет верные данные и всё. вот понять не могу почему в ручную выдает а так нет..веть если не хватало напряжения он бы и в ручную не выдавал данные.
>Хорошо, это я сделаю, но если не сложно поясните мне ситуацию снимаю
>данные с термометра програмкой digitemp в общем когда вручную пишу скажем
>./digitemp -blabla он отлично показывает температуру, как дело доходит до кронтаб
>- увы и ах.. кроме 85градусов он больше ничего не записывает
>в лог.. иногда в самом начале (после ребута компа скажем)
>он пару раз запишет верные данные и всё. вот понять не
>могу почему в ручную выдает а так нет..веть если не хватало
>напряжения он бы и в ручную не выдавал данные.Ключи вызова одинаковы в обеих случаях ?
Я не использовал digitemp больше чем для тестирования датчиков. У нас использовался свой микроконтроллер и свой программный интерфейс с компьютером.
>Ключи вызова одинаковы в обеих случаях ?
>
>Я не использовал digitemp больше чем для тестирования датчиков. У нас использовался
>свой микроконтроллер и свой программный интерфейс с компьютером.
да ключи обсалютно одинаковые. тогда получается дело не в нехватке напряжения?
вот собственно, что запускает кронтаб:
cd /usr/tmp/digitemp-3.3.2/
./digitemp_DS9097 -q -s /dev/cuad0 -a >>/usr/tmp/digitemp-3.3.2/temperr.logс данным кодом сохранение в лог идет с редким попаданием 85градусов.. бох бы с ним если с редким (фильтровать не проблема), но с каждым часом 85 гардусов станвоится всё больше и больше.. оставлял наночь с сохранением каждую минуту.. в итоге проверив утром я увидил что последние часы все равны 85градусам.. запускал вручную раз двадцать все результаты были без малейшей погрешности (ниразу не было 85градусов) это означает что с питанием все нормально... что то с кронтабом не то..подскажите кто нить.. вот строка из кронтаба:
*/1 * * * * root /root/temper.sh
>вот собственно, что запускает кронтаб:
>cd /usr/tmp/digitemp-3.3.2/
>./digitemp_DS9097 -q -s /dev/cuad0 -a >>/usr/tmp/digitemp-3.3.2/temperr.log
>
>с данным кодом сохранение в лог идет с редким попаданием 85градусов.. бох
>бы с ним если с редким (фильтровать не проблема), но с
>каждым часом 85 гардусов станвоится всё больше и больше.. оставлял наночь
>с сохранением каждую минуту.. в итоге проверив утром я увидил что
>последние часы все равны 85градусам.. запускал вручную раз двадцать все результаты
>были без малейшей погрешности (ниразу не было 85градусов) это означает что
>с питанием все нормально... что то с кронтабом не то..подскажите кто
>нить.. вот строка из кронтаба:
>*/1 * *
> *
> * root
> /root/temper.sh
Люди дык кто нить подскажет.. очень надо.. почему же в ручную работает а через кронтаб выдает 85 градусов с каждым часом всё больше и больше.. в итоге все значения равны 85 ((( подскажите пж..
>>вот собственно, что запускает кронтаб:
>>cd /usr/tmp/digitemp-3.3.2/
>>./digitemp_DS9097 -q -s /dev/cuad0 -a >>/usr/tmp/digitemp-3.3.2/temperr.log
>>
>>с данным кодом сохранение в лог идет с редким попаданием 85градусов.. бох
>>бы с ним если с редким (фильтровать не проблема), но с
>>каждым часом 85 гардусов станвоится всё больше и больше.. оставлял наночь
>>с сохранением каждую минуту.. в итоге проверив утром я увидил что
>>последние часы все равны 85градусам.. запускал вручную раз двадцать все результаты
>>были без малейшей погрешности (ниразу не было 85градусов) это означает что
>>с питанием все нормально... что то с кронтабом не то..подскажите кто
>>нить.. вот строка из кронтаба:
>>*/1 * *
>> *
>> * root
>> /root/temper.sh
>
>
>Люди дык кто нить подскажет.. очень надо.. почему же в ручную работает
>а через кронтаб выдает 85 градусов с каждым часом всё больше
>и больше.. в итоге все значения равны 85 ((( подскажите пж..
>У термометра DS18B20 значение температуры по умолчанию - 85 градусов. Т.е. когда он включается в памяти стоит занчение 85град. Затем термометру по интерфайсу MicroLan выдаются команды ((сброс,выбор устройства,преобразование температуры);(сброс,выбор устройства,чтение памяти)).
Возможно:
1) термометру программой не была выдана первая серия комад;
2) интервал времени между первой серией и второй слишком мал;
3) ему просто не хватает питания во время преобразования;Решение:
1,2 - необходимо править исходники программы.
3 - подключить ножку 3 к внешнему источнику питания.Писал программу на AT90S2313 с термометром DS18B20 если кому нужны исходники - вышлю.
Здравствуйте,Evgeniy .
В форуме ВЫ упомянули о том, что можете выслать исходники
программы для работы с DS18B20, написанную под AT90S2313.Если ВАС это не затруднит, то был бы ВАМ очень признателен.
>В общем обычный термометр Ds18B20.. все бы хорошо. сделал скриптец для сохранения
>температуры в файлик. когда его руками запускаю все ок. когда через
>кронтаб.. термометр часто возвращает значение 85.0 градусов в интернете прочитал что
>надо спаять 1 и 3 контакты.. пробовал соединить ..почему то разницы
>не увидил.
Может, у вас ночью температура растет? ))