Some more basic work

This commit is contained in:
2025-12-01 20:10:22 +01:00
parent 8b39ff05c9
commit 3222cc349d
3 changed files with 55 additions and 11 deletions

49
README
View File

@@ -27,6 +27,25 @@ Optionen für später
Damit die LEDs nicht stören, kann umgeschaltet werden zwischen Damit die LEDs nicht stören, kann umgeschaltet werden zwischen
permanentem Leuchten und nur kurzem Aufblinken bei Betätigung. permanentem Leuchten und nur kurzem Aufblinken bei Betätigung.
Einschaltvorgang
----------------
Es erfolgt ein "Lampentest": Alle LEDs werden einmal durchgeschaltet.
Sind alle Tests erfolgreich ertönt ein Buzzer-Signal.
Beschreibung
------------
Die zu verbindenden Geräte müssen über die Weboberfläche ausgewählt
werden. Eine NMEA2000-Geräteliste wird dargestellt.
Die Destination-LEDs leuchten nur, wenn ein entsprechendes
N2K-Zielgerät konfiguriert und erkannt wurde.
Bohrung Taster: 12mm Bohrung Taster: 12mm
Taster Außenmaß: 17.5mm Taster Außenmaß: 17.5mm
@@ -108,19 +127,21 @@ BUZZER
Bauteilliste Bauteilliste
------------ ------------
1x ESP32-S3 Nano oder ESP32-S3 Pico 1x ESP32-S3 Nano (Waveshare)
5x Taster schwarz 5x Taster schwarz
2x Taster gelb 2x Taster gelb
1x M12 Einbaubuchse 1x M12 Einbaubuchse
1x Spannungswandler 12V -> 3.3V 1x RGB LED (gemeinsame Anode), diffus
1x RGB LED (gemeinsame Anode) 3x LED grün, diffus
3x LED grün 6x Widerstand 330 Ohm
1x SN65HVD230 CAN Transceiver 1x SN65HVD230 CAN Transceiver
1x Buzzer, passiv 1x Buzzer, passiv
1x Gehäuse 150x60x40
4x Befestigungsschraube M4
1x Kabelsatz 1x Kabelsatz
1x Terminalblock 4pol. 2,54mm schraubbar
1x Gehäuse 150x60x40 bestehend auf Front- und Rückseite
4x Befestigungsschraube M4
4x Gehäuseschraube M2,5
1x Silikondichtschnur 2mm
Konfiguration Konfiguration
@@ -131,3 +152,17 @@ Konfiguration
- Tastencodes Tasten 1 bis 6 - Tastencodes Tasten 1 bis 6
- Tastennamen - Tastennamen
- Web-AP - Web-AP
NMEA2000
--------
Es werden keine eingehenden Pakete verarbeitet bis auf die ISO-Pflichtpakete
Es wird eine Geräteliste geführt
Aus der Geräteliste können 3 Geräten den Zielen A, B und C zugeordnet werden
Die Tastencodes werden an das jeweils aktive Gerät gesendet
Ist ein Temp./-Feuchtesensor vorhanden werden die gemessenen Werte
regelmäßig auf den Bus gesendet

View File

@@ -17,7 +17,7 @@
#define KEY_DST GPIO_NUM_17 // D8 #define KEY_DST GPIO_NUM_17 // D8
// Buzzer // Buzzer
#define BUZZER GPIO_NUM_0 // B1 #define BUZZER GPIO_NUM_0 // ! B1 <-> LED green
#define LEDC_CHANNEL 0 #define LEDC_CHANNEL 0
#define LEDC_TIMER_8_BIT 8 #define LEDC_TIMER_8_BIT 8
#define LEDC_BASE_FREQ 5000 #define LEDC_BASE_FREQ 5000
@@ -33,7 +33,7 @@
#define LED_USER GPIO_NUM_48 // internal red user led #define LED_USER GPIO_NUM_48 // internal red user led
#define LED_IR GPIO_NUM_46 // intername rgb led on strapping pins #define LED_IR GPIO_NUM_46 // intername rgb led on strapping pins
#define LED_IG GPIO_NUM_0 #define LED_IG GPIO_NUM_0 // ! B1 <-> Buzzer
#define LED_IB GPIO_NUM_45 #define LED_IB GPIO_NUM_45
// CAN bus for NMEA2000 connection // CAN bus for NMEA2000 connection

View File

@@ -122,8 +122,8 @@ void wifi_init_softap()
void setup() { void setup() {
Serial.begin(115200); Serial.begin(115200);
while (!Serial) delay(10); // while (!Serial) delay(10);
delay(200); delay(500);
// Arduino ESP32 logging // Arduino ESP32 logging
esp_log_level_set("*", ESP_LOG_INFO); esp_log_level_set("*", ESP_LOG_INFO);
@@ -182,6 +182,11 @@ void setup() {
server.begin(); server.begin();
// NMEA2000 configuration // NMEA2000 configuration
NMEA2000.SetN2kCANMsgBufSize(8);
NMEA2000.SetN2kCANReceiveFrameBufSize(250);
NMEA2000.SetN2kCANSendFrameBufSize(250);
NMEA2000.SetProductInformation("00000001", // Manufacturer's Model serial code NMEA2000.SetProductInformation("00000001", // Manufacturer's Model serial code
74, // Manufacturer's product code 74, // Manufacturer's product code
"OBPkeypad6/1", // Manufacturer's Model ID "OBPkeypad6/1", // Manufacturer's Model ID
@@ -393,6 +398,10 @@ void loop() {
delay(200); delay(200);
} }
// NMEA2000.loop();
// NMEA2000.ParseMessages();
// development heartbeat // development heartbeat
if (millis() - lastPrint >= 1000) { if (millis() - lastPrint >= 1000) {
lastPrint = millis(); lastPrint = millis();