Release v0.4.0: complete rewrite #1
3 changed files with 38 additions and 11 deletions
|
@ -8,16 +8,19 @@
|
||||||
class Display {
|
class Display {
|
||||||
public:
|
public:
|
||||||
// Constructor
|
// Constructor
|
||||||
Display();
|
Display(Adafruit_NeoPixel& p_leds);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Public methods
|
// Public methods
|
||||||
void setPollenPlusAQIForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_aqi,
|
void setPollenPlusAQIForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_pollen,
|
||||||
ArduinoJson::V710PB22::JsonArray p_pollen);
|
ArduinoJson::V710PB22::JsonArray p_aqi);
|
||||||
void setPrecipitationForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_precipitation);
|
void setPrecipitationForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_precipitation);
|
||||||
void setUVIForecastLed(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_uvi);
|
void setUVIForecastLed(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_uvi);
|
||||||
void setLocalAirQualityLed();
|
void setLocalAirQualityLed();
|
||||||
void setWifiStatusLed(bool p_enable);
|
void setWifiStatusLed(bool p_enable);
|
||||||
|
void setPixelColor(uint32_t p_index, uint8_t p_red, uint8_t p_green, uint8_t p_blue, uint8_t p_white);
|
||||||
|
void clear();
|
||||||
|
void show();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Private methods
|
// Private methods
|
||||||
|
@ -35,7 +38,7 @@ class Display {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Private members
|
// Private members
|
||||||
Adafruit_NeoPixel m_leds;
|
Adafruit_NeoPixel& m_leds;
|
||||||
std::array<uint8_t, 12U> m_precipitation_forecast_map;
|
std::array<uint8_t, 12U> m_precipitation_forecast_map;
|
||||||
std::array<uint8_t, 12U> m_air_quality_forecast_map;
|
std::array<uint8_t, 12U> m_air_quality_forecast_map;
|
||||||
uint8_t m_max_pollen_map;
|
uint8_t m_max_pollen_map;
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#include "../include/display.hpp"
|
#include "../include/display.hpp"
|
||||||
|
|
||||||
Display::Display() {
|
Display::Display(Adafruit_NeoPixel& p_leds) : m_leds(p_leds) {
|
||||||
// m_leds = Adafruit_NeoPixel(m_NUM_LEDS_PROTO_V1, m_DATA_PIN_PROTO_V1, NEO_RGBW + NEO_KHZ800);
|
|
||||||
|
|
||||||
m_precipitation_forecast_map = {11, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
m_precipitation_forecast_map = {11, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
||||||
m_air_quality_forecast_map = {23, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22};
|
m_air_quality_forecast_map = {23, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22};
|
||||||
m_max_pollen_map = 26;
|
m_max_pollen_map = 26;
|
||||||
|
@ -13,8 +11,8 @@ Display::Display() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Display::setPollenPlusAQIForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_aqi,
|
void Display::setPollenPlusAQIForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_pollen,
|
||||||
ArduinoJson::V710PB22::JsonArray p_pollen) {
|
ArduinoJson::V710PB22::JsonArray p_aqi) {
|
||||||
uint32_t first_aqi_time = p_pollen[0]["aqi"].as<uint32_t>();
|
uint32_t first_aqi_time = p_pollen[0]["aqi"].as<uint32_t>();
|
||||||
uint32_t first_pollen_time = p_pollen[0]["time"].as<uint32_t>();
|
uint32_t first_pollen_time = p_pollen[0]["time"].as<uint32_t>();
|
||||||
|
|
||||||
|
@ -77,6 +75,20 @@ void Display::setLocalAirQualityLed() {}
|
||||||
|
|
||||||
void Display::setWifiStatusLed(bool p_enable) {}
|
void Display::setWifiStatusLed(bool p_enable) {}
|
||||||
|
|
||||||
|
void Display::setPixelColor(uint32_t p_index, uint8_t p_red, uint8_t p_green, uint8_t p_blue, uint8_t p_white) {
|
||||||
|
m_leds.setPixelColor(p_index, m_leds.Color(p_red, p_green, p_blue, p_white));
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display::clear() {
|
||||||
|
m_leds.clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display::show() {
|
||||||
|
m_leds.show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
float Display::findMaxValueInTwelveHourInterval(uint32_t p_time_stamp, ArduinoJson::V710PB22::JsonArray p_array) {
|
float Display::findMaxValueInTwelveHourInterval(uint32_t p_time_stamp, ArduinoJson::V710PB22::JsonArray p_array) {
|
||||||
float max_value = 0.0f;
|
float max_value = 0.0f;
|
||||||
|
|
||||||
|
|
16
src/main.cpp
16
src/main.cpp
|
@ -1,3 +1,4 @@
|
||||||
|
#include <Adafruit_NeoPixel.h>
|
||||||
#include <dESPatch.h>
|
#include <dESPatch.h>
|
||||||
|
|
||||||
#include "../include/backend_communication.hpp"
|
#include "../include/backend_communication.hpp"
|
||||||
|
@ -15,12 +16,18 @@
|
||||||
#define CONNECT_BUTTON BUTTON_BUILTIN
|
#define CONNECT_BUTTON BUTTON_BUILTIN
|
||||||
|
|
||||||
DESPatch dESPatch;
|
DESPatch dESPatch;
|
||||||
Display display;
|
|
||||||
|
Adafruit_NeoPixel leds = Adafruit_NeoPixel(29, 14, NEO_GRBW + NEO_KHZ800);
|
||||||
|
Display display(leds);
|
||||||
|
|
||||||
WifiHandler wifi_handler(LED_BUILTIN, display);
|
WifiHandler wifi_handler(LED_BUILTIN, display);
|
||||||
|
|
||||||
BackendCommunication backend_communication(wifi_handler);
|
BackendCommunication backend_communication(wifi_handler);
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
|
display.clear();
|
||||||
|
display.show();
|
||||||
|
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|
||||||
pinMode(LED_BUILTIN, OUTPUT);
|
pinMode(LED_BUILTIN, OUTPUT);
|
||||||
|
@ -88,7 +95,12 @@ void loop(void) {
|
||||||
text = String(millis()) + " time: " + std::to_string(time).c_str();
|
text = String(millis()) + " time: " + std::to_string(time).c_str();
|
||||||
Serial.println(text);
|
Serial.println(text);
|
||||||
|
|
||||||
// display.setUVIForecastLed(time, backend_communication.m_weather_data["UVI"].as<JsonArray>());
|
// display.setPollenPlusAQIForecastLeds(time, backend_communication.m_weather_data["pollen"].as<JsonArray>(),
|
||||||
|
// backend_communication.m_weather_data["AQI"].as<JsonArray>());
|
||||||
|
// display.setPrecipitationForecastLeds(time,
|
||||||
|
// backend_communication.m_weather_data["precipitation"].as<JsonArray>());
|
||||||
|
display.setUVIForecastLed(time, backend_communication.m_weather_data["UVI"].as<JsonArray>());
|
||||||
|
display.show();
|
||||||
}
|
}
|
||||||
dESPatch.checkForUpdate(true);
|
dESPatch.checkForUpdate(true);
|
||||||
delay(2000);
|
delay(2000);
|
||||||
|
|
Loading…
Reference in a new issue