Բովանդակություն:

Warmte ինդեքսի հաշվիչ ՝ 11 քայլ
Warmte ինդեքսի հաշվիչ ՝ 11 քայլ

Video: Warmte ինդեքսի հաշվիչ ՝ 11 քայլ

Video: Warmte ինդեքսի հաշվիչ ՝ 11 քայլ
Video: Amsa brochure on separate waste collection Opuscolo Amsa sulla raccolta differenziata! amsa #8 2024, Հուլիսի
Anonim
Warmte ինդեքս հաշվիչ
Warmte ինդեքս հաշվիչ

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

Een warmte ինդեքս հաշվիչ geeft de gevoelstemperatuur aan op բազայի 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.

Պարագաներ

- Particle Photon- ը հանդիպեց տախտակին

- peratերմաստիճանի ցուցիչ (TMP36)

- Afstandssensor voor afstanden tussen 10 en 20 սմ:

- Powerbank

- 220 Օմ հասկանում ենք

- Breadboard draadjes, 9+

- Մոբիելե հեռախոս + Համակարգիչ

- Պաարդենհար

- Hout en houtlijm

- Gereedschap: Boormachine/schroevendraaier, zaag en vijl

- epիփ

- 2 potloden- Kurk

- Kartonnen plaatje + wit papier

- Gewichtjes, denk aan kleine loodjes of metalen plaatjes

Optioneel:

- LCD scherm + 10k Օհմ պոտենցիոմետր + Արական/իգական ցատկող draadjes, 12

- Luchtvochtigheidsmeter

- peratերմաստիճանի հաշվիչ- Rolmaat

Քայլ 1: De Photon Instellen:

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

Բենոդիգդեդեն.- Մոբիելե հեռախոս

- Ֆոտոն

- համակարգիչ

Ներբեռնեք մասնիկների ծրագիրը այս հեռախոսով և մասնիկների հաշիվը:

Դադարեցրեք usb-kabel van de photon- ը համակարգչում, պահանջեք ֆոտոն և wifi աստղը:

Dit kan- ը setup.particle.io- ի միջոցով:

Քայլ 2: Պաարդենհար

Պաարդենհար
Պաարդենհար

Բենոդիգդեդեն

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

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

Քայլ 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

Բենոդիգդեդեն

- Hout + lijm

- Գերեդշապ

Maak een ombouw waarbij de paardenhaar horizontaal kan worden gespannen en die tegelijkertijd enige bescherming biedt

Ontvet de paardenhaar

Span de haar horizontalaal, bij voorkeur նվազագույն 50 սմ. Zorg dat er genoeg haar over is om de hefboom en het gewicht te bevestigen (zie volgende 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: զաագ

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 passen als de bak op zijn zijkant wordt gezet. Daarnaa kan aan de 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.

Քայլ 5. Մաակ Էն Հեֆում

Մաակ Էն Հեֆբում
Մաակ Էն Հեֆբում
Մաակ Էն Հեֆբում
Մաակ Էն Հեֆբում

Բենոդիգդեդեն- 2 պոտլոդեն

- Քուրք

- Kartonnen plaatje + wit papier

- Գևիչտես

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

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 balaner deze uit met een gewichtje (zie afbeelding 3 ringen):

Քայլ 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

Բենոդիգդեդեն.

- Afstandsensor

- Opzetstukje (այլընտրանքային օձ)

- Լրացուցիչ զարդեր և զոդման հավաքածու (այլընտրանքային)

Bij voorkeur met een afstand van minimalal 12 սմ 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.

Քայլ 7: Կոդ Schrijven

Benodigdheden:- Համակարգիչը հանդիպեց մասնիկների հաշիվ

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

Onder գրադարաններ, zoek LiquidCrystal en ներմուծել deze ծրագրում:

Dan kan de volgende code gekopieerd worden in de app:

Մեկնաբանությունները կարող են դուռը բացել, քանի որ այն կխնդրեմ ինչ -որ կերպ պահանջել ճշգրիտ ծածկագիր:

Ook als er een Problem optreedt is het goed om de comments te raadplegen:

// Ներառեք հետևյալ գրադարանները ՝ #ներառել #ներառել

// Այս կառուցվածքում գտնվող բոլոր տվիչների համար անալոգային կարդալու կապում.

int tempSensor = A0; int disSensor = A1;

// Հրապարակման կանոններ.

// Հրապարակման հետաձգման ժամանակը և իրադարձության անվանումը: // Հետաձգման ժամանակը միլիվայրկյաններով: int delayTime = 15000; String eventName = "Իրական_emերմաստիճան";

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

// Հեղուկ բյուրեղների ցուցադրման կոդ ////////////////////////////////////////// ////////////////// // Նախաստորագրեք ցուցադրումը LiquidCrystal LCD տվյալների կապում (D5, D4, D3, D2, D1, D0);

// Սահմանել ջերմության ինդեքսի արժեքների սահմանները

int զգուշություն = 27; int eCD = 33; int վտանգ = 40; int ծայրահեղ = 52;

// Վերադարձնում է հաղորդագրություն ջերմության ինդեքսի որոշակի արժեքի համար:

Լարային հաղորդագրություն (int hI) {if (hI <զգուշացում) {վերադարձնել «Ոչ մի զգուշություն.»; } if (hI <eCD) {վերադարձնել «utionգուշություն»; } if (hI <վտանգ) {վերադարձնել «caայրահեղ զգուշություն»; } if (hI <ծայրահեղ) {վերադարձ "Վտանգ !!"; } վերադարձ "EXTREME DANGER !!"; }

// Հաղորդագրությունը ցուցադրման երկրորդ տողի վրա:

Լարային հաղորդագրություն 2 = "Իրական T:";

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

// Հեռավորության ցուցիչի կոդ /////////////////////////////////////////// ///////////////////////////////////// // նվազագույն և առավելագույն չմշակված արժեքներ, որոնք սենսորը վերադարձնում է: int minD = 2105; int maxD = 2754;

// Փաստացի չմշակված արժեքները, որոնք սենսորը վերադառնում էր յուրաքանչյուր 5 մմ -ի վրա:

int տասը = 2754; int tenP = 2691; int տասնմեկ = 2551; int տասնմեկ P = 2499; int տասներկու = 2377; int տասներկու P = 2276; int տասներեք = 2206; int տասներեք P = 2198; int տասնչորս = 2105;

// Վերադարձնում է հեռավորությունը սմ -ով, որը պատկանում է հում արժեքին յուրաքանչյուր 5 մմ -ի համար:

float getDis (int number) {switch (number) {case 2754: return 10; գործ 2691 ՝ վերադարձ 10.5; գործ 2551 ՝ վերադարձ 11; գործ 2499 ՝ վերադարձ 11.5; գործ 2377 ՝ վերադարձ 12; գործ 2276 ՝ վերադարձ 12.5; գործ 2206` վերադարձ 13; գործ 2198 ՝ վերադարձ 13.5; գործ 2105 ՝ վերադարձ 14; }}

// Հաշվում է իրական հեռավորությունը սմ -ով, որը գրավել է հեռավորության սենսորը:

float calcDis (int մեկնարկ, float stop, int չափում) {float distance = getDis (սկիզբ); բոց քայլ = (կանգառ - սկիզբ)/10; համար (int i = 0; i <5; i ++) {if (չափում = (մեկնարկային քայլ)) {վերադարձի հեռավորություն; } սկիզբ = սկիզբ - քայլ; հեռավորություն = հեռավորություն + 0.1; }}

// Ստուգում է այն մեծ սահմանները, որոնց միջև ընկած է հեռավորության սենսորը:

բոց հեռավորություն (int չափում) {// Եթե հեռավորության սենսորը չէր 10 -ից 14 սմ -ի սահմաններում, // մենք չգիտենք իրական հեռավորությունը և վերադարձը 10. եթե (չափումը maxD) {վերադարձ 10.0; } if (չափում <= տասներեքP) {վերադարձը calcDis (տասներեքP, տասնչորս, չափումներ); } if (չափում <= տասներեք) {վերադարձը calcDis (տասներեք, տասներեք P, չափում); } if (չափում <= տասներկուՓ) {վերադարձը հաշվարկելԴիս (տասներկու Փ, տասներեք, չափում); } if (չափում <= տասներկու) {վերադարձը calcDis (տասներկու, տասներկուՓ, չափում); } if (չափում <= տասնմեկ P) {վերադարձը calcDis (տասնմեկ P, տասներկու, չափում); } if (չափում <= տասնմեկ) {վերադարձը calcDis (տասնմեկ, տասնմեկ P, չափում); } if (չափում <= tenP) {վերադարձը calcDis (tenP, տասնմեկ, չափում); } if (չափում <= տասը) {վերադարձը calcDis (տասը, tenP, չափում); } // Կոդը երբեք չպետք է հայտնվի այստեղ: վերադարձ -2; }

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

// Temերմաստիճանի տվիչի կոդը ////////////////////////////////////////// ////////////////////////////////////////////////// /////////////////////////////////////////////////// / // voltageերմաստիճանի տվիչի համար օգտագործվող մ. Վ. -ի առավելագույն լարումը: բոց maxV = 3300.0;

// Հիմնական լարումը և ուղեկցող ջերմաստիճանը, որը վերադարձնում է ջերմաստիճանի տվիչը:

// Լարման մՎ -ում է: int հիմք V = 750; int բազա T = 25;

// Հաշվում է ջերմաստիճանը չափված արժեքից անալոգային քորոցում:

float calcTemp (int չափում) {float voltage = ((maxV/4096)*չափում); float diff = baseV - լարման; float temp = baseT - (diff/10); վերադարձի ջերմաստիճան; }

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

// Խոնավության հաշվարկներ //////////////////////////////////////////// /////////////////////////////// Խոնավության հաշվարկման փոփոխականներ, // գալիս են իրական խոնավության տվիչներից: բոց h15 = 10.0; բոց h30 = 10.5; բոց h60 = 11.5; բոց h75 = 12.0; բոց h90 = 12.5; բոց քայլ H = 0.167;

// Վերադարձնում է հարաբերական խոնավությունը որոշակի հեռավորության տիրույթի համար:

int calcHum (float dis, float lowH, float highH, int start) {float diff = dis - lowH; float i1 = diff/stepH; int i = կլոր (i1); int ելք = (սկիզբ + (5*i)); վերադարձի ելք; }

// Վերադարձնում է հարաբերական խոնավությունը:

int խոնավություն (float dis) {if (dis <= h30) {վերադարձ հաշվարկել Hum (dis, h15, h30, 15); } if (dis <= h60) {վերադարձը հաշվարկել Hum (dis, h30, h60, 30); } if (dis <= h75) {վերադարձը հաշվարկելՀում (dis, h60, h75, 60); } if (dis <= h90) {վերադարձը հաշվարկել Hum (dis, h75, h90, 75); } վերադարձ 100; }

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

// atերմության ինդեքսի բանաձև ///////////////////////////////////////////// /////////////////////////////////// // ջերմության ինդեքսի բանաձեւում օգտագործվող հաստատուններ float c1 = -8.78469475556; բոց c2 = 1.61139411; բոց c3 = 2.33854883889; բոց c4 = -0.14611605; բոց c5 = -0.0123008094; բոց c6 = -0.0164248277778; բոց c7 = 0.002211732; բոց c8 = 0.00072546; բոց c9 = -0.000003582;

// heatերմության ինդեքսի բանաձեւը, որը վերցնում է ջերմաստիճանը եւ հարաբերական խոնավությունը:

բոց ջերմություն c7*t*t*h) + (c8*t*h*h) + (c9*t*t*t*h*h); }

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

// Այլ ֆունկցիաներ/փոփոխականներ //////////////////////////////////////// ////// ///////////////////////////////////////////// /////////////////////////////////// // Վերադարձնում է բոտի տողերի ներկայացում ՝ կլորացված մինչև տասնորդական տասնյակ: String rOne (float num) {int value = round (num*10); Լարային ելք = (Լարային) արժեք; char վերջ = ելք [strlen (ելք) -1]; int ձախ = արժեք/10; Լարի սկիզբ = (Լար) ձախ; վերադարձը սկսվում է + ": + վերջ; }

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

/ Ամբողջ կոդն այստեղ պետք է մեկ անգամ գործարկվի Photon- ում ՝ նախքան հանգույցի գործառույթների մեկնարկը:

void setup () {// Կարգավորեք LCD սյունակների և տողերի քանակը. lcd.begin (16, 2); }

// Այստեղ ամբողջ ծածկագիրը շրջափակվում է և պետք է պարունակի տվյալների ստացում, կատարելագործում և առցանց տեղադրում:

void loop () {// Ստացեք ջերմաստիճան և խոնավություն: float temp = calcTemp (analogRead (tempSensor)); float dis = հեռավորություն (analogRead (disSensor)); int hum = խոնավություն (dis); Լարային խոնավ = (Լարային) բզզոց; // Հաշվեք ջերմության ինդեքսը: float hI = heatIndex (temp, hum); // Կարգավորեք ելքային տողը և տպեք բոլոր հաղորդագրությունները LCD էկրանին: Լարային ելք = rOne (hI); lcd.setCursor (0, 0); lcd.print (հաղորդագրություն (կլոր (hI))); lcd.setCursor (0, 1); lcd.print (message2 + ելք + «C»); ելք = ելք + "" + խոնավ; // Հրապարակեք ջերմության ինդեքսի արժեքները առցանց և սպասեք, նախքան նորից շրջվելը: Particle.publish (իրադարձության անվանումը, ելքը); հետաձգում (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

Բենոդիգդեդեն.

- Ֆոտոն և գրատախտակ

- peratերմաստիճանի ցուցիչ

- 220 Օմ հասկանում ենք

- Afstandssensor

- LCD-scherm en 10k Ohm պոտենցիոմետր (այլընտրանքային)

- Genoeg breadboard draadjes, 9+

- Արական/իգական ցատկող draadjes, 12 (այլընտրանքային)

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

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

Մենք հասկանում ենք, որ մուտքագրում ենք սենսորը և մենք հասկանում ենք 3.3 Վ ռելսեր:

3.3V ռելսերի մուտքի դեպքում դուռը դադարում է կանգնեցվել, գետնին տեղադրվել է ռելսերի մեջ և վերլուծական ելքով `A1 ֆոտոնով, որը կանգ է առնում:

Բացի այդ, LCD-scherm wilt aansluiten werkt dat als volgt:

1. Verbindt de potentiometer aan het breadboard met 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.

Պին 1, 5 և 16 վիդեո LCD- ի մոտակայքում: Պին 2 և 15 նար 5 Վ:

Verbindt de analoge output van de potentiometer, de middelste pin, met pin 3 van LCD- ով:

3. Ֆոտոնային կապում, որը գտնվում է LCD- ի կապում, հանդիպել է jumper draadjes- ին:

Pin D5 կամ 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 photon nu aanstaat en er aan de potentiometer gedraaid wordt moeten er op het het LCD-scherm blokjes verschijnen.

Քայլ 9. Plaats De Photon En Het LCD-Scherm De Opstelling- ում

Plaats De Photon En Het LCD-Scherm in De Opstelling- ում
Plaats De Photon En Het LCD-Scherm in De Opstelling- ում

Benodigdheden:- Powerbank (այլընտրանքային)

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 worden. Nu is het een goed moment om de photon de laten draaien op een powerbank maar dit is natuurlijk niet verplicht.

Քայլ 10: Կալիբրերեն (այլընտրանք)

Բենոդիգդեդեն.

- Luchtvochtigheidssensor

- Temերմաստիճանաչափ

- Ռոլմաաթ

- Կոդի մուտքագրում կամ ձայնագրում և պահում է զգայարանները

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 en te vergelijken met een echte luchtvocht.

In de bijgeleverde ծածկագիրը zitten մեկնաբանություններ die aangeven waar dit soort kalibratie variabelen staan.

Քայլ 11. De Warmte ինդեքսի հաշվիչը Klaar Voor Gebruik է:

Veel plezier!

Խորհուրդ ենք տալիս: