Sensorgegevens (DHT11 & BMP180) verzenden ThingSpeak met een Arduino, via kabel of WiFi (ESP8266) (4 / 5 stap)

Stap 4: Een Bonus

In het geval u niet wilt gebruiken Thingspeak maar wil gewoon uw eigen webserver: dit programma gebruiken:

 /* * DHT11 Sensor connected to Pin 2 <a href="http://arduino-info.wikispaces.com/ethernet-temp-humidity" rel="nofollow"> http://arduino-info.wikispaces.com/ethernet-temp-...> Based on code by David A. Mellis & Tom Igoe Adapted by diy_bloke * bmp180sensor on a4/a5 */ /*-----( Import needed libraries )-----*/ #include <SPI.h> #include <Ethernet.h> #include <dht11.h> #include <Wire.h> //#include <Adafruit_Sensor.h> //#include <Adafruit_BMP085_U.h> #include <Adafruit_BMP085.h> /*-----( Declare Constants and Pin Numbers )-----*/ #define DHT11PIN 2 // The Temperature/Humidity sensor // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; /*-----( Declare objects )-----*/ IPAddress ip(192,168,1, 177); // Initialize the Ethernet server library // with the IP address and port you want to use // (port 80 is default for HTTP): EthernetServer server(80); //Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085); Adafruit_BMP085 bmp; dht11 DHT11; //The Sensor Object /*-----( Declare Variables )-----*/ void setup() /****** SETUP: RUNS ONCE ******/ { // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } // start the Ethernet connection and the server: Ethernet.begin(mac, ip); server.begin(); Serial.print(F("server is at ")); Serial.println(Ethernet.localIP()); }//--(end setup )--- void loop() /*----( LOOP: RUNS OVER AND OVER AGAIN )----*/ { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println(F("new client")); // an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); // if you've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == '\n' && currentLineIsBlank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connnection: close"); client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); // add a meta refresh tag, so the browser pulls again every 5 seconds: client.println("<meta http-equiv=\"refresh\" content=\"5\">"); client.println("<head>"); client.println("<title>"); client.println(F("My Home Environment")); client.println("</title>"); client.println("</head>"); client.println("<body>"); client.print(F("<h3>My Home Environment</h3>")); //client.println("<br />"); /*----(Get sensor reading, calculate and print results )-----------------*/ int chk = DHT11.read(DHT11PIN); Serial.print(F("Read sensor: ")); switch (chk) { case 0: Serial.println(F("OK")); break; case -1: Serial.println(F("Checksum error")); break; case -2: Serial.println(F("Time out error")); break; default: Serial.println(F("Unknown error")); break; } /* Get a new sensor (BMP085) event */ // sensors_event_t event; // bmp.getEvent(&event); //-------------- client.print(F("<table style='border:1px solid black; background-color: white;'>")); client.print(F("<tr><td>")); client.print("<font color='red'>Temperature</font> (°C): "); client.print(F("</td><td align='right'>")); client.println((float)DHT11.temperature, 1); client.println(F("<br />")); client.print(F("</td></tr>")); client.print(F("<tr><td>")); client.print("<b>Temperature</b> (°F): "); client.print(F("</td><td align='right'>")); client.println(Fahrenheit(DHT11.temperature), 1); client.println("<br />"); client.print(F("</td></tr>")); client.print(F("<tr><td>")); client.print("<font color='blue'>Humidity</font> (%): "); client.print(F("</td><td align='right'>")); client.println((float)DHT11.humidity, 0); client.println("<br />"); client.print(F("</td></tr>")); client.print(F("<tr><td>")); /* client.print("<b>Temperature</b> (°K): "); client.println(Kelvin(DHT11.temperature), 1); client.println("<br />"); */ client.print("<i>Dew Point</i> (°C): "); client.print(F("</td><td align='right'>")); client.println(dewPoint(DHT11.temperature, DHT11.humidity)); client.println("<br />"); client.print(F("</td></tr>")); client.print(F("<tr><td>")); client.print("<i>Dew PointFast</i> (°C): "); client.print(F("</td><td align='right'>")); client.println(dewPointFast(DHT11.temperature, DHT11.humidity)); client.println("<br />"); client.print(F("</td></tr>")); client.print(F("<tr><td>")); if (!bmp.begin()) { client.print("geen sensor"); } else { client.print("Pressure (hPa): "); client.print(F("</td><td align='right'>")); client.println(bmp.readPressure()/100.0); client.print(F("</td></tr>")); client.print(F("<tr><td>")); client.print("Pressure (mmHg): "); client.print(F("</td><td align='right'>")); client.println(bmp.readPressure()/133.3); client.print(F("</td></tr>")); client.print(F("<tr><td>")); client.println("Temperature (°C): "); client.print(F("</td><td align='right'>")); client.print(bmp.readTemperature()); client.println("<br />"); } client.print(F("</td></tr>")); client.print(F("</table>")); /* Display the results (barometric pressure is measure in hPa) */ /* Display atmospheric pressure in hPa */ /* client.print("Pressure: "); client.println(event.pressure); client.println(" hPa"); client.println("<br />"); */ /*--------( End Sensor Read )--------------------------------*/ client.println("</body>"); client.println("</html>"); break; } if (c== '\n'){ // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); Serial.println(F("client disonnected")); } } // END Loop /*-----( Declare User-written Functions )-----*/ // //Celsius to Fahrenheit conversion double Fahrenheit(double celsius) { return 1.8 * celsius + 32; } //Celsius to Kelvin conversion double Kelvin(double celsius) { return celsius + 273.15; } // dewPoint function NOAA // reference: <a href="http://wahiduddin.net/calc/density_algorithms.htm" rel="nofollow"> http://arduino-info.wikispaces.com/ethernet-temp-...> double dewPoint(double celsius, double humidity) { double A0= 373.15/(273.15 + celsius); double SUM = -7.90298 * (A0-1); SUM += 5.02808 * log10(A0); SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ; SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ; SUM += log10(1013.246); double VP = pow(10, SUM-3) * humidity; double T = log(VP/0.61078); // temp var return (241.88 * T) / (17.558-T); } // delta max = 0.6544 wrt dewPoint() // 5x faster than dewPoint() // reference: <a href="http://en.wikipedia.org/wiki/Dew_point" rel="nofollow"> http://arduino-info.wikispaces.com/ethernet-temp-...> double dewPointFast(double celsius, double humidity) { double a = 17.271; double b = 237.7; double temp = (a * celsius) / (b + celsius) + log(humidity/100); double Td = (b * temp) / (a - temp); return Td; } /* ( THE END ) */ 

