Skip to content

vitorccs/esp32-dual-led-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32-C3 Dual LED Controller

A simple ESP32-C3 project to control 02 LED strips via a web interface and a physical push button.

The Web interface

The PCB

Sample of push button

Simple API

Additionally, the LED can be controlled via a simple API, making it easy to integrate with home automation (e.g.: set up a cron job to turn it on and off automatically):

  • GET http://192.168.1.190/status
  • POST http://192.168.1.190/cycle
  • POST http://192.168.1.190/toggle-1
  • POST http://192.168.1.190/toggle-2
  • POST http://192.168.1.190/turn-on-1
  • POST http://192.168.1.190/turn-on-2
  • POST http://192.168.1.190/turn-off-1
  • POST http://192.168.1.190/turn-off-2

NOTE: Change http://192.168.1.190 to your actual device IP. Assign a Static IP to your device in your home router.

Protoboard & PCB

The prototype in Protoboard

PCB designed in EasyEDA

Schematics

Notes:

  1. Gate resistor (220Ω) is optional but recommended to prevent spikes.
  2. Pull-down resistor (10kΩ) between Gate and GND is optional but prevents accidental turn-on during boot.
  3. IRF9540N is optional but protects against reverse-polarity

Components

  • 01 ESP32-C3 Mini board
  • 01 Push Button
  • 02 Green LED
  • 03 220Ω Resistors
  • 02 10KΩ Resistor
  • 02 N-channel MOSFET able to work with 3.3v logic (e.g.: IRFZ44N)
  • 01 P-channel power MOSFET IRF9540N
  • 02 LED Strip (12v)
  • 01 Power Supply (12v)
  • 01 Mini 360 DC-DC Bulk Converter

About PlatformIO IDE

Platform IO is a plugin for Microsoft Virtual Studio Code. It is a more robust IDE compared to official Arduino IDE. It also allows us to easily create our own private libraries and use a more object oriented code.

About the code

The PINs can be customized in the main.cpp

#include <Arduino.h>
#include <NoDelay.h>
#include <HttpServer.h>
#include <WifiHandler.h>
#include <LedRelay.h>
#include <PushButton.h>
#include "types.h"

#define RELAY_PIN_1 1
#define RELAY_PIN_2 0
#define LED_PIN_1 3
#define LED_PIN_2 4
#define BUTTON_PIN 10
#define WIFI_SSID "MY_SSID"
#define WIFI_PWD "MY_PASSWORD"

Fritzing file

About

Simple ESP32-C3 project to control 02 LED strips from a web page

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages