INHOUDSOPGAWE:

Warmte -indeksmeter: 11 stappe
Warmte -indeksmeter: 11 stappe

Video: Warmte -indeksmeter: 11 stappe

Video: Warmte -indeksmeter: 11 stappe
Video: Giant Boeing 747 Vertical Takeoff | X-Plane 11 2024, November
Anonim
Warmte indeksmeter
Warmte indeksmeter

Met hierdie instruksies kan u u eie warmte -indeksmeter maak.

Een warmte -indeksmeter gee die gevoelstemperatuur aan op basis van die omgewingstemperatuur en die lugvochtigheid.

Hierdie meter is bedoel vir binne, maar ek kan dit ook nie gebruik nie, maar daar word nie 'n windvrye plek gebruik nie.

Voorrade

- Deeltjie foton met broodbord

- Temperatuursensor (TMP36)

- Afstandsensor voor afstand tussen 10 en 20 cm.

- Krag bank

- 220 Ohm weerstand

- Broodborddraadjes, 9+

- Telefoon + rekenaar

- Paardenhaar

- Hout en houtlijm

- Gereedschap: Boormachine/schroevendraaier, zaag en vijl

- Seep

- 2 potloden- Kurk

- Kartonnen plaatje + wit papier

- Gewichtjes, denk aan kleine loodjes of metalen plaatjes

Opsioneel:

- LCD -skerm + 10k Ohm potensiometer + Manlike/vroulike trui, 12

- Luchtvochtigheidsmeter

- Temperatuurmeter- Rolmaat

Stap 1: De Photon Instellen

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

Benodigdheden:- Mobiele telefoon

- foton

- Rekenaar

Laai die deeltjie -app af op u telefoon en maak 'n deeltjie -rekening.

Stop die USB-kabel van die foton op u rekenaar, maak gebruik van die foton en stel WiFi in.

Dit kan via setup.particle.io.

Stap 2: Paardenhaar

Paardenhaar
Paardenhaar

Benodigdheden:- Paard

Vir die maak van die haar-hidrometer moet u 'n ontvette kamer nodig hê om 60 cm te kies

Die haren kan afgeknip word, of uit die staart/man kan word (op eie risiko).

Stap 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:- Zeep

- Hout + lijm

- Gereedschap

Maak 'n ombou waar die paardenhaar horisontaal gespeel kan word en die enkele beskerming bied

Ontvet de paardenhaar

Span haar haar horisontaal, vir minimaal 50 cm. Dit is genoeg om die hefboom en die gewig te bevestig (sien volgende stap)

Stap 4: Maak 'n Kastje Vir Die Foton En 'n LCD-skerm

Maak 'n Kastje Vir Die Foton En 'n LCD-skerm
Maak 'n Kastje Vir Die Foton En 'n LCD-skerm

Benodigdheden:- Hout en houtlijm

- Gereedschap: zaag

Maak een eenvoudige houten bak sonder deksel met 'n houtplank wat in die middelste staat as 'n verdeler is. Op hierdie plank moet die broodplank met die fotonpasiënte as die bak op sy aangesig gesamentlik word. Daarna kan die onderkant van die bak een vir die LCD-skerm gemaak word. Dit moet parallel wees met die plan wat in die bak is. As die bak klaar is, kan dit ook op sy sykant wees, en dit kan saam met die gewig aan die kant van die hangende gewig wees.

Stap 5: Maak Een Hefboom

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

Benodigdheden:- 2 potloden

- Kurk

- Kartonnen plaatje + wit papier

- Gewichtjes

- Gereedschap: vijl en boor

Dit is 'n plek om 'n kort potlood te plaas. Die lang potlood moet uitgevoer word sodat hierdie kort potlood kan balanseer.

Plak 'n wit papier onder 'n plaat (in die geval van karton) en plaas dit op die uiteinde van die hefboom.

Verbind die paardenhaar aan die hefboom en balanseer hierdie uit met 'n gewig (sien prent 3).

Stap 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

Benodigdheden:

- Afstandsensor

- Opzetstukje (opsioneel)

- Ekstra draad en soldeerset (opsioneel)

By voorkeur met 'n afstand van minimaal 12 cm by 'n relatiewe lugvochtigheid van +- 60%.

Indien nodig op 'n opsetstukje.

As die afstandsensor nie die hout bak kan haal nie, moet ons hierdie eers verlore gaan.

Stap 7: Code Schrijven

Benodigdheden:- Rekenaar met deeltjiesrekening

Gaan na build.particle.io en maak 'n nuwe app aan. Noem hierdie byvoorbeeld HeatIndex.

Onder biblioteke, soek LiquidCrystal en invoer hierdie in die app.

Die volgende kode kan in die app gebruik word:

Lees die kommentaar goed deur as jy wil begryp wat elk stukje kode presies doen.

Ook as daar 'n probleem is, is dit goed om die kommentaar te raadpleeg.

// Sluit die volgende biblioteke in: #include #include

// Die analoog leespenne vir alle sensors in hierdie gebou:

int tempSensor = A0; int disSensor = A1;

// Publiseringsreëls:

// Die vertragingstyd en die gebeurtenisnaam vir publikasie. // Vertraag tyd in millisekondes. int delayTime = 15000; String eventName = "Werklike_Temperatuur";

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

// Vloeistofkristal vertoonkode ////////////////////////////////////////////// //////////////////// Initialiseer die skerm met die datapennetjies LiquidCrystal lcd (D5, D4, D3, D2, D1, D0);

// Stel grense op vir hitte -indekswaardes

int versigtig = 27; int eCD = 33; int gevaar = 40; int extreme = 52;

// Wys 'n boodskap vir 'n spesifieke hitte -indekswaarde.

Stringboodskap (int hI) {if (hI <caution) {return "No caution."; } if (hI <eCD) {return "Let op!"; } if (hI <gevaar) {return "Uiters versigtig!"; } if (hI <extreme) {return "Gevaar !!"; } stuur "UITERS GEVAAR !!"; }

// Die boodskap op die tweede reël van die skerm.

String message2 = "Werklike T:";

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

// Afstandsensorkode /////////////////////////////////// ///////////////////////////////////////////////////////////// -/ - int minD = 2105; int maxD = 2754;

// Werklike rou waardes het die sensor elke 5 mm teruggegee.

int tien = 2754; int tenP = 2691; int elf = 2551; int elfP = 2499; int twaalf = 2377; int twaalfP = 2276; int dertien = 2206; int dertienP = 2198; int veertien = 2105;

// Gee die afstand in cm wat aan 'n rou waarde behoort vir elke 5 mm.

float getDis (int number) {switch (number) {case 2754: return 10; saak 2691: opgawe 10.5; saak 2551: opgawe 11; saak 2499: opgawe 11.5; saak 2377: opgawe 12; saak 2276: opgawe 12.5; saak 2206: opgawe 13; saak 2198: opgawe 13.5; saak 2105: opgawe 14; }}

// Bereken die werklike afstand in cm wat die afstandsensor vasgelê het.

float calculeerDis (int begin, float stop, int meting) {float afstand = getDis (begin); vlotstap = (stop - begin)/10; for (int i = 0; i <5; i ++) {if (meting = (begin-stap)) {terugkeerafstand; } begin = begin - stap; afstand = afstand + 0,1; }}

// Kontroleer die groot grense wat die afstandsensor tussenin is.

dryfafstand (int meting) {// As die afstandsensor nie tussen 10 en 14 cm was nie, // weet ons nie die werklike afstand en opbrengs 10. if (meting maxD) {opgawe 10.0; } if (meting <= dertienP) {opgawe berekenDis (dertienP, veertien, meting); } if (meting <= dertien) {opgawe berekenDis (dertien, dertienP, meting); } if (meting <= twaalfP) {opgawe berekenDis (twaalfP, dertien, meting); } if (meting <= twaalf) {opgawe berekenDis (twaalf, twaalfP, meting); } if (meting <= elfP) {opgawe berekenDis (elfP, twaalf, meting); } if (meting <= elf) {opgawe berekenDis (elf, elfP, meting); } if (meting <= tenP) {opgawe berekenDis (tenP, elf, meting); } if (meting <= tien) {opgawe berekenDis (tien, tenP, meting); } // Kode moet nooit hier kom nie. terugkeer -2; }

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

// Temperatuursensorkode ////////////////////////////////////////////////////// //////////////////////////////////////////////////// / // Die maksimum spanning in mV wat vir die temperatuursensor gebruik word. vlot maxV = 3300.0;

// Die basisspanning en gepaardgaande temperatuur wat die temperatuursensor gee.

// Spanning is in mV. int baseV = 750; int baseT = 25;

// Bereken die temperatuur van die gemete waarde by die analoog pen.

float calculeer Temp (int meting) {float voltage = ((maxV/4096)*meting); float diff = baseV - spanning; float temp = baseT - (diff/10); retoer temp; }

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

// Humiditeitsberekeninge /////////////////////////////////////////////////// ////////////////////////////////////// Variabels vir die berekening van humiditeit, // afkomstig van werklike humiditeit sensors. vlot h15 = 10,0; vlot h30 = 10,5; vlot h60 = 11,5; vlot h75 = 12,0; vlot h90 = 12,5; vlotstap H = 0,167;

// Gee die relatiewe humiditeit vir 'n spesifieke afstandsafstand.

int calcHum (float dis, float lowH, float highH, int start) {float diff = dis - lowH; float i1 = diff/stepH; int i = rond (i1); int uitset = (begin + (5*i)); terugvoer uitset; }

// Gee die relatiewe humiditeit terug.

int humiditeit (float dis) {if (dis <= h30) {opgawe berekenHum (dis, h15, h30, 15); } as (dis <= h60) {opgawe berekenHum (dis, h30, h60, 30); } as (dis <= h75) {opgawe berekenHum (dis, h60, h75, 60); } as (dis <= h90) {opgawe berekenHum (dis, h75, h90, 75); } gee 100 terug; }

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

// Formule vir hitte -indeks ///////////////////////////////'// vlot c2 = 1.61139411; float c3 = 2.33854883889; float c4 = -0.14611605; float c5 = -0.0123008094; float c6 = -0.0164248277778; float c7 = 0.002211732; vlot c8 = 0.00072546; float c9 = -0.000003582;

// Die hitte -indeksformule wat 'n temperatuur en relatiewe humiditeit neem.

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); }

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

// Ander invloede/veranderlikes //////////////////////////////////////// ///////////////////////////////////////// Gee 'n stringvoorstelling van 'n vlot afgerond tot een desimaal. String rOne (float num) {int waarde = rond (num*10); String uitset = (String) waarde; char end = output [strlen (output) -1]; int links = waarde/10; Tou begin = (Tou) links; terugkeer begin + "." + einde; }

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

/ Alle kode hier moet een keer op die Photon uitgevoer word voordat die lusfunksies begin.

ongeldige opstelling () {// Stel die aantal kolomme en rye van die LCD op: lcd.begin (16, 2); }

// Alle kode word hier aangesluit en moet data bevat, dit verfyn en aanlyn plaas.

leegte () {// Kry temperatuur en humiditeit. float temp = calculeer Temp (analogRead (tempSensor)); float dis = distance (analogRead (disSensor)); int hum = humiditeit (dis); String humid = (String) hum; // Bereken die hitte -indeks. float hI = heatIndex (temp, hum); // Stel die uitvoerstring op en druk alle boodskappe op die LCD -skerm af. Stringuitset = rOne (hI); lcd.setCursor (0, 0); lcd.print (boodskap (rond (hI))); lcd.setCursor (0, 1); lcd.print (boodskap2 + uitset + "C"); output = output + "" + humid; // Publiseer die hitte -indekswaardes aanlyn en wag voordat u weer lus maak. Particle.publish (eventName, output); vertraging (delayTime); }

Stap 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:

- Foto en broodbord

- Temperatuursensor

- 220 Ohm weerstand

- Afstandssensor

- LCD-skerm en 10k Ohm potensiometer (optioneel)

- Genoeg broodbord draadjes, 9+

- Manlike/vroulike trui, 12 (opsioneel)

Verbind die 3.3V van die foton met + rails aan dieselfde kant en verbind die grond met die rails.

Verbind die 5V van die foton aan die ander kant aan die + rails aan die kant.

Stop temperatuur temperatuur sensor met genoeg ruimte in die broodbord.

Verbind die analoge uitset van die temperatuursensor met A0 van die foton en die grond met die grondrails.

Weerstand vir die ingang van die sensor en die weerstand met die 3.3V -relings.

Die afstandsensor kan deur die invoer in die 3.3V -rails gestop word, die grond in die grondrails en die analoge uitset in A1 van die fotostoppers stop.

As u 'n LCD-skerm met die volgende kan verbind:

1. Verbindings van die potensiometer op die broodbord met 5V en die grond.

2. Verbind die volgende jumper-drade aan die LCD-skerm waar pen 1 die rand van die skerm kan sien.

Speld 1, 5 en 16 van die LCD na die grond. Pin 2 en 15 naar 5V.

Verbind die analoge uitgang van die potensiometer, die middelste pen, met pen 3 van die LCD.

3. Verbind die volgende foton penne na LCD penne met jumper draadjies.

Speld D5 na pen 4

Speld D4 na pen 6

Speld D3 na pen 11

Speld D2 na pen 12

Speld D1 na pen 13

Speld D0 na pen 14

As die foto nou 'n staat en 'n potensiële meter kan gebruik, moet dit op die LCD-skermblokke verskyn.

Stap 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 (optioneel)

Nou is die foton klaar om te gebruik om hierdie plan op die plank te plaas wat op die LCD-skerm geplaas kan word. Dit is 'n goeie oomblik om die foto's op 'n powerbank te laat dra, maar dit is natuurlik nie verplig nie.

Stap 10: Kalibreren (opsioneel)

Benodigdheden:

- Luchtvochtigheidssensor

- Temperatuurmeter

- Rolmaat

- Kode -uitset vir die wagwoord van die sensore wat die gekalibreerde moet word, moet word

As die sagteware nie altyd goed werk om met die sensore te werk nie, kan dit vir die sensor self gekalibreer word.

Die temperatuurmeters kan vrylik deur 'n temperatuurmeting vir die sensor gemonitor word.

Vir die lugvochtigheid moet die afstandsensor eers gekalibreerd word op afstand met behulp van 'n rolmaat en daarna sal dit moontlik wees dat die lugvochtigheid goed is om met 'n werklike lugvochtigheidsmeter/sensor te reageer.

In die bygeleverde kode kan kommentare aangepas word waar hierdie soort kalibrasie veranderlik staan.

Stap 11: De Warmte Index Meter Is Klaar Voor Gebruik

Veel plezier!

Aanbeveel: