Arduino UNO-Based Environmental Monitoring System with Multiple Sensors and Motor Control
View and Edit Project In Cirkit Designer
Circuit Documentation
Summary
This document provides a detailed overview of a circuit that includes an Arduino UNO microcontroller, various sensors, a motor driver, servo motors, and a 775 motor. The circuit is designed to interface multiple sensors and actuators with the Arduino UNO, enabling data collection and motor control.
Component List
Arduino UNO
- Description: A microcontroller board based on the ATmega328P.
- Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0
Adafruit SCD30
- Description: A CO2, temperature, and humidity sensor.
- Pins: VCC, 3.3V, GND, SCL, SDA, RDY
Adafruit BME680
- Description: A sensor that measures temperature, humidity, pressure, and gas.
- Pins: VCC, 3.3V, GND, SCK/SCL, SDO/ADR, SDI/SDA, CS
Adafruit PMSA003I Air Quality Breakout
- Description: A particulate matter sensor.
- Pins: VCC, 3.3V, GND, SCL, SDA, RESET, SET
Adafruit BMP280
- Description: A barometric pressure and temperature sensor.
- Pins: VCC, 3.3V, GND, SCK/SCL, SDO/ADR, SDI/SDA, CS
Adafruit STEMMA Soil Sensor
- Description: A soil moisture sensor.
- Pins: GND, VIN, SDA, SCL
ProtoSnap - Pro Mini - Protoboard
- Description: A prototyping board.
- Pins: pin1, pin10, pin2, pin11, pin19, pin27, pin3, pin12, pin20, pin28, pin4, pin13, pin21, pin29, pin5, pin14, pin22, pin30, pin6, pin15, pin23, pin31, pin7, pin16, pin24, pin32, pin8, pin17, pin25, pin33, pin9, pin18, pin26, pin34
Servo Motor MG996R
- Description: A high-torque servo motor.
- Pins: PMW, VCC 5V, GND
Battery 12V
- Description: A 12V battery.
- Pins: +, -
775 Motor
- Description: A high-power DC motor.
- Pins: positive, negative
Cytron MD10C Motor Driver
- Description: A motor driver for controlling DC motors.
- Pins: Positive, Ground, Motor Phase A, Motor Phase B, Direction, PWM
Wiring Details
Arduino UNO
- 3.3V: Connected to Adafruit SCD30 (3.3V)
- 5V: Connected to ProtoSnap - Pro Mini - Protoboard (pin19)
- GND: Connected to Adafruit SCD30 (GND), ProtoSnap - Pro Mini - Protoboard (pin27)
- A4: Connected to Adafruit SCD30 (SDA)
- A5: Connected to Adafruit SCD30 (SCL)
- D7: Connected to Cytron MD10C Motor Driver (Direction)
- D6: Connected to Cytron MD10C Motor Driver (PWM)
- D5: Connected to Servo Motor MG996R (PMW)
- D3: Connected to Servo Motor MG996R (PMW)
Adafruit SCD30
- 3.3V: Connected to Arduino UNO (3.3V)
- GND: Connected to Arduino UNO (GND), Adafruit PMSA003I Air Quality Breakout (GND), Adafruit BME680 (GND)
- SDA: Connected to Arduino UNO (A4), Adafruit PMSA003I Air Quality Breakout (SDA), Adafruit BME680 (SDI/SDA)
- SCL: Connected to Arduino UNO (A5), Adafruit PMSA003I Air Quality Breakout (SCL), Adafruit BME680 (SCK/SCL)
- VCC: Connected to Adafruit PMSA003I Air Quality Breakout (3.3V), Adafruit BME680 (VCC)
Adafruit BME680
- GND: Connected to Adafruit SCD30 (GND)
- VCC: Connected to Adafruit SCD30 (VCC)
- SDI/SDA: Connected to Adafruit SCD30 (SDA)
- SCK/SCL: Connected to Adafruit SCD30 (SCL)
Adafruit PMSA003I Air Quality Breakout
- GND: Connected to Adafruit SCD30 (GND), Adafruit BMP280 (GND)
- 3.3V: Connected to Adafruit SCD30 (VCC)
- SDA: Connected to Adafruit SCD30 (SDA), Adafruit BMP280 (SDI/SDA)
- SCL: Connected to Adafruit SCD30 (SCL), Adafruit BMP280 (SCK/SCL)
Adafruit BMP280
- GND: Connected to Adafruit PMSA003I Air Quality Breakout (GND), Adafruit BME680 (GND)
- VCC: Connected to Adafruit PMSA003I Air Quality Breakout (VCC), Adafruit BME680 (VCC)
- SDI/SDA: Connected to Adafruit PMSA003I Air Quality Breakout (SDA), Adafruit BME680 (SDI/SDA)
- SCK/SCL: Connected to Adafruit PMSA003I Air Quality Breakout (SCL), Adafruit BME680 (SCK/SCL)
Adafruit STEMMA Soil Sensor
- GND: Connected to Adafruit BME680 (GND)
- VIN: Connected to Adafruit BME680 (VCC)
- SDA: Connected to Adafruit BME680 (SDI/SDA)
- SCL: Connected to Adafruit BME680 (SCK/SCL)
ProtoSnap - Pro Mini - Protoboard
- pin19: Connected to Arduino UNO (5V)
- pin27: Connected to Arduino UNO (GND)
- pin20: Connected to Servo Motor MG996R (VCC 5V)
- pin31: Connected to Servo Motor MG996R (GND)
- pin21: Connected to Servo Motor MG996R (VCC 5V)
- pin28: Connected to Servo Motor MG996R (GND)
- pin30: Connected to Cytron MD10C Motor Driver (Ground)
Servo Motor MG996R
- PMW: Connected to Arduino UNO (D5), Arduino UNO (D3)
- VCC 5V: Connected to ProtoSnap - Pro Mini - Protoboard (pin20), ProtoSnap - Pro Mini - Protoboard (pin21)
- GND: Connected to ProtoSnap - Pro Mini - Protoboard (pin31), ProtoSnap - Pro Mini - Protoboard (pin28)
Battery 12V
- +: Connected to Cytron MD10C Motor Driver (Positive)
- -: Connected to Cytron MD10C Motor Driver (Ground)
775 Motor
- positive: Connected to Cytron MD10C Motor Driver (Motor Phase A)
- negative: Connected to Cytron MD10C Motor Driver (Motor Phase B)
Cytron MD10C Motor Driver
- Direction: Connected to Arduino UNO (D7)
- PWM: Connected to Arduino UNO (D6)
- Ground: Connected to ProtoSnap - Pro Mini - Protoboard (pin30), Battery 12V (-)
- Positive: Connected to Battery 12V (+)
- Motor Phase A: Connected to 775 Motor (positive)
- Motor Phase B: Connected to 775 Motor (negative)
Code Documentation
Arduino UNO Code
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
This code is a basic template for the Arduino UNO. The setup() function is where you initialize your components and settings, and the loop() function is where the main logic of your program runs repeatedly.