Gerelateerde Artikelen

Sensorgegevens (DHT11 & BMP180) verzenden ThingSpeak met een Arduino, met behulp van ENC28J60 Ethercard

Sensorgegevens (DHT11 & BMP180) verzenden ThingSpeak met een Arduino, met behulp van ENC28J60 Ethercard

Opmerking: Dit instructable is voor de oude ENC26J60 Ethershield en ethercard. Als u de moderne WIZ5100 op basis van Ethernetshield of een ESP8266 ga bezoek mijn andere instructable dat ik noemen hieronderOngeveer een jaar en een half geleden ik publ
Beheersing van een stappenmotor met een Arduino

Beheersing van een stappenmotor met een Arduino

Dit leerprogramma zal u tonen hoe te bedienen van een stappenmotor die werd gered van een oude printer met een Arduino.Stap 1: Wat is een Stepper Motor? Een stappenmotor bestaat uit twee delen, een rotor en een stator. De rotor is het deel van de mot
Beheersing van een MIDI-CC in Ableton Live met een Arduino Uno

Beheersing van een MIDI-CC in Ableton Live met een Arduino Uno

In dit instructable zullen we gebruiken een potentiometer op een Arduino Uno om controle van een MIDI-CC in Ableton Live. Een MIDI CC staat voor continue Controller, dat wil zeggen een getal in het bereik van 0 tot 127 inclusieve te moduleren iets me
Een LCD-scherm en een ultrasone afstandssensor verbindt met een Arduino

Een LCD-scherm en een ultrasone afstandssensor verbindt met een Arduino

Toen ik begon spelen met Arduinos, was dit de eerste kleine set up ik gemaakt. De video is een beetje armen. Dit was mijn eerste ga op dingen zodat ik verontschuldig me dat ik niet tot snuif terug dan was. Anyway, zeer eenvoudig instellen. Wat we doe
Controle van een Camera met een Arduino en RS232 Shield

