CT-V1 — ESP32 simulation

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

Components

Sketch code

#include <TinyGPSPlus.h>
#include <HardwareSerial.h>
#include <SPI.h>
#include <SD.h>


TinyGPSPlus gps;
HardwareSerial GPSserial(2);

//apelido gpio//
#define LED 4
#define ACE 32
#define FRE 33
#define VOL 34
#define OIL 25
#define TEMP 26
#define GPS_RX 16
#define GPS_TX 17
#define SD_CS   5
#define SD_SCK  18
#define SD_MISO 19
#define SD_MOSI 23
#define BOTTON 2

File arquivo;

unsigned long ultimaGravacao = 0;

const unsigned long intervalo = 100; // 100 ms = 10 Hz

void setup() {

  Serial.begin(115200);
  delay(1000);
    Serial.println("CONECTRACK CT-V1");
  delay(2500);

  pinMode(ACE, INPUT);
  pinMode(FRE, INPUT);
  pinMode(VOL, INPUT);
  pinMode(TEMP, INPUT);
  pinMode(OIL, INPUT);
  pinMode(BOTTON, INPUT_PULLUP);
  pinMode(LED, OUTPUT);
  

  GPSserial.begin(
    115200,
    SERIAL_8N1,
    GPS_RX,
    GPS_TX
  );
  Serial.println("GPS OK");
  delay(500);

  SPI.begin(
   SD_SCK,
   SD_MISO,
   SD_MOSI,
   SD_CS
  );


  

  if (!SD.begin(SD_CS)) {
    while (!SD.begin(SD_CS)){
      Serial.println("ERRO: MEMORIA NAO ENCONTRADA!");
      }
      delay(1000);
      
 } else {

    Serial.println("MEMORIA OK");
    
    delay(500);

    arquivo = SD.open("/CT001.CSV", FILE_WRITE);

    if (arquivo) {

      arquivo.println(
        "TEMPO,TPS,BRK,STR,LAT,LON,VEL,ALT"
      );

      arquivo.close();

      Serial.println("ARQUIVO CT001.CSV CRIADO");

    } else {

      Serial.println("ERRO AO CRIAR ARQUIVO!");

    }
  }
  
  delay(2000);
  
    
  
}

void loop() {
  int TPS = map(analogRead(ACE), 0, 4095, 0, 100);
  int BRK = map(analogRead(FRE), 0, 4095, 0, 100);
  int STR = map(analogRead(VOL), 0, 4095, -80, 80);
  int OILP = map(analogRead(OIL), 0, 4095, 0, 10);
  int ENTEMP = map(analogRead(TEMP), 0, 4095, 0, 250);
  
  while (GPSserial.available()) {
     gps.encode(GPSserial.read());
   }

   if (millis() - ultimaGravacao >= intervalo) {

    ultimaGravacao = millis();
   }
   
   if (digitalRead(BOTTON) == LOW) {
    digitalWrite(LED, HIGH);
    Serial.println("OI");
   } else{
    digitalWrite(LED, LOW);
  }
  
  Serial.print("TEMPO ");
  Serial.print(millis()/1000);
  Serial.print("S");

  Serial.print("  TPS ");
  Serial.print(TPS);
  Serial.print("%");

  Serial.print("  BRK ");
  Serial.print(BRK);
  Serial.print("%");

  Serial.print("  STR ");
  Serial.print(STR);
  Serial.print("°");

  Serial.print("  LAT ");
  Serial.print(gps.location.lat(), 6);

  Serial.print("  LON ");
  Serial.print(gps.location.lng(), 6);

  Serial.print("  VEL ");
  Serial.print(gps.speed.kmph());
  Serial.print(" km/h");

  Serial.print("  ALT ");
  Serial.print(gps.altitude.meters());
  Serial.print("M");

  Serial.print("  ENTEMP ");
  Serial.print(ENTEMP);
  Serial.print("°C");

  Serial.print("  OILP ");
  Serial.print(OILP);
  Serial.println(" BAR");
  
 arquivo = SD.open("/CT001.CSV", FILE_APPEND);

    if (arquivo) {
      arquivo.print(millis()/1000);
      arquivo.print("S");
      arquivo.print(",");

      arquivo.print(TPS);
   

More projects by felipe021-com