Table des matières:
- Fournitures
- Étape 1: De Photon Instellen
- Étape 2: Paardenhaar
- Étape 3: Maak Een Horizontale Opstelling a rencontré Daaraan Een Kastje
- Étape 4: Maak Een Kastje Voor De Photon En LCD-scherm
- Étape 5: Maak Een Hefboom
- Étape 6: Plaats De Afstandmeter Onder Het (kartonnen) Plaatje
- Étape 7: Codez Schrijven
- Étape 8: Verbind De Photon
- Étape 9: Plaats De Photon En Het LCD-Scherm in De Opstelling
- Étape 10: Kalibreren (optionnel)
- Étape 11: Le compteur d'indice De Warmte est Klaar Voor Gebruik
Vidéo: Compteur d'indice Warmte : 11 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Met deze instructable kun je je eigen warmte index mètre maken.
Een warmte index meter geeft de gevoelstemperatuur aan op base van de omgevingstemperatuur en de luchtvochtigheid.
Deze meter est bedoeld voor binnen maar kan buiten worden gebruikt mits er geen neerslag valt en er een windvrij plekje wordt gebruikt.
Fournitures
- Particle Photon rencontré planche à pain
- Capteur de température (TMP36)
- Afstandssensor voor afstanden tussen 10 en 20 cm.
- Banque d'alimentation
- Support 220 Ohm
- Planche à pain draadjes, 9+
- Téléphone mobile + Ordinateur
- Paardenhaar
- Hout en houtlijm
- Gereedschap: Boormachine/schroevendraaier, zaag en vijl
- Zeep
- 2 potloden - Kourk
- Kartonnen plaatje + wit papier
- Gewichtjes, denk aan kleine loodjes of metalen plaatjes
Optionnel:
- Écran LCD + potentiomètre 10k Ohm + cavaliers mâle/femelle, 12
- Luchtvochtigheidsmeter
- Températuurmètre - Rolmaat
Étape 1: De Photon Instellen
Benodigdheden:- Téléphone mobile
- Photon
- Ordinateur
Téléchargez l'application de particules op je telefoon en maak een account account.
Stop de usb-kabel van de photon in je computer, claim de photon en stel de wifi in.
Dit kan via setup.particle.io.
Étape 2: Paardenhaar
Benodigdheden:- Paard
Voor het maken van de haar-hydromètre 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).
Étape 3: Maak Een Horizontale Opstelling a rencontré 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)
Étape 4: Maak Een Kastje Voor De Photon En LCD-scherm
Benodigdheden:- Hout en houtlijm
- Gereedschap: zaag
Maak een simpele houten bak zonder deksel a rencontré een houten planche die in het midden staat als een diviseur. Op deze plank moet het breadboard a rencontré 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 est kan deze op zijn zijkant naast de haar worden gezet aan de kant waar de gewichtjes aan de haar hangen.
Étape 5: Maak Een Hefboom
Benodigdheden:- 2 potloden
- Kourk
- 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 balancer deze uit met een gewichtje (zie afbeelding 3 ringen).
Étape 6: Plaats De Afstandmeter Onder Het (kartonnen) Plaatje
Benodigdheden:
- Afstandsensor
- Opzetstukje (optionnel)
- Jeu de draad et de soudure supplémentaires (optionel)
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.
Étape 7: Codez Schrijven
Benodigdheden: - Compte de particules rencontré par ordinateur
Ga naar build.particle.io et maak een nieuwe app aan. Noem deze bijvoorbeeld HeatIndex.
Onder bibliothèques, zoek LiquidCrystal et import deze in de app.
Dan kan de volgende code gekopieerd worden dans l'application:
Lees de comments goed door als je wilt begrijpen wat elk stukje code precies doet.
Ook als er een problem optreedt is het goed om de comments te raadplegen.
// Inclut les bibliothèques suivantes:#include #include
// Les broches de lecture analogiques pour tous les capteurs de cette version:
int tempSensor = A0; int disSensor = A1;
// Règles de publication:
// Le délai et le nom de l'événement pour la publication. // Délai en millisecondes. int delayTime = 15000; String eventName = "Actual_Temperature";
/////////////////////////////////////////////////
// Code d'affichage à cristaux liquides //////////// ////////////////////////////// ///////////////// // Initialiser l'affichage avec les broches de données LiquidCrystal lcd(D5, D4, D3, D2, D1, D0);
// Configurer les limites pour les valeurs d'indice de chaleur
int prudence = 27; int eCD = 33; danger entier = 40; entier extrême = 52;
// Renvoie un message pour une valeur d'indice de chaleur spécifique.
String message(int hI) { if(hI < attention) { return "Pas d'avertissement. "; } if(hI < eCD) { return « Attention ! »; } if(hI < danger) { return "Extrême prudence !"; } if(hI < extreme) { return "Danger !! "; } return "DANGER EXTRÊME !!"; }
// Le message sur la deuxième ligne de l'affichage.
Chaîne message2 = "T réel: ";
//////////////////////////////////////////////////////
// Code capteur de distance /////////////////////////// //////////////// //////////////////////////////////// // Valeurs brutes minimales et maximales renvoyées par le capteur. int minD = 2105; int maxD = 2754;
// Valeurs brutes réelles renvoyées par le capteur tous les 5 mm.
entier dix = 2754; int dixP = 2691; int onze = 2551; int onzeP = 2499; int douze = 2377; int douzeP = 2276; int treize = 2206; int treizeP = 2198; int quatorze = 2105;
// Renvoie la distance en cm qui appartient à une valeur brute tous les 5 mm.
float getDis(int number) { switch(number){ case 2754: return 10; cas 2691: retour 10,5; cas 2551: retour 11; cas 2499: retour 11.5; cas 2377: retour 12; cas 2276: retour 12,5; cas 2206: retour 13; cas 2198: retour 13,5; cas 2105: retour 14; } }
// Calcule la distance réelle en cm capturée par le capteur de distance.
float calculateDis(int start, float stop, int mesure) { float distance = getDis(start); pas flottant = (arrêt - démarrage)/10; for(int i = 0; i < 5; i++) { if(measurement = (start-step)){ return distance; } début = début - étape; distance = distance + 0,1; } }
// Vérifie les grandes limites entre lesquelles se trouve le capteur de distance.
float distance(int Measurement) { // Si le capteur de distance n'était pas compris entre 10 et 14 cm, // on ne connait pas la distance réelle et on retourne 10. if(measure maxD) { return 10.0; } if(mesure <= treizeP) { return calculateDis(treizeP, quatorze, mesure); } if(mesure <= treize) { return calculateDis(treize, treizeP, mesure); } if(mesure <= douzeP) { return calculateDis(douzeP, treize, mesure); } if(mesure <= douze) { return calculateDis(douze, douzeP, mesure); } if(mesure <= onzeP) { return calculateDis(onzeP, douze, mesure); } if(mesure <= onze) { return calculateDis(onze, onzeP, mesure); } if(mesure <= dixP) { return calculateDis(tenP, onze, mesure); } if(mesure <= dix) { return calculateDis(dix, dixP, mesure); } // Le code ne devrait jamais arriver ici. retour -2; }
///////////////////////////////////////////////////////////////////////////////////////
// Code capteur de température /////////////////////////////////////////// ///////////// /////////////////////////////////// /////////////////////////////////////////////////////////////// / // La tension maximale en mV utilisée pour le capteur de température. flottant maxV = 3300,0;
// La tension de base et la température d'accompagnement que le capteur de température renvoie.
// La tension est en mV. int baseV = 750; int baseT = 25;
// Calcule la température à partir de la valeur mesurée sur la broche analogique.
float calculateTemp (mesure int) { tension flottante = ((maxV/4096)*mesure); float diff = baseV - tension; float temp = baseT - (diff/10); température de retour; }
///////////////////////////////////////////////////
// Calculs d'humidité /////////////////////// //////////////////// ///////////////////////////// // Les variables pour les calculs d'humidité, // proviennent de capteurs d'humidité réels. flottant h15 = 10,0; flottant h30 = 10,5; flotteur h60 = 11,5; flottant h75 = 12,0; flotteur h90 = 12,5; pas flottant H = 0,167;
// Renvoie l'humidité relative pour une plage de distance spécifique.
int calculateHum(float dis, float lowH, float highH, int start) { float diff = dis - lowH; float i1 = diff/stepH; entier i = rond(i1); int sortie = (début + (5*i)); sortie de retour; }
// Renvoie l'humidité relative.
int humidité(float dis) { if (dis <= h30) { return calculateHum(dis, h15, h30, 15); } if (dis <= h60) { return calculateHum(dis, h30, h60, 30); } if (dis <= h75) { return calculateHum(dis, h60, h75, 60); } if (dis <= h90) { return calculateHum(dis, h75, h90, 75); } renvoie 100; }
///////////////////////////////////////////////////
// Formule de l'indice de chaleur /////////////////////////// //////////////// ///////////////////////////////// // Constantes utilisées dans la formule d'indice de chaleur float c1 = -8.78469475556; flottant c2 = 1.61139411; flottant c3 = 2,33854883889; flottant c4 = -0,14611605; flottant c5 = -0,0123008094; flottant c6 = -0,0164248277778; flottant c7 = 0,002211732; flottant c8 = 0,00072546; flottant c9 = -0.000003582;
// La formule de l'indice de chaleur qui prend une température et une humidité relative.
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); }
///////////////////////////////////////////////////////////////////////////////
// Autres fonctions/variables ////////////////////////////////////////// ////// ////////////////////////////////////////// ///////////////////////////////// // Renvoie une représentation sous forme de chaîne d'un flottant arrondi à une décimale inférieure. String rOne(float num) { int value = round(num*10); Sortie de chaîne = valeur (chaîne); char end = sortie[strlen(sortie)-1]; int gauche = valeur/10; Début de la chaîne = (chaîne) gauche; retour début + "." + fin; }
//////////////////////////////////////////////////////////////////////////////
/ Tout le code ici doit être exécuté une fois sur le photon avant le démarrage des fonctions de bouclage.
void setup() { // Configure le nombre de colonnes et de lignes de l'écran LCD: lcd.begin(16, 2); }
// Tout le code ici est en boucle et doit contenir des données à récupérer, à affiner et à mettre en ligne.
void loop() { // Récupère la température et l'humidité. float temp = calculateTemp(analogRead(tempSensor)); float dis = distance(analogRead(disSensor)); int hum = humidité(dis); Chaîne humide = (chaîne) bourdonnement; // Calcule l'indice de chaleur. float hI = heatIndex(temp, hum); // Configurez la chaîne de sortie et imprimez tous les messages sur l'écran LCD. Sortie de chaîne = rOne(hI); lcd.setCursor(0, 0); lcd.print(message(rond(hI))); lcd.setCursor(0, 1); lcd.print(message2 + sortie + "C "); sortie = sortie + " " + humide; // Publiez les valeurs de l'indice de chaleur en ligne et attendez avant de recommencer la boucle. Particle.publish(eventName, sortie); delay(delayTime); }
Étape 8: Verbind De Photon
Benodigdheden:
- Photon et planche à pain
- Capteur de température
- Support 220 Ohm
- Afstandssensor
- LCD-scherm et potentiomètre 10k Ohm (optionel)
- Planche à pain Genoeg draadjes, 9+
- Pull draadjes mâle/femelle, 12 (optionel)
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 andere kant aan de + rails aan die kant.
Stop de temperatuursensor ergens met genoeg ruimte eromheen in het breadboard.
Verbindt de sortie analogique van de temperatuursensor rencontré A0 van de photon en de sol avec rails de sol.
Zet de weerstand voor de input van de sensor et verbindt 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 ground rails and de analog output in A1 van de photon te stoppen.
Als je een LCD-scherm wilt aansluiten werkt dat als volgt:
1. Verbindt de potentiometer aan het breadboard a rencontré 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.
Pin 1, 5 et 16 van de LCD naar masse. Broche 2 et 15 à 5V.
Verbindt de sortie analogique du potentiomètre, de la broche médiane, rencontré la broche 3 de l'écran LCD.
3. Verbindt de volgende photon pins naar LCD pins rencontré jumper draadjes.
Broche D5 à côté de Broche 4
Broche D4 à côté de Broche 6
Broche D3 à côté de Broche 11
Broche D2 à côté de Broche 12
Broche D1 à côté de Broche 13
Broche D0 à côté de Broche 14
Als de photon nu aanstaat en er aan de potentiometer gedraaid wordt moeten er op het LCD-scherm blokjes verschijnen.
Étape 9: Plaats De Photon En Het LCD-Scherm in De Opstelling
Benodigdheden:- Powerbank (optionel)
Nu de photon klaar voor gebruik est 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.
Étape 10: Kalibreren (optionnel)
Benodigdheden:
- Luchtvochtigheidssensor
- Températuurmètre
- Rolmaat
- Sortie de code 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 en te vergelijken met een senschtigmeter
In de bijgeleverde code zitten comments die aangeven waar dit soort kalibratie variabelen staan.
Étape 11: Le compteur d'indice De Warmte est Klaar Voor Gebruik
Veau plezier !
Conseillé:
Indicateur d'indice UV utilisant le capteur ULTRAVIOLET ML8511 Arduino : 6 étapes
Indicateur d'indice UV à l'aide du capteur ULTRAVIOLET ML8511 Arduino : Dans ce tutoriel, nous allons apprendre à mesurer l'indice UV du soleil à l'aide du capteur ULTRAVIOLET ML8511. Regardez la vidéo ! https://www.youtube.com/watch?v=i32L4nxU7_M
Moniteur météorologique M5Stack M5stick C basé sur ESP32 avec DHT11 - Surveiller la température, l'humidité et l'indice de chaleur sur le M5stick-C avec DHT11 : 6 étapes
Moniteur météorologique M5Stack M5stick C basé sur ESP32 avec DHT11 | Surveiller l'indice d'humidité et de chaleur de la température sur M5stick-C avec DHT11 : Salut les gars, dans ces instructables, nous apprendrons comment interfacer le capteur de température DHT11 avec m5stick-C (une carte de développement par m5stack) et l'afficher sur l'écran de m5stick-C. Donc, dans ce tutoriel, nous allons lire la température, l'humidité & chauffer je
Alarme d'indice de chaleur : 7 étapes
Alarme d'indice de chaleur : ce projet est né d'un besoin de surveiller les températures dans les zones de travail, ainsi que de signaler lorsque les températures atteignent des seuils donnés. Certaines recherches basées sur les limites d'exposition à la température par l'OSHA ont contribué à le rendre pratique. Maintenant que c'est terminé
Indice de chasse au trésor Buzz Wire : 7 étapes (avec photos)
Buzz Wire Scavenger Hunt Clue : ce Instructable vous montrera comment construire une version hi-tech du jeu « Buzz Wire » qui peut être utilisé comme indice dans la chasse au trésor, ou peut être adapté pour d'autres défis
Un appareil de mesure d'indice UV parlant, utilisant le capteur VEML6075 et le Little Buddy Talker : 5 étapes
Un appareil de mesure d'indice UV parlant, utilisant le capteur VEML6075 et le Little Buddy Talker : l'été arrive ! Le soleil brille ! Ce qui est génial. Mais à mesure que le rayonnement ultraviolet (UV) devient plus intense, les gens comme moi ont des taches de rousseur, de petites îles brunes nageant dans une mer de peau rouge, brûlée par le soleil et qui démange. Pouvoir avoir des informations en temps réel