Цифровой термометр DS18B20, подключение шины 1-wire к USB порту компьютера.

Очумелые ручки гидропонщиков. Чудесные и гениальные вещи, сделанные своими руками.
Ответить
Ru7tam
Зелёный друг
Сообщения: 210
Зарегистрирован: 31 мар 2015, 09:55
Откуда: Санкт-Петербург, Россия
Контактная информация:

Цифровой термометр DS18B20, подключение шины 1-wire к USB порту компьютера.

Сообщение Ru7tam » 19 сен 2015, 10:25

На современном рынке радиоэлектроники есть недорогие, но достаточно точные цифровые термометры DS18B20. Питаются - практически из воздуха, могут гирляндой висеть на одном длинным проводе, работают в диапазоне от -40 до +125. Собранные на них схемы дают возможность удаленного многоточечного контроля температуры... Но, для обычного пользователя, все эти прелести сводит на нет отсутствие возможности простого подключения такого термометра к компютеру или ноутбуку по доступному USB протоколу. При более полном изучении вопроса, оказалось, что "все не так страшно, как на самом деле": есть варианты: дорогой - использовать специализированные платы на чипе DS9097 (стоимостью от $10), либо, после небольшой доработки, использовать массово выпускаемый переходник USB-UART на чипе CP2102 (стоимостью $1.6). Вот этот второй вариант - я и хотел здесь показать. Поскольку картинки здесь (у меня) не работают - опишу словами и дам ссылку.

Использование переходника USB-UART(TTL) предлагается на различных зарубежных форумах в контексте подключения 1-wire шины к роутерам на OpenWrt, используемым по совместительству, для сбора и показа телеметрической информации через интернет. После этого попалась статья на easyelectronics, в которой была рекомендация разделить Rx и Tx диодом (катодом к Tx) и резистором 3K сделать подтяжку линии данных к Vcc.

В соответствии с данной схемой термометр DS18B20 был подсоединен к переходнику на чипе CP2102, в систему был установлена программа digitemp и все сразу заработало. Подключено два датчика DS18B20: один на расстоянии примерно 10 см от переходника UART-1-wire, второй - на расстоянии 1.5 метра.

Ubuntu 14.04 - адаптер подхватился сразу, digitemp ставится через apt-get
FreeBSD 8/9 - в конфигурации ядра должен быть драйвер "uslcom # SI Labs CP2101/CP2102 serial adapters", digitemp - из портов.
Под win32, теоретически, тоже должно заработать, но смысла проверять все экзотические комбинации я не вижу.

Описание переделки CP2102 с картинками

Ответить

Вернуться в «Очумелые ручки»