Inhoudsopgave:

Warmte-indexmeter - Ajarnpa
Warmte-indexmeter - Ajarnpa

Video: Warmte-indexmeter - Ajarnpa

Video: Warmte-indexmeter - Ajarnpa
Video: DWM2 Digital Reflectometer (Wattmeter) 2024, Juli-
Anonim
Warmte-indexmeter
Warmte-indexmeter

Met deze instructable kun je je eigen warmte index meter maken.

Een warmte-indexmeter geeft de gevoelstemperatuur aan op basis van de omgevingstemperatuur en de gevoel.

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

Benodigdheden

- Particle Photon met breadboard

-Temperatuursensor (TMP36)

- Afstandssensor voor afstanden tussen 10 en 20 cm.

- Powerbank

- 220 Ohm weerstand

- Breadboard draadjes, 9+

- Mobiele telefoon + Computer

- Paardenhaar

- Hout en houtlijm

- Gereedschap: Boormachine/schroevendraaier, zaag en vijl

- Zeep

- 2 potloden - Kurk

- Kartonnen plaatje + wit papier

- Gewichtjes, denk aan kleine loodjes of metalen plaatjes

Optioneel:

- LCD scherm + 10k Ohm potmeter + Male/Female jumper draadjes, 12

- Luchtvochtigheidsmeter

-Temperatuurmeter- Rolmaat

Stap 1: De Photon Instellen

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

Benodigdheden:- Mobiele telefoon

- Fotonen

- Computer

Download de deeltjes app op je telefoon en maak een deeltjes account.

Stop de usb-kabel van de foton in je computer, claim de foton en stel de wifi in.

Dit kan via setup.particle.io.

Stap 2: Paardenhaar

Paardenhaar
Paardenhaar

Benodigdheden:- Paard

Voor het maken van de haar-hydrometer heb je een ontvette paardenhaar nodig van bij voorkeur minimaal 60 cm

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

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 een ombouw waarbij de paardenhaar horizontaal kan worden gespannen en die richtlijnen worden aangeboden

Ontvet de paardenhaar

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

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 divider. Op deze plank moet het breadboard met de foton passagier als de bak op zijn zijkant wordt gezet. Later kan een onderkant van de bak een gat worden gemaakt voor het LCD-scherm. 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.

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

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

Plak een wit velletje papier onder een plaatje en plaats dit aan het uiteinde van de hefboom.

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

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

- Extra draad en soldeerset (optioneel)

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

Indien nodig op een opzetstukje.

Als de bedrading van de afstandssensor niet de houten bak zullen worden verlengd worden.

Stap 7: code schrijven

Benodigdheden:- Computer met deeltjes account

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

Onder bibliotheken, zoek LiquidCrystal en importeer deze in de app.

Dan kan de volgende code worden in de app:

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

Ook als er een probleem is het goed om de opmerkingen te raadplegen.

// Neem de volgende bibliotheken op: #include #include

// De analoge leespinnen voor alle sensoren in deze build:

int tempSensor = A0; int disSensor = A1;

// Publicatieregels:

// De vertragingstijd en gebeurtenisnaam voor publicatie. // Vertragingstijd in milliseconden. int vertragingstijd = 15000; String eventName = "Werkelijke_Temperatuur";

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

// Liquid crystal display-code ///////////// /////////////////////////////// ////////////////// // Initialiseer het display met de datapinnen LiquidCrystal lcd (D5, D4, D3, D2, D1, D0);

// Grenzen instellen voor warmte-indexwaarden

int voorzichtig = 27; int eCD = 33; int gevaar = 40; int extreem = 52;

// Retourneert een bericht voor een specifieke warmte-indexwaarde.

String message(int hI) { if(hI < waarschuwing) { return "Geen waarschuwing."; } if(hI < eCD) { retourneer "Let op! "; } if(hI < gevaar) { return "Extreme voorzichtigheid!"; } if(hI < extreem) { return "Gevaar!! "; } retourneer "EXTREEM GEVAAR!!"; }

// Het bericht op de tweede regel van het display.

String message2 = "Werkelijke T: ";

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

// Code afstandssensor ///////////////////////////// //////////////// ////////////////////////////////////// // Minimale en maximale onbewerkte waarden die de sensor retourneert. intminD = 2105; int maxD = 2754;

// Werkelijke onbewerkte waarden die de sensor elke 5 mm retourneerde.

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;

// Retourneert de afstand in cm die bij een ruwe waarde hoort voor elke 5 mm.

float getDis(int nummer) { switch(nummer){ case 2754: return 10; zaak 2691: retour 10,5; zaak 2551: retour 11; zaak 2499: retour 11,5; zaak 2377: retour 12; zaak 2276: retour 12,5; zaak 2206: retour 13; zaak 2198: retour 13,5; zaak 2105: retour 14; } }

// Berekent de werkelijke afstand in cm die de afstandssensor heeft vastgelegd.

float berekenenDis(int start, float stop, int meting) { float distance = getDis(start); vlotterstap = (stop - start)/10; for(int i = 0; i < 5; i++) { if(meting = (start-stap)){ return distance; } start = start - stap; afstand = afstand + 0,1; } }

// Controleert de grote grenzen waar de afstandssensor tussen zit.

float-afstand (int-meting) { // Als de afstandssensor niet tussen 10 en 14 cm was, // we weten de werkelijke afstand niet en retourneren 10. if (meting maxD) { return 10.0; } if (meting <= dertienP) {retour berekenenDis (dertienP, veertien, meting); } if (meting <= dertien) {retour berekenenDis (dertien, dertienP, meting); } if (meting <= twaalfP) {retour berekenenDis (twaalfP, dertien, meting); } if(meting <= twaalf) { return berekenenDis (twaalf, twaalfP, meting); } if(meting <= elfP) { return berekenenDis(elevenP, twaalf, meting); } if(meting <= elf) {retour berekenenDis(elf, elfP, meting); } if(meting <= tenP) {retour berekenenDis(tenP, elf, meting); } if (meting <= tien) {retour berekenenDis (tien, tenP, meting); } // Code zou hier nooit mogen komen. retour -2; }

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

// Code temperatuursensor ///////////////////////////////////////////// ////////////// //////////////////////////////////// ////////////////////////////////////////////////// / // De maximale spanning in mV die wordt gebruikt voor de temperatuursensor. vlotter maxV = 3300,0;

// De basisspanning en bijbehorende temperatuur die de temperatuursensor retourneert.

// Spanning is in mV. int basisV = 750; int basisT = 25;

// Berekent de temperatuur uit de gemeten waarde op de analoge pin.

float berekenTemp (int meting) { float spanning = ((maxV/4096)* meting); float diff = basisV - spanning; vlottertemperatuur = basisT - (diff/10); retourtemperatuur; }

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

// Vochtigheidsberekeningen ///////////////////////// ///////////////////// ////////////////////////////// // Variabelen voor vochtigheidsberekeningen, // komen van werkelijke vochtigheidssensoren. vlotter h15 = 10,0; vlotter h30 = 10,5; vlotter h60 = 11,5; vlotter h75 = 12,0; vlotter h90 = 12,5; vlotterstapH = 0,167;

// Retourneert de relatieve vochtigheid voor een specifiek afstandsbereik.

int berekenHum (float dis, float lowH, float highH, int start) { float diff = dis - lowH; float i1 = diff/stapH; int i = rond (i1); int-uitgang = (start + (5*i)); retouruitgang; }

// Retourneert de relatieve vochtigheid.

int vochtigheid (float dis) { if (dis <= h30) { return berekenenHum (dis, h15, h30, 15); } if (dis <= h60) { return berekenenHum (dis, h30, h60, 30); } if (dis <= h75) { return berekenenHum (dis, h60, h75, 60); } if (dis <= h90) { return berekenenHum (dis, h75, h90, 75); } retour 100; }

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

// Formule warmte-index ///////////////////////////// //////////////// /////////////////////////////////// // Constanten gebruikt in de warmte-indexformule float c1 = -8.78469475556; vlotter c2 = 1.61139411; vlotter c3 = 2.33854883889; vlotter c4 = -0.14611605; vlotter c5 = -0.0123008094; vlotter c6 = -0,0164248277778; vlotter c7 = 0,002211732; vlotter c8 = 0.00072546; vlotter c9 = -0,000003582;

// De warmte-indexformule die een temperatuur en relatieve vochtigheid aanneemt.

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

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

// Overige functies/variabelen //////////////////////////////////////////// ////// //////////////////////////////////////////// /////////////////////////////////// // Retourneert een tekenreeksrepresentatie van een float naar beneden afgerond op één decimaal. String rOne(float num) {int value = round(num*10); String output = (String) waarde; char end = output [strlen (output)-1]; int links = waarde/10; String begin = (String) links; terug begin + "." + einde; }

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

/ Alle code hier moet één keer op de Photon worden uitgevoerd voordat de looping-functies starten.

void setup() { // Stel het aantal kolommen en rijen van het LCD-scherm in: lcd.begin (16, 2); }

// Alle code hier wordt in een lus geplaatst en zou het ophalen van gegevens, het verfijnen en online zetten ervan moeten bevatten.

void loop() { // Haal temperatuur en vochtigheid op. float temp = berekenTemp (analogRead (tempSensor)); float dis = afstand (analogRead (disSensor)); int brom = vochtigheid (dis); String vochtig = (String) brom; // Bereken de warmte-index. float hI = heatIndex(temp, brom); // Stel de uitvoerreeks in en druk alle berichten op het LCD-scherm af. Stringuitgang = rOne(hI); lcd.setCursor(0, 0); lcd.print(bericht(ronde(hI))); lcd.setCursor(0, 1); lcd.print (bericht2 + uitvoer + "C"); uitgang = uitgang + " " + vochtig; // Publiceer de warmte-indexwaarden online en wacht voordat u opnieuw een lus uitvoert. Particle.publish(eventName, output); vertraging (vertragingstijd); }

Stap 8: Verbind de foton

Verbind De Foton
Verbind De Foton
Verbind De Foton
Verbind De Foton
Verbind De Foton
Verbind De Foton
Verbind De Foton
Verbind De Foton

Benodigdheden:

- Foton en breadboard

-Temperatuursensor

- 220 Ohm weerstand

- Afstandssensor

- LCD-scherm en 10k Ohm potmeter (optioneel)

- Genoeg breadboard draadjes, 9+

- Heren/vrouwen trui draadjes, 12 (optioneel)

De 3.3 van de foton aan dezelfde met de + rails aan dezelfde met de + rails aan de - rails.

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

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

Verbind de analoge uitgang van de temperatuursensor met A0 van de foton en de grond met de grondrails.

Zet de weerstand voor de input van de sensor en de weerstand met de 3.3V rails.

De afstandssensor kan verbonden worden door de input in de 3.3V rails te stoppen, de ground in de ground rails en de analoge output in A1 van de photon te stoppen.

Als je een LCD-scherm wilt aansluiten werkt dat als volgt:

1. Verbind de potentiometer aan het breadboard met 5V en de aarde.

2. Verbind 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 naar ground. Pin 2 en 15 naar 5V.

Verbind de analoge uitgang van de potentiometer, de elektrische pin, met pin 3 van de LCD.

3. Verbindt de volgende foton pins naar LCD pins met jumper draadjes.

Pin D5 naar Pin 4

Pin D4 naar Pin 6

Pin D3 naar Pin 11

Pin D2 naar Pin 12

Pin D1 naar Pin 13

Pin D0 naar Pin 14

Als de foton nu aanstaat en er aan de potentiometer gedraaid moet er op het LCD-scherm verschijnen verschijnen.

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)

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

Stap 10: Kalibreren (optioneel)

Benodigdheden:

- Luchtvochtigheidssensor

-Temperatuurmeter

- Rolmaat

- Code output voor rauwe waarden van de sensoren die gekalibreerd moeten worden

Als de software niet goed bleek 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 werkelijke aard zal eerst de afstandssensor moeten worden genomen op afstand met behulp van een rolmaat en daarna zal het pas mogelijk zijn om de goede meten en te vergelijken met een echte levensmeter/sensor.

In de code zitten opmerkingen die zijn ontstaan.

Stap 11: De Warmte Indexmeter Is Klaar Voor Gebruik

Veel plezier!

Aanbevolen: