Robert Proaps
Published © GPL3+

IOT Connected RGB Controller

A small device for controlling RGB strips over the internet. The system is based on the NodeMCU using Blynk for remote control.

IntermediateShowcase (no instructions)12 hours326
IOT Connected RGB Controller

Things used in this project

Hardware components

NodeMCU ESP8266 Breakout Board
NodeMCU ESP8266 Breakout Board
×1
2N2222A Transistor
×3
SparkFun Snappable Protoboard
SparkFun Snappable Protoboard
×1
M3 x 5 Bolt
×4
M3 Nut
×1
Standard Terminal Block, Navy Class Terminal Board
Standard Terminal Block, Navy Class Terminal Board
×1

Software apps and online services

Blynk
Blynk
Arduino IDE
Arduino IDE

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)

Story

Read more

Custom parts and enclosures

RGB Controller Case

The is the lower portion of the housing for the device.

RGB Controller Lid

This is the lid that bolts onto the case.

Schematics

Case Assembled

Project Installed

Project Assembled

Circuit Diagram

I apologize for the awfulness of this diagram, I will replace it with a real one soon.

Code

NodeMCU Arduino Code

C/C++
This is the code that will be uploaded to the NodeMCU
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

//Objects
int redLed = 14;
int blueLed = 12;
int greenLed = 15;

//Global Variables
int redBrightness;
int greenBrightness;
int blueBrightness;

int powerState;

char auth[] = "yySEQSoI_lxhact3VubCRRuyP8H2yK0t";

char ssid[] = "ProapsHousehold";
char pass[] = "741BF0D4DCDA93A5";

void setup() {
  Serial.begin(115200);
  Blynk.begin(auth, ssid, pass);

  pinMode(redLed, OUTPUT);
  pinMode(blueLed, OUTPUT);
  pinMode(greenLed, OUTPUT);
  pinMode(16, OUTPUT); 
}

void loop() {
  Blynk.run();
  
 if (powerState == 0) {
  analogWrite(redLed, 0);
  analogWrite(greenLed, 0);
  analogWrite(blueLed, 0);
  return;
 }
  
  analogWrite(redLed, redBrightness);
  analogWrite(greenLed, greenBrightness);
  analogWrite(blueLed, blueBrightness);
  


}

BLYNK_WRITE(V3) {
  powerState = param.asInt();
}
BLYNK_WRITE(V0) {
  redBrightness = param.asInt();
}
BLYNK_WRITE(V1) {
  greenBrightness = param.asInt();
}
BLYNK_WRITE(V2) {
  blueBrightness = param.asInt();
}

Credits

Robert Proaps
3 projects • 1 follower
Maker, Hacker, Amateur Radio Operator, College Student, Aspiring Engineer, Drone Pilot.
Contact

Comments

Please log in or sign up to comment.