Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino and ESP8266 Nodemcu Controlled Robotic Vehicle with RFID and Ultrasonic Sensing

View and Edit Project In Cirkit DesignerImage of Arduino and ESP8266 Nodemcu Controlled Robotic Vehicle with RFID and Ultrasonic Sensing

Circuit Documentation

Summary

The circuit in question appears to be a robotic control system utilizing an Arduino UNO as the primary microcontroller, interfaced with various sensors and actuators. The system includes IR sensors for object detection, an HC-SR04 ultrasonic sensor for distance measurement, an RFID-RC522 module for identification tasks, and an ESP8266 NodeMCU for wireless communication capabilities. The circuit also includes a motor driver (L298N) to control multiple DC motors, which likely serve as the actuators for the robot's movement. A battery pack provides the power source for the system.

Component List

Microcontrollers

Sensors

Actuators

Power Supply

Wiring Details

Arduino UNO

IR Sensors

HC-SR04 Ultrasonic Sensor

RFID-RC522

L298N DC Motor Driver

ESP8266 NodeMCU

DC Motors

Battery Pack

Documented Code

Arduino UNO Code

#include <SPI.h>
#include <MFRC522.h>

// Define sensor pins
const int leftSensorPin = 2;
const int rightSensorPin = 3;
const int trigPin = 16;
const int echoPin = 17;

// Define motor pins
const int motor1Enable = 10;
const int motor1In1 = 9;
const int motor1In2 = 8;
const int motor2In3 = 7;
const int motor2In4 = 6;
const int motor2Enable = 5;
// Define RFID pins
#define RST_PIN 14
#define SS_PIN 15

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create instance of the RFID reader

bool manualMode = false; // Flag for manual mode

void setup() {
  // Initialize motor pins
  pinMode(motor1Enable, OUTPUT);
  pinMode(motor1In1, OUTPUT);
  pinMode(motor1In2, OUTPUT);
  pinMode(motor2Enable, OUTPUT);
  pinMode(motor2In3, OUTPUT);
  pinMode(motor2In4, OUTPUT);

  // Initialize sensor pins
  pinMode(leftSensorPin, INPUT);
  pinMode(rightSensorPin, INPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

  // RFID initialization
  SPI.begin();        // Start SPI communication
  mfrc522.PCD_Init(); // Init MFRC522 module

  Serial.begin(9600);  // For debugging
}

// ... (rest of the code)

ESP8266 NodeMCU Code

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Servo.h>

#define BLYNK_TEMPLATE_ID "YourTemplateID"
#define BLYNK_DEVICE_NAME "YourDeviceName"
#define BLYNK_AUTH_TOKEN "YourAuthToken"

char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "YourSSID";
char pass[] = "YourPassword";

// Virtual pins for manual control
#define VPIN_FORWARD V1
#define VPIN_BACKWARD V2
#define VPIN_LEFT V3
#define VPIN_RIGHT V4
#define VPIN_STOP V5
#define VPIN_MODE V6

bool manualMode = false;

BLYNK_WRITE(VPIN_FORWARD) {
    if (manualMode && param.asInt() == 1) {
        Serial.write('F');
    }
}

// ... (rest of the code)

(Note: The rest of the code is omitted for brevity. The provided code snippets are the initial parts of the full code for each microcontroller.)