10 #include "wifi_credentials.h"
11 #include "generated/ws2812.pio.h"
14 #include "lwip/apps/httpd.h"
27 printf(
"Connecting to Wi-Fi...\n");
28 while (cyw43_arch_wifi_connect_timeout_ms(WIFI_SSID, WIFI_PASSWORD, CYW43_AUTH_WPA2_AES_PSK, 10000) != 0)
29 printf(
"Attempting to connect...\n");
30 printf(
"Connected!\n");
31 extern cyw43_t cyw43_state;
32 uint32_t ip_addr = cyw43_state.netif[CYW43_ITF_STA].ip_addr.addr;
33 printf(
"IP Address: %lu.%lu.%lu.%lu\n", ip_addr & 0xFF, (ip_addr >> 8) & 0xFF, (ip_addr >> 16) & 0xFF, ip_addr >> 24);
39 uint64_t current_time = time_us_64();
64 if (!stdio_init_all())
66 printf(
"Stdio init failed");
71 gpio_init(CYW43_WL_GPIO_LED_PIN);
72 gpio_set_dir(CYW43_WL_GPIO_LED_PIN, GPIO_OUT);
73 gpio_put(CYW43_WL_GPIO_LED_PIN, 0);
94 if (cyw43_arch_init())
96 printf(
"Wi-Fi init failed");
99 cyw43_wifi_pm(&cyw43_state, cyw43_pm_value(CYW43_NO_POWERSAVE_MODE, 20, 1, 1, 1));
100 cyw43_arch_enable_sta_mode();
111 uint offset = pio_add_program(pio, &ws2812_program);
113 printf(
"WS2812 LED Control, using pin %d\n",
WS2812_PIN);
121 uint16_t base_hue = 0;
122 uint8_t speed_factor_wheel = 4;
123 uint8_t speed_factor_cycle = 1;
124 uint8_t speed_factor_breathing = 3;
125 uint8_t density_factor = 3;
126 uint8_t breathing_brightness = 15;
127 bool breathing_up =
true;
#define BLINK_CODE_WIFI_CONNECTED
#define BLINK_CODE_WIFI_CONNECTING
#define BLINK_CODE_INIT_SUCCESS
#define BLINK_CODE_NETWORK_INIT_SUCCESS
void cgi_init()
Initialize CGI handlers.
volatile bool light_state_toggle_request
volatile bool light_mode_toggle_request
void gpio_button_irq_handler(uint gpio, uint32_t events)
GPIO button interrupt handler.
void connect_to_wifi()
Connect to WiFi.
volatile uint64_t last_press_time
enum init_result_t init()
Init.
init_result_t
Init result enum.
uint32_t get_current_color()
Get current color.
void toggle_light_state()
Toggle light state.
void toggle_light_mode()
Toggle light mode.
volatile struct light_state_t light_state
Light state.
void ntp_update_time(void)
NTP update time.
enum light_modes light_mode
void apply_flashing_effect(uint32_t len, uint32_t *color)
Apply flashing effect.
void apply_breathing_effect(uint32_t len, uint8_t *speed_factor, uint32_t *color, volatile uint8_t *base_brightness, uint8_t *brightness, bool *breathing_up)
Apply breathing effect.
void turn_off_all(uint32_t len)
Turn off all leds.
void apply_rainbow_wheel_effect(uint32_t len, uint16_t *base_hue, uint8_t *speed_factor, uint8_t *density_factor, volatile uint8_t *brightness)
Apply rainbow wheel effect.
void apply_rainbow_cycle_effect(uint32_t len, uint16_t *hue, uint8_t *speed_factor, volatile uint8_t *brightness)
Apply rainbow cycle effect.