Съдържание:

Индекс на топломер: 11 стъпки
Индекс на топломер: 11 стъпки

Видео: Индекс на топломер: 11 стъпки

Видео: Индекс на топломер: 11 стъпки
Видео: 68% учеников этого НЕ ЗНАЮТ! Таблица Менделеева — Как пользоваться? 2024, Юли
Anonim
Индекс на топломер
Индекс на топломер

Met deze instructable kun е eigen warmte index meter maken.

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

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

Консумативи

- Фотонът от частици се среща с макет

- Температурен сензор (TMP36)

- Разстоятелен сензор за стойка 10 и 20 см.

- Powerbank

- стойка за 220 ома

- Draadjes на платка, 9+

- Мобилен телефон + компютър

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

- Hout en houtlijm

- Gereedschap: Boormachine/schroevendraaier, zaag en vijl

- Джип

- 2 potloden- кюрк

- Kartonnen plaatje + остроумна хартия

- Gewichtjes, denk aan kleine loodjes of metalen plaatjes

Опция:

- LCD scherm + 10k Ohm потенциометър + мъжки/женски джъмпер draadjes, 12

- Luchtvochtigheidsmeter

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

Стъпка 1: De Photon Instellen

De Photon Instellen
De Photon Instellen
De Photon Instellen
De Photon Instellen

Benodigdheden:- Мобилен телефон

- Фотон

- Компютър

Изтеглете приложението за частици на телефон и направете акаунт за частици.

Спрете usb-kabel van de photon в компютъра си, заявете de photon en stel de wifi.

Направете това чрез setup.particle.io.

Стъпка 2: Paardenhaar

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

Benodigdheden:- Paard

Voor het maken van de haar-ареометър heb je een ontvette paardenhaar nodig van bij voorkeur минимум 60 см

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

Стъпка 3: 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
Maak Een Horizontale Opstelling Met Daaraan Een Kastje

Benodigdheden:- Цип

- Hout + lijm

- Gereedschap

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

Ontvet de paardenhaar

Хоризонтален обхват, минимален размер 50 cm. 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

Benodigdheden:- Hout en houtlijm

- Gereedschap: zaag

Maak een simpele houten bak zonder deksel met een houten plank die in het midden staat als een delilnik. Op deze plank moet het motherboard met de photon passen als de bak op zijn zijkant wordt gezet. Daarnaa kan aan de onderkant van de bak een gat worden gemaakt for het LCD-scherm. Dit gat moet paralel zijn met het plankje dat in de bak is gezet. Als de bak klaar is kan deze op zijn zijkant naast de haar worden gezet aan de kant waar de gewichtjes aan de haar hangen

Стъпка 5: Maak Een Hefboom

Maak Een Hefboom
Maak Een Hefboom
Maak Een Hefboom
Maak Een Hefboom

Benodigdheden:- 2 potloden

- Кърк

- Kartonnen plaatje + остроумна хартия

- Гевихтиес

- 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 balancer deze uit met een gewichtje (zie afbeelding 3 ringen).

Стъпка 6: Plaats De Afstandmeter Onder Het (kartonnen) Plaatje

Plaats De Afstandmeter Onder Het (kartonnen) Plaatje
Plaats De Afstandmeter Onder Het (kartonnen) Plaatje
Plaats De Afstandmeter Onder Het (kartonnen) Plaatje
Plaats De Afstandmeter Onder Het (kartonnen) Plaatje

Бенодигден:

- Сензор за стабилност

- Opzetstukje (optioneel)

- Допълнителен комплект драери и войници (опция)

Bij voorkeur met een get minigal 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 worden.

Стъпка 7: Код Schrijven

Benodigdheden:- Компютър среща сметка на частици

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

В библиотеките, изтеглете LiquidCrystal и импортирайте в приложението.

Dan kan de volgende code gekopieerd worden in de app:

Lees de comments goed door als je wilt begrijpen wat elk stukje code precies doet.

Ook als er een problemem optreedt is het goed om de comments te raadplegen.

// Включва следните библиотеки: #include #include

// Аналоговите щифтове за четене за всички сензори в тази конструкция:

int tempSensor = A0; int disSensor = A1;

// Правила за публикуване:

// Времето на забавяне и името на събитието за публикуване. // Време на забавяне в милисекунди. int delayTime = 15000; String eventName = "Действителна_температура";

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

// Течнокристален код на дисплея ////////////// // ///////////////////////////////// //////////////////// // Инициализира дисплея с изводи за данни LiquidCrystal lcd (D5, D4, D3, D2, D1, D0);

// Настройване на граници за стойности на топлинен индекс

int предпазливост = 27; int eCD = 33; int опасност = 40; int extreme = 52;

// Връща съобщение за определена стойност на топлинен индекс.

Низово съобщение (int hI) {if (hI <предпазливост) {връщане "Без предпазливост."; } if (hI <eCD) {връща "Внимание!"; } if (hI <опасност) {върнете "Изключително внимание!"; } if (hI <краен) {връщане "Опасност !!"; } връщане "ИЗКЛЮЧИТЕЛНА ОПАСНОСТ !!"; }

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

String message2 = "Действителен T:";

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

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

// Действителни сурови стойности, които сензорът връща на всеки 5 мм.

int десет = 2754; int tenP = 2691; int единадесет = 2551; int единадесетP = 2499; int дванадесет = 2377; int дванадесетP = 2276; int тринадесет = 2206; int тринадесетP = 2198; int четиринадесет = 2105;

// Връща разстоянието в cm, което принадлежи на сурова стойност за всеки 5 мм.

float getDis (int number) {switch (number) {case 2754: return 10; дело 2691: връщане 10,5; случай 2551: връщане 11; дело 2499: връщане 11,5; случай 2377: връщане 12; дело 2276: връщане 12,5; случай 2206: връщане 13; дело 2198: връщане 13,5; дело 2105: връщане 14; }}

// Изчислява действителното разстояние в cm, което сензорът за разстояние е уловил.

float CalcuDis (int start, float stop, int измерване) {float distance = getDis (start); стъпка с плаване = (стоп - старт)/10; for (int i = 0; i <5; i ++) {if (измерване = (начална стъпка)) {разстояние за връщане; } старт = старт - стъпка; разстояние = разстояние + 0,1; }}

// Проверява големите граници между сензора за разстояние.

плаващо разстояние (int измерване) {// Ако сензорът за разстояние не е между 10 и 14 cm, // не знаем действителното разстояние и връщане 10. if (измерване maxD) {връщане 10,0; } if (измерване <= тринадесетP) {return returnDis (тринадесетP, четиринадесет, измерване); } if (измерване <= тринадесет) {return CalcuDis (тринадесет, тринадесетP, измерване); } if (измерване <= дванадесетP) {return изчислениеDis (дванадесетP, тринадесет, измерване); } if (измерване <= дванадесет) {return изчислениеDis (дванадесет, дванадесетP, измерване); } if (измерване <= единадесетP) {return returnDis (единадесетP, дванадесет, измерване); } if (измерване <= единадесет) {return CalcuDis (единадесет, единадесетP, измерване); } if (измерване <= tenP) {return returnDis (tenP, единадесет, измерване); } if (измерване <= десет) {return изчислениеDis (десет, tenP, измерване); } // Кодът никога не трябва да попада тук. връщане -2; }

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

// Код на сензора за температура ///////////////////////////////////////////////// //////////////// //////////////////////////////////////// //////////////////////////////////////////////////////// / // Максималното напрежение в mV, използвано за температурния сензор. поплавък maxV = 3300.0;

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

// Напрежението е в mV. int baseV = 750; int baseT = 25;

// Изчислява температурата от измерената стойност на аналоговия щифт.

float CalcuTemp (int измерване) {float напрежение = ((maxV/4096)*измерване); float diff = baseV - напрежение; плаваща температура = baseT - (разн./10); температура на връщане; }

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

// Изчисления на влажност /////////////////////////// /////////////////////// //////////////////////////////// // Променливи за изчисления на влажност, // идват от датчици за действителна влажност. поплавък h15 = 10,0; поплавък h30 = 10,5; поплавък h60 = 11,5; поплавък h75 = 12,0; поплавък h90 = 12,5; стъпка на плаване Н = 0,167;

// Връща относителната влажност за определен диапазон от разстояние.

int CalcuHum (float dis, float lowH, float highH, int start) {float diff = dis - lowH; float i1 = diff/stepH; int i = кръг (i1); int изход = (начало + (5*i)); обратен изход; }

// Връща относителната влажност.

int влажност (float dis) {if (dis <= h30) {връщане изчисляванеHum (dis, h15, h30, 15); } if (dis <= h60) {return изчисляване на Hum (dis, h30, h60, 30); } if (dis <= h75) {return изчисляване на Hum (dis, h60, h75, 60); } if (dis <= h90) {return изчисляване на Hum (dis, h75, h90, 75); } връщане 100; }

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

// Формула на топлинен индекс ////////////////////////////// // ////////////////// /////////////////////////////////////// // Константи, използвани във формулата за топлинен индекс формула c1 = -8.78469475556; поплавък c2 = 1,61139411; поплавък c3 = 2,33854883889; поплавък c4 = -0,14611605; поплавък c5 = -0,0123008094; поплавък c6 = -0,0164248277778; поплавък c7 = 0,002211732; поплавък c8 = 0,00072546; поплавък c9 = -0,000003582;

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

float heatIndex (float t, int h) {връщане 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); }

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

// Други функции/променливи //////////////////////////////////////////////// ////// ////////////////////////////////////////////////// ////////////////////////////////////// // Връща низово представяне на поплавък, закръглено до един десетичен знак. String rOne (float num) {int value = round (num*10); String output = (String) стойност; char end = output [strlen (output) -1]; int вляво = стойност/10; Низ започва = (Низ) вляво; връщане започва + "." + край; }

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

/ Целият код тук трябва да бъде пуснат веднъж на Photon преди стартирането на цикличните функции.

void setup () {// Задайте броя на колоните и редовете на LCD дисплея: lcd.begin (16, 2); }

// Целият код тук се циклира и трябва да съдържа получаване на данни, прецизиране и пускане онлайн.

void loop () {// Получаване на температура и влажност. float temp = CalcuTemp (analogRead (tempSensor)); float dis = разстояние (analogRead (disSensor)); int hum = влажност (dis); Низ влажен = (Низ) бучене; // Изчисляване на топлинния индекс. float hI = heatIndex (temp, hum); // Настройте изходния низ и отпечатайте всички съобщения на LCD дисплея. Изход на низ = rOne (hI); lcd.setCursor (0, 0); lcd.print (съобщение (кръг (hI))); lcd.setCursor (0, 1); lcd.print (message2 + output + "C"); изход = изход + "" + влажен; // Публикувайте стойностите на топлинния индекс онлайн и изчакайте, преди да повторите повторно. Particle.publish (eventName, изход); забавяне (delayTime); }

Стъпка 8: Verbind De Photon

Verbind De Photon
Verbind De Photon
Verbind De Photon
Verbind De Photon
Verbind De Photon
Verbind De Photon
Verbind De Photon
Verbind De Photon

Бенодигден:

- Photon и макет

- Температурен сензор

- Устойчива на стойка 220 ома

- Разбира сензор

- LCD-scherm en 10k Ohm потенциометър (опционална макара)

- Genoeg breadboard draadjes, 9+

- мъжки/женски джъмпер драаджес, 12 (опционално)

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

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

Stop de temperatuursensor ergens met genoeg ruimte eromheen in het motherboard.

Verbindt de analog analog output van de temperatuursensor met A0 van de photon en de ground met de ground rails.

Подходящ за входящ сигнал за входен сензорен датчик и за стабилна стойка от 3.3V релси.

Дефинираният сензор може да обхване многократно входната врата на 3.3V релси, спряни, заземени в наземните релси и аналогов изход в A1 ван де фотон.

Освен това LCD-scherm wilt aansluiten werkt даt als volgt:

1. Потенциометърът трябва да бъде затворен с 5V на земята.

2. Verbindt de volgende jumper draadjes aan het LCD-scherm waarbij pin 1 het dichtsbij de rand van het scherm is.

Pin 1, 5 en 16 van de LCD на земята. ПИН 2 и 15 на 5V.

Превключва аналогов изход с потенциометър, среден щифт, средна пин 3 с LCD.

3. Verbindt de volgende фотонни щифтове с LCD щифтове и джъмпери.

Щифт D5 на щифт 4

Щифт D4 на щифт 6

Щифт D3 на щифт 11

Щифт D2 на щифт 12

Щифт D1 на щифт 13

Щифт D0 на щифт 14

Als de photon nu aanstaat en er aan de potentiometer gedraaid wordt moeten er op het LCD-scherm blokjes verschijnen.

Стъпка 9: Поставя 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

Benodigdheden:- Powerbank (опция)

Nu de photon klaar voor gebruik е kan deze op het plankje in de bak geplaatst worden en het LCD-scherm can tegen het gat geplakt worden. Nu is het een goed moment om de photon de laten draaien op een powerbank maar dit is natuurlijk niet verplicht.

Стъпка 10: Kalibreren (опция)

Бенодигден:

- Luchtvochtigheids сензор

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

- Ролмат

- Изходен код за 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 can vrij makkelijk gekalibreerd worden door metingen met een temperatuurmeter te vergelijken met de sensor.

Voor de luchtvochtigheid zal eerst de afstandssensor gekalibreerd moeten worden op afstand met behulp van een rolmaat en daarna zal het pas mogelijk zijn om de luchtvochtigheid goed te meten en te vergelijken met een echte luchtvoch

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

Стъпка 11: De Warmte Index Meter е Klaar Voor Gebruik

Veel plezier!

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