Найти в Дзене
V-Digital Technologies

Безынерционное измерение температуры воздуха ультразвуком

Оглавление

Приветствуем читателей!

Мы любим нестандартные решения. Сейчас мы покажем, как измерять температуру воздуха с помощью ультразвука. На это нас подтолкнул один наш знакомый. Изучив информацию и сделав это, мы делимся с вами!

1. Собираем схему:

-2

Схема до безобразия проста — берем Arduino (мы взял Nano) и подключаем к нему ультразвуковой дальномер (pin 2 — Echo, pin 4 — Trig). Я использовал US-020, так как он более дальнобойный и дает более стабильные показания чем HC-SR04.

2. Заливаем скетч:

#define Trig 4

#define Echo 2

#define Steps

static const float defDist = 173.2;//cm

static const float defTemp = 17.0;//Celsius

void setup()

{

pinMode(Trig, OUTPUT);

pinMode(Echo, INPUT);

Serial.begin(57600);

}

unsigned long impulseTime=0;

void loop()

{

float dist = 0;

for (int i = 0; i <50; i++)

{

float distance_sm=0;

digitalWrite(Trig, HIGH);

delayMicroseconds(10);

digitalWrite(Trig, LOW);

impulseTime=pulseIn(Echo, HIGH);

distance_sm=float(impulseTime)/58.0;

dist += distance_sm;

delay(50);

}

dist /= 50.0;

Serial.println(«Distance:» + String(dist));

float Speed_of_sound = defDist/dist * sqrt(1.4*287.0*(273.15 + defTemp));//c = sqrt(X*R*T)

Serial.println(«Temp:» + String((Speed_of_sound*Speed_of_sound)/(1.4*287.0) — 273.15));//T = (c*c)/(X*R) in Kelvin

}

3. Размещаем схему:

Располагаем ультразвуковой сонар в направлении какого-нибудь препятствия на дистанции порядка двух-трех метров (меньше — хуже точность, больше — сонар может не поймать эхо) и надежно фиксирует. Мы сделали 3д модель корпуса, но до печати на 3д принтере ручки не дошли.

-3

Но также можно использовать расстояние от стола до потолка. Запускаем, смотрим дистанцию в мониторе последовательного порта. Правим скетч — заменяем defDist и defTemp на свои показания дистанции и текущей температуры. Стартовую температуру придется замерять, или указать на глаз. Опять прошиваем.

4. Снимаем результаты:

Все, в мониторе порта смотрим температуру воздуха между датчиком и препятствием:

-4

5. А теперь пояснение «уличной магии».

Согласно учебникам физики:

Скорость звука в газах зависит только от температуры (немного влажности) и почти не зависит от давления газа.

И эта зависимость выражается формулой:

c = sqrt(X*R*T), где:

с — скорость звука, м/c

Х — показатель адиабаты

R — газовая постоянная, Дж/кг·К

Замеряя время отклика сонара и сравнивая его со стандартным, можно легко посчитать скорость звука. А зная скорость так же легко вычисляем температуру. Для большей точности усредняем показания датчика за 50 замеров.

В системе отсутствует инерционный тепловой элемент, которому нужно время на нагрев либо охлаждение до температуры среды. Поэтому полностью отсутствует инерционность измерения — если проветрить комнату, то показания меняются очень резво. Точность, конечно, не ахти — порядка 0,5 градуса, но зато не так как у всех.


Заключения

Всем хорошего времени суток и удачных экспериментов!