Оглавление:

Измеритель индекса Warmte: 11 шагов
Измеритель индекса Warmte: 11 шагов

Видео: Измеритель индекса Warmte: 11 шагов

Видео: Измеритель индекса Warmte: 11 шагов
Видео: Турбина питания РЛС - 9И56 - каков КПД этого двигателя ? 2024, Июль
Anonim
Измеритель индекса Warmte
Измеритель индекса Warmte

Met deze инструктируемый kun je je eigen warmte index meter maken.

Een warmte index meter geeft de gevoelstemperatuur aan op base van de omgevingstemperatuur en de luchtvochtigheid.

Deze meter is bedoeld voor binnen maar kan buiten worden gebruikt mits er geen neerslag valt en er een windvrij plekje wordt gebruikt.

Запасы

- Частица Фотон с макетной платой

- Температурный датчик (TMP36)

- Afstandssensor voor afstanden tussen 10 и 20 см.

- Внешний аккумулятор

- стойкость 220 Ом

- Макетные рисунки, 9+

- телефон Mobiele + компьютер

- Паарденхаар

- Hout en houtlijm

- Gereedschap: Boormachine / schroevendraaier, zaag en vijl

- Зип

- 2 потлодень- Курк

- Картонное платье + остроумие

- Gewichtjes, denk aan kleine loodjes of Metalen Plaatjes

Вариант:

- LCD scherm + потенциометр 10 кОм + draadjes папа / женщина, 12

- Лучтвохтигайдметр

- Температурметр - Rolmaat

Шаг 1: Де Фотон Инстеллен

Де Фотон Инстеллен
Де Фотон Инстеллен
Де Фотон Инстеллен
Де Фотон Инстеллен

Бенодигдхеден: - Телефон Mobiele

- Фотон

- компьютер

Загрузите приложение для частиц на телефоне и сделайте так, чтобы аккаунт частиц.

Остановите de usb-kabel van de photon в компьютере, требуйте de photon en stel de wifi in.

Дит кан через setup.particle.io.

Шаг 2: Паарденхаар

Paardenhaar
Paardenhaar

Бенодигдхеден: - Паард

Voor het maken van de haar-гидрометр heb je een ontvette paardenhaar nodig van bij voorkeur minimaal 60 см

De haren kunnen worden afgeknipt, of uit de staart / manen worden getrokken (op eigen risico).

Шаг 3: Maak Een Horizontale Opstelling встретил Daaraan Een Kastje

Maak Een Horizontale Opstelling Met Daaraan Een Kastje
Maak Een Horizontale Opstelling Met Daaraan Een Kastje
Maak Een Horizontale Opstelling Met Daaraan Een Kastje
Maak Een Horizontale Opstelling Met Daaraan Een Kastje
Maak Een Horizontale Opstelling Met Daaraan Een Kastje
Maak Een Horizontale Opstelling Met Daaraan Een Kastje

Бенодигдхеден: - Зип

- Hout + lijm

- Gereedschap

Maak een ombouw waarbij de paardenhaar Horizontaal kan worden gespannen en die tegelijkertijd enige bescherming biedt

Ontvet de paardenhaar

Span de haar Horizontaal, bij voorkeur minimaal 50 см. Zorg dat er genoeg haar over is om de hefboom en het gewicht te bevestigen (zie volgende stap)

Шаг 4: Maak Een Kastje Voor De Photon En LCD-scherm

Maak Een Kastje Voor De Photon En LCD-scherm
Maak Een Kastje Voor De Photon En LCD-scherm

Бенодигдхеден: - Hout en houtlijm

- Gereedschap: zaag

Maak een simpele houten bak zonder deksel met een houten plank die in het swaat als een divider. Op deze plank moet het layout met de photon passen als de bak op zijn zijkant wordt gezet. Daarnaa кан ан де ондеркант ван де бак еен gat worden gemaakt voor het LCD-scherm. Dit gat moet parallel zijn met het plankje dat in de bak is gezet. Альс де бак Клаар - это кан дезе оп zijn zijkant naast de haar worden gezet aan de kant waar de gewichtjes aan de haar hangen.

Шаг 5: Маак Ен Хефбум

Маак Ен Хефбум
Маак Ен Хефбум
Маак Ен Хефбум
Маак Ен Хефбум

Бенодигдхеден: - 2 потлодена

- Курк

- Картонное платье + остроумие

- Gewichtjes

- Gereedschap: vijl en boor

Boor een gat in het kastje en plaats het korte potlood. Het lange potlood dient uitgevijld te worden zodat deze op het korte potlood kan balanceren.

Plak een wit velletje papier onder een plaatje (in dit geval karton) en plaats deze aan het uiteinde van de hefboom.

Verbind de paardenhaar aan de hefboom en balanceer deze uit met een gewichtje (zie afbeelding 3 ringen).

Шаг 6: Plaats De Afstandmeter Onder Het (kartonnen) Plaatje

Plaats De Afstandmeter Onder Het (картон) Plaatje
Plaats De Afstandmeter Onder Het (картон) Plaatje
Plaats De Afstandmeter Onder Het (картон) Plaatje
Plaats De Afstandmeter Onder Het (картон) Plaatje

Бенодигдхеден:

- Afstandsensor

- Opzetstukje (опция)

- Extra draad en soldeer set (опция)

Bij voorkeur met een afstand van minimaal 12 cm bij een relatieve luchtvochtigheid van + - 60%.

Indien nodig op een opzetstukje.

Als de bedrading van de afstandssensor niet de houten bak halen zullen deze eerst verlengd moeten word.

Шаг 7: Код Шрайвена

Бенодигдхеден: - Компьютер встретил учетную запись частиц

Ga naar build.particle.io en maak een nieuwe app aan. Noem deze bijvoorbeeld HeatIndex.

Дополнительные библиотеки, zoek LiquidCrystal и импортировать файлы в приложение.

Dan kan de volgende code gekopieerd worden в приложении:

Lees de comments goed door as je wilt grijpen wat elk stukje code precies doet.

Ook als er een problem optreedt is het go de comments te raadplegen.

// Включаем следующие библиотеки: #include #include

// Выводы аналогового чтения для всех датчиков в этой сборке:

int tempSensor = A0; int disSensor = A1;

// Правила публикации:

// Время задержки и название события для публикации. // Время задержки в миллисекундах. int delayTime = 15000; Строка eventName = "Фактическая_Температура";

/////////////////////////////////////////////////

// Код жидкокристаллического дисплея ///////////// /////////////////////////////// ////////////////// // Инициализируем дисплей с выводами данных LiquidCrystal lcd (D5, D4, D3, D2, D1, D0);

// Устанавливаем границы значений теплового индекса

int caution = 27; int eCD = 33; int опасность = 40; int extreme = 52;

// Возвращает сообщение для значения удельного теплового индекса.

Строковое сообщение (int hI) {if (hI <caution) {return "No caution."; } if (hI <eCD) {return "Внимание!"; } if (hI <опасность) {return "Крайняя осторожность!"; } if (hI <extreme) {вернуть "Опасно !!"; } return «КРАЙНАЯ ОПАСНОСТЬ !!»; }

// Сообщение во второй строке дисплея.

Строка message2 = "Фактический T:";

//////////////////////////////////////////////////////

// Код датчика расстояния ///////////////////////////// //////////////// ////////////////////////////////////// // Минимальное и максимальное исходные значения, возвращаемые датчиком. int minD = 2105; int maxD = 2754;

// Фактические необработанные значения, возвращаемые датчиком каждые 5 мм.

int ten = 2754; int tenP = 2691; int одиннадцать = 2551; int elevenP = 2499; int двенадцать = 2377; int twelveP = 2276; int тринадцать = 2206; int thirteenP = 2198; int четырнадцать = 2105;

// Возвращает расстояние в см, принадлежащее исходному значению, для каждых 5 мм.

float getDis (int число) {переключатель (число) {case 2754: return 10; case 2691: возврат 10,5; case 2551: return 11; case 2499: return 11,5; case 2377: return 12; case 2276: возврат 12,5; case 2206: return 13; case 2198: return 13,5; case 2105: return 14; }}

// Вычисляет фактическое расстояние в см, которое зафиксировал датчик расстояния.

float calculateDis (начало целого числа, остановка числа с плавающей запятой, измерение целого числа) {расстояние с плавающей запятой = getDis (начало); шаг поплавка = (стоп - старт) / 10; for (int i = 0; i <5; i ++) {if (измерение = (start-step)) {расстояние возврата; } start = start - шаг; расстояние = расстояние + 0,1; }}

// Проверяет большие границы, между которыми находится датчик расстояния.

float distance (int measure) {// Если датчик расстояния не находился между 10 и 14 см, // мы не знаем фактического расстояния и возвращаем 10. if (измерение maxD) {return 10.0; } if (измерение <= thirteenP) {return calculateDis (thirteenP, четырнадцать, измерение); } if (измерение <= тринадцать) {return calculateDis (тринадцать, тринадцатьP, измерение); } if (измерение <= twelveP) {return calculateDis (twelveP, тринадцать, измерение); } if (измерение <= двенадцать) {вернуть calculateDis (двенадцать, двенадцатьP, измерение); } if (измерение <= elevenP) {return calculateDis (одиннадцатьP, двенадцать, измерение); } if (измерение <= одиннадцать) {вернуть calculateDis (одиннадцать, одиннадцатьP, измерение); } if (измерение <= tenP) {return calculateDis (tenP, одиннадцать, измерение); } if (измерение <= десять) {вернуть calculateDis (десять, tenP, измерение); } // Код никогда не должен попадать сюда. возврат -2; }

///////////////////////////////////////////////////////////////////////////////////////

// Код датчика температуры ///////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// / // Максимальное напряжение в мВ, используемое для датчика температуры. float maxV = 3300.0;

// Базовое напряжение и соответствующая температура, возвращаемые датчиком температуры.

// Напряжение в мВ. int baseV = 750; int baseT = 25;

// Рассчитывает температуру по измеренному значению на аналоговом выводе.

float calculateTemp (int измерение) {напряжение float = ((maxV / 4096) * измерение); float diff = baseV - напряжение; float temp = baseT - (diff / 10); возвратная температура; }

///////////////////////////////////////////////////

// Расчет влажности ///////////////////////// ///////////////////// ////////////////////////////// // Переменные для расчета влажности, // поступают от реальных датчиков влажности. поплавок h15 = 10,0; поплавок h30 = 10,5; поплавок h60 = 11,5; поплавок h75 = 12,0; поплавок h90 = 12,5; шаг поплавка H = 0,167;

// Возвращает относительную влажность для определенного диапазона расстояний.

int CalculHum (float dis, float lowH, float highH, int start) {float diff = dis - lowH; float i1 = diff / stepH; int i = раунд (i1); int output = (начало + (5 * я)); возвратный вывод; }

// Возвращает относительную влажность.

int влажность (float dis) {if (dis <= h30) {return calculateHum (dis, h15, h30, 15); } если (dis <= h60) {return calculateHum (dis, h30, h60, 30); } if (dis <= h75) {return calculateHum (dis, h60, h75, 60); } если (dis <= h90) {return calculateHum (dis, h75, h90, 75); } return 100; }

///////////////////////////////////////////////////

// Формула теплового индекса ///////////////////////////// //////////////// /////////////////////////////////// // Константы, используемые в формуле теплового индекса float c1 = -8.78469475556; поплавок c2 = 1.61139411; float c3 = 2.33854883889; поплавок c4 = -0,14611605; поплавок c5 = -0.0123008094; float c6 = -0.0164248277778; float c7 = 0,002211732; float c8 = 0,00072546; float c9 = -0.000003582;

// Формула теплового индекса, которая принимает температуру и относительную влажность.

float heatIndex (float t, int h) {return c1 + (c2 * t) + (c3 * h) + (c4 * t * h) + (c5 * t * t) + (c6 * h * h) + (c7 * t * t * h) + (c8 * t * h * h) + (c9 * t * t * h * h); }

///////////////////////////////////////////////////////////////////////////////

// Прочие функции / переменные ////////////////////////////////////////// ////// ////////////////////////////////////////// /////////////////////////////////// // Возвращает строковое представление числа с плавающей запятой, округленное до одного десятичного знака. Строка rOne (число с плавающей запятой) {значение int = круглое (число * 10); Строковый вывод = (Строка) значение; конец символа = вывод [strlen (вывод) -1]; int left = значение / 10; String begin = (String) left; return begin + "." + конец; }

//////////////////////////////////////////////////////////////////////////////

/ Весь код здесь должен быть запущен один раз на Photon перед запуском функций цикла.

void setup () {// Устанавливаем количество столбцов и строк на ЖК-дисплее: lcd.begin (16, 2); }

// Весь код здесь зациклен и должен содержать получение данных, их уточнение и перевод в оперативный режим.

void loop () {// Получаем температуру и влажность. float temp = calculateTemp (analogRead (tempSensor)); float dis = distance (analogRead (disSensor)); int hum = влажность (дис); String humid = (String) гул; // Рассчитываем тепловой индекс. float hI = heatIndex (temp, hum); // Устанавливаем строку вывода и выводим все сообщения на ЖК-дисплей. Строковый вывод = rOne (hI); lcd.setCursor (0, 0); lcd.print (сообщение (раунд (hI))); lcd.setCursor (0, 1); lcd.print (message2 + output + "C"); выход = выход + "" + влажный; // Публикуем значения теплового индекса в Интернете и ждем, прежде чем снова зацикливаться. Particle.publish (имя события, вывод); задержка (delayTime); }

Шаг 8: Verbind De Photon

Вербинд де Фотон
Вербинд де Фотон
Вербинд де Фотон
Вербинд де Фотон
Вербинд де Фотон
Вербинд де Фотон
Вербинд де Фотон
Вербинд де Фотон

Бенодигдхеден:

- Фотон на макетной плате

- Температурный датчик

- стойкость 220 Ом

- Afstandssensor

- LCD-scherm en потенциометр 10 кОм (опция)

- Генуэгские макеты, 9+

- Джемпер мужской / женский драаджи, 12 (опция)

Verbindt de 3.3V van de photon met de + rails aan dezelfde kant en verbindt de ground an de - rails.

Verbindt de 5V van de photon an de andere kant an de + rails aan die kant.

Stop de temperatuursensor ergens встретил genoeg ruimte eromheen в своем макете.

Вербиндт де аналоговый выходной датчик температуры встретил A0 ван де фотон и земля встретила рельсы земли.

Подставка для входного сигнала датчика и вербинд, выдерживает нагрузку на шины 3,3 В.

Дефектный датчик может быть использован как входной сигнал в шинах 3,3 В, которые останавливаются, заземляются в заземляющих шинах и аналоговом выходе в A1 van de photon te stop.

Еще одна тема: LCD-scherm wilt aansluiten werkt dat als volgt:

1. Потенциометр на макетной плате должен соответствовать 5В на земле.

2. Вязаный джемпер draadjes aan het LCD-scherm waarbij pin 1 het dichtsbij de rand van het scherm is.

Контакты 1, 5 и 16 van de LCD naar ground. Контакт 2 ан 15 наар 5В.

Потенциометр с аналоговым выходом, средний контакт, соответствует контакту 3 van de LCD.

3. Возможность использования фотонных контактов на контактах ЖК-дисплея и переключателях.

Штифт D5 naar Контакт 4

Штифт D4 наар Штифт 6

Штифт D3 наар Штифт 11

Штифт D2 наар Штифт 12

Пин D1 naar Вывод 13

Пин D0 naar Вывод 14

Также фотон может использоваться с потенциометром, чтобы получить больше информации о ЖК-экране.

Шаг 9: Plaats De Photon En Het LCD-Scherm в De Opstelling

Plaats De Photon En Het LCD-Scherm в De Opstelling
Plaats De Photon En Het LCD-Scherm в De Opstelling

Бенодигдхеден: - Powerbank (опция)

Nu de photon klaar voor gebruik is kan deze op het plankje in de bak geplaatst worden en het LCD-scherm kan tegen het gat geplakt worden. Это происходит в тот момент, когда фотон де латен драен оп een powerbank maar dit is natuurlijk niet verplicht.

Шаг 10: Калибререн (опция)

Бенодигдхеден:

- Luchtvochtigheidssensor

- Температурметр

- Ролмаат

- Вывод кода для rauwe waarden van de sensoren die gekalibreerd moeten worden

Als de software niet goed blijkt te werken met de sensoren kan er voor gekozen worden om de sensoren zelf de kalibreren.

De temperatuurmeter kan vrij makkelijk gekalibreerd worden door metingen met een temperatuurmeter te vergelijken met de sensor.

Voor de luchtvochtigheid zal eerst de afstandssensor gekalibreerd moeten word op afstand met behulp van een rolmaat en daarna zal het pas mogelijk zijn om de luchtvochtigheid goed te meten en te vergelijkenheids met een echte lvochte lvochte.

В de bijgeleverde code zitten комментарии die aangeven waar dit soort kalibratie variabelen staan.

Шаг 11: Измеритель индекса De Warmte - это Клаар воор Гебруик

Veel Plezier!

Рекомендуемые: