Índice:

Medidor de índice de Warmte: 11 etapas
Medidor de índice de Warmte: 11 etapas

Vídeo: Medidor de índice de Warmte: 11 etapas

Vídeo: Medidor de índice de Warmte: 11 etapas
Vídeo: Un cuento de invierno: el viaje de los búhos nivales 2024, Julho
Anonim
Medidor de índice de Warmte
Medidor de índice de Warmte

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

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.

Suprimentos

- Particle Photon com breadboard

- Temperatuursensor (TMP36)

- Afstandssensor voor afstanden tussen 10 en 20 cm.

- Banco de poder

- 220 Ohm weerstand

- Draadjes de tábua de pão, 9+

- Mobiele telefoon + Computador

- Paardenhaar

- Hout en houtlijm

- Gereedschap: Boormachine / schroevendraaier, zaag en vijl

- Zeep

- 2 potloden- Kurk

- Kartonnen plaatje + wit papier

- Gewichtjes, denk aan kleine loodjes de metalen plaatjes

Optioneel:

- LCD scherm + potenciômetro de 10k Ohm + jumper draadjes masculino / feminino, 12

- Luchtvochtigheidsmeter

- Temperatuurmeter- Rolmaat

Etapa 1: De Photon Instellen

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

Benodigdheden: - Mobiele telefoon

- Photon

- Computador

Baixe o aplicativo de partículas em uma conta de partículas em je telefoon e maak een.

Pare o usb-kabel van de fóton em seu computador, solicite o fóton e o wi-fi em.

Dit kan via setup.particle.io.

Etapa 2: Paardenhaar

Paardenhaar
Paardenhaar

Benodigdheden: - Paard

Voor het maken van de haar-hidrômetro heb je een ontvette paardenhaar nodig van bij voorkeur mínimo 60 cm

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

Etapa 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 tegelijkertijd enige bescherming biedt

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)

Etapa 4: Maak Een Kastje Voor De Photon En LCD-scherm

Maak Een Kastje Voor De Photon em LCD-scherm
Maak Een Kastje Voor De Photon em LCD-scherm

Benodigdheden: - Hout en houtlijm

- Gereedschap: zaag

Maak een simpele houten bak zonder deksel met een houten plank die em het monta staat als een divider. Op deze plank moet het breadboard com o photon passen als de bak no zijn zijkant wordt gezet. Daarnaa kan aan de onderkant van de bak een gat worden gemaakt voor het LCD-scherm. Dit gat moet paralelo zijn met het plankje dat em de bak é gezet. Als de bak klaar é kan deze op zijn zijkant naast de haar worden gezet aan de kant waar de gewichtjes aan de haar hangen.

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

Etapa 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 (opcional)

- Conjunto extra draad en soldeer (opcional)

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.

Etapa 7: Codifique Schrijven

Benodigdheden: - Computador encontrou a conta de partículas

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

Bibliotecas Onder, aproveite LiquidCrystal e importe deze no aplicativo.

Dan kan de volgende code gekopieerd worden no aplicativo:

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

Ook als er een problem optreedt é het goed om de comments te raadplegen.

// Inclui as seguintes bibliotecas: #include #include

// Os pinos de leitura analógica para todos os sensores nesta construção:

int tempSensor = A0; int disSensor = A1;

// Regras de publicação:

// O tempo de atraso e o nome do evento para publicação. // Tempo de atraso em milissegundos. int delayTime = 15000; String eventName = "Actual_Temperature";

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

// Display de cristal líquido code ///////////// ///////////////////////////////// ////////////////// // Inicializar o display com os pinos de dados LiquidCrystal lcd (D5, D4, D3, D2, D1, D0);

// Configurar limites para valores de índice de calor

cuidado interno = 27; int eCD = 33; perigo interno = 40; extremo int = 52;

// Retorna uma mensagem para um valor de índice de calor específico.

