green-house-project — ESP32-S3 simulation

An interactive ESP32-S3 circuit simulation you can run free in your browser on Velxio, by wol-werin-codm.

Components

Sketch code

#include "config.h"
#include "sensors.h"
#include "display.h"
#include "actuators.h"
#include "control.h"
#include "connectivity.h"
#include "alerts.h"
#include "storage.h"
unsigned long lastPublishTime = 0;
unsigned long lastLogTime = 0;
void setup() {
  Serial.begin(SERIAL_BAUD);
  delay(500);
  Serial.println("!!!!   Greenhouse Smart System   !!!!");
  
  initDisplay();
  initSensors();
  initActuators();
  initControl();
  initConnectivity();
  initAlerts();
  initStorage();

  Serial.println("System Ready");
  delay(1000);

}

void loop() {
  SensorReadings sensors;
  sensors.temperature = readTemperature();
  sensors.humidity = readHumidity();
  sensors.light = readLightLevel();
  sensors.soil = readSoilMoisture();
  sensors.co2 = readCO2Level();
  showSensorData(sensors.temperature, sensors.humidity,
                 sensors.light, sensors.soil, sensors.co2);
  if (!isnan(sensors.temperature) && !isnan(sensors.humidity)) {
    runControlLogic(sensors);
  }
  // ← سیستم هشدار
  checkAlerts(sensors.temperature, sensors.humidity,
              sensors.soil, sensors.co2, sensors.light);

  loopConnectivity();

  if (millis() - lastPublishTime > 5000) {
    lastPublishTime = millis();
    publishSensorData(sensors.temperature, sensors.humidity,
                      sensors.light, sensors.soil, sensors.co2);
  }
  if (millis() - lastLogTime > 60000) {
    lastLogTime = millis();
    logToSD(sensors.temperature, sensors.humidity,
            sensors.light, sensors.soil, sensors.co2);
  }
  delay(CONTROL_INTERVAL);
}