Мазмуну:

Warmte Index Meter: 11 кадам
Warmte Index Meter: 11 кадам

Video: Warmte Index Meter: 11 кадам

Video: Warmte Index Meter: 11 кадам
Video: Автоматический календарь-планировщик смен в Excel 2024, Июль
Anonim
Warmte Index Meter
Warmte Index Meter

Көрсөтүлө турган индикаторлордун көрсөткүчтөрү.

Индекстин көрсөткүчтөрүнүн көрсөткүчтөрү негизи болуп саналат.

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

Жабдуулар

- Photon бөлүкчөсү панель менен жолугушту

- Температуралык сенсор (TMP36)

- 10 см 20 см.

- Powerbank

- 220 Ом салмагы

- Breadboard draadjes, 9+

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

- Парденхаар

- Hout en houtlijm

- Gereedschap: Boormachine/schroevendraaier, zaag en vijl

- Зип

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

- Картоннан + папье менен

- Gewichtjes, denen aan kleine loodjes of metalen plaatjes

Optioneel:

- ЖК scherm + 10k Ohm потенциометр + Эркек/Аял секирүүчү драаджес, 12

- Luchtvochtigheidsmeter

- Температура өлчөгүч- Ролмаат

1 -кадам: De Photon Instellen

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

Benodigdheden:- Mobiele телефон чалуусу

- Фотон

- Компьютер

Бөлүкчө тиркемесин жүктөп алыңыз, же бөлүкчө эсеби боюнча.

Компьютерде USB-кабелди токтотуп, Wi-Fi аркылуу фотону талап кылыңыз.

Setup.particle.io аркылуу канды басыңыз.

2 -кадам: Парденхаар

Paardenhaar
Paardenhaar

Benodigdheden:- Паар

60 см ге чейинки аралыкта гидрометр жок

De haren kunnen начарлады афгекнипт, 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

Benodigdheden:- Zeep

- Hout + lijm

- Gereedschap

Үстүбүздөгү жылдын акырында горизонталдык пейджер менен таанышып чыгыңыз.

Ontvet de paardenhaar

Горизонталдуу аралык, эң кичине 50 см. Zorg dat er genoeg haar over is is de de hefboom en het gewicht te bevestigen (zie volgende stap)

4-кадам: Маак 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

Маак ээн жөнөкөй эле хутен бак зондер дексел менен жолугушту, экөөнү бөлүүчү бөлүндү. Оп -такта планетанын башка бөлүктөрү дагы фотон менен таанышып чыгышты. Жарыяланган даталар жана видеолор LCD дисплейи менен жабдылган. Dit gat moet parallel 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 потолоден

- Курк

- Картоннан + папье менен

- Gewichtjes

- Gereedschap: vijl en boor

Боор ээн гат in het kastje en plaats het korte potlood. Het lange potlood dient uitgevijld te badden zodat deze op het korte potlood kan balanceren.

Плакатта папиерди колдонуңуз (дит гевал картондо) жана плацтарды жасаңыз.

Verbind де pafardenhaar тең салмактуулукту теңдештирүүчү болуп саналат (бул 3 релге).

6 -кадам: Платациялар Афтандметрдин жардамы менен

Plaats De Afstandmeter Onder Het (картадан) Плате
Plaats De Afstandmeter Onder Het (картадан) Плате
Plaats De Afstandmeter Onder Het (картадан) Плаудже
Plaats De Afstandmeter Onder Het (картадан) Плаудже

Benodigdheden:

- Afstandsensor

- Тандоо (опция)

- Extra draad en soldeer set (optioneel)

Эң кичинекей 12 сантиметрге жакын аралыкта +- 60%.

Индейлердин ою боюнча.

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

7 -кадам: Шрижвен коду

Benodigdheden:- Компьютер бөлүкчө эсебине жолукту

Build.particle.io тиркемесин колдонуңуз. HeatIndex.

Китепканалар LiquidCrystal менен импорттолот.

Дан -де -коддун коду колдонмодо бузулган:

Ли де комментарийлер эшиктин алдын ала коңгуроо коет.

Кандай гана болбосун, комментарийлерди алуудан баш тартыңыз.

// Төмөнкү китепканаларды киргизиңиз: #include #include

// Бул түзүлүштөгү бардык сенсорлор үчүн аналогдук окуу казыктары:

int tempSensor = A0; int disSensor = A1;

// Жарыялоо эрежелери:

// Жарыялоонун кечигүү убактысы жана окуя аты. // Милисекунд менен кечигүү убактысы. int delayTime = 15000; String eventName = "Actual_Temperature";

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

// Суюк кристалл дисплей коду ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////// Дисплейди LiquidCrystal lcd (D5, D4, D3, D2, D1, D0) маалымат түйүндөрү менен баштоо;

// Жылуулук индексинин маанилери үчүн чектерди орнотуу

int caut = 27; int eCD = 33; int risk = 40; int Extreme = 52;

// Белгилүү бир жылуулук индекси үчүн билдирүүнү кайтарат.

String message (int hI) {if (hI <caution) {return "No Абайлаңыз."; } if (hI <eCD) {return "Абайла!"; } if (hI <коркунуч) {кайтаруу "Өтө этият!"; } if (hI <Extreme) {return "Danger !!"; } return "EXTREME DANGER !!"; }

// Дисплейдин экинчи сабындагы билдирүү.

String message2 = "Чыныгы Т:";

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

// Расстояние датчик коду ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////// Минималдуу жана максималдуу чийки баалуулуктар сенсор кайтарат. int minD = 2105; int maxD = 2754;

// Чыныгы чийки баалуулуктар сенсор ар бир 5мм кайтып келген.

int ten = 2754; int tenP = 2691; int eleven = 2551; int elevenP = 2499; int twelve = 2377; int twelveP = 2276; int thteen = 2206; int thteenP = 2198; int он төрт = 2105;

// Ар бир 5 мм үчүн чийки мааниге таандык болгон аралыкты см менен кайтарат.

float getDis (int number) {switch (number) {case 2754: return 10; case 2691: кайтаруу 10.5; case 2551: return 11; case 2499: 11.5 кайтаруу; case 2377: return 12; учурда 2276: кайтарым 12.5; case 2206: return 13; case 2198: return 13.5; Case 2105: кайтаруу 14; }}

// Иш жүзүндөгү аралыкты сенсор басып алган см менен эсептейт.

float hesap float step = (stop - start)/10; for (int i = 0; i <5; i ++) {if (ölçü = (баштоо кадамы)) {кайтуу аралыгы; } баштоо = баштоо - кадам; аралык = аралык + 0.1; }}

// Алыстык сенсорунун ортосунда чоң чек араларды текшерет.

сүзүү аралыгы (int өлчөө) {// Эгерде аралык сенсору 10-14 см ортосунда болбогондо, // биз чыныгы аралыкты жана кайтууну билбейбиз 10. if (өлчөө maxD) {кайтаруу 10.0; } if (өлчөө <= он үчР) {return calcDis (он үчР, он төрт, өлчөө); } if (өлчөө <= он үч) {return calcDis (он үч, он үчР, өлчөө); } if (өлчөө <= twelveP) {return calcDis (он эки Р, он үч, өлчөө); } if (өлчөө <= он эки) {return calcDis (он эки, он эки Р, өлчөө); } if (өлчөө <= elevenP) {return calcDis (elevenP, он эки, өлчөө); } if (өлчөө <= он бир) {return calcDis (он бир, он бирP, өлчөө); } if (өлчөө <= tenP) {return calcDis (tenP, он бир, өлчөө); } if (өлчөө <= он) {return calcDis (он, tenP, өлчөө); } // Код эч качан бул жерге кирбеши керек. return -2; }

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

// Температура сенсорунун коду ////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////// /////////////////////////////////////////////////// / // Максималдуу чыңалуу mV, температура сенсору үчүн колдонулат. float maxV = 3300.0;

// Негизги чыңалуу жана коштоочу температура, температура сенсору кайтып келет.

// Чыңалуу мВ. int baseV = 750; int baseT = 25;

// Температураны аналогдук пиндеги өлчөнгөн мааниден эсептейт.

float эсептөөTemp (int өлчөө) {калкыма чыңалуу = ((maxV/4096)*өлчөө); float diff = baseV - чыңалуу; float temp = baseT - (diff/10); кайтарым темп; }

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

// Нымдуулуктун эсептөөлөрү ////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////// Нымдуулукту эсептөө үчүн өзгөрмөлөр // чыныгы нымдуулук сенсорлорунан келет. сүзүү h15 = 10.0; сүзүү h30 = 10.5; float h60 = 11.5; float h75 = 12.0; float h90 = 12.5; float stepH = 0.167;

// Белгилүү бир аралык диапазону үчүн салыштырмалуу нымдуулукту кайтарат.

int calculyHum (float dis, float lowH, float highH, int start) {float diff = dis - lowH; float i1 = diff/stepH; int i = тегерек (i1); int чыгаруу = (баштоо + (5*i)); кайтаруу чыгаруу; }

// Салыштырмалуу нымдуулукту кайтарат.

int nem (float dis) {if (dis <= h30) {return calculum (dis, h15, h30, 15); } if (dis <= h60) {return calculum (dis, h30, h60, 30); } if (dis <= h75) {return calcHum (dis, h60, h75, 60); } if (dis <= h90) {return CalcHum (dis, h75, h90, 75); } кайтуу 100; }

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

// Жылуулук индексинин формуласы ///////////////////////////////////////////////// Жылуулук индексинин формуласында колдонулуучу константалар c1 = -8.78469475556; float c2 = 1.61139411; float c3 = 2.33854883889; float c4 = -0.14611605; float 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); }

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

// Башка маалымат/өзгөрмөлөр ////////////////////////////////////////// /////////////////////////////////////////////////// ///////////////////////////////////////////////// // Бир ондукка чейин тегеректелген калкып чыгуучу саптын көрсөтмөсүн кайтарат. String rOne (float num) {int value = round (num*10); String output = (String) мааниси; char end = output [strlen (output) -1]; int left = мааниси/10; String begin = (Стринг) сол; кайтуу башталат + "." + аягы; }

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

/ Бул жердеги бардык коддор цикл функциялары башталганга чейин Photonдо бир жолу иштетилиши керек.

void setup () {// ЖКнын мамычаларынын жана катарларынын санын тууралаңыз: lcd.begin (16, 2); }

// Бул жердеги бардык коддор илинип турат жана анда маалыматтарды алуу, аны тактоо жана онлайнга коюу камтылышы керек.

void loop () {// Температураны жана нымдуулукту алуу. сүзүүчү темп = calcTemp (analogRead (tempSensor)); float dis = расстояние (analogRead (disSensor)); int hum = нымдуулук (дис); String humid = (String) hum; // Жылуулук индексин эсептөө. float hI = heatIndex (temp, hum); // Чыгуучу сапты орнотуңуз жана бардык билдирүүлөрдү ЖК дисплейге басып чыгарыңыз. Сап чыгаруу = rOne (hI); lcd.setCursor (0, 0); lcd.print (кабар (тегерек (hI)))); lcd.setCursor (0, 1); lcd.print (message2 + чыгаруу + "C"); чыгаруу = чыгаруу + "" + нымдуу; // Интернетте жылуулук индексинин баалуулуктарын жарыялап, кайра айлантуудан мурун күтө туруңуз. Particle.publish (eventName, output); кечиктирүү (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

Benodigdheden:

- Photon en breadboard

- Температуралык сенсор

- 220 Ом салмагы

- Afstandssensor

- ЖК-схемасы 10k Ohm потенциометринде (опция)

- Genoeg breadboard draadjes, 9+

- Эркек/Аял секирүүчү драаджес, 12 (optioneel)

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

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

Stop er temperatura ergens genoeg ruimte eromheen менен het breadboard.

Verbindt де analoge output van de temperatuursensor A0 ван де фотон менен жер рельстери жолугушту.

3.3V рельстери менен таанышуу үчүн, сенсорлорду киргизүү керек.

3.3V рельске токтоочу эшикке кирүүчү эшикти ачып, A1 ван де фотондогу аналогдук өндүрүштөгү жер рельстеринде жер.

Же LCD-scherm каалаган убакта иштебей калат:

1. Verbindt de potentiometer aan het breadboard 5V en de ground менен жолугушту.

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

Pin 1, 5 en 16 ван на LCD. Pin 2 en 15 naar 5V.

Потенциометрдин аналогдук чыгарылышы, middelste pin, pin 3 van de LCD.

3. Verbindt de volgende photon pins noar LCD LCD pins jumper draadjes менен жолугушту.

Pin D5 на Пин 4

Pin D4 на пин Pin 6

Pin D3 на Pin Pin 11

Pin D2 на Pin Pin 12

Pin D1 наар Pin 13

Pin D0 наар Pin 14

Бул жерде дагы потенциометрдин жардамы менен ЖК-сфералык блоктору ачылып турат.

9-кадам: Plaats De Photon En Het LCD-Scherm in De Opstelling

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

Benodigdheden:- Powerbank (вариант)

Сүрөттөмө кайра англисче (Кошмо Штаттар) тилине которулсунбу? Бул фото де латын драйвынын эң кубаттуу учуру.

10 -кадам: Калибререн (вариант)

Benodigdheden:

- Luchtvochtigheidssensor

- Температура өлчөгүч

- Ролмат

- Коддун чыгарылышы өчүрүлдү

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

De temperatuurmeter кан vrij makkelijk gekalibreerd worden door metingen met een temperatuurmeter te vergelijken де 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 echte luchtv.

Жылы коду zitten комментарийлер калибратия өзгөрөт.

11 -кадам: De Warmte Index Meter Клар Воор Гебруик

Veel plezier!

Сунушталууда: