De Super Simple Arduino Weather webserver (4 / 5 stap)

Stap 4: Luchtdruk


We hebben toegevoegd de BMP-085 / BMP180 barometrische druksensor en de berekeningen voor de warmte-Index en Dew point. De barometrische druksensor heeft 4 aansluitingen, SDA (A4), SCL (A5), Gnd en VIN (5vdc). Zie http://arduinotronics.blogspot.com/2014/02/sensing-barometric-pressure.html voor meer informatie.

De BMP Adafruit-180 is hieronder weergegeven, maar ook met de ICStation BMP-085hebben getest. Geen wijzigingen in de code of circuit. Zie http://arduinotronics.blogspot.com/2014/02/icstation-5v-bmp-085-pressure.html

Hier is de code met alle toevoegingen:

#include < Wire.h >
#include < Adafruit_BMP085.h >

zweven Tc = 0;
zweven Tf = 0;
zweven Pa = 0;
zweven InHg = 0;
float ben = 0;
zweven Af = 0;

#include "DHT.h"

#define DHTPIN 2 / / welke pin wij verbonden bent met

Uncomment welke type u!
#define DHTTYPE DHT11 / / DHT 11
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
#define DHTTYPE DHT21 / / DHT 21 (AM2301)

Aansluiten aan vastmaken 1 (aan de linkerkant) van de sensor + 5V
Verbinden met pin 2 van de sensor wat uw DHTPIN is
Pin 4 (aan de rechterkant) van de sensor verbinden met grond
Verbinding maken met een 10K Ohm weerstand van pin 2 (gegevens) aan pin 1 (kracht) van de sensor

DHT dht (DHTPIN, DHTTYPE);

float tF;
zweven dP;
float dPF;

#include < SPI.h >
#include < Ethernet.h >

Voer een MAC-adres en het IP-adres voor uw controller hieronder.
Het IP-adres zal afhankelijk van uw lokale netwerk zijn:
byte mac [] {} =
0x90, 0xA2, 0xDA, 0x00, 0x23, 0x36};
IP-adres ip(192,168,254,177);

Initialiseren van de Ethernet server bibliotheek
met het IP-adres en de poort die u wilt gebruiken
(poort 80 is de standaardwaarde voor HTTP):
EthernetServer server(80);

Adafruit_BMP085 bmp;

VOID Setup {}
Seriële communicatie te openen en te wachten voor de poort te openen:
Serial.begin(9600);

Als (! bmp.begin()) {}
Serial.println kan ("niet vinden van een geldige BMP085-sensor, raadpleegt u bedrading!");
terwijl (1) {}
}

terwijl (!. Seriële) {}
; wachten op de seriële poort te verbinden. Alleen nodig voor Leonardo
}

DHT.begin();

de Ethernet-verbinding en de server starten:
Ethernet.begin (mac, ip);
server.begin();
Serial.Print ("server is op");
Serial.println(Ethernet.localIP());
}

void loop {}

Serial.Print ("temperatuur =");
Serial.Print(BMP.readTemperature());
TC=bmp.readTemperature();
TF = ((Tc*9)/5) + 32;
Serial.Print(TF);
Serial.println ("* F");

Serial.Print ("druk =");
Serial.Print(BMP.readPressure());
PA=bmp.readPressure();
InHg Pa = * 0.000295333727;
Serial.Print(InHg);
Serial.println ("In Hg");

Berekenen uitgaande van 'standaard' barometrische hoogte
druk van 1013.25 mbar = 101325 Pascal
Serial.Print ("hoogte =");
Serial.Print(BMP.readAltitude());
Am=bmp.readAltitude(101550); aangepast voor lokale hoogte
Af = Am * 3.28084;
Serial.Print(af);
Serial.println ("feet");

kunt u een nauwkeuriger meting van hoogte
Als u weet dat de huidige zeespiegel die druk
afhankelijk van het weer en dergelijke. Als het 1015 voeren
dat is gelijk aan 101500 luchtdruk.
Serial.Print ("echte hoogte =");
Serial.Print(BMP.readAltitude(101500));
Serial.println ("meter");

Serial.println();

Lezing temperatuur of vochtigheid neemt ongeveer 250 milliseconden!
Sensor lezingen kan maximaal 2 seconden 'oude' (het is een zeer langzame sensor)
zweven h = dht.readHumidity();
zweven t = dht.readTemperature();

Controleer als opbrengsten geldig zijn, indien zij NaN (geen getal zijn) dan iets mis gegaan!
Als (isnan(t) || isnan(h)) {}
Serial.println ("kon aflezen uit DHT");
} else {}
Serial.Print ("vochtigheid:");
Serial.Print(h);
Serial.Print ("% \t");
Serial.Print ("temperatuur:");
Serial.Print(t);
tF = ((t*9)/5) + 32;
Serial.println ("* C");
}

luisteren voor clients voor inkomende
EthernetClient client = server.available();
Als (client) {}
Serial.println ("nieuwe klant");
een http-verzoek eindigt met een lege regel
Boole currentLineIsBlank = waar;
terwijl (client.connected()) {}
Als (client.available()) {}
char c = client.read();
Serial.write(c);
Als u toegang hebt verkregen tot het einde van de regel (ontvangen een newline
teken) en de regel is leeg, de http-aanvraag is beëindigd,
zodat u kunt een antwoord sturen
Als (c == '\n' & & currentLineIsBlank) {}
verzenden van een standaard http-antwoordheader
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: text/html");
client.println ("verbinding: sluiten");  de verbinding zal worden gesloten na voltooiing van de reactie
client.println ("vernieuwen: 5");  Vernieuw de pagina automatisch elke 5 sec
client.println();
client.println ("<! HTML DOCTYPE > ");
client.println ("< html >");

client.println ("< tabel >");
client.println ("< TR >");
client.println ("< TD >");
uitgang de waarde van de DHT-11

client.Print ("vochtigheid:");
client.println ("< /TD >");
client.println ("< TD >");
client.Print(h);
client.Print ("% \t");
client.println ("< /TD >");
client.println ("< /TR >");
client.println ("< TR >");
client.println ("< TD >");
client.Print ("temperatuur:");

client.println ("< /TD >");
client.println ("< TD >");
client.Print(t*1.8+32);
client.println ("°");
client.println("F");

client.println ("< /TD >");
client.println ("< /TR >");
client.println ("< TR >");
client.println ("< TD >");
client.Print ("barometerdruk:");

client.println ("< /TD >");
client.println ("< TD >");
client.Print(InHg);
client.println ("°");
client.println ("In.");
client.println ("< /TD >");
client.println ("< /TR >");

client.println ("< TR >");
client.println ("< TD >");

client.println ("dauwpunt:");

client.println ("< /TD >");
client.println ("< TD >");
dP = (dewPointFast (t, h));
dPF = ((dP*9)/5) + 32;
client.println(dPF);
client.println ("°");
client.println("F");

client.println ("< /TD >");
client.println ("< /TR >");
client.println ("< TR >");
client.println ("< TD >");

client.println ("warmte-Index:");
client.println ("< /TD >");
client.println ("< TD >");

client.println(heatIndex(TF,h));
client.println ("°");
client.println("F");
client.println ("< /TD >");
client.println ("< /TR >");

client.println ("</TABLE >");



client.println ("</html >");
breken;
}
Als (c == '\n') {}
je begint een nieuwe regel
currentLineIsBlank = true;
}
anders als (c! = '\r') {}
je hebt gekregen een teken op de huidige regel
currentLineIsBlank = false;
}
}
}
de web browser tijd geven om te ontvangen van de gegevens
delay(1);
de verbinding sluiten:
client.stop();
Serial.println ("client disonnected");
}
}

Delta max = 0.6544 wrt dewPoint()
6,9 x sneller dan dewPoint()
Referentie: http://en.wikipedia.org/wiki/Dew_point
dubbele dewPointFast (dubbele celsius, dubbele vochtigheid)
{
dubbele een = 17.271;
dubbel b = 237.7;
dubbele temp = (een * celsius) / (b + celsius) + log(humidity*0.01);
dubbele Td = (b * temp) / (a - temp);
terug Td;
}

Double heatIndex (double tempF, het dubbele van vochtigheid)
{
dubbele c1 =-42.38, c2 = 2.049, c3 = 10.14, c4 =-0.2248, c5 = - 6.838e-3, c6 = - 5.482e - 2, c7 = 1.228e-3, c8 = 8.528e-4, c9 = - 1.99e - 6;
dubbele T = tempF;
dubbele R = vochtigheid;

dubbele A = ((c5 * T) + c2) * T + c1;
dubbel B = ((c7 * T) + c4) * T + c3;
dubbele C = ((c9 * T) + c8) * T + c6;

dubbele rv = (C * R + B) * R + A;
retourneren van rv;
}

Gerelateerde Artikelen

Super Simple Arduino Powered Roomba Scheduler

Super Simple Arduino Powered Roomba Scheduler

zoals de meeste mensen die ik sceptisch was over het krijgen van een robot stofzuiger, dus als een proefrit ik dacht dat ik zou kopen de nu verouderde iRobot Roomba 530 die was zwaar voorzien (ze zijn nog steeds beschikbaar in Australië, waaruit blij
Super Simple Arduino toetsenblok (de harde manier)

Super Simple Arduino toetsenblok (de harde manier)

** Opmerking: er is een bibliotheek voor de Arduino om met behulp van een legitieme toetsenbord zo veel makkelijker. Als je net als mij in het minst, wil soms je gewoon het zelf uitzoeken. Er is meer te winnen op deze manier, en het potentiële leren
Arduino Ethernet webserver (GEHACKT)

Arduino Ethernet webserver (GEHACKT)

Middelen krijgen voor ProjectArduino Uno REV 3Seeed Ethernet Shield V1Ethernet kabel CAT-5WiFi Modem (bij voorkeur Motorola Surfboard)Stap 1: Sluit het Seeed Ethernet-Shield aan Arduino PINSVerbinding maken met de Ethernet-ShieldKrijg het Seeed Ether
Arduino stoplicht webserver

Arduino stoplicht webserver

op de plaats die ik werk, we xymon gebruiken om te controleren van onze servers. Alle services gecontroleerd zijn belangrijk, maar we wilden een aparte indicator wordt weergegeven eenvoudig de algehele gezondheid van de meest kritieke systemen. Boven
Carduino - A simple Arduino robotica platform met een eigen bibliotheek

Carduino - A simple Arduino robotica platform met een eigen bibliotheek

dit is, zoals de titel al zegt, een Arduino gebaseerde robotica-platform, met een eigen bibliotheek. De "standaard" model wordt geleverd met twee terug motoren, omni-tweewielers aan de voorkant, en een afstandssensor gemonteerd op de voorzijde.
Super Simple & Delicious Acorn Squash

Super Simple & Delicious Acorn Squash

dit is mijn favoriete manier om te eten squash. Dit is een super lekker en super eenvoudig recept om te maken. Mensen die niet graag squash meestal eigenlijk graag dit recept. Geniet van!Stap 1: Benodigdheden Ingrediënten:1 Acorn Squash (gehalveerd e
Een Simple Arduino gebaseerd lijn volgeling

Een Simple Arduino gebaseerd lijn volgeling

De bescheiden lijn volgeling is een groot voorgerecht project voor degenen krijgen in robotica. In dit instructable gaan we over de stappen die nodig zijn om één te bouwen.Stap 1: Onderdelen & gereedschapOnderdelenlijstAantal 2140 RPM rechte hoek Gea
Teclado MIDI Super Simple - Super eenvoudige MIDI Keyboard

Teclado MIDI Super Simple - Super eenvoudige MIDI Keyboard

Este tutorial te BELLISIMA paso een paso por la construcción de VN teclado-MIDI de una octava, programable via arduino gracias een su conector de 6 dennen. Vas een necesitar:Componentes:1 Atmega328p con el bootloader de Arduino1 Zócalo de 28 patas1 C
Simple Arduino gecontroleerd Aquaponic System

Simple Arduino gecontroleerd Aquaponic System

dit instructable bestrijkt bepaalde aspecten van de bouw van een aquaponic systeem. Ik gebruik een arduino-micocontroller voor het regelen van de frequentie van systeem fietsen.Als u een te bouwen een aquaponic systeem, andere instructables, blogs, b
SIMPLE ARDUINO ultrasone SENSOR deur ALARM / bewegings detector NO PIR!!!

SIMPLE ARDUINO ultrasone SENSOR deur ALARM / bewegings detector NO PIR!!!

HALLO IEDEREEN.voordat ik begin, moet u controleren of mijn video als u liever een video tutorialKlik hier om naar mijn kanaal voor meer geweldige projectenVandaag die heb ik besloten dat ik wilde bouwen een alarm voor mijn kamer, toen ik online alle
Stupid Simple Arduino LF RFID Tag Spoofer

Stupid Simple Arduino LF RFID Tag Spoofer

RFID-tags zijn overal.  Ze worden gebruikt bij de opbouw van toegangscontrolesystemen, paspoorten, inventaris het volgen...   Dit instructable zal tonen hoe kunt u een Arduino en een paar eenvoudige componenten (draad spoel, transistor, condensator,
Simple Arduino The Mintduino

Simple Arduino The Mintduino

Hallo mensenWe willen allemaal een arduino goedkoop en makkelijk om mee te spelen, zodat de meesten van ons willen om geld te besparen of om te zetten in huisdier projecten.Ik heb doorgebracht uur online op zoek naar een eenvoudig en gemakkelijk en i
Super Simple Microscoop

Super Simple Microscoop

Dit is gewoon een 720 p resolutie webcam gemonteerd op een paal. De hogere resolutie cam u gebruikt hoe beter het resultaat zal zijn.Stap 1:U kunt elke vlakke ondergrond voor de basis en de rechtop paal hoeft zelfs niet te perfect vierkant aan de bas
SUPER SIMPLE CAKE MIX COOKIE BARS

SUPER SIMPLE CAKE MIX COOKIE BARS

deze heerlijke bars zijn zo makkelijk te maken en zijn geweldig voor partijen, hapjes of dessertsStap 1: Je moet... Om het even welk TYPE van cake mix9 x 13 pan bakkenAlles wat die je zetten in de bars wilt (Fruit zal niet werken)Een stok van gezoute