Merge branch 'main' into 'Website_websocket'

# Conflicts:
#   arduino/node-code/node-code-final/node-code-final.ino
#   web/classes.js
#   web/index.html
#   web/main.js
#   web/styles.css
This commit is contained in:
Sietse Jonker
2024-03-06 20:35:56 +01:00
17 changed files with 514 additions and 31 deletions

View File

@@ -1,5 +1,5 @@
// Sietse Jonker & Dano van den Bosch
// 27/02/2024
// Sietse Jonker & Dano Bosch
// 28/02/2024
// include these libraries
#include <Wire.h>
@@ -21,6 +21,9 @@
#define i2c_adress 0x3c
#define USE_SERIAL Serial
// define node identification number
#define nodeIdentificationNumber 1
// make new objects
Adafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
DHT dht(DHTPIN, DHTTYPE);
@@ -69,13 +72,13 @@ void webSocketEvent(WStype_t type, uint8_t * payload, size_t length) {
webSocket.sendTXT("Connected");
break;
case WStype_TEXT:
USE_SERIAL.printf("[WSc] get text: %s\n", payload);
// USE_SERIAL.printf("[WSc] get text: %s\n", payload);
// send message to server
// webSocket.sendTXT("message here");
break;
case WStype_BIN:
USE_SERIAL.printf("[WSc] get binary length: %u\n", length);
// USE_SERIAL.printf("[WSc] get binary length: %u\n", length);
hexdump(payload, length);
// send data to server
@@ -128,38 +131,38 @@ bool checkForError(){
if (!sgp.IAQmeasure()) {
Serial.println("SGP30: BAD");
errorSGP30 = true;
return true;
} else {
Serial.println("SGP30: OK");
errorSGP30 = false;
return false;
}
if (isnan(temperature) || isnan(humidity)){
Serial.println("DHT11: BAD");
errorDHT11 = true;
return true;
} else {
Serial.println("DHT11: OK");
errorDHT11 = false;
return false;
}
return false;
}
// function to update when interval is met (see intervalCounter variable)
void update(){
// webSocket.sendTXT("{\"Temp\":\"" + String(temperature) + \",\"Humi\":\" " + String(humidity) + "\",\"eCO2\":\"" + String(sgp.eCO2) + "\",\"TVOC\":\"" + String(sgp.TVOC) + "\"}");
webSocket.sendTXT("{\"Temp\":\"" + String(temperature) + "\",\"Humi\":\"" + String(humidity) + "\",\"eCO2\":\"" + String(sgp.eCO2) + "\",\"TVOC\":\"" + String(sgp.TVOC) + "\"}");
// webSocket.sendTXT("Temp: " + String(temperature));
// webSocket.sendTXT("Humi: " + String(humidity));
// webSocket.sendTXT("eCO2: " + String(sgp.eCO2));
// webSocket.sendTXT("TVOC: " + String(sgp.TVOC));
// display sensordata on oled screen
displayData();
// webSocket.sendTXT("{\"Temp\":\"" + String(temperature) + "\",\"Humi\":\"" + String(humidity) + "\",\"eCO2\":\"" + String(sgp.eCO2) + "\",\"TVOC\":\"" + String(sgp.TVOC) + "\"}");
webSocket.sendTXT("{\"node\": \"" + String(nodeIdentificationNumber) + "\", \"Temp\":\"" + String(temperature) + "\",\"Humi\":\"" + String(humidity) + "\",\"eCO2\":\"" + String(sgp.eCO2) + "\",\"TVOC\":\"" + String(sgp.TVOC) + "\"}");
sgp.getIAQBaseline(&eCO2_base, &TVOC_base);
// read dht11 sensor
temperature = float(dht.readTemperature());
humidity = float(dht.readHumidity());
// check if any errors occured when reading sensors
checkForError();
}
// function to display data on oled screen
@@ -177,12 +180,14 @@ void displayData() {
+ "Humi: " + int(humidity) + "%" + '\n'
+ "eCO2: " + int(sgp.eCO2) + '\n'
+ "TVOC: " + int(sgp.TVOC));
// display the screen
display.display();
}
// setup function
void setup() {
// make serial connection at 115200 baud
Serial.begin(115200);
// tell display what settings to use
@@ -191,8 +196,7 @@ void setup() {
// tell sensors to start reading
dht.begin();
sgp.begin();
sgp.begin();
pinMode(MICPIN, INPUT);
pinMode(DHTPIN, INPUT);
@@ -203,15 +207,9 @@ void setup() {
// loop function
void loop() {
// check for errors
checkForError();
// loop the websocket connection so it stays alive
webSocket.loop();
// display sensordata on oled screen
displayData();
// update when interval is met
if (currentMillis - lastMillis >= interval){
lastMillis = millis();