Luc Paquin
Published © CC BY

Project #28 – Sensors – Vibration – Mk24

Project #28 – Sensors – Vibration – Mk24

BeginnerFull instructions provided1 hour17
Project #28 – Sensors – Vibration – Mk24

Things used in this project

Hardware components

SparkFun Thing Plus - ESP32 WROOM
×1
Adafruit SHARP Memory Display
×1
Elecrow Crowtail - Vibration Sensor 2.0
×1
Elecrow Crowtail - Buzzer 2.0
×1
Adafruit Terminal Block Breakout FeatherWing
×1
DFRobot Lithium Ion Battery - 1000mAh
×1
DFRobot Micro USB Cable
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Fritzing

Code

DL2601Mk02p.ino

Arduino
/****** Don Luc Electronics © ******
Software Version Information
Project #28 – Sensors – Vibration – Mk24
28-24
DL2601Mk02p.ino
DL2601Mk02
1 x SparkFun Thing Plus - ESP32 WROOM
1 x Adafruit SHARP Memory Display
1 x Crowtail - Vibration Sensor 2.0
1 x Crowtail - Buzzer 2.0
1 x Terminal Block Breakout FeatherWing
1 x Lithium Ion Battery - 1000mAh
1 x Micro USB Cable
*/

// Include the Library Code
// EEPROM Library to Read and Write EEPROM with Unique ID for Unit
#include "EEPROM.h"
// SHARP Memory Display
#include <Adafruit_SharpMem.h>
#include <Adafruit_GFX.h>

// Vibration Sensor
// Declare the pin for the Vibration sensor
int iVibration = 17;
// Declare the pin for the buzzer
int iBuzzer = 21;
// Initialize soundValue to 0
int iVibrationValue = 0;
// Vibration
String sVibration = "";

// SHARP Memory Display
#define SHARP_SCK  13
#define SHARP_MOSI 12
#define SHARP_SS   27
// Set the size of the display here, e.g. 144x168!
Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 144, 168);
// The currently-available SHARP Memory Display (144x168 pixels)
// requires > 4K of microcontroller RAM; it WILL NOT WORK on Arduino Uno
// or other <4K "classic" devices.
#define BLACK 0
#define WHITE 1

// Software Version Information
// EEPROM Unique ID Information
#define EEPROM_SIZE 64
String uid = "";

// Software Version Information
String sver = "28-24";

void loop() {
  
  // Vibration Sensor
  isVibration();

  // isDisplayVibration
  isDisplayVibration();

}

getDisplay.ino

Arduino
// SHARP Memory Display
// SHARP Memory Display - UID
void isDisplayUID() {

    // Text Display 
    // Clear Display
    display.clearDisplay();
    display.setRotation(4);
    display.setTextSize(3);
    display.setTextColor(BLACK);
    // Don Luc Electronics
    display.setCursor(0,10);
    display.println( "Don Luc" );
    display.setTextSize(2);
    display.setCursor(0,40);
    display.println( "Electronics" );
    // Version
    //display.setTextSize(3);
    display.setCursor(0,70);
    display.println( "Version" );
    //display.setTextSize(2);
    display.setCursor(0,95);   
    display.println( sver );
    // EEPROM
    display.setCursor(0,120);
    display.println( "EEPROM" );
    display.setCursor(0,140);   
    display.println( uid );
    // Refresh
    display.refresh();
    delay( 100 );
    
}
// Display Vibration
void isDisplayVibration() {

    // Text Display Vibration
    // Clear Display
    display.clearDisplay();
    display.setRotation(4);
    display.setTextSize(2);
    display.setTextColor(BLACK);
    // Sound Sensor
    display.setCursor(0,5);
    display.println( "Vibration" );
    display.setTextSize(3);
    display.setCursor(0,55);
    display.println( sVibration );
    // Refresh
    display.refresh();
    delay( 100 );

}

getEEPROM.ino

Arduino
// isUID EEPROM Unique ID
void isUID()
{
  
  // Is Unit ID
  uid = "";
  for (int x = 0; x < 7; x++)
  {
    uid = uid + char(EEPROM.read(x));
  }
  
}

getVibration.ino

Arduino
// Vibration Sensor
// is Vibration
void isVibration(){

  // Sound
  iVibrationValue = digitalRead( iVibration );

  // If the sensor value is HIGH?
  if( iVibrationValue == HIGH )
	{
		
    // Buzzer
    digitalWrite( iBuzzer, LOW);

    // No, return false
    sVibration = "False";


	}
	else
	{
		
  
    // Buzzer
    digitalWrite( iBuzzer, HIGH);

    // Yes, return true
    sVibration = "True";


	}

}

setup.ino

Arduino
// Setup
void setup()
{
 
  // Delay
  delay( 100 );

   // EEPROM Size
  EEPROM.begin(EEPROM_SIZE);
  
  // EEPROM Unique ID
  isUID();

  // Delay
  delay( 100 );

  // SHARP Display Start & Clear the Display
  display.begin();
  // Clear Display
  display.clearDisplay();

  // Delay
  delay( 100 );

  // Vibration Sensor
  pinMode( iVibration, INPUT);
  // Buzzer
  pinMode(iBuzzer, OUTPUT);

  // Delay
  delay( 100 );

  // Display UID
  // Don Luc
  // Electronic
  // Version
  // EEPROM
  isDisplayUID();

  // Delay 5 Second
  delay( 5000 );

}

Credits

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

Comments