Πίνακας περιεχομένων:

Μετρητής ευρετηρίου Warmte: 11 βήματα
Μετρητής ευρετηρίου Warmte: 11 βήματα

Βίντεο: Μετρητής ευρετηρίου Warmte: 11 βήματα

Βίντεο: Μετρητής ευρετηρίου Warmte: 11 βήματα
Βίντεο: Kernel Router Secrets: Unveiling Windows 11/Server 2022's Route Table! 2024, Ιούλιος
Anonim
Μετρητής ευρετηρίου θερμότητας
Μετρητής ευρετηρίου θερμότητας

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

Een warmte index meter geeft de gevoelstemperatuur aan op based 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 συναντήθηκε με το breadboard

- Temperatuursensor (TMP36)

Afstandssensor voor afstanden tussen 10 en 20 cm.

- ΑΠΟΘΗΚΗ ΕΝΕΡΓΕΙΑΣ

- 220 Ohm καταλαβαίνουμε

- Breadboard draadjes, 9+

- Κινητό τηλέφωνο + Υπολογιστής

- 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 ποτενσιόμετρο + αρσενικός/θηλυκός άλτης draadjes, 12

- Luchtvochtigheidsmeter

- Θερμομετρητής- Rolmaat

Βήμα 1: De Photon Instellen

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

Benodigdheden:- Τηλέφωνο Mobiele

- Φωτόνιο

- Υπολογιστή

Κατεβάστε την εφαρμογή σωματιδίων στο τηλέφωνο και στο λογαριασμό σωματιδίων.

Σταματήστε το usb-kabel van de photon στον υπολογιστή σας, διεκδικήστε το photon en stel de wifi in.

Dit kan μέσω setup.particle.io.

Βήμα 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, του 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

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 ελάχιστο 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: 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 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: Maak Een Hefboom

Μάακ Εν Χέφμπομ
Μάακ Εν Χέφμπομ
Μάακ Εν Χέφμπομ
Μάακ Εν Χέφμπομ

Benodigdheden:- 2 potloden

- Κουρκ

- 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 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 balanceer 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

Benodigdheden:

- Afstandsensor

- Opzetstukje (optioneel)

Extra draad en soldeer set (optioneel)

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.

Βήμα 7: Κωδικός Schrijven

Benodigdheden:- Λογαριασμός υπολογιστών με σωματίδια

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

Σε βάσεις βιβλιοθηκών, zoek LiquidCrystal και εισαγωγή αρχείου σε εφαρμογή.

Dan kan de volgende code gekopieerd worden στην εφαρμογή:

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

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

// Συμπεριλάβετε τις ακόλουθες βιβλιοθήκες: #include #include

// Οι αναλογικές ακίδες ανάγνωσης για όλους τους αισθητήρες σε αυτήν την κατασκευή:

int tempSensor = A0; int disSensor = A1;

// Κανόνες δημοσίευσης:

// Ο χρόνος καθυστέρησης και το όνομα του συμβάντος για δημοσίευση. // Χρόνος καθυστέρησης σε χιλιοστά του δευτερολέπτου. int delayTime = 15000; String eventName = "Actual_Temperature";

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

// Κωδικός οθόνης υγρών κρυστάλλων ///////////////////////////////////////// /////////////////// // Αρχικοποιήστε την οθόνη με τις ακίδες δεδομένων LiquidCrystal LCD (D5, D4, D3, D2, D1, D0).

// Ρύθμιση ορίων για τιμές δείκτη θερμότητας

int προσοχή = 27; int eCD = 33; int κίνδυνος = 40; int extreme = 52;

// Επιστρέφει ένα μήνυμα για μια συγκεκριμένη τιμή δείκτη θερμότητας.

Μήνυμα συμβολοσειράς (int hI) {if (hI <caution) {return "No caution."; } if (hI <eCD) {return "Προσοχή!"; } if (hI <κίνδυνος) {return "Extreme προσοχή!"; } if (hI <extreme) {return "Κίνδυνος !!"; } επιστροφή "ΕΞΤΡΕΜΟΣ ΚΙΝΔΥΝΟΣ !!"; }

// Το μήνυμα στη δεύτερη γραμμή της οθόνης.

String message2 = "Πραγματικό T:";

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

// Κωδικός αισθητήρα απόστασης /////////////////////////////////////////// ///////////////////////////////////// // Ελάχιστες και μέγιστες πρώτες τιμές που επιστρέφει ο αισθητήρας. int minD = 2105; int maxD = 2754;

// Πραγματικές ακατέργαστες τιμές που επέστρεφε ο αισθητήρας κάθε 5mm.

int ten = 2754; int tenP = 2691; int έντεκα = 2551; int elevenP = 2499; int δώδεκα = 2377; int twelveP = 2276; int δεκατρία = 2206; int δεκατρίαP = 2198; int δεκατέσσερα = 2105;

// Επιστρέφει την απόσταση σε cm που ανήκει σε μια πρώτη τιμή για κάθε 5mm.

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

// Υπολογίζει την πραγματική απόσταση σε cm που κατέγραψε ο αισθητήρας απόστασης.

float υπολογισμόςDis (int start, float stop, int μέτρηση) {float distance = getDis (έναρξη); float step = (στάση - εκκίνηση)/10; για (int i = 0; i <5; i ++) {if (μέτρηση = (βήμα εκκίνησης)) {απόσταση επιστροφής; } έναρξη = έναρξη - βήμα; απόσταση = απόσταση + 0.1; }}

// Ελέγχει τα μεγάλα όρια μεταξύ των οποίων βρίσκεται ο αισθητήρας απόστασης.

πλωτή απόσταση (int μέτρηση) {// Εάν ο αισθητήρας απόστασης δεν ήταν μεταξύ 10 και 14 cm, // δεν γνωρίζουμε την πραγματική απόσταση και επιστρέφουμε 10. εάν (μέτρηση maxD) {επιστροφή 10,0; } if (μέτρηση <= δεκατρίαP) {return calcDis (δεκατρίαP, δεκατέσσερα, μέτρηση); } if (μέτρηση <= δεκατρία) {return calcDis (δεκατρία, δεκατρίαP, μέτρηση); } if (μέτρηση <= δώδεκαP) {return calcDis (twelveP, δεκατρία, μέτρηση); } if (μέτρηση <= δώδεκα) {return calcDis (δώδεκα, δώδεκαP, μέτρηση); } if (μέτρηση <= έντεκαP) {return calcDis (έντεκαP, δώδεκα, μέτρηση); } if (μέτρηση <= έντεκα) {return calcDis (έντεκα, έντεκαP, μέτρηση); } if (μέτρηση <= tenP) {return calcDis (tenP, έντεκα, μέτρηση); } if (μέτρηση <= δέκα) {return calcDis (δέκα, tenP, μέτρηση); } // Ο κώδικας δεν πρέπει ποτέ να φτάσει εδώ. επιστροφή -2? }

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

// Κωδικός αισθητήρα θερμοκρασίας ////////////////////////////////////////// //////////////////////////////////////////////// ///////////////////////////////////////////////////////// / // Η μέγιστη τάση σε mV που χρησιμοποιείται για τον αισθητήρα θερμοκρασίας. float maxV = 3300.0;

// Η τάση βάσης και η συνοδευτική θερμοκρασία που επιστρέφει ο αισθητήρας θερμοκρασίας.

// Η τάση είναι σε mV. int βάσηV = 750; int baseT = 25;

// Υπολογίζει τη θερμοκρασία από τη μετρούμενη τιμή στον αναλογικό πείρο.

float calcTemp (int μέτρηση) {float voltage = ((maxV/4096)*μέτρηση); float diff = baseV - τάση. float temp = baseT - (diff/10); θερμοκρασία επιστροφής? }

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

// Υπολογισμοί υγρασίας /////////////////////////////////////////// ////////////////////////////// // Μεταβλητές για υπολογισμούς υγρασίας, // προέρχονται από πραγματικούς αισθητήρες υγρασίας. float h15 = 10,0; float h30 = 10,5; float h60 = 11,5; float h75 = 12,0; float h90 = 12,5; float stepH = 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) {return calcHum (dis, h15, h30, 15); } if (dis <= h60) {return calcHum (dis, h30, h60, 30); } if (dis <= h75) {return calcHum (dis, h60, h75, 60); } if (dis <= h90) {return calcHum (dis, h75, h90, 75); } επιστροφή 100; }

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

// Τύπος δείκτη θερμότητας /////////////////////////////////////////// ////////////////////////////////// // Σταθερές που χρησιμοποιούνται στον τύπο του δείκτη θερμότητας 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;

// Ο τύπος δείκτη θερμότητας που λαμβάνει θερμοκρασία και σχετική υγρασία.

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

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

// Άλλα fucntions/μεταβλητές //////////////////////////////////////// ////// /////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////Μμ String rOne (float num) {int value = round (num*10); Έξοδος συμβολοσειράς = (Χορδή) τιμή. char τέλος = έξοδος [strlen (έξοδος) -1]; int αριστερά = τιμή/10; String begin = (String) left? επιστροφή έναρξης + "." + τέλος? }

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

/ Όλος ο κώδικας εδώ πρέπει να εκτελεστεί μία φορά στο Photon πριν ξεκινήσουν οι λειτουργίες βρόχου.

void setup () {// Ρυθμίστε τον αριθμό των στηλών και των σειρών LCD: lcd.begin (16, 2); }

// Όλος ο κώδικας εδώ βρίσκεται σε loop και πρέπει να περιέχει λήψη δεδομένων, βελτίωση και τοποθέτηση στο διαδίκτυο.

void loop () {// Λάβετε θερμοκρασία και υγρασία. float temp = calcTemp (analogRead (tempSensor)); float dis = απόσταση (analogRead (disSensor)); int hum = υγρασία (dis); String humid = (String) βουητό; // Υπολογίστε τον δείκτη θερμότητας. float hI = heatIndex (temp, βουητό); // Ρυθμίστε τη συμβολοσειρά εξόδου και εκτυπώστε όλα τα μηνύματα στην οθόνη 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

Benodigdheden:

- Photon en breadboard

- Αισθητήρας θερμοκρασίας

- 220 Ohm καταλαβαίνουμε

- Afstandssensor

- Ποτενσιόμετρο LCD-scherm en 10k Ohm (optioneel)

- Genoeg breadboard draadjes, 9+

Άνδρας/Γυναίκα άλτης draadjes, 12 (optioneel)

Verbindt de 3.3V van de photon met de + rails aan dezelfde kant en verbindt de ground a - rails.

Verbindt de 5V van de photon aan de andere kant aan de + ράγες 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 rail.

Μπορείτε να κατανοήσετε την είσοδο του αισθητήρα και να καταλάβετε τις ράγες 3.3V.

Μπορείτε να επιλέξετε την είσοδο της πόρτας κατά την είσοδο σε ράγες 3.3V και να σταματήσετε, γείωση σε ράγες εδάφους και ανάλυση αναλύσεων σε Α1 και φωτόνιο.

Επίσης, είναι επιθυμητή η LCD-scherm wilt aansluiten wert dat alls 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 en 15 naar 5V.

Verbindt de analoge output van potentiometer, de middelste pin, met pin 3 van LCD.

3. Βοηθήστε τις καρφίτσες των φωτονίων και τις καρφίτσες των LCD με το 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 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 in De Opstelling

Plaats De Photon En Het LCD-Scherm στο De Opstelling
Plaats De Photon En Het LCD-Scherm στο De Opstelling

Benodigdheden:- Powerbank (optioneel)

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. Δεν είναι δυνατή η στιγμή που όλα τα φωτόνια έχουν τεθεί σε λειτουργία με το powerbank και είναι φυσικό.

Βήμα 10: Kalibreren (optioneel)

Benodigdheden:

- Luchtvochtigheidssensor

- Θερμομετρητής

- Ρολμάατ

- Έξοδος κώδικα για τον κωδικό πρόσβασης και την παρακολούθηση της ανάλυσης

Όλα τα λογισμικά που έχουν προηγηθεί θα μπορούσαν να χρησιμοποιηθούν για την ανίχνευσή τους.

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

Σε de bijgeleverde κώδικα zitten σχόλια die aangeven waar dit soort kalibratie variabelen staan.

Βήμα 11: Ο μετρητής ευρετηρίου De Warmte Is Klaar Voor Gebruik

Veel plezier!

Συνιστάται: