Технологія датчика температури

Виготовлення цифрового термометра з цифровим датчиком температури DS18B20

Цифровий термометр датчика температури DS18B20 + Модуль термінального адаптера з набором проводів

вступ: У цій статті детально пояснюється застосування індивідуального цифрового датчика температури DS18B20 у створенні цифрового термометра. Включаючи принцип роботи, апаратне підключення, програмування програмного забезпечення та реалізація моделювання. Надайте повну схему моделювання protues, Вихідний код C і аналіз результатів, щоб допомогти читачам глибше зрозуміти та практикувати використання DS18B20.

Інформація про параметри: живлення: 3.0V – 5.5V; Регульована роздільна здатність: 9 – 12 біт; Діапазон температур: -55 ℃ до +125 ℃; Вихід : червоний (VCC), жовтий (ДАНІ), чорний (GND);
Що ви отримуєте: ви отримаєте 4 Датчики температури DS18B20, 4 модулі адаптера і 4 перемичка «мама-мама».; Адаптерний модуль має підтягуючий резистор, який може бути сумісний з Raspberry Pi без зовнішнього резистора;
Датчик температури DS18B20: розмір корпусу з нержавіючої сталі становить прибл. 6 X 50 мм/ 0.2 X 2 дюйм, і термокабель цифрової температури має загальну довжину прибл. 1 м/ 39.4 дюйм, який достатньо довгий, щоб задовольнити ваші потреби;
Якісний матеріал: зонд виготовлений з якісної нержавіючої сталі, який є водонепроникним, вологостійкий і не легко піддається іржі, щоб запобігти коротким замиканням;
Широке застосування: цей датчик температури DS18B20 сумісний з Raspberry Pi, і широко застосовується для моніторингу температури кабельної траншеї, котел, що, сільськогосподарська теплиця, чиста кімната, тощо.

Датчик температури DS18B20 -55 до +125 Градуси Цельсія, Сумісний з Raspberry Pi

Датчик температури DS18B20 -55 до +125 Градуси Цельсія, Сумісний з Raspberry Pi

Водонепроникний цифровий датчик температури DS18B20 для поверхневого монтажу

Водонепроникний цифровий датчик температури DS18B20 для поверхневого монтажу

Цифровий термометр датчика температури DS18B20 + Модуль термінального адаптера з набором проводів

Цифровий термометр датчика температури DS18B20 + Модуль термінального адаптера з набором проводів

1. Характеристики датчика DS18B20
Датчик DS18B20 відіграє ключову роль у сфері сучасного моніторингу температури. Він може вимірювати температуру з високою точністю, і його роздільну здатність можна регулювати відповідно до потреб, щоб досягти моніторингу температури з різним ступенем точності. Крім того, невеликий розмір DS18B20 робить його придатним для використання в середовищах з обмеженим простором, і його прості у використанні характеристики знижують технічний поріг від початківців до професіоналів.

Перед подальшим вивченням параметрів продуктивності DS18B20, спочатку необхідно зрозуміти принцип його роботи. DS18B20 передає дані про температуру за допомогою цифрових сигналів, що забезпечує зручність збору даних про температуру. У порівнянні з традиційними аналоговими датчиками температури, цифрові датчики, такі як DS18B20, можуть забезпечити більш точні показання та менш чутливі до шуму під час передачі сигналу.

Щоб повною мірою використовувати ці переваги DS18B20, ми повинні мати глибоке розуміння його параметрів продуктивності. Ці параметри включають діапазон вимірювання температури, точність, дозвіл, і напруга живлення. Ці параметри не тільки визначають, чи зможе DS18B20 задовольнити потреби конкретних програм, але також впливають на продуктивність і надійність усієї системи.

У цій главі, ми детально ознайомимося з параметрами продуктивності DS18B20, проаналізуйте принцип його роботи, і вивчити його переваги в різних застосуваннях. Через цей вміст, читачі отримають глибше розуміння датчиків DS18B20 і закладуть міцну основу для наступних більш складних застосувань і програмування.

2. Детальне пояснення протоколу зв’язку 1-Wire DS18B20
Причина, чому датчики DS18B20 широко використовуються, в основному пов’язана з його унікальним протоколом зв’язку – 1-Протокол дротового зв'язку. Цей протокол спрощує вимоги до апаратних з’єднань і забезпечує ефективний спосіб передачі даних. У цьому розділі детально проаналізовано робочий механізм і процес обміну даними протоколу зв’язку з 1 лінією, щоб закласти міцну основу для подальшої практики програмування..
2.1 Основи протоколу зв'язку 1-Wire
2.1.1 Особливості протоколу зв'язку 1-Wire:
DS18B20 1-Wire Communication Protocol також називається “один автобус” технології. Він має такі особливості: – Одношинне спілкування: Для двонаправленої передачі даних використовується лише одна лінія даних, що значно зменшує складність підключення в порівнянні з традиційним багатодротовим методом зв’язку датчиків. – Підключення кількох пристроїв: Підтримує підключення кількох пристроїв до однієї шини даних, ідентифікує та спілкується за допомогою ідентифікаційних кодів пристрою. – Низьке енергоспоживання: Під час спілкування, пристрій може перебувати в режимі очікування з низьким енергоспоживанням, коли не бере участі в спілкуванні. – Висока точність: З меншим часом передачі даних, це може зменшити зовнішнє втручання та підвищити точність даних.
2.1.2 Формат даних і аналіз часу 1-провідного зв'язку
Формат даних протоколу зв’язку 1-wire відповідає певному правилу синхронізації. Він включає час ініціалізації, час запису та час читання:
Час ініціалізації: Хост спочатку починає відлік часу виявлення присутності (Пульс присутності) шляхом зупинки автобуса на певний період часу, а потім датчик надсилає у відповідь імпульс присутності.
Напишіть терміни: Коли хост надсилає час запису, він спочатку тягне автобус приблизно на 1-15 мікросекунди, потім випускає автобус, і датчик затягує автобус 60-120 мікросекунди для відповіді.
Прочитайте хронометраж: Хост сповіщає датчик про надсилання даних, потягнувши шину вниз і відпустивши її, і датчик виведе біт даних на шину після певної затримки.

3. Апаратний спосіб підключення термометра
Апаратне підключення є першим і найважливішим кроком у створенні цифрового термометра. Правильне з'єднання між датчиком DS18B20 і мікроконтролером забезпечить точну передачу даних і створить міцну основу для подальшого програмування та обробки даних.. У цьому розділі детально описані принципи розробки інтерфейсу між DS18B20 і мікроконтролером і конкретні етапи підключення схеми, і охоплюють відповідний зміст джерела живлення та формування сигналу.
3.1 Інтерфейс між DS18B20 і мікроконтролером
3.1.1 Принципи проектування схем інтерфейсу
Схема інтерфейсу DS18B20 повинна відповідати декільком основним принципам, щоб забезпечити стабільну та ефективну роботу пристрою:
Стабільне живлення: DS18B20 може отримувати живлення від лінії передачі даних “DQ” (дзвонив “паразитний режим живлення”), або він може живитися незалежно від зовнішнього джерела живлення. Незалежно від того, який метод використовується, джерело живлення має бути стабільним, щоб запобігти помилкам передачі даних, викликаним коливаннями напруги.
Цілісність сигналу: Оскільки DS18B20 передає дані по одній лінії, цілісність сигналу особливо важлива. Необхідно враховувати здатність сигналу проти перешкод і відповідність електричних характеристик сигналу.
Захист ланцюга: Захист від перевантаження по струму та від електростатичного розряду (ESD) у схему схеми повинні бути включені заходи захисту, щоб уникнути пошкодження датчика або мікроконтролера.

3.1.2 Конкретні кроки підключення схеми
Підключення DS18B20 до мікроконтролера зазвичай відбувається за наступними кроками:
Підключення живлення: Підключіть висновок VDD DS18B20 до джерела живлення 3,3 В або 5 В (в залежності від рівня напруги мікроконтролера), і контакт GND до лінії заземлення.
Підключення до лінії передачі даних: Вивід DQ підключений до цифрового виводу вводу/виводу мікроконтролера. З метою забезпечення стабільності передачі даних, підтягуючий резистор можна додати між лінією даних і джерелом живлення, із типовим значенням від 4,7 кОм до 10 кОм.
Скидання та обробка імпульсу присутності: нормально, контакт скидання (RST) і штифт пульсу присутності (ПАР) DS18B20 не потрібно підключати зовні, це внутрішньо використовувані сигнали.

У цьому розділі, ми розробили базову схему, за допомогою якої датчик температури DS18B20 можна підключити до мікроконтролера. Нижче наведено приклад електричної схеми на основі Arduino Uno та відповідний опис:

блок-схема LR
DS18B20 — |VDD| 5V
DS18B20 — |GND| GND
DS18B20 — |DQ| 2
DQ — |Підтягування| 5V

Серед них, DS18B20 являє собою цифровий датчик температури, 5V - вихідна потужність мікроконтролера, GND – провід заземлення, і 2 представляє номер контакту Arduino. 2, який використовується для передачі даних. З'єднання між DQ і 5 В представляє підтягуючий резистор.


3.2 Живлення та формування сигналу
3.2.1 Вибір способу живлення
DS18B20 забезпечує два способи живлення:
Паразитний режим живлення: У цьому режимі, лінія даних (DQ) може не тільки передавати дані, але також живить DS18B20. В цей час, напруга високого рівня на лінії передачі даних має бути не менше 3,0 В, щоб забезпечити достатній струм живлення. Цей режим зазвичай використовується, коли довжина шини невелика і передача даних не надто часта.

Режим зовнішнього живлення: У цьому режимі, DS18B20 має незалежний вхід живлення VDD. Живлення від зовнішнього джерела живлення може підвищити потужність сигналу датчика та покращити здатність запобігати перешкодам, який підходить для передачі на великі відстані або частої передачі даних.

3.2.2 Фільтрація та стабілізація сигналу
Щоб забезпечити стабільність сигналу та точне зчитування даних, сигнал має бути належним чином відфільтрований і стабілізований:
Підтягуючий резистор: Підтягуючий резистор додається між лінією даних і джерелом живлення, щоб гарантувати, що лінія даних перебуває в стані високого рівня під час простою.
Схема усунення джиттера: Для усунення помилкових показань, викликаних перешкодами в лінії або миттєвими коливаннями напруги, сигнал може бути програмно усунений на стороні мікроконтролера.
Захист від ESD: Компоненти захисту від електростатичного розряду (такі як діоди TVS) додаються до портів датчиків і мікроконтролерів, щоб запобігти пошкодженню, спричиненому електростатичним розрядом.

У цьому розділі детально описано фактори, які слід враховувати при виборі джерела живлення та формування сигналу, у формі таблиці:
| Демонструвати | Паразитний режим живлення | Режим зовнішнього живлення | Опис | | — | — | — | — | | Застосовні сценарії | Короткі лінії, рідкісні дані | Довгі черги, часті дані | Виберіть відповідно до реальних сценаріїв застосування | | Стабільність електропостачання | Нижній | Вища | Для довгих ліній або високих частот рекомендується зовнішнє джерело живлення | | Вартість | Нижній | Вища | Для зовнішнього джерела живлення потрібні додаткові компоненти керування живленням | | Протиперешкода | Слабше | Сильніше | Зовнішнє джерело живлення більше підходить для середовищ із високим рівнем перешкод |

Наведені вище методи підключення та стратегії обробки сигналів можуть ефективно інтегрувати датчик температури DS18B20 у будь-яку систему мікроконтролера. У наступному розділі буде описано, як використовувати мову C для:


Практика функціонального програмування DS18B20:
4. Цифровий термометр DS18B20 з програмуванням мовою C
4.1 Основи програмування та підготовка середовища
4.1.1 Ідеї ​​дизайну програми та побудова фреймворку
Перш ніж почати писати програму цифрового термометра DS18B20 мовою C, спочатку потрібно встановити основні ідеї дизайну програми. Датчик DS18B20 зв'язується з мікроконтролером через 1-провідний протокол зв'язку. Отже, Основним завданням програми є реалізація пов'язаних операцій 1-провідного протоколу зв'язку, включаючи ініціалізацію DS18B20, відправка інструкцій, зчитування даних про температуру, і перетворення та відображення зчитаних даних.

Структура програми приблизно розділена на наступні частини:
Ініціалізація: Ініціалізуйте мікроконтролер і датчик DS18B20.
Основна петля: Містить цикл, який постійно зчитує дані датчика.
1-бібліотека функцій дротового зв'язку: Містить функції для реалізації протоколу однопровідного зв'язку.

Обробка даних: Перетворюйте необроблені дані, які повертає датчик, у зчитувані значення температури.
Виведення на дисплей: Відобразіть оброблені дані температури на РК-екрані або виведіть їх на комп'ютер через послідовний порт.

Водонепроникний температурний зонд DS18b20 з нержавіючої сталі 1-Wire 1, 2, 5 метрів

Водонепроникний температурний зонд DS18b20 з нержавіючої сталі 1-Wire 1, 2, 5 метрів

DS18B20 1-Wire цифровий датчик температури

DS18B20 1-Wire цифровий датчик температури

Комплект модуля датчика температури DS18B20 з 1 м-3,2 фута Водонепроникний цифровий зонд з нержавіючої сталі

Комплект модуля датчика температури DS18B20 з 1 м-3,2 фута Водонепроникний цифровий зонд з нержавіючої сталі

4.1.2 Побудова та налаштування середовища розробки
Для програмування та розробки цифрового термометра DS18B20, вам потрібно підготувати середовище розробки та налаштувати його відповідним чином. Нижче наведено основні кроки розвитку:

Виберіть середовище розробки: Виберіть відповідне інтегроване середовище розробки (IDE) за типом мікроконтролера, наприклад для розробки на базі мікроконтролера серії ARM Cortex-M. Ви можете використовувати Keil MDK або STM32CubeIDE.

Налаштувати компілятор: Відповідно до використовуваної IDE, налаштувати компілятор, щоб забезпечити правильну компіляцію коду мови C.
Створіть апаратну плату розробки: Виберіть відповідну плату розвитку мікроконтролера, наприклад на основі STM32, ESP32, тощо.
Підключіть розвивальну плату: Підключіть датчик DS18B20 до зазначеного виводу мікроконтролера через 1-провідний протокол зв'язку.
Напишіть код: Створіть новий проект мовою C в IDE та почніть писати програмний код.
Компіляція та налагодження: Використовуйте інструмент IDE, щоб скомпілювати код і запустити його на платі розробки для налагодження.

#включити <stdio.h>

// Оголошення бібліотеки функцій зв’язку першого рядка DS18B20
недійсний DS18B20_Init();
void DS18B20_Reset();
void DS18B20_WriteByte(unsigned char dat);
unsigned char DS18B20_ReadByte();
int DS18B20_ReadTemperature();

int main() {
// Ініціалізація датчика DS18B20
DS18B20_Тепло();
// Основна петля
поки(1) {
// Зчитайте значення температури
int temperature = DS18B20_ReadTemperature();
// Вихідне значення температури на послідовний порт або інший пристрій відображення
printf(“Поточна температура: %d\n”, температура);
}
повернення 0;
}


4.2 Реалізація програми зчитування температури DS18B20
4.2.1 Побудова бібліотеки функцій однопровідного зв'язку
Щоб реалізувати показання температури DS18B20, спочатку потрібно створити бібліотеку функцій однопровідного зв’язку. Нижче наведено методи реалізації кількох ключових функцій:

DS18B20_Тепло(): Ініціалізація синхронізації однопровідного зв’язку.
DS18B20_Скидання(): Перезавантажте датчик і виявіть його пульс.
DS18B20_WriteByte(unsigned char dat): Записати байт даних на датчик.
DS18B20_ReadByte(): Зчитати байт даних із датчика.
DS18B20_ReadTemperature(): Прочитайте температуру та переведіть її.

Реалізація бібліотеки функцій однопровідного зв’язку DS18B20 досить складна, оскільки вимагає точного контролю змін рівня контактів, щоб слідувати протоколу однопровідного зв’язку.. Нижче наведено приклад реалізації функції:
void DS18B20_Reset() {
// Однолінійна послідовність скидання зв’язку, включаючи перетягування лінії передачі даних, затримка, звільнення автобуса, і визначення пульсу присутності
// …
}

Метою цієї функції є відправлення імпульсу скидання на DS18B20. Після успішного скидання, DS18B20 поверне імпульс присутності.


4.2.2 Реалізація алгоритму зчитування температури
Зчитування значення температури датчика DS18B20 є більш складним процесом, тому що необхідно надіслати певні інструкції датчику в певний час і правильно прочитати повернуті дані. Алгоритм зчитування значення температури наступний:

Скинути датчик.
Надіслати “корабель РИМ” команда (0xCC).
Надіслати “перетворювати температуру” команда (0x44).
Дочекайтеся завершення перетворення.
Надіслати “читати реєстр” команда (0xBE).
Прочитати два байти даних температури.

Наступний код показує, як зчитувати значення температури DS18B20:

int DS18B20_ReadTemperature() {
unsigned char temp_low, temp_high;
unsigned int temp;

// Скиньте датчик і пропустіть інструкції ПЗУ
DS18B20_Скидання();
DS18B20_WriteByte(0xCC); // Пропустити команди ROM
// Надіслати команду температури перетворення
DS18B20_WriteByte(0x44);
// Дочекайтеся завершення перетворення. Тут потрібно почекати відповідно до часу перетворення DS18B20
// …

// Скиньте датчик і прочитайте дані про температуру
DS18B20_Скидання();
DS18B20_WriteByte(0xCC); // Пропустити команди ROM
DS18B20_WriteByte(0xBE); // Прочитати команду реєстру

// Прочитати два байти даних
temp_low = DS18B20_ReadByte();
temp_high = DS18B20_ReadByte();
// Об’єднайте два байти даних у 16-бітове ціле число
температура = (temp_high << 8) | temp_low;
// Повернути значення температури, відповідне перетворення на основі роздільної здатності DS18B20
зворотна темп;
}


4.2.3 Налагодження програми та обробка винятків

При написанні програми читання DS18B20, налагодження програми та обробка винятків дуже важливі. Під час налагодження, вам може знадобитися скористатися помічником з налагодження послідовного порту, щоб перевірити, чи правильне значення вихідної температури, або використовуйте логічний аналізатор для моніторингу синхронізації сигналу першої лінії зв'язку. Обробка винятків повинна враховувати апаратні збої, комунікаційні помилки, і аномальні реакції DS18B20.

Нижче наведено деякі стратегії налагодження та обробки винятків:

Перевірка даних: Після кожного читання даних, використовуйте контрольну суму або контрольний біт для підтвердження правильності даних.
Захоплення винятків: Додайте в програму механізм захоплення винятків, наприклад механізм повторної спроби тайм-ауту, скинути датчик, тощо.
Інформація про налагодження: Додайте в програму достатню інформацію про налагодження, щоб допомогти знайти проблему.
int main() {
// Ініціалізація датчика DS18B20
DS18B20_Тепло();
// Основна петля
поки(1) {
внутрішня температура;
// Зчитайте температуру та перевірте наявність помилок
температура = DS18B20_ReadTemperature();
якщо (температура < 0) {
printf(“Помилка зчитування температури!\п”);
// Ви можете вибрати повторну спробу або інші механізми обробки помилок
} інше {
printf(“Поточна температура: %d\n”, температура);
}
}
повернення 0;
}

У цьому розділі представлені основи програмування на мові C і підготовка середовища для цифрового термометра DS18B20., а також виконання програми зчитування температури, і підкреслює важливість налагодження програми та обробки винятків. Через вступ цієї гл, читачі повинні мати можливість створити середовище розробки, розуміти важливість бібліотеки функцій зв’язку першої лінії, і напишіть базову програму зчитування температури. У наступних розділах детальніше буде розглянуто побудову та використання середовища моделювання Proteus, надання методу імітаційного тестування для фактичного складання обладнання.


5. Діаграма моделювання Proteus та аналіз результатів моделювання
5.1 Побудова середовища моделювання Proteus
5.1.1 Основні операції програмного забезпечення Proteus
Перед початком створення імітаційної моделі цифрового термометра DS18B20, вам спочатку потрібно зрозуміти та освоїти основні операції програмного забезпечення Proteus. Proteus — це потужне програмне забезпечення для моделювання електронних схем, яке може не лише проектувати схеми схем, але також проектувати схеми друкованих плат і надавати функції моделювання. Ось кілька ключових кроків, які допоможуть вам розпочати роботу з Proteus:

Відкрийте програмне забезпечення Proteus і створіть новий проект.
Знайдіть і виберіть необхідні компоненти в бібліотеці компонентів, такі як датчики DS18B20, мікроконтролери, джерела живлення, з'єднувальні дроти, тощо.
Перетягніть вибрані компоненти в область дизайну та за допомогою миші розмістіть і розмістіть їх.
Використовуйте монтажний інструмент, щоб з’єднати контакти кожного компонента, щоб утворити повну схему.
Двічі клацніть компонент або провід, щоб змінити його властивості, наприклад значення опору, напруга живлення, тощо.

Переконайтеся, що всі компоненти підключено правильно, і перевірте на наявність помилок або упущень.

5.1.2 Створіть проект симуляції DS18B20
Кроки для створення проекту моделювання для цифрового термометра DS18B20 такі::

Запустіть Proteus і виберіть “Новий проект” щоб створити новий проект.
Після встановлення назви та розташування проекту, натисніть “Далі”.
Виберіть шаблон проекту, такі як “На основі мікропроцесора”, і натисніть “Далі”.
в “Елементи проекту” вкладка, перевірити “Включати компоненти за замовчуванням” і виберіть мікроконтролер (наприклад PIC, AVR, тощо) і датчик DS18B20.
Натисніть “Закінчити” завершити створення проекту.

Далі, створити електричну схему:
Виберіть “ВИБЕРІТЬ ПРИСТРІЙ” інструмент, знайдіть і виберіть мікроконтролер і датчик DS18B20 в бібліотеці компонентів.
Використовуйте “МІСЦЕ ПРИСТРІЙ” інструмент для розміщення вибраного компонента в області дизайну.
Використовуйте “ДРІТ” інструмент для підключення мікроконтролера та відповідних контактів датчика DS18B20.
Після завершення підключення, використовувати “ТЕКСТ” інструмент для додавання приміток до схеми для легкого розуміння та модифікації.

5.2 Тест моделювання та аналіз даних
5.2.1 Встановіть параметри та умови моделювання
Перед початком моделювання, вам потрібно встановити параметри та умови для запуску моделювання:
Двічі клацніть компонент мікроконтролера, щоб увійти в інтерфейс налаштування властивостей.
Виберіть раніше записаний шлях файлу програми за адресою “Програмний файл”.
Встановіть параметри джерела живлення, щоб мікроконтролер і датчик DS18B20 мали правильну напругу живлення.
Далі, встановити часові параметри для моделювання:
На панелі керування моделюванням, вибрати “Глобальні налаштування”.
Налаштуйте швидкість моделювання та максимальний час моделювання.
Встановіть відповідні контрольні точки для аналізу даних під час процесу моделювання.

5.2.2 Моделювати та читати дані про температуру
Запустіть моделювання та моделюйте дані температури:
Натисніть на “грати” кнопку на панелі керування симуляцією, щоб розпочати симуляцію.
Використовуйте “НАЛАШТУВАННЯ” інструмент для перегляду стану виконання програми та значень змінних.
Змоделюйте датчик DS18B20, щоб зчитати значення температури, що зазвичай досягається модифікацією віртуального термометра в середовищі моделювання.

Для читання даних про температуру в симуляції, ви можете звернутися до наступних кроків:
Знайдіть параметри імітації температури у властивостях компонента DS18B20.
Змініть значення температури, щоб перевірити реакцію системи за різних температурних умов.
Подивіться, як програма мікроконтролера обробляє дані про температуру.

5.2.3 Аналіз результатів і усунення несправностей
Проаналізуйте результати моделювання та підтвердьте роботу термометра:
Слідкуйте за даними у вікні виводу, щоб перевірити, чи точні показники температури.
Використовуйте інструмент логічного аналізатора, щоб перевірити, чи процес передачі даних є нормальним.
Перевірте наявність аномальних сигналів або нестабільних виходів.

Виконайте діагностику та усунення несправностей:
Якщо показання температури неточні або є помилка, перевірте спосіб підключення та конфігурацію DS18B20.
Проаналізуйте програмний код, щоб переконатися, що зв’язок першої лінії та алгоритми перетворення даних реалізовано правильно.
Використовуйте “СТІЙ” функція програмного забезпечення моделювання для призупинення моделювання та спостереження за поточним станом системи.