#include #include #include #include #include #include "Adafruit_Si7021.h" Adafruit_BMP280 bmp; // I2C Adafruit_Si7021 sensor = Adafruit_Si7021(); // 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 }; IPAddress ip(192,168,1, 177); // Initialize the Ethernet server library EthernetServer server(80); void setup() { // Open serial communications Serial.begin(9600); Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); if (!bmp.begin()) { Serial.println("Could not find a valid BMP280 sensor, check wiring!"); while (1); } if (!sensor.begin()) { Serial.println("Did not find Si7021 sensor!"); while (true); } } void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println("new client"); boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); 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(""); client.println(""); client.println(""); client.println("
"); //bmp280 part client.println("

BMP280 readings

"); client.print("Pressure (Pa): "); client.println((float)bmp.readPressure(), 1); client.println("
"); client.print("Temperature (C): "); client.println((float)bmp.readTemperature(), 1); client.println("
"); client.print("Altitude (m): "); client.println((float)bmp.readAltitude(1024), 1); // this should be adjusted to your local forcase client.println("
"); //SI7021 part client.println("

SI7021 readings

"); client.print("Humidity (%): "); client.println((float)sensor.readHumidity(), 1); client.println("
"); client.print("Temperature (C): "); client.println((float)sensor.readTemperature(), 1); client.println("
"); client.println(""); break; } if (c == '\n') { currentLineIsBlank = true; } else if (c != '\r') { currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); Serial.println("client disonnected"); } }