Luc Paquin
Published © CC BY

Project #11: ESP32 - Bluetooth IoT - Mk12

Project #11: ESP32 - Bluetooth IoT - Mk12

BeginnerFull instructions provided1 hour96
Project #11: ESP32 - Bluetooth IoT - Mk12

Things used in this project

Hardware components

DFRobot FireBeetle 2 ESP32-E
×1
DFRobot Fermion: 2.0" 320x240 IPS TFT LCD
×1
DFRobot GDL Line 10 CM
×1
Elecrow Crowtail- Rotary Angle Sensor 2.0 - 10K Ohm
×1
Elecrow Crowtail- LED 2.0 - Yellow
×1
Elecrow Crowtail- LED 2.0 - Green
×1
DFRobot Lithium Ion Battery - 1000mAh
×1
SparkFun Switch
×1
Bluetooth Serial Terminal for Windows 10
×1
SparkFun USB 3.1 Cable A to C
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Fritzing

Code

DL2501Mk01p.ino

Arduino
/****** Don Luc Electronics © ******
Software Version Information
Project #11: ESP32 - Bluetooth IoT - Mk12
11-12
DL2501Mk01p.ino
DL2501Mk01
1 x DFRobot FireBeetle 2 ESP32-E
1 x Fermion: 2.0" 320x240 IPS TFT LCD
1 x GDL Line 10 CM
1 x Crowtail- Rotary Angle Sensor 2.0 - 10K Ohm
1 x Crowtail- LED 2.0 - Yellow
1 x Crowtail- LED 2.0 - Green
1 x Lithium Ion Battery - 1000mAh
1 x Switch
1 x Bluetooth Serial Terminal for Windows 10
1 x USB 3.1 Cable A to C
*/

// Include the Library Code
// Arduino
#include <Arduino.h>
// Wire
#include <Wire.h>
// DFRobot Display GDL API
#include <DFRobot_GDL.h>
// Bluetooth Serial
#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

// Bluetooth Serial
BluetoothSerial SerialBT;

// Defined ESP32
#define TFT_DC  D2
#define TFT_CS  D6
#define TFT_RST D3

/*dc=*/ /*cs=*/ /*rst=*/
// DFRobot Display 240x320
DFRobot_ST7789_240x320_HW_SPI screen(TFT_DC, TFT_CS, TFT_RST);

// Potentiometer
int iPot = A0;
int iPotVal = 0;
// Change Your Threshold Here
int Threshold = 2000;
// Full String
String FullString = "";

// LED Yellow
int iLEDY = 17;

// LED Green
int iLEDG = 16;

// Software Version Information
String sver = "11-12";

void loop() {

  // Potentiometer
  isPotentiometer();

  // Delay 2 Second
  delay( 2000 );

}

getDisplay.ino

Arduino
// DFRobot Display 240x320
// DFRobot Display 240x320 - UID
void isDisplayUID(){

  // DFRobot Display 240x320
  // Text Display
  // Text Wrap
  screen.setTextWrap(false);
  // Rotation
  screen.setRotation(3);
  // Fill Screen => black
  screen.fillScreen(0x0000);
  // Text Color => white
  screen.setTextColor(0xffff);
  // Font => Free Mono 9pt
  screen.setFont(&FreeMono9pt7b);
  // TextSize => 1.5
  screen.setTextSize(1.5);
  // DFRobot Display
  screen.setCursor(0, 30);
  screen.println("Don Luc Electronics");
  // Don Luc Electronics
  screen.setCursor(0, 60);
  screen.println("DFRobot Display");
  // Version
  screen.setCursor(0, 90);
  screen.println("Version");
  screen.setCursor(0, 120);
  screen.println( sver );

}
// isDisplay Green
void isDisplayG(){

  // DFRobot Display 240x320
  // Text Display
  // Text Wrap
  screen.setTextWrap(false);
  // Rotation
  screen.setRotation(3);
  // Fill Screen => black
  screen.fillScreen(0x0000);
  // Text Color => white
  screen.setTextColor(0xffff);
  // Font => Free Mono 9pt
  screen.setFont(&FreeMono9pt7b);
  // TextSize => 1.5
  screen.setTextSize(1.5);
  // Don Luc Electronics
  screen.setCursor(0, 30);
  screen.println("Don Luc Electronics");
  // LED Yellow
  screen.setCursor(0, 60);
  screen.println("LED Green");
  // Potentiometer Value
  screen.setCursor(0, 90);
  screen.println( iPotVal );

}
// isDisplay Yellow
void isDisplayY(){

  // DFRobot Display 240x320
  // Text Display
  // Text Wrap
  screen.setTextWrap(false);
  // Rotation
  screen.setRotation(3);
  // Fill Screen => black
  screen.fillScreen(0x0000);
  // Text Color => white
  screen.setTextColor(0xffff);
  // Font => Free Mono 9pt
  screen.setFont(&FreeMono9pt7b);
  // TextSize => 1.5
  screen.setTextSize(1.5);
  // Don Luc Electronics
  screen.setCursor(0, 30);
  screen.println("Don Luc Electronics");
  // LED Yellow
  screen.setCursor(0, 60);
  screen.println("LED Yellow");
  // Potentiometer Value
  screen.setCursor(0, 90);
  screen.println( iPotVal );

}

getPotentiometer.ino

Arduino
// Potentiometer
// Potentiometer
void isPotentiometer(){

  // Connect Potentiometer to Analog 0
  iPotVal = analogRead( iPot );

  // Threshold
  if (iPotVal > Threshold) {

    // LED Yellow
    digitalWrite(iLEDY, LOW);
    // isDisplay Green
    isDisplayG();
    // LED Green
    digitalWrite(iLEDG, HIGH);
    // FullString
    FullString = "LED Green = " + String(iPotVal) + "\r\n";
  
  }
  else {
    
    // LED Green
    digitalWrite(iLEDG, LOW);
    // isDisplay Yellow
    isDisplayY();
    // LED Yellow
    digitalWrite(iLEDY, HIGH);
    // FullString
    FullString = "LED Yellow = " + String(iPotVal) + "\r\n";
    
  }

  // FullString Bluetooth Serial + Serial
  for(int i = 0; i < FullString.length(); i++)
  {

    // Bluetooth Serial
    SerialBT.write(FullString.c_str()[i]);
    // Serial
    Serial.write(FullString.c_str()[i]);
    
  }

}

setup.ino

Arduino
// Setup
void setup()
{
 
  // Serial Begin
  Serial.begin(115200);
  Serial.println("Starting BLE work!");

  // Bluetooth Serial
  SerialBT.begin("Don Luc Electronics");
  Serial.println("Bluetooth Started! Ready to pair...");
  
  // Delay
  delay(100);

  // DFRobot Display 240x320
  screen.begin();

  // Delay
  delay(100);

  // Initialize the LED Yellow
  pinMode(iLEDY, OUTPUT);

  // Initialize the LED Green
  pinMode(iLEDG, OUTPUT);

  // DFRobot Display 240x320 - UID
  // Don Luc Electronics
  // Version
  isDisplayUID();

  // Delay 5 Second
  delay( 5000 );

}

Credits

Luc Paquin
32 projects • 3 followers
Teacher, Instructor, E-Mentor, R&D and Consulting -Programming Language -Microcontrollers -IoT -Robotics -Machine Learning -AI -Sensors
Contact

Comments

Please log in or sign up to comment.