teste temperatura — ESP32 simulation

TESTE

An interactive ESP32 circuit simulation you can run free in your browser on Velxio, by oagengenharias.

Components

Sketch code

#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <HTTPClient.h>
#include <Wire.h>
#include <DHT.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// =====================================================
// CONCRETRACK - CURA DO CONCRETO
// ESP32 + 4 DHT22 + OLED
// DEVICE: cura-01
// VERSAO: cura-velxio-2.1
// =====================================================

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

const char* WIFI_SSID = "Velxio-GUEST";
const char* WIFI_PASSWORD = "";

// =====================================================
// CONCRETRACK
// =====================================================
const char* DEVICE_ID = "cura-01";

const char* CONFIG_URL =
  "http://concrefer.concretrack.com.br:18445/api/v1/device-config/cura-01";

const char* INGEST_URL =
  "http://concrefer.concretrack.com.br:18445/api/v1/ingest";


// IMPORTANTE:
// COLOQUE AQUI A DEVICE API KEY QUE JA FUNCIONOU
const char* DEVICE_API_KEY =
  "ee9c4a6fd72559bd7f43b4341dd0cf2e3e1b8f13fd8f60f474fc7ce3b3f4d996";

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

#define DHTTYPE DHT22

#define PIN_T1 13
#define PIN_T2 14
#define PIN_T3 27
#define PIN_T4 26

DHT sensorT1(PIN_T1, DHTTYPE);
DHT sensorT2(PIN_T2, DHTTYPE);
DHT sensorT3(PIN_T3, DHTTYPE);
DHT sensorT4(PIN_T4, DHTTYPE);

// =====================================================
// OLED
// =====================================================

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(
  SCREEN_WIDTH,
  SCREEN_HEIGHT,
  &Wire,
  -1
);

// =====================================================
// VARIAVEIS
// =====================================================

float temp1 = 0.0;
float temp2 = 0.0;
float temp3 = 0.0;
float temp4 = 0.0;

float temperaturaMaxima = -100.0;

bool sensoresOK = false;
bool relogioSincronizado = false;
bool telaTemperaturas = true;

unsigned long inicioSistema = 0;
unsigned long ultimaLeitura = 0;
unsigned long ultimoEnvio = 0;
unsigned long ultimoConfig = 0;
unsigned long ultimaTrocaTela = 0;
unsigned long ultimaTentativaWiFi = 0;

int intervaloMinutos = 1;
int configRevision = 1;

uint32_t seqAtual = 1;

uint64_t serverTimeBase = 0;
unsigned long millisBase = 0;

String bootId;

// =====================================================
// GERAR BOOT ID
// =====================================================

String gerarBootId() {

  uint64_t chipid = ESP.getEfuseMac();

  char buffer[24];

  unsigned long parteAlta =
    (unsigned long)(chipid >> 32);

  unsigned long parteBaixa =
    (unsigned long)(chipid & 0xFFFFFFFFULL);

  snprintf(
    buffer,
    sizeof(buffer),
    "%08lX%08lX",
    parteAlta,
    parteBaixa
  );

  return String(buffer);
}

// =====================================================
// RELOGIO DO SERVIDOR
// =====================================================