Add LED FAN visualization

This commit is contained in:
Ollo 2024-11-29 22:59:58 +01:00
parent 96b0d1e3bc
commit e56a3a381d
3 changed files with 29 additions and 1 deletions

View File

@ -16,4 +16,7 @@
#define GPIO_DS18B20 D2 /**< One-Wire used for Dallas temperature sensor */
#define GPIO_WS2812_PIN1 D3
#define WS2812_LEDS1 1
#endif /* End FANLEDCTL_PINS */

View File

@ -14,4 +14,5 @@ board = d1_wroom_02
framework = arduino
lib_deps = OneWire
DallasTemperature
DallasTemperature
adafruit/Adafruit NeoPixel

View File

@ -1,9 +1,14 @@
#include <Arduino.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#include <Adafruit_NeoPixel.h>
#include "controller.h"
/******************************************************************************
* DEFINES
******************************************************************************/
#define DELAY_TIME 1000 /**< time between measurements [ms] */
#define MIN_FAN_SPEED_PERCENT 24 /**< minimum fan speed [%] */
#define MIN_TEMP 25 /**< turn fan off below [deg C] */
@ -12,6 +17,10 @@
#define TEMP_SENSOR_MEASURE_SERIES 5 /**< Maximum resets */
/******************************************************************************
* LOCAL VARIABLES
******************************************************************************/
Adafruit_NeoPixel* pPixels = NULL;
OneWire oneWire(GPIO_DS18B20);
DallasTemperature sensors(&oneWire);
@ -25,6 +34,17 @@ void setup() {
/* Setup FAN Control */
pinMode(FAN_PIN, OUTPUT);
pinMode(SIGNAL_PIN, INPUT);
pPixels = new Adafruit_NeoPixel(WS2812_LEDS1, GPIO_WS2812_PIN1, NEO_RGB + NEO_KHZ800);
pPixels->begin();
pPixels->clear();
pPixels->fill(pPixels->Color(255,0,0));
pPixels->setBrightness(100);
pPixels->show();
/* Initialize Temperature sensor */
sensors.begin();
for(int j=0; j < TEMP_SENSOR_MEASURE_SERIES && sensors.getDeviceCount() == 0; j++)
@ -96,6 +116,10 @@ void loop() {
fanSpeedPercent = (100 - MIN_FAN_SPEED_PERCENT) * (temp - MIN_TEMP) / (MAX_TEMP - MIN_TEMP) + MIN_FAN_SPEED_PERCENT;
}
pPixels->fill(pPixels->Color(255,0,0));
pPixels->setBrightness(fanSpeedPercent);
pPixels->show();
Serial.print(fanSpeedPercent);
Serial.print("%;");
setFanSpeedPercent(fanSpeedPercent);