String mensagem (int hI) {if (hI <cuidado) {return "Sem cuidado."; } if (hI <eCD) {return "Cuidado!"; } if (hI <perigo) {return "Cuidado extremo!"; } if (hI <extremo) {return "Perigo !!"; } retorne "PERIGO EXTREMO !!"; }

// A mensagem na segunda linha do display.

String message2 = "T real:";

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

// Código do sensor de distância ///////////////////////////// //////////////// //////////////////////////////////////////// // Valores brutos mínimo e máximo que o sensor retorna. int minD = 2105; int maxD = 2754;

// Valores brutos reais que o sensor retornou a cada 5 mm.

dez int = 2754; int tenP = 2691; onze int = 2551; onze int; P = 2499; doze int = 2377; int dozeP = 2276; int treze = 2206; int trezeP = 2198; int quatorze = 2105;

// Retorna a distância em cm que pertence a um valor bruto para cada 5 mm.

float getDis (número int) {switch (número) {case 2754: return 10; caso 2691: retorno 10,5; caso 2551: retorno 11; caso 2499: retorno 11,5; caso 2377: retorno 12; caso 2276: retorno 12,5; caso 2206: retorno 13; caso 2198: retorno 13,5; caso 2105: retorno 14; }}

// Calcula a distância real em cm que o sensor de distância capturou.

float calculDis (início interno, parada flutuante, medição interna) {distância do flutuador = getDis (início); passo flutuante = (parar - iniciar) / 10; para (int i = 0; i <5; i ++) {if (medição = (etapa inicial)) {distância de retorno; } start = start - step; distância = distância + 0,1; }}

// Verifica os grandes limites entre os quais o sensor de distância está.

float distance (int medição) {// Se o sensor de distância não estava entre 10 e 14 cm, // não sabemos a distância real e retornamos 10. if (medição maxD) {return 10.0; } if (medição <= trezeP) {retornar calcularDis (trezeP, quatorze, medição); } if (medição <= treze) {retornar calcularDis (treze, trezeP, medição); } if (medição <= dozeP) {retornar calcularDis (dozeP, treze, medição); } if (medição <= doze) {retornar calcularDis (doze, dozeP, medição); } if (medição <= onzeP) {retornar calcularDis (onzeP, doze, medição); } if (medição <= onze) {retornar calcularDis (onze, onzeP, medição); } if (medição <= tenP) {retornar calcularDis (tenP, onze, medição); } if (medição <= dez) {retornar calcularDis (dez, tenP, medição); } // O código nunca deve chegar aqui. return -2; }

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

// Código do sensor de temperatura /////////////////////////////////////////////// //////////////// ////////////////////////////////////// //////////////////////////////////////////////////////// / // A tensão máxima em mV usada para o sensor de temperatura. float maxV = 3300,0;

// A tensão de base e a temperatura que o acompanha que o sensor de temperatura retorna.

// A tensão está em mV. int base V = 750; int baseT = 25;

// Calcula a temperatura a partir do valor medido no pino analógico.

float calculTemp (int medição) {float voltage = ((maxV / 4096) * medição); float diff = baseV - tensão; flutuador temp = baseT - (diff / 10); return temp; }

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

// Cálculos de umidade ///////////////////////// ///////////////////// //////////////////////////////////// // Variáveis para cálculos de umidade, // vêm de sensores de umidade reais. flutuante h15 = 10,0; flutuante h30 = 10,5; flutuante h60 = 11,5; float h75 = 12,0; flutuante h90 = 12,5; passo flutuante H = 0,167;

// Retorna a umidade relativa para um intervalo de distância específico.

int calculeHum (float dis, float lowH, float highH, int start) {float diff = dis - lowH; float i1 = diff / stepH; int i = redondo (i1); saída interna = (início + (5 * i)); saída de retorno; }

// Retorna a umidade relativa.

umidade interna (float dis) {if (dis <= h30) {return calculHum (dis, h15, h30, 15); } if (dis <= h60) {return calculHum (dis, h30, h60, 30); } if (dis <= h75) {return calculHum (dis, h60, h75, 60); } if (dis <= h90) {return calculHum (dis, h75, h90, 75); } return 100; }

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

// Fórmula de índice de calor ///////////////////////////// //////////////// /////////////////////////////////////// // Constantes usadas na fórmula do índice de calor float 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;

// A fórmula do índice de calor que leva uma temperatura e umidade relativa.

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

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

// Outras funções / variáveis ////////////////////////////////////////////// ////// ////////////////////////////////////////////// /////////////////////////////////////// // Retorna uma representação de string de um float arredondado para uma casa decimal. String rOne (float num) {int value = round (num * 10); Saída de string = valor (String); char end = output [strlen (output) -1]; int à esquerda = valor / 10; String begin = (String) left; return begin + "." + fim; }

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

/ Todo o código aqui deve ser executado uma vez no Photon antes do início das funções de loop.

void setup () {// Configure o número de colunas e linhas do LCD: lcd.begin (16, 2); }

// Todo o código aqui está sendo executado em loop e deve conter dados de obtenção, refinamento e colocação online.

void loop () {// Obter temperatura e umidade. float temp = calculTemp (analogRead (tempSensor)); float dis = distância (analogRead (disSensor)); int hum = umidade (dis); String úmido = (String) zumbido; // Calcule o índice de calor. float hI = heatIndex (temp, hum); // Configure a string de saída e imprima todas as mensagens no display LCD. Saída de string = rOne (hI); lcd.setCursor (0, 0); lcd.print (mensagem (round (hI))); lcd.setCursor (0, 1); lcd.print (mensagem2 + saída + "C"); saída = saída + "" + úmido; // Publique os valores do índice de calor online e aguarde antes de fazer o loop novamente. Particle.publish (eventName, output); atraso (delayTime); }

Etapa 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 e breadboard

- Temperatuursensor

- 220 Ohm weerstand

- Afstandssensor

- Potenciômetro LCD-scherm e 10k Ohm (opcional)

- Draadjes de tábua de pão Genoeg, 9+

- Draadjes jumper masculino / feminino, 12 (opcional)

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

Verbindt de 5V van de fóton aan de andere kant aan de + rails aan die kant.

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

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

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

De afstandssensor kan verbonden worden porta de entrada nos trilhos de 3,3 V para parar, de aterramento nos trilhos de terra e saída analógica em A1 van de fóton para parar.

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

1. Verbindt de potenciômetro aan het breadboard com 5V en de ground.

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

Pino 1, 5 e 16 van de LCD no chão. Pino 2 e 15 naar 5V.

Verbindt de analoge output van de potenciômetro, de middelste pin, met pin 3 van de LCD.

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

Pino D5 naar Pino 4

Pino D4 naar Pino 6

Pino D3 naar Pino 11

Pino D2 naar Pino 12

Pino D1 naar Pino 13

Pino D0 naar Pino 14

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

Etapa 9: Plaats De Photon En Het LCD-Scherm em De Opstelling

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

Benodigdheden: - Powerbank (opcional)

Nu de photon klaar voor gebruik é kan deze op het plankje em de bak geplaatst worden en het LCD-scherm kan tegen het gat geplakt worden. Nu é o momento certo om de fóton de laten draaien op een powerbank maar dit is natuurlijk niet verplicht.

Etapa 10: Kalibreren (opcional)

Benodigdheden:

- Luchtvochtigheidssensor

- Temperatuurímetro

- Rolmaat

- Código de saída 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 com een temperatuurmeter te vergelijken com 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 te vergelijken met een echte luchtmeter.

Em de bijgeleverde code zitten comments die aangeven waar dit soort kalibratie variabelen staan.

Etapa 11: O medidor de índice De Warmte é Klaar Voor Gebruik

Veel plezier!

Recomendado: