101 Застосування шлюзу uart-to-i2c

Сьогодні ми розглянемо можливість використання UART-to-I2C / SPI / 1W шлюзу для підключення до комп'ютера датчиків температури DS18B20, тобто фактично будемо робити 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-порт спеціально написана програма буде спілкуватися зі шлюзом.

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

Ця програма дозволяє не тільки зчитувати дані з датчика температури, але і передавати їх по мережі. Для цього в програмі реалізований http-сервер, який розсилає лічені з датчика дані через TCP-порт. Причому, згенерувала HTML-сторінку він посилає віддаленого хосту тільки один раз, а далі пересилає тільки самі дані, що дозволяє значно економити трафік. Встановлена ​​частота оновлення даних - 1 раз в секунду.

Головне вікно програми показано на зображенні зліва. У верхній частині цього вікна вибирається потрібний com-порт. Кнопки «Connect» і «Disconnect» дозволяють встановити або розірвати зв'язок з датчиком температури.

У середній частині вікна налаштовується http-сервер. Власне кажучи, тут потрібно тільки вибрати порт, через який вилучені хости будуть підключатися до нашого сервера. Кнопки «Start» / «Stop» служать для включення / вимикання сервера.

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