Logging and LED initialization sequence
This commit is contained in:
@@ -29,8 +29,13 @@
|
||||
#define RGBLED_R GPIO_NUM_4 // A3 red
|
||||
#define RGBLED_G GPIO_NUM_13 // A6 green
|
||||
#define RGBLED_B GPIO_NUM_14 // A7 blue
|
||||
|
||||
#define LED_USER GPIO_NUM_48 // internal red user led
|
||||
|
||||
#define LED_IR GPIO_NUM_46 // intername rgb led on strapping pins
|
||||
#define LED_IG GPIO_NUM_0
|
||||
#define LED_IB GPIO_NUM_45
|
||||
|
||||
// CAN bus for NMEA2000 connection
|
||||
#define CAN_RX GPIO_NUM_18 // D9
|
||||
#define CAN_TX GPIO_NUM_21 // D10
|
||||
|
||||
@@ -27,10 +27,16 @@ extra_scripts =
|
||||
post:extra_post.py
|
||||
lib_ldf_mode = chain
|
||||
monitor_speed = 115200
|
||||
# monitor_raw = yes
|
||||
build_flags =
|
||||
-D PIO_ENV_BUILD=$PIOENV
|
||||
-DPIO_ENV_BUILD=$PIOENV
|
||||
-DBOARD_HAS_PSRAM
|
||||
-DARDUINO_USB_CDC_ON_BOOT=1
|
||||
-DCORE_DEBUG_LEVEL=4 # Max. possible loglevel: 0=None, 1=Error, 2=Warning, 3=Info, 4=Debug, 5=Verbose
|
||||
-DCONFIG_LOG_TX_BUF_SIZE=4096
|
||||
-std=gnu++17
|
||||
build_unflags =
|
||||
-std=gnu++11
|
||||
|
||||
[env:esp32-s3-nano]
|
||||
build_type = release # debug | release
|
||||
|
||||
119
src/main.cpp
119
src/main.cpp
@@ -12,6 +12,9 @@
|
||||
#include "Nmea2kTwai.h"
|
||||
#include <map>
|
||||
|
||||
// Logging
|
||||
static const char* TAG = "main.cpp";
|
||||
|
||||
Preferences preferences; // persistent storage for configuration
|
||||
|
||||
class EmbeddedFile;
|
||||
@@ -60,8 +63,8 @@ bool rgb_g = false;
|
||||
bool rgb_b = false;
|
||||
|
||||
char destination = 'A'; // A | B | C
|
||||
uint8_t led_brightness = 128; // analog pin: 0 .. 255
|
||||
uint8_t rgp_brightness = 128;
|
||||
uint8_t led_brightness = 16; // analog pin: 0 .. 255
|
||||
uint8_t rgb_brightness = 64;
|
||||
|
||||
uint buzzerpower = 50; // TBD make use of this
|
||||
|
||||
@@ -119,18 +122,26 @@ void wifi_init_softap()
|
||||
void setup() {
|
||||
|
||||
Serial.begin(115200);
|
||||
delay(500);
|
||||
Serial.println("Starting...");
|
||||
while (!Serial) delay(10);
|
||||
delay(200);
|
||||
|
||||
ESP_LOGI(TAG, "Test logging: %d", 100);
|
||||
// Arduino ESP32 logging
|
||||
esp_log_level_set("*", ESP_LOG_INFO);
|
||||
esp_log_level_set("default", ESP_LOG_INFO);
|
||||
esp_log_level_set("wifi", ESP_LOG_INFO);
|
||||
esp_log_level_set("esp_timer", ESP_LOG_INFO);
|
||||
esp_log_level_set("spi_flash", ESP_LOG_INFO);
|
||||
esp_log_level_set("arduino", ESP_LOG_INFO);
|
||||
|
||||
ESP_LOGI(TAG, "Starting ...");
|
||||
|
||||
// N2K basics
|
||||
nodeid = N2K_DEFAULT_NODEID;
|
||||
Serial.print("N2K default node id=");
|
||||
Serial.println(nodeid);
|
||||
|
||||
ESP_LOGI(TAG, "N2K default node is %d", nodeid);
|
||||
preferences.begin("nvs", false);
|
||||
nodeid = preferences.getInt("LastNodeId", N2K_DEFAULT_NODEID);
|
||||
preferences.end();
|
||||
ESP_LOGI(TAG, "N2K node id set to %d from preferences", nodeid);
|
||||
|
||||
// Setup webserver
|
||||
WiFi.persistent(false);
|
||||
@@ -156,6 +167,18 @@ void setup() {
|
||||
send_embedded_file(it->first, request);
|
||||
});
|
||||
}
|
||||
// WIP: API
|
||||
/*
|
||||
server.on("/api/status", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
StaticJsonDocument<100> doc;
|
||||
doc["temp"] = 22.3;
|
||||
doc["ip"] = WiFi.localIP().toString();
|
||||
String out;
|
||||
serializeJson(doc, out);
|
||||
request->send(200, "application/json", out);
|
||||
}); */
|
||||
// TODO POST vom Client entgegennehmen
|
||||
|
||||
server.begin();
|
||||
|
||||
// NMEA2000 configuration
|
||||
@@ -189,6 +212,7 @@ void setup() {
|
||||
digitalWrite(LED_USER, LOW);
|
||||
|
||||
// Buzzer
|
||||
/*
|
||||
ledcSetup(LEDC_CHANNEL, LEDC_BASE_FREQ, LEDC_TIMER_8_BIT);
|
||||
ledcAttachPin(BUZZER, LEDC_CHANNEL);
|
||||
// Test tone while booting
|
||||
@@ -198,30 +222,65 @@ void setup() {
|
||||
delay(750);
|
||||
ledcWriteTone(BUZZER, 0); // Buzzer off
|
||||
}
|
||||
*/
|
||||
|
||||
// Startup sequence: test all led and short beep buzzer
|
||||
|
||||
// Init onbard RGB LED
|
||||
// TODO
|
||||
// inverted mode:
|
||||
pinMode(LED_IR, OUTPUT);
|
||||
pinMode(LED_IG, OUTPUT);
|
||||
pinMode(LED_IB, OUTPUT);
|
||||
digitalWrite(LED_IR, LOW);
|
||||
digitalWrite(LED_IG, HIGH);
|
||||
digitalWrite(LED_IB, HIGH);
|
||||
delay(500);
|
||||
digitalWrite(LED_IR, HIGH);
|
||||
digitalWrite(LED_IG, LOW);
|
||||
delay(500);
|
||||
digitalWrite(LED_IG, HIGH);
|
||||
digitalWrite(LED_IB, LOW);
|
||||
delay(500);
|
||||
digitalWrite(LED_IB, HIGH);
|
||||
|
||||
// destination leds
|
||||
pinMode(LED_A, OUTPUT);
|
||||
pinMode(LED_B, OUTPUT);
|
||||
pinMode(LED_C, OUTPUT);
|
||||
|
||||
//digitalWrite(LED_A, HIGH);
|
||||
//digitalWrite(LED_B, LOW);
|
||||
//digitalWrite(LED_C, LOW);
|
||||
analogWrite(LED_A, 0);
|
||||
delay(250);
|
||||
// test every led
|
||||
analogWrite(LED_A, led_brightness);
|
||||
analogWrite(LED_B, 0);
|
||||
analogWrite(LED_C, 0);
|
||||
delay(500);
|
||||
analogWrite(LED_A, 0);
|
||||
analogWrite(LED_B, led_brightness);
|
||||
delay(500);
|
||||
analogWrite(LED_B, 0);
|
||||
analogWrite(LED_C, led_brightness);
|
||||
delay(500);
|
||||
analogWrite(LED_C, 0);
|
||||
// select dst A finally
|
||||
analogWrite(LED_A, led_brightness);
|
||||
delay(500);
|
||||
|
||||
// enclosure rgb led
|
||||
pinMode(RGBLED_R, OUTPUT);
|
||||
pinMode(RGBLED_G, OUTPUT);
|
||||
pinMode(RGBLED_B, OUTPUT);
|
||||
// common anode so we need high here to switch off!
|
||||
digitalWrite(RGBLED_R, HIGH);
|
||||
digitalWrite(RGBLED_G, HIGH);
|
||||
digitalWrite(RGBLED_B, HIGH);
|
||||
analogWrite(RGBLED_R, 255 - rgb_brightness);
|
||||
analogWrite(RGBLED_G, 255);
|
||||
analogWrite(RGBLED_B, 255);
|
||||
delay(500);
|
||||
analogWrite(RGBLED_R, 255);
|
||||
analogWrite(RGBLED_G, 255 - rgb_brightness);
|
||||
delay(500);
|
||||
analogWrite(RGBLED_G, 255);
|
||||
analogWrite(RGBLED_B, 255 - rgb_brightness);
|
||||
delay(500);
|
||||
analogWrite(RGBLED_B, 255);
|
||||
|
||||
// I²C
|
||||
Serial.print("SHT31_LIB_VERSION: ");
|
||||
@@ -246,10 +305,10 @@ void loop() {
|
||||
button = 1;
|
||||
if (rgb_r) {
|
||||
rgb_r = false;
|
||||
digitalWrite(RGBLED_R, HIGH);
|
||||
analogWrite(RGBLED_R, 255);
|
||||
} else {
|
||||
rgb_r = true;
|
||||
digitalWrite(RGBLED_R, LOW);
|
||||
analogWrite(RGBLED_R, 255 - rgb_brightness);
|
||||
}
|
||||
}
|
||||
if (digitalRead(KEY_2) == LOW) {
|
||||
@@ -257,10 +316,10 @@ void loop() {
|
||||
button += 2;
|
||||
if (rgb_g) {
|
||||
rgb_g = false;
|
||||
digitalWrite(RGBLED_G, HIGH);
|
||||
analogWrite(RGBLED_G, 255);
|
||||
} else {
|
||||
rgb_g = true;
|
||||
digitalWrite(RGBLED_G, LOW);
|
||||
analogWrite(RGBLED_G, 255 - rgb_brightness);
|
||||
}
|
||||
}
|
||||
if (digitalRead(KEY_3) == LOW) {
|
||||
@@ -268,10 +327,10 @@ void loop() {
|
||||
button += 4;
|
||||
if (rgb_b) {
|
||||
rgb_b = false;
|
||||
digitalWrite(RGBLED_B, HIGH);
|
||||
analogWrite(RGBLED_B, 255);
|
||||
} else {
|
||||
rgb_b = true;
|
||||
digitalWrite(RGBLED_B, LOW);
|
||||
analogWrite(RGBLED_B, 255 - rgb_brightness);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -303,18 +362,20 @@ void loop() {
|
||||
|
||||
if (destination == 'A') {
|
||||
destination = 'B';
|
||||
digitalWrite(LED_A, LOW);
|
||||
digitalWrite(LED_B, HIGH);
|
||||
analogWrite(LED_A, 0);
|
||||
analogWrite(LED_B, led_brightness);
|
||||
} else if (destination == 'B') {
|
||||
destination = 'C';
|
||||
digitalWrite(LED_B, LOW);
|
||||
digitalWrite(LED_C, HIGH);
|
||||
analogWrite(LED_B, 0);
|
||||
analogWrite(LED_C, led_brightness);
|
||||
} else {
|
||||
destination = 'A';
|
||||
digitalWrite(LED_C, LOW);
|
||||
digitalWrite(LED_A, HIGH);
|
||||
analogWrite(LED_C, 0);
|
||||
analogWrite(LED_A, led_brightness);
|
||||
}
|
||||
|
||||
Serial.print("Destination=");
|
||||
Serial.println(destination);
|
||||
|
||||
/*
|
||||
digitalWrite(LED_USER, HIGH); // Turn LED on
|
||||
delay(500); // Keep it on 0.5s
|
||||
|
||||
Reference in New Issue
Block a user