101 применение шлюза UART-to-I2C/SPI/1W (RH-0004). Часть 3

USB-термометр на DS18B20 с передачей данных по сети.

Часть 1. USB программатор микросхем EPROM с интерфейсом I2C

Часть 2. USB программатор микросхем EPROM с интерфейсом SPI

Часть 3. USB-термометр на DS18B20 с передачей данных по сети

Часть 4. USB программатор микросхем EPROM DS2430

Сегодня мы рассмотрим возможность использования UART-to-I2C/SPI/1W шлюза для подключения к компьютеру датчиков температуры DS18B20, то есть фактически будем делать USB-термометр. Причём термометр мы будем делать не простой, а с возможностью передачи данных по сети.

USB-термометр с передачей данных по сети

Нам понадобятся: шлюз UART-to-I2C/SPI/1W, USB-to-UART конвертер, датчик температуры DS18B20 фирмы Dallas, монтажные провода и специальное ПО. Конвертер USB-to-UART можно взять любой, однако лучше взять вот такой (с нашего сайта). Во-первых, его разъём UART - это ответная часть разъёма UART шлюза, поэтому для их соединения вам не придётся ничего изобретать. Во-вторых, наш конвертер позволяет не только организовать обмен данными между шлюзом и компьютером, но и запитать шлюз (причём любым напряжением: +3,3В или +5В, оба они присутствуют на разъёме конвертера как раз в нужных местах). Вариант со шлюзом и нашим USB-to-UART показан на фотографии справа.

Cоединив вместе USB-to-UART и UART-to-I2C/SPI/1W шлюз, мы, фактически, получаем уже USB-to-I2C/SPI/1W шлюз. Теперь остаётся только подключить к ниму датчик температуры. Датчик DS18B20 нужно подключать к разъёму XT3 шлюза. Это делается следующим образом: первую ногу датчика подключаем к выводу COM (минус питания), третью ногу - к выводу Supply (плюс питания) и, наконец, вторую ногу датчика - к выводу MOSI/1W/DATA (линия передачи данных). Всё, собранную схему можно втыкать в USB-порт компьютера.

Чтобы считывать с помощью собранной схемы измеряемую датчиком температуру нам осталось сделать всего две вещи:

Во-первых, нужно установить на компьютер драйвера для USB-to-UART преобразователя. Преобразователь, предлагаемый на сайте, сделан на базе чипа cp2102 фирмы silabs, дрова для него можно скачать на их официальном сайте, вот по этой ссылке.

Когда драйвера на USB-to-UART конвертер установлены - при его подключении к USB-порту у вас в диспетчере устройств будет появляться виртуальный com-порт. Именно через этот виртуальный com-порт специально написанная программа будет общаться со шлюзом.

программа для работы с USB-термометром

Во-вторых, нужно запустить специальную программу, которая при подключении с виртуальному com-порту автоматически настраивает шлюз на работу с однопроводной линией и далее периодически опрашивает подключенный к шлюзу датчик и отображает считанное с него значение температуры (ссылки для скачивания программы и её исходников можно найти в конце статьи).

Эта программа позволяет не только считывать данные с датчика температуры, но и передавать их по сети. Для этого в программе реализован http-сервер, который рассылает считанные с датчика данные через TCP-порт. Причём, сгенерированную HTML-страницу он посылает удалённому хосту только один раз, а далее пересылает только сами данные, что позволяет значительно экономить трафик. Установленная частота обновления данных - 1 раз в секунду.

Главное окно программы показано на картинке слева. В верхней части этого окна выбирается нужный com-порт. Кнопки "Connect" и "Disconnect" позволяют установить или разорвать связь с датчиком температуры.

В средней части окна настраивается http-сервер. Собственно говоря, тут нужно только выбрать порт, через который удалённые хосты будут подключаться к нашему серверу. Кнопки "Start" / "Stop" служат для включения / выключения сервера.

По умолчанию сервер использует порт 80, то есть тот, который используется для http по умолчанию всеми браузерами. Если выбрать другой порт, то его нужно будет указывать в браузере в явном виде через двоеточие после адреса (адрес:порт, например 127.0.0.1:5454).

Скачать программу ( exe ), скачать исходники ( проект под C++ Builder 6 в zip-архиве )

Программа специально выложена с исходниками, всяческие перепиливания / допиливания - приветствуются, ниже даны полезные ссылки, которые могут вам в этом помочь:

Описание протокола 1-Wire.

Список функций и регистров шлюза.

Небольшое видео, демонстрирующее работу USB-термометра.

Часть 1. USB программатор микросхем EPROM с интерфейсом I2C

Часть 2. USB программатор микросхем EPROM с интерфейсом SPI

Часть 3. USB-термометр на DS18B20 с передачей данных по сети

Часть 4. USB программатор микросхем EPROM DS2430

radiohlam.ruразноесхемы и статьи

Понравилась статья? Поделись с друзьями!

Обсудить эту статью на форуме

 
Rambler's Top100 © 2009 - Материалы сайта охраняются законом об авторском праве