Robot — ESP32 simulation

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

Components

Sketch code

#include <SPI.h>
#include <Wire.h>

#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <XPT2046_Touchscreen.h>
#include <Adafruit_AHTX0.h>

// =====================================================
// SEF TFT + TOUCH + AHT20
// ESP32 DevKit V1
// ILI9341 2.8" 320x240 Landscape
// XPT2046 Touch
// AHT20 Temperature + Humidity
// =====================================================


// =====================================================
// TFT PINLERI
// =====================================================

#define TFT_CS    5
#define TFT_RST   16
#define TFT_DC    17

#define TFT_SCK   18
#define TFT_MISO  19
#define TFT_MOSI  23


// =====================================================
// TOUCH PINLERI
// =====================================================

#define TOUCH_CS   13
#define TOUCH_IRQ  35


// =====================================================
// RGB LED
// =====================================================

#define LED_R 25
#define LED_G 26
#define LED_B 33


// =====================================================
// BUTONLAR
// =====================================================

#define FACE_BUTTON          4
#define CLOCK_BUTTON         27
#define ENTERTAINMENT_BUTTON 14


// =====================================================
// NESNELER
// =====================================================

Adafruit_ILI9341 tft(
  TFT_CS,
  TFT_DC,
  TFT_RST
);

XPT2046_Touchscreen touch(
  TOUCH_CS,
  TOUCH_IRQ
);

Adafruit_AHTX0 aht;


// =====================================================
// EKRAN
// =====================================================

#define SCREEN_W 320
#define SCREEN_H 240


// =====================================================
// TOUCH KALIBRASYONU
// =====================================================

// Çalışan eksen düzenimiz:
#define TOUCH_X_MIN 200
#define TOUCH_X_MAX 3800

#define TOUCH_Y_MIN 200
#define TOUCH_Y_MAX 3800


// =====================================================
// SAYFALAR
// =====================================================

enum Page {
  PAGE_HOME,
  PAGE_MENU,
  PAGE_ENVIRONMENT,
  PAGE_CLOCK,
  PAGE_ABOUT
};

Page currentPage = PAGE_HOME;


// =====================================================
// YUZLER
// =====================================================

enum FaceType {
  NORMAL,
  HAPPY,
  SURPRISED,
  SAD,
  ANGRY,
  CURIOUS,
  COOL,
  SHY,
  SCARED,
  TIRED,
  SUSPICIOUS,
  EXCITED
};

FaceType currentFace = NORMAL;


// =====================================================
// ORTAM
// =====================================================

float temperature = 0;
float humidity = 0;

bool ahtOK = false;

unsigned long lastSensorRead = 0;
const unsigned long SENSOR_INTERVAL = 2000;


// =====================================================
// SAAT
// =====================================================

int clockHour = 18;
int clockMinute = 30;
int clockSecond = 0;

unsigned long lastSecond = 0;


// ==================================

More projects by canenessefa32