Съдържание:

Калибриране на сензор DS18B20 с Arduino UNO: 3 стъпки (със снимки)
Калибриране на сензор DS18B20 с Arduino UNO: 3 стъпки (със снимки)

Видео: Калибриране на сензор DS18B20 с Arduino UNO: 3 стъпки (със снимки)

Видео: Калибриране на сензор DS18B20 с Arduino UNO: 3 стъпки (със снимки)
Видео: Remotely Monitor your Home Energy Consumption | PZEM-004T | RemoteXY IoT Cloud | FLProg 2024, Юли
Anonim
Калибриране на сензор DS18B20 с Arduino UNO
Калибриране на сензор DS18B20 с Arduino UNO
Калибриране на сензор DS18B20 с Arduino UNO
Калибриране на сензор DS18B20 с Arduino UNO
Калибриране на сензор DS18B20 с Arduino UNO
Калибриране на сензор DS18B20 с Arduino UNO

ОПРОВЕРЖЕНИЕ:

Устройството, което виждате на снимките, се използва в друг проект като термостат за процеса на разработване на филм. Можете да намерите този проект тук. За да калибрирате сензор или повече от един, ще ви трябва точно това, което ще намерите в този проект, нищо повече, а и това е доста елементарно! Да тръгваме!

Стъпка 1: Подгответе вашето устройство

Подгответе вашето устройство
Подгответе вашето устройство

Ето списък на това, от което се нуждаете:

  1. Arduino UNO (или MEGA)
  2. DS18B20 сензор (и)
  3. 4kOhm - 5kOhm съпротивление (използвах 5k1Ohm)
  4. LCD екран за четене на стойности (можете също да използвате лаптоп и просто да ги прочетете на сериен монитор)
  5. Скица, която използва сензора и показва някак стойностите

Първо трябва да свържете вашите модули и сензор към вашия контролер. Ще оставя сложната част на LCD дисплея, за да търсите в мрежата, и просто ще ви кажа как да свържете сензора.

Обикновено тези сензори се предлагат с три цветни проводника: черен, червен, жълт. Първите две са за енергия, а третата е за данните. Свържете черното към GNN, червеното към Vcc (5V) и жълтото на аналогов вход, да речем A0.

Сега свържете съпротивлението между жълтото и червеното, за да завършите връзките.

Включете и LCD (предлагам прост 16x2 LCD с i2c връзка, за да използвате само 4 проводника общо) и сте готови с проводници и кабели.

Сега скицата, която е супер проста:

#включете „OneWire.h“

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Датски температурен сензор1 (& ourWire1); #include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C LCD (0x27, 16, 2); float RawValue = 0;

void setup () {lcd.init (); lcd.backlight (); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Както можете да видите, ние използваме Dallas Temperature Library и LCD екран с i2c връзка.

В настройката ние инициираме LCD и сензор, а в цикъла просто искаме температурата и съхраняваме стойността в променливата RawValue, за да я покажем на LCD.

Ако искате да го направите по -прост, просто използвайте серийния монитор със следната скица

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Даларски температурен сензор1 (& ourWire1);

float RawValue = 0;

void setup () {

забавяне (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print ("Sens. 1"); Serial.println (RawValue, 1); }

Сега ме последвайте в основата на проекта, за да калибрирам сензора.

Стъпка 2: Калибриране в две точки

Двуточково калибриране
Двуточково калибриране
Двуточково калибриране
Двуточково калибриране
Калибриране в две точки
Калибриране в две точки

Нещо, което трябва да знаете първо

За да калибрирате термосензор, трябва да измерите нещо, от което знаете температурата. Най-простият начин да го направите у дома е да използвате вряща вода и вана с топящ се лед, наричана още баня с тройна точка. В тези случаи знаем, че водата кипи при 100 ° C на морското равнище. Имайте предвид, че за да направите точно измерване, трябва да знаете височината си и да изчислите подходящата температура на кипене там.

Можете да проверите тук!

Честно казано трябва да проверявате атмосферното налягане, а не надморската височина. Но този начин е достатъчно точен.

Ваната с тройна точка или ледената баня е температурата, при която водата съществува в трите състояния твърдо, течно и газово, тази температура е 0, 01 ° C. Ще опростим 0 ° C.

Знаейки стойността, която сензорът прочете, и стойността, която трябва да бъде, можем да променим необработената стойност на DS18B20 в нещо по -правилно.

ЗАБЕЛЕЖКА: можете също да използвате повече температура, за да калибрирате сензора, като просто го поставите в друго вещество, за което знаете точката на кипене, като етер (35 ° C), пентан (36, 1 ° C), ацетон (56 ° C) или Етанол (78, 37 ° C), но тези кипящи вещества произвеждат силно запалими газове! Така че не го правете!

Вряща вода:

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

Температурата трябва да остане същата поне една минута. Ако е така, запишете тази стойност. Това е вашата: RawHigh стойност.

Вана с три точки:

Сега вземете голяма чаша (не се нуждаете от нищо огромно, нито гърне) и я напълнете до границата с кубчета лед. Опитайте се да използвате малки кубчета лед. Сега напълнете 80% от чашата със студена вода. Напълнете отново с лед, ако лостът се опита да слезе.

Сега поставете сензора във водата/леда и изчакайте минута и половина. Прочетете температурата, която трябва да остане същата поне 30 секунди. Ако е така, запишете го, че това е вашата RawLow стойност.

Стъпка 3: Използвайте стойностите, които получавате по правилния начин

И така, сега имате някои важни ценности:

  • RawHigh
  • RawLow
  • СправкаВисоко
  • ReferenceLow

Референтната стойност очевидно е 99,9 ° C за врящата вода (на моята височина 22 м) и 0 ° C за топящата се ледена баня. Сега изчислете диапазоните за тези стойности:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Вече сте готови да използвате този сензор във всеки друг проект, като сте сигурни, че той ще ви даде правилното измерване. Как? Използвайки стойността, която сте получили тук в проекта, ще създадете с този сензор.

В бъдещия си проект ще трябва да използвате стойностите, които сте прочели в този и аз предлагам да го направите със същите имена, които използвах тук.

Декларирайте променливите преди секцията void setup () точно така:

float RawHigh = 99,6; float RawLow = 0,5; float ReferenceHigh = 99,9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

След това всеки път, когато използвате сензора, можете да използвате следната формула за изчисляване на CorrectedValue:

float CorrectedValue = ((((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue очевидно е отчитането на сензора.

Това е!

Сега знаете как да калибрирате вашия сензор DS18B20 или всеки друг сензор, който ще използвате! Забавлявай се!

Препоръчано: