Table of Contents

Play Video

SMART DUSTER USING ARTIFICIAL INTELLIGENCE

The Smart Duster is an AI-powered cleaning device designed to automate dusting tasks. Equipped with advanced sensors and intelligent navigation, it efficiently identifies and removes dust from various surfaces, ensuring a spotless and allergen-free environment with minimal human intervention.

Software Used

Hardware Used

Platform Used

The Smart Duster is an innovative cleaning device leveraging artificial intelligence (AI) to automate and optimize dusting tasks. Designed for modern homes and offices, it integrates advanced technology to ensure a dust-free environment with minimal effort.

Key Features:

Artificial Intelligence:

At the core of the Smart Duster is a sophisticated AI system that allows it to learn and adapt to different environments. The AI algorithms enable the device to identify dust-prone areas, adjust its cleaning patterns, and optimize performance over time. This ensures thorough and efficient cleaning, even in hard-to-reach places.

MCU (Microcontroller Unit):

The Smart Duster is equipped with a powerful Mode MCU, which acts as the brain of the device. The MCU processes data from various sensors, manages the AI algorithms, and controls the cleaning mechanisms. Its high processing speed and low power consumption make it ideal for real-time decision-making and efficient operation.

I2C LCD Display:

An I2C LCD display is integrated into the Smart Duster, providing a user-friendly interface for monitoring and control. The display shows real-time information such as battery status, cleaning progress, and any detected issues. It also allows users to customize settings, schedule cleaning sessions, and receive alerts.

How It Works:

  1. Initialization and Learning: Upon first use, the Smart Duster scans the environment using its built-in sensors. The AI system analyzes the data to map out the room, identifying obstacles, high-dust areas, and optimal cleaning paths.
  2. Active Cleaning: The Mode MCU controls the movement and operation of the duster. Using the data processed by the AI, the Smart Duster navigates the space, adjusting its cleaning mechanisms to effectively remove dust from various surfaces, including floors, shelves, and furniture.
  3. Real-Time Feedback: The I2C LCD display provides continuous feedback to the user. It shows the current status of the cleaning process, alerts for any maintenance needs, and allows for easy interaction and customization. Users can adjust cleaning schedules, set specific areas to focus on, and monitor the overall performance.
  4. Continuous Improvement: The AI system continuously learns from each cleaning session. It updates its internal map and adjusts its strategies to improve efficiency and effectiveness. Over time, the Smart Duster becomes more adept at maintaining a clean environment with minimal user intervention.

Benefits:

  • Effortless Cleaning: Automates the tedious task of dusting, saving time and effort.
  • High Efficiency: AI-powered optimization ensures thorough and efficient cleaning.
  • User-Friendly: Easy-to-read I2C LCD display for monitoring and control.
  • Adaptable: Learns and adapts to the specific needs of each environment.
  • Low Maintenance: Alerts and maintenance reminders keep the device running smoothly.

The Smart Duster with AI, Mode MCU, and I2C LCD is the perfect solution for those looking to maintain a clean and healthy living or working space effortlessly. Its advanced technology and intelligent design make it a standout device in the realm of smart home cleaning solutions.

COMPONENTS REQUIRED:

  1. Node MCU
  2. I2C LCD
  3. Buzzer

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <LiquidCrystal_I2C.h>
int lcdColumns = 16;
int lcdRows = 2;
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); 

/*#include <LiquidCrystal.h>  
LiquidCrystal lcd(D0, D1, D2, D3, D4, D5);*/
 
AsyncWebServer server(80);
 
const char* ssid = "OPPO Reno8 5G";  //wifi ssid
const char* password = "12345678";   //wifi password

const char* PARAM_INPUT_1 = "input1";
 
/*const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html><head>
  <title>Smart Notice Board</title>
  <meta name="viewport" content="width=device-width, initial-scale=5">
<p> <font size="9" face="sans-serif"> <marquee> Smart Notice Board </marquee> </font> </p>
  </head><body><center>
  <form action="/get">
    Enter Text to Display: <input type="text" name="input1">
    <input type="submit" value="Send">
  </form><br>
 
</center></body></html>)rawliteral";
*/
const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML>
<html>

<head>
    <br>
    <p style="text-align: center;"><strong><span style="text-decoration:"><font size="6">M.C.GOPICHAND INTER COLLEGE</font></span></strong></p>


    <title>PROJECT- SMART NOTICE BOARD</title>
    <meta name="viewport" content="width=device-width, initial-scale=5">
    <p>
        <font size="5" face="sans-serif">
            <marquee>PROJECT- DIGITAL DUSTER </marquee>
        </font>
    </p>
</head>

<body>
    <center>
        <form action="/get">
          <input type ="text" name="input1">
          <br>
                                        <form action="/get"><br>
                                            <br><input type="submit" value="Send">
                                        </form><br>
</center></body></html>)rawliteral"; 
void notFound(AsyncWebServerRequest *request) {
  request->send(404, "text/plain", "Not found");
}
 
void setup() {
  Serial.begin(115200);
   /*lcd.begin(16, 2);
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Smart Notice Board");*/
  lcd.init();
  // turn on LCD backlight                      
  lcd.backlight();
  lcd.setCursor(1, 0);
  // print message
  lcd.print("DIGITAL DUSTER");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  if (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("WiFi Failed!");
    return;
  }
  Serial.println();
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());
  lcd.setCursor(0, 1);
  lcd.print(WiFi.localIP());
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/html", index_html);
  });
 
  server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
    String message;
    String inputParam;
    if (request->hasParam(PARAM_INPUT_1)) {
      message = request->getParam(PARAM_INPUT_1)->value();
      inputParam = PARAM_INPUT_1;
       lcd.clear();
       lcd.setCursor(0,0);
       lcd.print(message);
    }
    else {
      message = "No message sent";
      inputParam = "none";
    }
    Serial.println(message);
   
  request->send(200, "text/html", index_html);
  });
  server.onNotFound(notFound);
  server.begin();
}
 
void loop() {
    for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
    lcd.scrollDisplayLeft();
    delay(500);
  }
}
Scroll to Top