Оглавление:
- Запасы
- Шаг 1: Де Фотон Инстеллен
- Шаг 2: Паарденхаар
- Шаг 3: Maak Een Horizontale Opstelling встретил Daaraan Een Kastje
- Шаг 4: Maak Een Kastje Voor De Photon En LCD-scherm
- Шаг 5: Маак Ен Хефбум
- Шаг 6: Plaats De Afstandmeter Onder Het (kartonnen) Plaatje
- Шаг 7: Код Шрайвена
- Шаг 8: Verbind De Photon
- Шаг 9: Plaats De Photon En Het LCD-Scherm в De Opstelling
- Шаг 10: Калибререн (опция)
- Шаг 11: Измеритель индекса De Warmte - это Клаар воор Гебруик
Видео: Измеритель индекса Warmte: 11 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
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: Паарденхаар
Бенодигдхеден: - Паард
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
Бенодигдхеден: - Зип
- 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
Бенодигдхеден: - 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
Бенодигдхеден:
- 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
Бенодигдхеден: - 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!
Рекомендуемые:
Измеритель УФ-индекса с использованием УЛЬТРАФИОЛЕТОВОГО датчика ML8511 Arduino: 6 шагов
Измеритель УФ-индекса с использованием УЛЬТРАФИОЛЕТОВОГО датчика ML8511 Arduino: В этом руководстве мы узнаем, как измерить УФ-индекс Солнца с помощью УЛЬТРАФИОЛЕТОВОГО датчика ML8511. Посмотрите видео! https://www.youtube.com/watch?v=i32L4nxU7_M
Монитор погоды M5Stack M5stick C на базе ESP32 с DHT11 - Мониторинг температуры, влажности и теплового индекса на M5stick-C с помощью DHT11: 6 шагов
Монитор погоды M5Stack M5stick C на базе ESP32 с DHT11 | Мониторинг температуры, влажности и теплового индекса на M5stick-C С помощью DHT11: Привет, ребята, в этой инструкции мы узнаем, как связать датчик температуры DHT11 с m5stick-C (плата разработки от m5stack) и отобразить его на дисплее m5stick-C. Итак, в этом уроке мы прочитаем температуру, влажность и влажность. тепло я
Тревога индекса жары: 7 шагов
Сигнализация индекса жары: этот проект возник из-за необходимости контролировать температуру в рабочих зонах, а также сигнализировать, когда температура достигает заданных пороговых значений. Некоторые исследования, основанные на ограничениях температурного воздействия OSHA, помогли сделать это практичным. Теперь, когда все готово
UltraV: портативный измеритель УФ-индекса: 10 шагов (с изображениями)
UltraV: портативный измеритель УФ-индекса. Поскольку я не мог находиться на солнце из-за дерматологических проблем, я использовал время, которое я бы провел на пляже, чтобы построить измеритель ультрафиолетового излучения. UltraV. Он построен на Arduino Nano rev3, с УФ-датчиком и преобразователем постоянного тока в постоянный для повышения т
Говорящее устройство для измерения УФ-индекса с использованием датчика VEML6075 и Little Buddy Talker: 5 шагов
Говорящий прибор для измерения УФ-индекса, использующий датчик VEML6075 и Little Buddy Talker: приближается лето! Солнце светит! И это здорово. Но по мере того, как ультрафиолетовое (УФ) излучение становится все более интенсивным, у таких людей, как я, появляются веснушки, маленькие коричневые островки, плавающие в море красной, загорелой и зудящей кожи. Возможность получать информацию в реальном времени