Технология на температурен сензор

Изработка на цифров термометър с цифров температурен сензор DS18B20

DS18B20 Температурен сензор Цифров термометър Сонда + Терминален адаптерен модул с комплект кабели

Въведение: Тази статия обяснява подробно приложението на персонализиран цифров температурен сензор DS18B20 при изграждането на цифров термометър. Включително принцип на работа, хардуерна връзка, софтуерно програмиране и внедряване на симулации. Предоставете пълна диаграма за симулация на protues, C изходен код и анализ на резултатите, за да помогнат на читателите да разберат задълбочено и да практикуват използването на DS18B20.

Информация за параметрите: захранване: 3.0V – 5.5V; Регулируема резолюция: 9 – 12 малко; Температурен диапазон: -55 ℃ до +125 ℃; Изход : Червено (VCC), жълто (ДАННИ), Черно (GND);
Какво получавате: ще получите 4 Температурни сензори DS18B20, 4 адаптерни модули и 4 джъмперни проводници от женски към женски; Адаптерният модул има издърпващ резистор, който може да бъде съвместим с Raspberry Pi без външен резистор;
Сензор за температура DS18B20: размерът на корпуса от неръждаема стомана е прибл. 6 х 50 mm/ 0.2 х 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 комуникационен протокол също се нарича “единичен автобус” технология. Има следните характеристики: – Комуникация с единична шина: За двупосочно предаване на данни се използва само една линия за данни, което значително намалява сложността на окабеляването в сравнение с традиционния многожичен сензорен метод за комуникация. – Връзка с множество устройства: Поддържа свързване на множество устройства към една шина за данни, и идентифицира и комуникира чрез идентификационни кодове на устройства. – Ниска консумация на енергия: По време на комуникация, устройството може да бъде в състояние на готовност с ниска мощност, когато не участва в комуникация. – Висока прецизност: С по-кратко време за предаване на данни, може да намали външната намеса и да подобри точността на данните.
2.1.2 Формат на данните и анализ на времето на 1-wire комуникация
Форматът на данните на 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.3V или 5V захранване (в зависимост от нивото на напрежение на микроконтролера), и щифта GND към заземителната линия.
Връзка с линия за данни: DQ щифтът е свързан към цифров I/O щифт на микроконтролера. За да се гарантира стабилността на предаването на данни, може да се добави издърпващ резистор между линията за данни и захранването, с типична стойност от 4,7kΩ до 10kΩ.
Нулиране и обработка на импулс за присъствие: Нормално, щифта за нулиране (RST) и щифт за импулс за присъствие (ПАР) на DS18B20 не е необходимо да се свързват външно, те са вътрешно използвани сигнали.

В този раздел, проектирахме основна схема, чрез която температурният сензор DS18B20 може да бъде свързан към микроконтролер. Следва примерна електрическа схема, базирана на Arduino Uno и съответното описание:

блок-схема LR
DS18B20 — |VDD| 5V
DS18B20 — |GND| GND
DS18B20 — |DQ| 2
DQ — |Набиране| 5V

Сред тях, DS18B20 представлява цифров температурен сензор, 5V е изходната мощност на микроконтролера, GND е заземяващият проводник, и 2 представлява щифт № на Arduino. 2, който се използва за предаване на данни. Връзката между DQ и 5V представлява издърпващия резистор.


3.2 Захранване и регулиране на сигнала
3.2.1 Избор на начин на захранване
DS18B20 осигурява два метода на захранване:
Паразитен режим на захранване: В този режим, линията за данни (DQ) може не само да предава данни, но също така захранва DS18B20. По това време, високото напрежение на линията за данни трябва да бъде поне 3,0 V, за да се осигури достатъчен захранващ ток. Този режим обикновено се използва, когато дължината на шината е малка и предаването на данни не е твърде често.

Режим на външно захранване: В този режим, DS18B20 има независим вход за захранване VDD. Захранването с външно захранване може да подобри силата на сигнала на сензора и да подобри способността за защита от смущения, който е подходящ за предаване на дълги разстояния или често предаване на данни.

3.2.2 Филтриране и стабилизиране на сигнала
За да се осигури стабилност на сигнала и точно четене на данните, сигналът трябва да бъде правилно филтриран и стабилизиран:
Издърпващ резистор: Изтеглящият резистор се добавя между линията за данни и захранването, за да се гарантира, че линията за данни е в състояние на високо ниво, когато е неактивна.
Верига за премахване на трептенията: За да се елиминират грешни показания, причинени от смущения в линията или моментни колебания на напрежението, сигналът може да бъде софтуерно премахнат от страна на микроконтролера.
ESD защита: Компоненти за ESD защита (като TVS диоди) се добавят към портовете на сензори и микроконтролери, за да предотвратят повреда, причинена от електростатичен разряд.

Този раздел допълнително разработва факторите, които трябва да се имат предвид при избора на захранване и кондициониране на сигнала под формата на таблица:
| Проект | Паразитен режим на захранване | Режим на външно захранване | Описание | | — | — | — | — | | Приложими сценарии | Къси линии, редки данни | Дълги опашки, чести данни | Изберете според реалните сценарии на приложение | | Стабилност на захранването | По-ниска | По-високо | Препоръчва се външно захранване за дълги линии или високи честоти | | Разходи | По-ниска | По-високо | Външното захранване изисква допълнителни компоненти за управление на захранването | | Анти-намеса | По-слаб | По-силен | Външното захранване е по-подходящо за среди с високи смущения |

Горните методи за свързване и стратегии за обработка на сигнали могат ефективно да интегрират температурния сензор DS18B20 във всяка микроконтролерна система. Следващата глава ще представи как да използвате езика C за:


Практика на функционално програмиране на DS18B20:
4. DS18B20 цифров термометър Програмиране на C език
4.1 Основа за програмиране и подготовка на среда
4.1.1 Идеи за проектиране на програма и изграждане на рамка
Преди да започнете да пишете програмата на език C на цифровия термометър DS18B20, първо трябва да установите основните идеи за програмния дизайн. Сензорът DS18B20 комуникира с микроконтролера чрез 1-проводен комуникационен протокол. Следователно, основната задача на програмата е да реализира свързаните операции на 1-wire комуникационния протокол, включително инициализиране на DS18B20, изпращане на инструкции, четене на температурни данни, и конвертиране и показване на прочетените данни.

Рамката на програмата е грубо разделена на следните части:
Инициализация: Инициализирайте микроконтролера и сензора DS18B20.
Основен контур: Съдържа цикъл, който непрекъснато чете данни от сензора.
1-библиотека с жични комуникационни функции: Съдържа функции за реализиране на еднопроводния комуникационен протокол.

Обработка на данни: Преобразувайте необработените данни, върнати от сензора, в четими температурни стойности.
Изход на дисплея: Покажете обработените данни за температурата на LCD екрана или ги изведете към компютъра през серийния порт.

Водоустойчива температурна сонда DS18b20 от неръждаема стомана 1-проводна 1, 2, 5 метра

Водоустойчива температурна сонда DS18b20 от неръждаема стомана 1-проводна 1, 2, 5 метра

DS18B20 1-проводен цифров температурен сензор

DS18B20 1-проводен цифров температурен сензор

DS18B20 Комплект модул за температурен сензор с 1 m-3,2 Ft водоустойчива цифрова сонда от неръждаема стомана

DS18B20 Комплект модул за температурен сензор с 1 m-3,2 Ft водоустойчива цифрова сонда от неръждаема стомана

4.1.2 Изграждане и конфигуриране на среда за разработка
За да програмирате и разработите цифровия термометър DS18B20, трябва да подготвите средата за разработка и да я конфигурирате по подходящ начин. Следват основните стъпки за развитие:

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

Конфигурирайте компилатора: Според използваната IDE, конфигурирайте компилатора, за да гарантирате, че кодът на езика C може да бъде компилиран правилно.
Изградете платката за разработка на хардуер: Изберете подходяща платка за разработка на микроконтролер, като например на базата на STM32, ESP32, и т.н.
Свържете развойната платка: Свържете сензора DS18B20 към посочения щифт на микроконтролера чрез 1-проводен комуникационен протокол.
Напишете код: Създайте нов проект на език C в IDE и започнете да пишете програмен код.
Компилиране и отстраняване на грешки: Използвайте инструмента IDE, за да компилирате кода и да го стартирате на платката за разработка за отстраняване на грешки.

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

// DS18B20 декларация на библиотека с комуникационни функции на първи ред
void DS18B20_Инициал();
void DS18B20_Нулиране();
void DS18B20_WriteByte(неподписан char dat);
неподписан символ DS18B20_ReadByte();
int DS18B20_ReadTemperature();

int main() {
// Инициализирайте сензора DS18B20
DS18B20_Топлина();
// Основен контур
докато(1) {
// Прочетете стойността на температурата
вътрешна температура = DS18B20_ReadTemperature();
// Изходна стойност на температурата към сериен порт или друго дисплейно устройство
printf(“Текуща температура: %d\n”, температура);
}
връщане 0;
}


4.2 Реализация на програма за отчитане на температурата DS18B20
4.2.1 Изграждане на функционална библиотека за еднопроводна комуникация
За да се реализира отчитането на температурата на DS18B20, първо трябва да изградите библиотека с функции за едножична комуникация. По-долу са методите за изпълнение на няколко ключови функции:

DS18B20_Топлина(): Инициализирайте времето за едножична комуникация.
DS18B20_Нулиране(): Нулирайте сензора и открийте неговия пулс.
DS18B20_WriteByte(неподписан char dat): Запишете байт данни в сензора.
DS18B20_ReadByte(): Прочетете байт данни от сензора.
DS18B20_ReadTemperature(): Прочетете температурата и я преобразувайте.

Внедряването на функционалната библиотека за едножични комуникации на DS18B20 е доста сложно, защото изисква прецизен контрол на промените в нивото на щифтовете, за да следва протокола за едножична комуникация. Следното е пример за изпълнение на функция:
void DS18B20_Нулиране() {
// Едноредова последователност за нулиране на комуникация, включително издърпване на линията за данни, забавяне, освобождаване на автобуса, и откриване на пулса за присъствие
// …
}

Целта на тази функция е да изпрати импулс за нулиране към DS18B20. След като нулирането е успешно, DS18B20 ще върне импулс за присъствие.


4.2.2 Внедряване на алгоритъма за отчитане на температурата
Отчитането на температурната стойност на сензора DS18B20 е по-сложен процес, защото е необходимо да се изпратят конкретни инструкции към сензора в определен момент и да се прочетат правилно върнатите данни. Алгоритъмът за отчитане на стойността на температурата е както следва:

Нулирайте сензора.
Изпратете “кораб РИМ” команда (0xCC).
Изпратете “конвертиране на температурата” команда (0x44).
Изчакайте преобразуването да завърши.
Изпратете “чете регистър” команда (0xBE).
Прочетете два байта данни за температурата.

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

int DS18B20_ReadTemperature() {
unsigned char temp_low, температура_висока;
unsigned int temp;

// Нулирайте сензора и пропуснете инструкциите за ROM
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 = (температура_висока << 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.
Анализирайте програмния код, за да се уверите, че комуникацията на първа линия и алгоритмите за преобразуване на данни са внедрени правилно.
Използвайте “Спрете” функция на софтуера за симулация за пауза на симулацията и наблюдение на текущото състояние на системата.