Bluetooth Control Hat
Hii PCBWAYER Today I will Show How to Make Smart Hat
I wanted to upgrade my hat with LEDs but not just something static or a solution that will require me to program the hat each time I want to change the colors.
// Pro Mini 3.3V // Blutooth pin 3 - RX, pin 4 - TX // LED Strip 16 leds - pin 6 - DATA // Lipo 3.7V #include <Adafruit_NeoPixel.h> #include <SoftwareSerial.h> #define SERIAL_PORT_SPEED 115200 #define BT_PORT_SPEED 9600 #define PINLED 6 #define NumLED 16 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NumLED, PINLED, NEO_GRB + NEO_KHZ800); int Mode = 0; int ParameterR = 0; int ParameterG = 0; int ParameterB = 170; int ParameterSpeed = 60; int ParameterBrightness = 130; String MsgBT = ""; String strTemp; char c; SoftwareSerial BT(3, 4);// RX | TX void setup() { strip.begin(); strip.setBrightness(ParameterBrightness); strip.show(); // Initialize all pixels to 'off' BT.begin(BT_PORT_SPEED); Serial.begin(SERIAL_PORT_SPEED); MsgBT.reserve(150); } void loop() { if (BT.available()) { MsgBT = BT.readString(); Serial.print("bytes read: "); Serial.println(MsgBT.length()); Serial.println(MsgBT); if (MsgBT == "999") { // Turn Off TurnOff(); Mode = 1; } else { strTemp = (MsgBT.substring(0, MsgBT.indexOf(","))); ParameterR = strTemp.toInt(); MsgBT = MsgBT.substring(MsgBT.indexOf(",") + 1); strTemp = (MsgBT.substring(0, MsgBT.indexOf(","))); ParameterG = strTemp.toInt(); MsgBT = MsgBT.substring(MsgBT.indexOf(",") + 1); strTemp = (MsgBT.substring(0, MsgBT.indexOf(","))); ParameterB = strTemp.toInt(); MsgBT = MsgBT.substring(MsgBT.indexOf(",") + 1); strTemp = (MsgBT.substring(0, MsgBT.indexOf(","))); ParameterSpeed = strTemp.toInt(); MsgBT = MsgBT.substring(MsgBT.indexOf(",") + 1); strTemp = (MsgBT.substring(0, MsgBT.indexOf("#"))); ParameterBrightness = strTemp.toInt(); Serial.print(ParameterR); Serial.print(","); Serial.print(ParameterG); Serial.print(","); Serial.print(ParameterB); Serial.print(","); Serial.print(ParameterSpeed); Serial.print(","); Serial.print(ParameterBrightness); Serial.println(); Mode = 0; MsgBT = ""; } } switch (Mode) { case 0: strip.setBrightness(ParameterBrightness); strip.show(); if (ParameterSpeed == 400) { for (uint16_t i = 0; i < strip.numPixels(); i++) strip.setPixelColor(i, strip.Color(ParameterR, ParameterG, ParameterB)); strip.show(); Mode = 1; } else { colorWipe(strip.Color(ParameterR, ParameterG, ParameterB), ParameterSpeed); if (BT.available()) break; colorWipe(strip.Color(0, 0, 0), ParameterSpeed); } break; case 1: Serial.println("Mode 1"); break; } } // Fill the dots one after the other with a color void colorWipe(uint32_t c, uint8_t wait) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, c); strip.show(); if (BT.available()) return; delay(wait); } } void TurnOff() { for (uint16_t i = 0; i < strip.numPixels(); i++) strip.setPixelColor(i, strip.Color(0, 0, 0)); strip.show(); }
SCHEMATICS
Schematics
DOWNLOAD
THANKS FOR WATCHING FRIENDS
THNAKU pcbway 🤠🤠🤠
13800+ Projects Sponsored
Nov 12,2019
716 viewsReport item
- Comments(0)
- Likes(1)
Upload photo
You can only upload 5 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP
0 / 10000