Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Project Documentation

Wi-Fi Controlled Environmental Monitoring System with Motorized Actuator

Image of Wi-Fi Controlled Environmental Monitoring System with Motorized Actuator

Circuit Documentation

Summary

This circuit integrates a variety of components including microcontrollers, sensors, a motor driver, and a stepper motor to form a complex system. The primary microcontroller is an Arduino UNO, which interfaces with an ESP-8266 Controller for Wi-Fi capabilities, a DHT11 humidity and temperature sensor, an MQ135 air quality sensor, an industrial pressure sensor, and a Nema 17 stepper motor through an L298N motor driver. The system is powered by a 12V battery, and the Arduino UNO regulates power to the 3.3V and 5V components.

Component List

Microcontrollers

  • Arduino UNO: A microcontroller board based on the ATmega328P, featuring digital and analog I/O pins.
  • ESP-8266 Controller: A Wi-Fi capable microcontroller with a range of GPIO pins.

Sensors

  • MQ135: An air quality sensor for detecting a wide range of gases, including NH3, NOx, alcohol, benzene, smoke, and CO2.
  • DHT11 Humidity and Temperature Sensor: A basic, low-cost digital sensor for measuring ambient temperature and humidity.
  • Industrial Pressure Sensor: A sensor for measuring pressure with an analog output signal.

Actuators

  • Nema 17 42-STH48: A stepper motor commonly used for precision control in CNC machines and 3D printers.

Power

  • Battery 12V: A 12-volt battery providing the main power source for the motor and motor driver.

Motor Driver

  • L298N DC Motor Driver: A dual H-bridge motor driver capable of driving a pair of DC motors or a stepper motor.

Wiring Details

Arduino UNO

  • 3.3V connected to ESP-8266 Controller 3V3
  • 5V connected to:
    • DHT11 Sensor VDD
    • Industrial Pressure Sensor DC+
    • MQ135 Sensor VCC
    • L298N Motor Driver ENA, ENB, and 5V
  • GND connected to:
    • Battery (-)
    • L298N Motor Driver GND
    • MQ135 Sensor GND
    • ESP-8266 Controller GND
    • DHT11 Sensor GND
    • Industrial Pressure Sensor DC-
  • A1 connected to MQ135 Sensor A0
  • A2 connected to Industrial Pressure Sensor Signal
  • D11 connected to L298N Motor Driver IN4
  • D10 connected to L298N Motor Driver IN3
  • D9 connected to L298N Motor Driver IN2
  • D8 connected to L298N Motor Driver IN1
  • D7 connected to DHT11 Sensor DATA
  • D3 connected to ESP-8266 Controller RX
  • D2 connected to ESP-8266 Controller TX

ESP-8266 Controller

  • RX connected to Arduino UNO D3
  • TX connected to Arduino UNO D2
  • 3V3 connected to Arduino UNO 3.3V
  • GND connected to Arduino UNO GND

MQ135

  • VCC connected to Arduino UNO 5V
  • GND connected to Arduino UNO GND
  • A0 connected to Arduino UNO A1

DHT11 Humidity and Temperature Sensor

  • VDD connected to Arduino UNO 5V
  • DATA connected to Arduino UNO D7
  • GND connected to Arduino UNO GND

Industrial Pressure Sensor

  • DC+ connected to Arduino UNO 5V
  • Signal connected to Arduino UNO A2
  • DC- connected to Arduino UNO GND

L298N DC Motor Driver

  • ENA and ENB connected to Arduino UNO 5V
  • IN1 connected to Arduino UNO D8
  • IN2 connected to Arduino UNO D9
  • IN3 connected to Arduino UNO D10
  • IN4 connected to Arduino UNO D11
  • OUT1 connected to Nema 17 A1 Green
  • OUT2 connected to Nema 17 A2 (black)
  • OUT3 connected to Nema 17 B1 Blue
  • OUT4 connected to Nema 17 B2 Red
  • 12V connected to Battery +
  • GND connected to Arduino UNO GND

Nema 17 42-STH48

  • A1 Green connected to L298N Motor Driver OUT1
  • A2 (black) connected to L298N Motor Driver OUT2
  • B1 Blue connected to L298N Motor Driver OUT3
  • B2 Red connected to L298N Motor Driver OUT4

Battery 12V

  • + connected to L298N Motor Driver 12V
  • - connected to Arduino UNO GND

Documented Code

Arduino UNO Code (sketch.ino)

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

Note: The provided code for the Arduino UNO is a template with empty setup and loop functions. This code should be expanded with the necessary initialization and operational logic to control the connected components.