Hallo zusammen,
ich versuche mal meinen Quelltest hochzuladen.
Hochladen klappt nicht also versuche ich es altmodisch mit copy und paste.
In der Originallösung des Webservers aus dem senseBox-Buch ist der Datentyp des Drucks long während in der Doku zu senseBoxMCU.h der Datentyp float steht.
Dank übrigens für die Bereitschaft den Quelltest einzusehen.
Hier nun der ganze Quelltest:
/* IoT Wettersttion mit wechselnder Anzeige
- Temperatur und Feuchte
- Luftdruck und Helligkeit
- V. 0.2 vom 27.9.2019
-
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include “SenseBoxMCU.h”
int cyclecount;
bool debug;
float T;
float H;
float P;
double UV;
long Lux;
const long interval = 60000;
long time_start = 0;
long time_actual = 0;
WiFiServer server(80);
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
Bee* b = new Bee();
HDC1080 hdc;
BMP280 bmp_sensor;
TSL45315 tsl;
VEML6070 veml;
void anzeige() {
++cyclecount;
switch (cyclecount) {
case 0:
//temperatur anzeigen und feuchte
display.setCursor(0,0);
display.setTextSize(2);
display.setTextColor(WHITE,BLACK);
display.println(((“Temp:”)+String(T))); //Ausgabe auf dem Display
display.println(((“Feuch:”)+String(H))); // "
display.display();
delay(4000);
display.clearDisplay();
break;
case 1:
//Helligkeit und Luftdruck anzeigen
display.setCursor(0,0);
display.setTextSize(2);
display.setTextColor(WHITE,BLACK);
display.println((("Lux:")+String(Lux,0))); //Ausgabe auf dem Display
display.println((("Druck:")+String(P,0))); // "
display.display();
delay(4000);
display.clearDisplay();
break;
}
if (cyclecount>=2) {
cyclecount=(0-1); //auf den nächstkleineren wie 0 setzen damit am der Wert wieder 0 ist
}
}
// OpenSenseMap osem(“5cc5a9a4facf70001a929e8f”,b);
void setup() {
Serial.begin(9600);
delay(1000);
hdc.begin();
bmp_sensor.begin();
tsl.begin();
veml.begin();
delay(500);
debug=true;
senseBoxIO.powerI2C(false);delay(1000);
senseBoxIO.powerI2C(true);delay(1000);
senseBoxIO.powerXB2(false);delay(1000);
senseBoxIO.powerUART(false);delay(1000);
display.begin(SSD1306_SWITCHCAPVCC, 0x3D);
display.display();
delay(100);
display.clearDisplay();
display.setCursor(0,0);
display.setTextSize(2);
display.setTextColor(WHITE,BLACK);
display.println(“IoT-Wetter”);
display.display();
b->connectToWifi(“xyz”,“geheim”);
delay(1000);
server.begin();
delay(500);
}
void loop() {
T = hdc.getTemperature();
H = hdc.getHumidity();
P = bmp_sensor.getPressure();
delay(200);
Lux = tsl.getIlluminance();
//Lux=Lux/100;
//Lux=int(Lux);
UV = veml.getUvIntensity();
if (debug) {
Serial.print(“Druck”);Serial.println(§,0);
Serial.print(“Helligkeit”);Serial.println(Lux,0);
}
time_start = millis();
/*if (time_start > time_actual + interval) {
time_actual = millis();
osem.uploadMeasurement(T,“5cc5a9a4facf70001a929e94”);
osem.uploadMeasurement(H,“5cc5a9a4facf70001a929e93”);
osem.uploadMeasurement(P,“5cc5a9a4facf70001a929e92”);
osem.uploadMeasurement(Lux,“5cc5a9a4facf70001a929e91”);
osem.uploadMeasurement(UV,“5cc5a9a4facf70001a929e90”);
}
*/
WiFiClient client = server.available();
anzeige();
if (client && client.available()) {
String request_string = listenClient(client);
Request request;
if (parseRequestSafe(request_string, request)) {
if (request.method == “GET” && request.uri == “/index.html”) {
client.println(buildSuccessfulResponse(request, buildHTML("", buildTag(“table”,
buildTag(“tr”,
buildTag(“tr”,
buildTag(“td”,
buildTag(“b”,
“Sensor”)) +buildTag(“td”,
buildTag(“b”,
“Messwert”)))) +buildTag(“tr”,
buildTag(“td”,
“Lichtsensor”) +buildTag(“td”,
String(tsl.getIlluminance()))) +buildTag(“tr”,
buildTag(“td”,
“Temperatursensor”) +buildTag(“td”,
String(hdc.getTemperature()))) +buildTag(“tr”,
buildTag(“td”,
“Feuchte”) +buildTag(“td”,
String(hdc.getHumidity()))) +buildTag(“tr”,
buildTag(“td”,
“Luftdruck”) +buildTag(“td”,
String(bmp_sensor.getPressure())))))));
} else {
client.println(buildNotFoundResponse(request));
}
}
delay(1);
client.stop();
delay(1);
}
}