t0nyz0 / Bambu-Poop-Conveyor-ESP32

ESP32 MQTT Bambu X1C watcher that activates a motor when "poop" is conveyed
MIT License
17 stars 3 forks source link

Bambu Poop Conveyor for ESP32

:arrow_right: :arrow_right: :poop: :arrow_right: :arrow_right: :poop: :arrow_right: :arrow_right:

For more detailed project information visit: https://t0nyz.com/projects/bambuconveyor

Overview

The Bambu Conveyor is an application designed to manage the waste output of a Bambu Labs X1 3D printer. It utilizes the MQTT protocol to monitor the printer's status and control a motor that moves waste material away from the printing area.

https://github.com/user-attachments/assets/e5a849d5-8708-4fe7-8b11-288ce03bfcbe

List of some supplies

Conveyor Makerworld files

Features

Setup

WiFi and MQTT Configuration

Enter your WiFi and MQTT credentials in the following variables:

// WiFi credentials
char ssid[40] = "your-ssid";
char password[40] = "your-password";

// MQTT credentials
char mqtt_server[40] = "your-bambu-printer-ip";
char mqtt_password[30] = "your-bambu-printer-accesscode";
char serial_number[20] = "your-bambu-printer-serial-number";

Note:

GPIO Pins

The application uses the following GPIO pins for motor and LED control:

const int greenLight = 19;
const int yellowLight = 18;
const int redLight = 4;

int motor1Pin1 = 23;
int motor1Pin2 = 21;
int enable1Pin = 15;

Motor Control Timings

Configure the motor run time and wait time:

int motorRunTime = 10000; // 10 seconds by default / I prefer 5000 as the poop doesnt come out fast enough for you to need anymore than that, but 10 seconds is just more exciting
int motorWaitTime = 5000; // The time to wait to run the motor. / We dont want the conveyor to run right when the status is detected, 5 seconds is just right in my case
int delayAfterRun = 120000; // Delay after motor run / We dont want it to run again anytime soon

PWM Configuration

Set the PWM properties for motor control:

const int freq = 5000;
const int pwmChannel = 0;
const int resolution = 8;
int dutyCycle = 220; // Motors power level (255 for full power) / I run just under that for no reason other than my own preference 

Installation

  1. Connect the ESP32 to your computer.
  2. Open the code in the Arduino IDE.
  3. Enter your WiFi and MQTT credentials in the respective variables.
  4. Upload the code to the ESP32.
  5. Access the web server via the IP address assigned to the ESP32 to configure and control the application.

Usage

Web Server

The application hosts a web server to provide manual control and configuration. Access the following URLs for different functionalities:

FAQ / Troubleshooting

What do the flashing lights mean when its first turned on?

The ESP32 doesnt connect to the printer

License

This project is licensed under the MIT License. See the LICENSE file for details.

For more detailed project information visit: https://t0nyz.com/projects/bambuconveyor