123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- #include <ESP8266WiFi.h>
- #include <WiFiManager.h>
- #include <ESP8266mDNS.h>
- #include <ESP8266WebServer.h>
- #include <ArduinoJson.h>
- #include "LittleFS.h"
- #include <Adafruit_NeoPixel.h>
- #define PIN D2
- #define NUM_LEDS 50
- #define BUTTON_MODE D7
- #define BUTTON_ADD D0
- #define BUTTON_COLOR D5
- #define BUTTON_MINUS D6
- #define BUTTON_AUTOINC_DELAY 500
- #define BUTTON_HOLD_DELAY 70
- #define BUTTON_DEBOUNCE 70
- #define MAX_BRIGHTNESS 256
- #define MAX_CTRLBRIGHTNESS 32
- #define WHITE_MIN_TEMP 2500
- #define WHITE_MAX_TEMP 10000
- #define DEVICE_NAME "FL1010-RGB"
- #define MDNS_NAME "fl1010-rgb"
- #define LISTENING_PORT 80
- WiFiManager wifiManager;
- ESP8266WebServer server(LISTENING_PORT);
- String deviceUUID = "";
- int currentMode = 0;
- int adjustingCatergory = 0;
- int values[] = {0, 0, 0};
- int currentCtrlLedRgb[] = {0, 0, 0};
- bool wifiControlMode = false;
- Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
- void setControlLEDColor(int r, int g, int b) {
- currentCtrlLedRgb[0] = r;
- currentCtrlLedRgb[1] = g;
- currentCtrlLedRgb[2] = b;
- strip.setPixelColor(0, strip.Color(r, g, b));
- strip.show();
- }
- void setLightColor(int r, int g, int b) {
- for (int i = 1; i < NUM_LEDS; i++) {
- strip.setPixelColor(i, strip.Color(r, g, b));
- }
- strip.show();
- }
- void setup() {
-
- Serial.begin(115200);
-
- pinMode(BUTTON_MODE, INPUT);
- pinMode(BUTTON_ADD, INPUT);
- pinMode(BUTTON_COLOR, INPUT);
- pinMode(BUTTON_MINUS, INPUT);
- strip.begin();
- delay(300);
- setLightColor(0, 0, 0);
-
- int tmp = digitalRead(BUTTON_MODE);
- if (tmp == LOW) {
-
- deviceUUID = WiFi.macAddress();
- deviceUUID.replace(":", "-");
-
- setControlLEDColor(255, 255, 0);
- Serial.println("Entering WiFi Mode");
- wifiManager.autoConnect(DEVICE_NAME);
- if (WiFi.status() == WL_CONNECTED) {
- Serial.println("WiFi Connected");
- setControlLEDColor(0, 32, 0);
- wifiControlMode = true;
-
- registerAPI();
- } else {
- Serial.println("Network error. Running in offline mode");
- setControlLEDColor(255, 0, 0);
- }
- } else {
-
- loadWhiteModeDefault();
- }
- }
- void loop() {
- if (wifiControlMode){
- server.handleClient();
- MDNS.update();
- }else{
- handleButtonLogic();
- }
- }
|