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

Arduino UNO-Based Automated Feeding System with SMS Alerts and Ultrasonic Level Sensing

View and Edit Project In Cirkit DesignerImage of Arduino UNO-Based Automated Feeding System with SMS Alerts and Ultrasonic Level Sensing

Circuit Documentation

Summary

The circuit in question appears to be a complex system designed around an Arduino UNO microcontroller. It includes a variety of components such as a 4-channel 5V relay module, two HC-SR04 ultrasonic sensors, an RTC (Real-Time Clock), an I2C LCD display (20x4), multiple pushbuttons, a servo motor, and some comments which may represent annotations or placeholders for additional information. The circuit is likely intended for an application that involves time-based control of devices (via the relay), distance measurement (using ultrasonic sensors), and user interaction through buttons and display feedback.

Component List

Wiring Details

Arduino UNO

Relay 4 Channel 5v

RTC

Pushbuttons

HC-SR04 Ultrasonic Sensors

Lcd 20x4 i2c

Servo Motor 9G

Documented Code

The code provided is for the Arduino UNO microcontroller and includes libraries for the RTC, I2C LCD, and Servo motor. It is designed to manage a feeding system, likely for animals or fish, with the ability to measure water level and feed levels, control relays for power management, and send SMS alerts for low levels or feeding times. The code includes functions for reading button states, measuring distances with ultrasonic sensors, controlling a servo motor, and sending SMS messages to predefined numbers.

#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

// ... (Code omitted for brevity)

void setup() {
  // Initialization code for RTC, LCD, pins, servo, and GSM module
  // ...
}

void loop() {
  // Main loop handling button presses, relay activation, and display updates
  // ...
}

// Additional functions for button debouncing, distance measurement, relay control, etc.
// ...

The code is structured with a setup function to initialize the components and a loop function that continuously checks for button presses, updates the display, and activates relays at predefined times. There are also functions for measuring distance, displaying information, and sending SMS messages. The code is well-commented, making it easier to understand the functionality of each section.