From 1612ac4bf01acd4893d61fe59377ad5fb6f2d381 Mon Sep 17 00:00:00 2001 From: Just Call Me Koko <25190487+justcallmekoko@users.noreply.github.com> Date: Thu, 23 Apr 2020 19:23:00 -0400 Subject: [PATCH] Add Neopixel support --- README.md | 2 +- esp32_marauder/Display.h | 6 ++--- esp32_marauder/LedInterface.cpp | 41 +++++++++++++++++++++++++++++++ esp32_marauder/LedInterface.h | 31 +++++++++++++++++++++++ esp32_marauder/esp32_marauder.ino | 10 ++++++++ 5 files changed, 86 insertions(+), 4 deletions(-) create mode 100644 esp32_marauder/LedInterface.cpp create mode 100644 esp32_marauder/LedInterface.h diff --git a/README.md b/README.md index a0451e7..7a7f813 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ -# ESP32 Marauder v0.6.3 +# ESP32 Marauder v0.6.4

Marauder logo

A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32 diff --git a/esp32_marauder/Display.h b/esp32_marauder/Display.h index a3da0c2..1eaa900 100644 --- a/esp32_marauder/Display.h +++ b/esp32_marauder/Display.h @@ -13,8 +13,8 @@ #include -#define TFT_SHIELD -//#define TFT_DIY +//#define TFT_SHIELD +#define TFT_DIY #define SCREEN_WIDTH 240 #define SCREEN_HEIGHT 320 @@ -56,7 +56,7 @@ class Display TFT_eSPI tft = TFT_eSPI(); TFT_eSprite img = TFT_eSprite(&tft); TFT_eSPI_Button key[BUTTON_ARRAY_LEN]; - String version_number = "v0.6.3"; + String version_number = "v0.6.4"; bool printing = false; bool loading = false; diff --git a/esp32_marauder/LedInterface.cpp b/esp32_marauder/LedInterface.cpp new file mode 100644 index 0000000..8740f22 --- /dev/null +++ b/esp32_marauder/LedInterface.cpp @@ -0,0 +1,41 @@ +#include "LedInterface.h" + +LedInterface::LedInterface() { + +} + +void LedInterface::RunSetup() { + Serial.println("Setting neopixel to black..."); + strip.begin(); + strip.setBrightness(50); + strip.setPixelColor(0, strip.Color(0, 0, 0)); + strip.show(); + delay(100); + strip.setPixelColor(0, strip.Color(255, 0, 0)); + strip.show(); + this->initTime = millis(); +} + +void LedInterface::main(uint32_t currentTime) { + strip.setPixelColor(0, this->Wheel((0 * 256 / 100 + this->wheel_pos) % 256)); + strip.show(); + + this->current_fade_itter++; + + this->wheel_pos = this->wheel_pos - this->wheel_speed; + if (this->wheel_pos < 0) + this->wheel_pos = 255; +}; + +uint32_t LedInterface::Wheel(byte WheelPos) { + WheelPos = 255 - WheelPos; + if(WheelPos < 85) { + return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3); + } + if(WheelPos < 170) { + WheelPos -= 85; + return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3); + } + WheelPos -= 170; + return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0); +} diff --git a/esp32_marauder/LedInterface.h b/esp32_marauder/LedInterface.h new file mode 100644 index 0000000..357a844 --- /dev/null +++ b/esp32_marauder/LedInterface.h @@ -0,0 +1,31 @@ +#ifndef LedInterface_h +#define LedInterface_h + +#include +#include + +#define PIN 25 +#define Pixels 1 + +extern Adafruit_NeoPixel strip; + +class LedInterface { + + private: + uint32_t initTime = 0; + + int current_fade_itter = 1; + int wheel_pos = 255; + int wheel_speed = 1; // lower = slower + + uint32_t Wheel(byte WheelPos); + + public: + LedInterface(); + + void RunSetup(); + void main(uint32_t currentTime); + +}; + +#endif diff --git a/esp32_marauder/esp32_marauder.ino b/esp32_marauder/esp32_marauder.ino index 1f793fe..9e9c40c 100644 --- a/esp32_marauder/esp32_marauder.ino +++ b/esp32_marauder/esp32_marauder.ino @@ -25,6 +25,7 @@ https://www.online-utility.org/image/convert/to/XBM #include "Buffer.h" #include "BatteryInterface.h" #include "TemperatureInterface.h" +#include "LedInterface.h" //#include "icons.h" /* @@ -46,6 +47,9 @@ Web web_obj; Buffer buffer_obj; BatteryInterface battery_obj; TemperatureInterface temp_obj; +LedInterface led_obj; + +Adafruit_NeoPixel strip = Adafruit_NeoPixel(Pixels, PIN, NEO_GRB + NEO_KHZ800); uint32_t currentTime = 0; @@ -71,6 +75,9 @@ void setup() //Serial.println("Internal Temp: " + (String)((temprature_sens_read() - 32) / 1.8)); + // Do some LED stuff + led_obj.RunSetup(); + // Do some SD stuff if(sd_obj.initSD()) Serial.println("SD Card supported"); @@ -96,6 +103,8 @@ void setup() } else Serial.println("IP5306 I2C Supported: false"); + + Serial.println(wifi_scan_obj.freeRAM()); } @@ -115,6 +124,7 @@ void loop() sd_obj.main(); battery_obj.main(currentTime); temp_obj.main(currentTime); + //led_obj.main(currentTime); //if ((wifi_scan_obj.currentScanMode != WIFI_ATTACK_BEACON_SPAM)) if ((wifi_scan_obj.currentScanMode != WIFI_PACKET_MONITOR) && (wifi_scan_obj.currentScanMode != WIFI_SCAN_EAPOL))