Inhaltsverzeichnis:

Warmte Index Meter - Gunook
Warmte Index Meter - Gunook

Video: Warmte Index Meter - Gunook

Video: Warmte Index Meter - Gunook
Video: Heat flow meter is working/Huawei testing 2024, November
Anonim
Wärmeindex-Messgerät
Wärmeindex-Messgerät

Met deze anweisbare kun je je je eigen warmte index meter maden.

Een warmte index meter geeft de gevoelstemperatuur aan op basis 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.

Lieferungen

- Particle Photon mit Steckbrett

- Temperatursensor (TMP36)

- Afstandssensor voor afstanden tussen 10 und 20 cm.

- Powerbank

- 220 Ohm Wederstand

- Steckbrettdraadjes, 9+

- Mobiltelefon + 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

Optionen:

- LCD-Scherm + 10k Ohm Potentiometer + Male/Female Jumper-Draadjes, 12

- Luchtvochtigheidsmeter

- Temperaturmesser- Rolmaat

Schritt 1: De Photon Instellen

De Photon Stellen
De Photon Stellen
De Photon Stellen
De Photon Stellen

Benodigdheden:- Handy-Telefon

- Photonen

- Rechner

Laden Sie die Partikel-App für Ihr Telefon und ein Partikelkonto herunter.

Stop de usb-kabel van de photon in je computer, Claim de photon en stel de wifi in.

Dit kan über setup.particle.io.

Schritt 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).

Schritt 3: Maak Een Horizontale Opstelling traf Daaraan Een Kastje

Maak Een Horizontale Opstelling traf Daaraan Een Kastje
Maak Een Horizontale Opstelling traf Daaraan Een Kastje
Maak Een Horizontale Opstelling traf Daaraan Een Kastje
Maak Een Horizontale Opstelling traf Daaraan Een Kastje
Maak Een Horizontale Opstelling traf Daaraan Een Kastje
Maak Een Horizontale Opstelling traf Daaraan Een Kastje

Benodigdheden: - Zeep

- 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 horizontal, bij voorkeur minimaal 50 cm. Zorg dat er genoeg haar over is om de hefboom en het gewicht te bevestigen (zie volgende stap)

Schritt 4: Maak Een Kastje Voor De Photon En LCD-Scherm

Maak Een Kastje Voor De Photon En LCD-Schirm
Maak Een Kastje Voor De Photon En LCD-Schirm

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 photon pass as de bak op zijn zijkant wordt gezet. Daarnaa kan aan de onderkant van de bak een gat wurde 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.

Schritt 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 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).

Schritt 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

Benodigheden:

- Afstandsensor

- Opzetstukje (Optional)

- Extra Draad-en-Soldeer-Set (optional)

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 worden.

Schritt 7: Code-Schrijven

Benodigdheden:- Computer mit Partikelkonto

Sie können build.particle.io und eine neue App verwenden. Noem deze bijvoorbeeld HeatIndex.

Unter Bibliotheken können Sie LiquidCrystal anzeigen und deze in die App importieren.

Dan kan de volgende Code kopiert worden in de App:

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

Ook, als een Problem optreedt wird, ist es möglich, Kommentare zu hinterlassen.

// Fügen Sie die folgenden Bibliotheken ein:#include #include

// Die analogen Lesestifte für alle Sensoren in diesem Build:

int tempSensor = A0; int disSensor = A1;

// Veröffentlichungsregeln:

// Die Verzögerungszeit und der Ereignisname für die Veröffentlichung. // Verzögerungszeit in Millisekunden. int delayTime = 15000; String eventName = "Ist_Temperatur";

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

// Flüssigkristallanzeigecode ///////////// /////////////////////////////// ////////////////// // Initialisieren der Anzeige mit den Datenpins LiquidCrystal lcd(D5, D4, D3, D2, D1, D0);

// Grenzen für Hitzeindexwerte einrichten

int Vorsicht = 27; int eCD = 33; int Gefahr = 40; int extrem = 52;

// Gibt eine Nachricht für einen bestimmten Wärmeindexwert zurück.

String message(int hI) { if(hI < Vorsicht) { return "Keine Vorsicht."; } if(hI < eCD) { return "Achtung!"; } if(hI < Gefahr) { return "Äußerste Vorsicht!"; } if(hI < extrem) { return "Gefahr!! "; } return "EXTREME GEFAHR!!"; }

// Die Meldung in der zweiten Zeile des Displays.

String message2 = "Tatsächliches T: ";

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

// Entfernungssensorcode ///////////////////////////// //////////////// ////////////////////////////////////// // Minimale und maximale Rohwerte, die der Sensor zurückgibt. int minD = 2105; int maxD = 2754;

// Tatsächliche Rohwerte, die der Sensor alle 5 mm zurückgegeben hat.

int zehn = 2754; int-tenP = 2691; int elf = 2551; int elfP = 2499; int zwölf = 2377; int zwölfP = 2276; int dreizehn = 2206; int dreizehnP = 2198; int vierzehn = 2105;

// Gibt den Abstand in cm zurück, der alle 5 mm zu einem Rohwert gehört.

float getDis (int number) { switch (number) { case 2754: 10 zurückgeben; Fall 2691: Rückgabe 10.5; Fall 2551: Rückkehr 11; Fall 2499: 11,5 zurückgeben; Fall 2377: Rückgabe 12; Fall 2276: Rückgabe 12,5; Fall 2206: Rückkehr 13; Fall 2198: Rückgabe 13,5; Fall 2105: Rückkehr 14; } }

// Berechnet die tatsächliche Distanz in cm, die der Distanzsensor erfasst hat.

float berechneDis (int start, float stop, int messung) { float distance = getDis (start); Schwimmerschritt = (Stopp - Start)/10; for(int i = 0; i < 5; i++) { if (measurement = (start-step)) { Rückweg; } start = start - Schritt; Abstand = Abstand + 0,1; } }

// Überprüft die großen Grenzen, zwischen denen sich der Distanzsensor befindet.

float distance (int Measurement) {// Wenn der Distanzsensor nicht zwischen 10 und 14 cm lag, // kennen wir die tatsächliche Distanz nicht und geben 10 zurück. If (Messung maxD) { return 10.0; aufrechtzuerhalten. If (Messung <= dreizehn P) { return berechneDis (dreizehn P, vierzehn, Messung); aufrechtzuerhalten. If (Messung <= dreizehn) { ReturncalculateDis (dreizehn, dreizehnP, Messung); aufrechtzuerhalten. If (Messung <= zwölfP) { returncalculateDis (zwölfP, dreizehn, Messung); aufrechtzuerhalten. If (Messung <= zwölf) { return berechneDis (zwölf, zwölfP, Messung); aufrechtzuerhalten. If (Messung <= elfP) { returncalculateDis (elevenP, zwölf, Messung); aufrechtzuerhalten. If (Messung <= elf) { return berechneDis (elf, elfP, Messung); aufrechtzuerhalten. If (Messung <= tenP) { return berechneDis (tenP, elf, Messung); aufrechtzuerhalten. Wenn (Messung <= zehn) { return berechneDis (zehn, zehnP, Messung); } // Code sollte nie hierher kommen. zurück -2; }

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

// Temperatursensorcode //////////////////////////////////////////// ////////////// /////////////////////////////////// //////////////////////////////////////////////// // Die maximale Spannung in mV, die für den Temperatursensor verwendet wird. Schwimmer maxV = 3300,0;

// Die Basisspannung und die dazugehörige Temperatur, die der Temperatursensor zurückgibt.

// Spannung ist in mV. int baseV = 750; int baseT = 25;

// Berechnet die Temperatur aus dem Messwert am analogen Pin.

float berechneTemp (int Messung) { float Spannung = ((maxV/4096) * Messung); float diff = baseV - Spannung; Schwimmertemperatur = baseT - (diff/10); Rücklauftemperatur; }

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

// Feuchtigkeitsberechnungen ///////////////////////// ///////////////////// ////////////////////////////// // Variablen für Feuchtigkeitsberechnungen, // stammen von tatsächlichen Feuchtigkeitssensoren. Schwimmer h15 = 10,0; Schwimmer h30 = 10,5; Schwimmer h60 = 11,5; Schwimmer h75 = 12,0; Schwimmer h90 = 12,5; Schwimmerstufe H = 0,167;

// Gibt die relative Luftfeuchtigkeit für einen bestimmten Entfernungsbereich zurück.

int berechneHum(float dis, float lowH, float highH, int start) { float diff = dis - lowH; float i1 = diff/stepH; int i = rund(i1); int-Ausgabe = (Start + (5*i)); Ausgabe zurückgeben; }

// Gibt die relative Luftfeuchtigkeit zurück.

int Feuchte (float dis) { if (dis <= h30) { return berechneHum (dis, h15, h30, 15); aufrechtzuerhalten. If (dis <= h60) { return berechneHum (dis, h30, h60, 30); aufrechtzuerhalten. If (dis <= h75) { return berechneHum (dis, h60, h75, 60); aufrechtzuerhalten. If (dis <= h90) { return berechneHum (dis, h75, h90, 75); } 100 zurückgeben; }

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

// Hitzeindexformel ///////////////////////////// //////////////// ////////////////////////////////// // In der Hitzeindexformel verwendete Konstanten float c1 = -8.78469475556; Schwimmer c2 = 1,61139411; Schwimmer c3 = 2,33854883889; Gleitkomma c4 = -0,14611605; Schwimmer c5 = -0,0123008094; Gleitkomma c6 = -0,0164248277778; Gleitkomma c7 = 0,002211732; Gleitkomma c8 = 0,00072546; Schwimmer c9 = -0,000003582;

// Die Hitzeindexformel, die eine Temperatur und relative Luftfeuchtigkeit verwendet.

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

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

// Sonstige Funktionen/Variablen /////////////////////////////////////////// ////// /////////////////////////////////////////// /////////////////////////////////// // Gibt eine auf eine Dezimalstelle abgerundete Zeichenfolgendarstellung eines Floats zurück. String rOne (float num) { int value = round (num * 10); String-Ausgabe = (String-)Wert; Zeichenende = Ausgabe[strlen(Ausgabe)-1]; int links = Wert/10; Zeichenfolge beginnen = (Zeichenfolge) links; Rückkehr beginnen + "." + Ende; }

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

/ Der gesamte Code hier sollte einmal auf dem Photon ausgeführt werden, bevor die Schleifenfunktionen beginnen.

Void setup () {// Richten Sie die Anzahl der Spalten und Zeilen des LCD ein: lcd.begin (16, 2); }

// Der gesamte Code hier wird in einer Schleife ausgeführt und sollte das Abrufen von Daten, das Verfeinern und das Online-Stellen von Daten enthalten.

Void loop () { // Temperatur und Luftfeuchtigkeit abrufen. float temp = berechneTemp (analogRead (tempSensor)); float dis = Abstand (analogRead (disSensor)); int hum = Luftfeuchtigkeit (dis); Saite feucht = (Saite) Brummen; // Berechnen Sie den Hitzeindex. float hI = heatIndex(temp, summe); // Richten Sie die Ausgabezeichenfolge ein und drucken Sie alle Meldungen auf dem LCD-Display aus. String-Ausgabe = rOne(hI); lcd.setCursor(0, 0); lcd.print (Nachricht (rund (hI))); lcd.setCursor(0, 1); lcd.print (Nachricht2 + Ausgabe + "C"); Ausgang = Ausgang + " " + feucht; // Veröffentlichen Sie die Wärmeindexwerte online und warten Sie, bevor Sie eine erneute Schleife durchführen. Particle.publish(Ereignisname, Ausgabe); Verzögerung (Verzögerungszeit); }

Schritt 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

Benodigheden:

- Photon und Steckbrett

- Temperatursensor

- 220 Ohm Wederstand

- Afstandssensor

- LCD-Schirm und 10k Ohm Potentiometer (optional)

- Genoeg Steckbrett-Draadjes, 9+

- Herren/Damen Pullover draadjes, 12 (optional)

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 other kant aan de + rails aan die kant.

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

Verbindt den analogen Ausgang des Temperatursensors mit A0 von den Photonen und der Masse mit den Masseschienen.

Zet de weerstand voor de input van de sensor und verbindt den weerstand mit den 3.3V-Schienen.

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. Verbindt das Potentiometer mit einem Steckbrett mit 5V und Masse.

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

Pin 1, 5 und 16 von LCD nahe Masse. Pin 2 und 15 naar 5V.

Verbindt den analogen Ausgang des Potentiometers, den mittleren Pin, mit Pin 3 des LCD.

3. Verbindt die volgende Photon-Pins neben LCD-Pins mit Jumper-Draadjes.

Pin D5 in der Nähe von Pin 4

Pin D4 in der Nähe von Pin 6

Pin D3 nahe Pin 11

Pin D2 nahe Pin 12

Pin D1 in der Nähe von Pin 13

Pin D0 nahe Pin 14

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

Schritt 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 (optional)

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. Jetzt ist der Moment, in dem der Photonen- und Latentenzug geöffnet ist, ein Powerbank-Maar, das natuurlijk niet verplicht ist.

Schritt 10: Kalibreren (optional)

Benodigheden:

- Luchtvochtigheidssensor

- Temperaturmesser

- Rolmaat

- Codeausgabe voor 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 worden op afstand met behulp van een rolmaat en daarna zal het pas mogelijk zijn om de luchtvochtigheid goed te meten und te vergelijken met echtigen echte luchtvochtigheidsmeter/

In de bijgeleverde code zitten Kommentare die aangeven waar dit soort kalibratie variabelen staan.

Schritt 11: De Warmte Index Meter ist Klaar Voor Gebruik

Veelplezier!

Empfohlen: