diff --git a/esp32/factory_settings.ini b/esp32/factory_settings.ini new file mode 100644 index 0000000..115157c --- /dev/null +++ b/esp32/factory_settings.ini @@ -0,0 +1,54 @@ +; The indicated settings support placeholder substitution as follows: +; +; #{platform} - The microcontroller platform, e.g. "esp32" or "esp8266" +; #{unique_id} - A unique identifier derived from the MAC address, e.g. "0b0a859d6816" +; #{random} - A random number encoded as a hex string, e.g. "55722f94" + +[factory_settings] +build_flags = + ; WiFi settings + -D FACTORY_WIFI_SSID=\"\" + -D FACTORY_WIFI_PASSWORD=\"\" + -D FACTORY_WIFI_HOSTNAME=\"#{platform}-#{unique_id}\" ; supports placeholders + + ; Access point settings + -D FACTORY_AP_PROVISION_MODE=AP_MODE_DISCONNECTED + -D FACTORY_AP_SSID=\"ESP8266-React-#{unique_id}\" ; 1-64 characters, supports placeholders + -D FACTORY_AP_PASSWORD=\"esp-react\" ; 8-64 characters + -D FACTORY_AP_CHANNEL=1 + -D FACTORY_AP_SSID_HIDDEN=false + -D FACTORY_AP_MAX_CLIENTS=4 + -D FACTORY_AP_LOCAL_IP=\"192.168.4.1\" + -D FACTORY_AP_GATEWAY_IP=\"192.168.4.1\" + -D FACTORY_AP_SUBNET_MASK=\"255.255.255.0\" + + ; User credentials for admin and guest user + -D FACTORY_ADMIN_USERNAME=\"admin\" + -D FACTORY_ADMIN_PASSWORD=\"admin\" + -D FACTORY_GUEST_USERNAME=\"guest\" + -D FACTORY_GUEST_PASSWORD=\"guest\" + + ; NTP settings + -D FACTORY_NTP_ENABLED=true + -D FACTORY_NTP_TIME_ZONE_LABEL=\"Europe/London\" + -D FACTORY_NTP_TIME_ZONE_FORMAT=\"GMT0BST,M3.5.0/1,M10.5.0\" + -D FACTORY_NTP_SERVER=\"time.google.com\" + + ; OTA settings + -D FACTORY_OTA_PORT=8266 + -D FACTORY_OTA_PASSWORD=\"esp-react\" + -D FACTORY_OTA_ENABLED=true + + ; MQTT settings + -D FACTORY_MQTT_ENABLED=false + -D FACTORY_MQTT_HOST=\"test.mosquitto.org\" + -D FACTORY_MQTT_PORT=1883 + -D FACTORY_MQTT_USERNAME=\"\" ; supports placeholders + -D FACTORY_MQTT_PASSWORD=\"\" + -D FACTORY_MQTT_CLIENT_ID=\"#{platform}-#{unique_id}\" ; supports placeholders + -D FACTORY_MQTT_KEEP_ALIVE=60 + -D FACTORY_MQTT_CLEAN_SESSION=true + -D FACTORY_MQTT_MAX_TOPIC_LENGTH=128 + + ; JWT Secret + -D FACTORY_JWT_SECRET=\"#{random}-#{random}\" ; supports placeholders \ No newline at end of file diff --git a/esp32/features.ini b/esp32/features.ini new file mode 100644 index 0000000..bd54d89 --- /dev/null +++ b/esp32/features.ini @@ -0,0 +1,9 @@ +[features] +build_flags = + -D USE_CAMERA=1 + -D USE_BATTERY=1 + -D USE_NTP=1 + -D USE_SECURITY=1 + -D USE_UPLOAD_FIRMWARE=1 + -D USE_DOWNLOAD_FIRMWARE=1 + -D USE_ANALYTICS=1 diff --git a/esp32/platformio.ini b/esp32/platformio.ini index fa9639f..04e12d6 100644 --- a/esp32/platformio.ini +++ b/esp32/platformio.ini @@ -8,15 +8,25 @@ ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html +[platformio] +extra_configs = + factory_settings.ini + features.ini + [base] platform = espressif32 framework = arduino monitor_speed = 115200 -monitor_filters = esp32_exception_decoder +monitor_filters = + esp32_exception_decoder + default + colorize build_flags = - -DCORE_DEBUG_LEVEL=3 + ${factory_settings.build_flags} + ${features.build_flags} + -D CORE_DEBUG_LEVEL=5 + -D register= -std=gnu++17 - -Dregister= build_unflags = -std=gnu++11 test_ignore = test_embedded lib_deps =