Controle van een Camera met een Arduino en RS232 Shield

Dit leerprogramma zal u tonen hoe u kunt controleren vele verschillende aspecten van de werking van een camera's met een Arduino. Deze bewerking kan worden de pan en tilt camera, zoom en focus van de lens, en RGB kenmerken. De Arduino zal gebruik mak
Bijhouden van uw auto met een Arduino gebaseerde Lojack

Bijhouden van uw auto met een Arduino gebaseerde Lojack

De autodiefstal van de is een echte slepen! Verhoog uw kansen van het herstellen van uw auto door het installeren van deze eenvoudige Arduino gebaseerde tracker in uw auto.Dit project is vrij eenvoudig, en zou een goed project voor een nieuwe Arduino
Interfacing een M74HC238 3-8 lijn Decoder met een Arduino (voorbeeld)

Interfacing een M74HC238 3-8 lijn Decoder met een Arduino (voorbeeld)

dit is een basic tutorial ontworpen om u een basiskennis van het gebruik van een M74HC238 3-8 lijn Decoder.Zoals de naam al impliceert, hoeft u alleen 3 digitale pinnen op je Arduino waarmee alle 8 uitgangen.Het project kan je (maximaal 8) afzonderli
Knoppen toevoegen aan uw X52-Pro-joystick met een Arduino Micro

Knoppen toevoegen aan uw X52-Pro-joystick met een Arduino Micro

Ik heb een Saitek X52-Pro HOTAS setup die ik gebruik voor Elite: gevaarlijk. Het is een fantastische joystick maar het kon doen met slechts een paar meer knoppen. Met een Arduino Micro kunt u uitbreiden deze (of enige andere) joystick voor elk spel d
Programmering Arduino met een Arduino

Programmering Arduino met een Arduino

Dit is mijn eerste Instructable. In dit Instructable ga ik u tonen hoe te programmeren van een Arduino met een Arduino. Er zijn geen stuurprogramma's nodig! Dit Instructable is ook handig voor het uploaden van schetsen aan de Chinese ArduinoStap 1: D
Hoe te meten van de temperatuur zeer nauwkeurig met een Arduino en een TSYS01 Temperatuur Sensor Board.

Hoe te meten van de temperatuur zeer nauwkeurig met een Arduino en een TSYS01 Temperatuur Sensor Board.

Tijdens zijn studie in de Universiteit werden we uitgedaagd als onderdeel van een cursus werken in het ontwerpen van een doos met zeer nauwkeurige temperatuurregeling. Mocht het project te doen slagen, moesten meerdere vakken worden gebouwd en gebrui
Lage hoogte milieubewaking met een Arduino gebaseerd weer Instrument en Remote Sensing Platform van Aeropod

Lage hoogte milieubewaking met een Arduino gebaseerd weer Instrument en Remote Sensing Platform van Aeropod

ProjectoverzichtStudenten op New Lothrop High School in Michigan hebben samengewerkt om te bouwen van een lage hoogte remote sensing platform genaamd een "Aeropod" en het uitgerust met een "Arduino" gebaseerd weer instrument om sfeervo
ARD-e: de robot met een Arduino als een brein

ARD-e: de robot met een Arduino als een brein

het maken van een opensource gecontroleerd Arduino robot voor onder $100.Hopelijk na het lezen van dit instructable u zal zitten kundig Neem uw eerste stap in de robotica. ARD-e kost ongeveer 90 dollar tot $130 afhankelijk van hoeveel vrije elektroni
Controle van EL draad met een Arduino

Controle van EL draad met een Arduino

In dit instructable ik zal u tonen hoe u kunt besturen van EL draad met een Arduino.Wat u zult moeten:EL Wire en omvormer - adviseer ik http://ez-el.com/ez-el-wire/10ft-ez-el-wire-3v-inverter-kit/Arduino of een micro-controller die een relay kunt bep
Uitvoeren van een stappenmotor met een Arduino

Uitvoeren van een stappenmotor met een Arduino

Hi Guys,Dit artikel over How to Run een Stepper Motor met een Arduino. Deze dagen stappenmotor in vele elektronikaapparaat zoals, Camera autofocus systeem gebruikt, CD-ROM voor lens beweging, 3D-printer en CNCs. de stappenmotor is beschikbaar in vele