sih project — Esp32 Devkit C V4 simulation

An interactive Esp32 Devkit C V4 circuit simulation you can run free in your browser on Velxio, by 25e258.

Components

Sketch code

#include <WiFi.h>
#include <HTTPClient.h>

#include <DHT.h>
#include <Wire.h>
#include <Adafruit_BME680.h>
#include <TinyGPSPlus.h>


// ========================================
// WIFI
// ========================================

const char* WIFI_SSID = "ESP32TEST";
const char* WIFI_PASSWORD = "esp32test123";


// ========================================
// TEAMMATE SERVER
// ========================================

const char* SERVER_URL =
  "http://10.37.241.184:5000/api/sensor-data";


// ========================================
// BATCH ID
// ========================================

const int BATCH_ID = 1;


// ========================================
// DHT22
// ========================================

#define DHT_PIN 4
#define DHT_TYPE DHT22

DHT dht(DHT_PIN, DHT_TYPE);


// ========================================
// PHOTORESISTOR
// ========================================

#define LIGHT_PIN 34


// ========================================
// BME688
// ========================================

Adafruit_BME680 bme;


// ========================================
// GPS
// ========================================

#define GPS_RX_PIN 16
#define GPS_TX_PIN 17

TinyGPSPlus gps;

HardwareSerial GPS_Serial(2);


// ========================================
// SETUP
// ========================================

void setup()
{
  Serial.begin(115200);


  // ======================================
  // I2C
  // ======================================

  Wire.begin(21, 22);


  // ======================================
  // DHT22
  // ======================================

  dht.begin();


  // ======================================
  // BME688
  // ======================================

  if (!bme.begin(0x76))
  {
    Serial.println("BME688 not found!");

    while (1)
    {
      delay(1000);
    }
  }

  Serial.println("BME688 found");


  // ======================================
  // GPS
  // ======================================

  GPS_Serial.begin(
    9600,
    SERIAL_8N1,
    GPS_RX_PIN,
    GPS_TX_PIN
  );

  Serial.println("GPS started");


WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

Serial.print("Connecting to WiFi");

int attempts = 0;

while (WiFi.status() != WL_CONNECTED && attempts < 20)
{
    delay(500);
    Serial.print(".");
    attempts++;
}

Serial.println();

if (WiFi.status() == WL_CONNECTED)
{
    Serial.println("WiFi connected!");

    Serial.print("ESP32 IP: ");
    Serial.println(WiFi.localIP());
}
else
{
    Serial.println("WiFi connection failed!");

    Serial.print("WiFi status: ");
    Serial.println(WiFi.status());
}
}
// ========================================
// LOOP
// ========================================

void loop()
{

  // ======================================
  // READ GPS
  // ======================================

  while (GPS_Serial.available())
  {
    gps.encode(GPS_Serial.read());
  }


  // ======================================
  // DHT22
  // ======================================

  float temperat