Restructure into a single PlatformIO project with nano and esp32 targets

- Shared BROSE9323 driver in lib/, ESPSERIAL selected via build_flags
- Nano firmware in src/nano, ESP32 firmware in src/esp32
- Move WiFi/MQTT credentials to gitignored secrets.h (template provided)
- Pin home-assistant-integration to 2.1.0 from the registry
- Add esp32_usb environment for first flash / recovery
- Add READMEs and CLAUDE.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-10-12 23:55:15 +02:00
commit 0e4d39c47b
18 files changed
+1905

No files matched your search

+71
View File
@@ -0,0 +1,71 @@
#include <Arduino.h>
#include "BROSE9323.h"
#include "bitmaps.h"
// WiFi / MQTT credentials (gitignored, copy secrets.example.h -> secrets.h)
#if __has_include("secrets.h")
#include "secrets.h"
#else
#error "Missing src/esp32/secrets.h - copy src/esp32/secrets.example.h to secrets.h and fill it in"
#endif
// fixes
#include <SPI.h>
#include <Adafruit_I2CDevice.h>
// fonts
#include <Fonts/FreeSerif12pt7b.h>
#include <Fonts/FreeSerifItalic12pt7b.h>
// #include <Font2x5FixedMonoNum.h>
#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <WiFiMulti.h>
// wdt?
#include <esp_task_wdt.h>
#include <rom/rtc.h>
// hassio
#include <ArduinoHA.h>
byte mac[] = {0x34, 0x86, 0x5d, 0x3a, 0x08, 0x28};
// EthernetClient client;
WiFiClient client;
HADevice device(mac, sizeof(mac));
HAMqtt mqtt(client, device);
HASwitch flipDotDisplay("FlipDotDisplayClock");
bool hassioDisplayStatus = true;
HASwitch powerSwitch("FlipDotDisplayPower");
bool power = true;
const int led1 = BUILTIN_LED; // Pin of the LED
const int relay = 13; // Pin of the relay
int hour = 0;
int minute = 0;
int second = 0;
//
WiFiMulti wifiMulti;
const char *ssid = WIFI_SSID;
const char *password = WIFI_PASSWORD;
BROSE9323 display(84, 19, 28);
uint32_t next_display;
// ntp
#define MYTZ "CET-1CEST,M3.5.0,M10.5.0/3"
const char *ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 3600;
const int daylightOffset_sec = 3600;
// const int daylightOffset_sec = 0;
bool wifiStatus = false;
bool otaPanicMode = true;