first working firmware (Wifi, not ETH)

This commit is contained in:
Stefan 2019-12-13 01:33:15 +01:00
parent 03c89b0b1d
commit 8aa196d0e6
1 changed files with 81 additions and 10 deletions

View File

@ -10,32 +10,103 @@
#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT
#define ETH_PHY_POWER 12
const char* wifi_ssid = "SSID";
const char* wifi_password = "PASSWORD";
const char* wifi_ssid = "usrspace";
const char* wifi_password = "1qay2wsx";
float temperature = 0;
float pressure = 0;
float humidity = 0;
String website = "";
Ticker Ticker_ReadSensors;
Ticker Ticker_Service;
WebServer WebServer_Server1(80);
WebServer WebServer_Server(80);
Adafruit_BME280 BME280_Sensor1;
Adafruit_BME280 BME280_Sensor;
void setup() {
Serial.begin(115200);
Serial.begin(115200); // RS232
Wire.begin (13, 16); // I²C Init
pinMode (34, INPUT); // User Button
Ticker_ReadSensors.attach(15, ReadSensors);
Ticker_Service.attach(1, Service);
Serial.println("Starting...");
WiFi.begin(wifi_ssid, wifi_password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
WebServer_Server.on("/", handleRoot);
WebServer_Server.on("/metrics", handleMetrics);
WebServer_Server.onNotFound(handleNotFound);
WebServer_Server.begin();
Serial.println("HTTP server started");
if (! BME280_Sensor.begin(0x76)) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
BME280_Sensor.setSampling(Adafruit_BME280::MODE_FORCED,
Adafruit_BME280::SAMPLING_X1, // temperature
Adafruit_BME280::SAMPLING_X1, // pressure
Adafruit_BME280::SAMPLING_X1, // humidity
Adafruit_BME280::FILTER_OFF);
}
void loop() {
WebServer_Server.handleClient();
}
void Service() {
Serial.print(".");
}
void ReadSensors() {
BME280_Sensor.takeForcedMeasurement();
temperature = BME280_Sensor.readTemperature();
pressure = (BME280_Sensor.readPressure() / 100.0F);
humidity = BME280_Sensor.readHumidity();
Serial.print("\nTemperature: ");
Serial.print(temperature);
Serial.print(", Pressure: ");
Serial.print(pressure);
Serial.print(", Humidity: ");
Serial.println(humidity);
}
void handleRoot() {
website = "";
website += "<html><body><h1>Temperatur: ";
website += temperature;
website += " °C</h1><h1>Luftdruck: ";
website += pressure;
website += " hPa</h1><h1>rel. Luftfeuchte: ";
website += humidity;
website += " %</h1></body></html>";
WebServer_Server.send(200, "text/html", website);
}
void handleNotFound() {
WebServer_Server.send(404, "text/plain", "Not found!");
}
void handleMetrics() {
website = "";
website += "# HELP temperature The temperature measured in degree Celcius by the specified sensor.\n# TYPE temperature gauge\ntemperature{sensor=\"BME280\",address=\"0x76\"} ";
website += temperature;
website += "\n\n# HELP humidity The relative humidity measured in percent by the specified sensor.\n# TYPE humidity gauge\nhumidity{sensor=\"BME280\",address=\"0x76\"} ";
website += humidity;
website += "\n\n# HELP pressure The air pressure measured in hPa by the specified sensor.\n# TYPE pressure gauge\npressure{sensor=\"BME280\",address=\"0x76\"} ";
website += pressure;
website += "\n";
WebServer_Server.send(200, "text/plain", website);
}