Sie sind nicht angemeldet.

Boote kaufen

BTC-Forum

Windstärken

Windstärkentabelle

Hallo Besucher, willkommen im Segeln-Forum! Hier kannst Du Dich registrieren, um unser Forum in seiner vollen Pracht genießen zu können! - Weitere Infos zur Registrierung - Login für Mitglieder -

McElch

Moses

  • »McElch« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Dresden

Bootstyp: ElbeTaxi

Heimathafen: Dresden

  • Nachricht senden

1

Freitag, 13. November 2020, 09:35

NMEA2000 mit dem ESP32 - Conrad Board NodeESP

Hallo! Erstmal vielen Dank für die vielen tollen Informationen und Projekte hier! Ich habe auf der Boot 2020 auf dem Open Boat Projekt Messestand das Thema NMEA2000 mit dem ESP32 gesehen und möchte das jetzt endlich gerne nachbauen.

Ich habe hier einen ESP32 auf einem Board, was ein „Eigengewächs“ von Conrad (nämlich aus einem Adventskalender) ist:

https://github.com/FKainka/NodeESP_Firmware (eine spezielle Firmware für den Adventskalender)

Auf der Webseite des Adventskalenders finden sich Angaben zum Board, und auch folgender Hinweis:

"vergleiche das wroom-32 development board mit
dem Conrad Board und du wirst feststellen, daß der vom USB Anschluß am
weitesten entfernte Teil der Schaltung exakt dem "Reference Board"
von Espressif (=ESP32 Chiphersteller) entspricht.

https://www.espressif.com/sites/default/…atasheet_en.pdf

sogar der Aufdruck für die Bauteile ist gleich. Das Conrad Board erweitert das Referenz Board um folgende Chips: AMS1117 = 3,3V Spannungsregler eine RGB-LED und der Chip CH340G als USB zu Serial Converter
"

Müsste es nicht eigentlich möglich sein, da auch eine NodeMCU-artige Firmware draufzuspielen, um die ESP32-Projekte von AK-Homberger damit nachzubauen? Und falls ja, wo finde ich eine solche Firmware?

Das Board hat auch einen SD-Card-Steckplatz, wäre also eigentlich auch prädestiniert für den Data-Recorder.

Vielleicht kann mir jemand helfen, der mehr Ahnung davon hat als ich. Bin für jeden Hinweis dankbar! Grundkenntnisse zu solchen Microkontrollern habe ich, aber nicht besonders tiefgreifend. Abschreiben, cutten, pasten und flashen kann ich aber... :D

Homberger

Seebär

Beiträge: 1 267

Wohnort: Ratingen

Bootstyp: Bavaria 30 Cruiser

Heimathafen: Buyshaven

Rufzeichen: PE3215

MMSI: 244010500

  • Nachricht senden

2

Freitag, 13. November 2020, 09:56

Müsste es nicht eigentlich möglich sein, da auch eine NodeMCU-artige Firmware draufzuspielen, um die ESP32-Projekte von AK-Homberger damit nachzubauen? Und falls ja, wo finde ich eine solche Firmware?



Hallo

Vielleicht hilft dir das weiter: https://nodemcu.readthedocs.io/en/dev-esp32/flash/
Habe ich aber noch nicht gemacht.

Das Board hätte aber noch weitere Nachteile. Die Leiterplatten, die ich für meine ESP32-Projekte erstellte habe, funktioniern nicht mit dem Board.

Viele Grüße
Andreas
------------
Meine Projekte auf GitHub (Link)

McElch

Moses

  • »McElch« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Dresden

Bootstyp: ElbeTaxi

Heimathafen: Dresden

  • Nachricht senden

3

Freitag, 13. November 2020, 13:42

Hallo Andreas,

vielen Dank! Das hat auf Anhieb funktioniert! Mal sehen ob das Board sich dann auch wie erwartet verhält. Habe eine Firmware mit dem Cloud Builder, der in diesem Link verlinkt war, erstellt. Ich hoffe, die funktioniert dann auch. Der erste Versuch mit deinem NMEA200-Data-Sender lief erfolgversprechend.

Nächster Schritt:

Eine der Variablen zu Testzwecken "festverdrahtet" (ganz unten im Sketch im "void loop" einfach EngineRPM = 1234; reingeschrieben, damit ein Wert gesendet wird. So müsste ich doch nur mit dem Board und dem CAN Transceiver ohne jede weitere Verdrahtung testen können, ob ein Wert gesendet wird, oder?

Ich habe auch schon ein M5Stack gekauft und mit deinem M5Stack NMEA2000 Display for CAN BUS bespielt. Das zeigt erstmal etwas merkwürdige Werte an (Lat/Long -100000000.000, HDG und COG -57295779513, Water -273 Grad) an, aber das liegt sicher am fehlenden Bus, oder?

Den muss ich jetzt noch bauen und hoffe, das alles klappt. Freue mich schon! :D

Viele weitere Fragen folgen bestimmt! :)
»McElch« hat folgende Datei angehängt:
  • esp32-1.jpg (300,98 kB - 9 mal heruntergeladen - zuletzt: 20. November 2020, 08:28)

Homberger

Seebär

Beiträge: 1 267

Wohnort: Ratingen

Bootstyp: Bavaria 30 Cruiser

Heimathafen: Buyshaven

Rufzeichen: PE3215

MMSI: 244010500

  • Nachricht senden

4

Freitag, 13. November 2020, 14:09

Schön, dass es funktioniert hat.

Zu deinen Fragen:

Eine der Variablen zu Testzwecken "festverdrahtet" (ganz unten im Sketch im "void loop" einfach EngineRPM = 1234; reingeschrieben, damit ein Wert gesendet wird. So müsste ich doch nur mit dem Board und dem CAN Transceiver ohne jede weitere Verdrahtung testen können, ob ein Wert gesendet wird, oder?

Ich habe auch schon ein M5Stack gekauft und mit deinem M5Stack NMEA2000 Display for CAN BUS bespielt. Das zeigt erstmal etwas merkwürdige Werte an (Lat/Long -100000000.000, HDG und COG -57295779513, Water -273 Grad) an, aber das liegt sicher am fehlenden Bus, oder?

Du kannst den ESP32 und den M5Stack über einen Mini-Can-Bus (GND, H und L) miteinander verbinden und auf dem M5 das NMEA-Display aufspielen. Dann sollte der M5 alles anzeigen was du mit dem ESP32 sendest.

Alternativ kannst du auch auf einem von beiden den "ActisenseListenerSender" von Timo Lappalainen draufspielen. Mit der Windows Software "NMEA Simulator" kannst du dann spielen (senden/empfangen).

https://github.com/ttlappalainen/NMEA200…eListenerSender
Erfordert PC Software NMEA Simulator http://www.kave.fi/Apps/

Viele Grüße
Andreas
------------
Meine Projekte auf GitHub (Link)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Homberger« (13. November 2020, 14:24)


Beiträge: 618

Schiffsname: LULU

Bootstyp: Moody 34

  • Nachricht senden

5

Freitag, 13. November 2020, 19:24

M5Stack

@ Homberger
Andreas,
welchen M5Stack bzw. mit welchem Zubehör soll man kaufen. Es gibt eine Menge verschiedene und nach dem Kauf ist man oft schlauer.......

Homberger

Seebär

Beiträge: 1 267

Wohnort: Ratingen

Bootstyp: Bavaria 30 Cruiser

Heimathafen: Buyshaven

Rufzeichen: PE3215

MMSI: 244010500

  • Nachricht senden

6

Samstag, 14. November 2020, 10:05

welchen M5Stack bzw. mit welchem Zubehör soll man kaufen. Es gibt eine Menge verschiedene und nach dem Kauf ist man oft schlauer.......


Der graue war für mich immer ausreichend...
------------
Meine Projekte auf GitHub (Link)

McElch

Moses

  • »McElch« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Dresden

Bootstyp: ElbeTaxi

Heimathafen: Dresden

  • Nachricht senden

7

Samstag, 14. November 2020, 11:07

Ich habe einen M5Stack "Gray" gekauft (war der einzige der bei Conrad da war). Hat wohl noch einen 9-Achsen-Sensor an Bord.

Aber zurück zum Thema:

Mein Versuchsaufbau steht erstmal. Siehe Bild. Der Bus ist nicht terminiert, sollte aber trotzdem gehen, oder?

In einer idealen Welt sendet jetzt der Sender (auch) die von mir im Sketch fest eingestellte Drehzahl EngRPM von 1234, und das M5 müsste die Werte des Senders auch "sehen". Nur zeigt er das nicht an, weil dieser Wert im Sketch des Display nicht vorgesehen ist.

Was müsste ich jetzt am einfachsten im Sketch des M5 modifizieren, damit der diesen Wert auch anzeigt, zB an Stelle von "Rudder"? ?(

Ich danke sehr im Voraus für Unterstützung! :)

Viele Grüße von der Elbe
Nico
»McElch« hat folgende Datei angehängt:

Beiträge: 618

Schiffsname: LULU

Bootstyp: Moody 34

  • Nachricht senden

8

Samstag, 14. November 2020, 12:21

M5Stack

@Andreas
Dankefür den Tip, habe den Grauen bestellt.
Frank

Homberger

Seebär

Beiträge: 1 267

Wohnort: Ratingen

Bootstyp: Bavaria 30 Cruiser

Heimathafen: Buyshaven

Rufzeichen: PE3215

MMSI: 244010500

  • Nachricht senden

9

Samstag, 14. November 2020, 16:02

Was müsste ich jetzt am einfachsten im Sketch des M5 modifizieren, damit der diesen Wert auch anzeigt, zB an Stelle von "Rudder"?


Da musst du an mehreren Stellen etwas ändern.


1. in "BoatData.h" musst du den Wert EngineRPM zufügen. Sowohl als Variable als auch in "tBoatData()".
2. In"N2kDataToNMEA0183.cpp":

a: "case 127488UL: HandleEngineRapid(N2kMsg);" hinzufügen
b: In "long tN2kDataToNMEA0183::Update(tBoatData *BoatData)" BoatData->EngineRPM=EngineRPM;
C: Dann die Funktion "void tN2kDataToNMEA0183::HandleEngineRapid(const tN2kMsg & N2kMsg) { }" hinzufügen.

In der Funktion dann "ParseN2kPGN127488" einbauen:

bool ParseN2kPGN127488(const tN2kMsg &N2kMsg, unsigned char &EngineInstance, double &EngineSpeed,
double &EngineBoostPressure, int8_t &EngineTiltTrim);

&EngineSpeed ist EngineRPM.


3. Im Haupprogramm (loop()) kannst du mit BoatData.EnginrRPM auf den Wert zugreifen.


Schau mal ob du das so hinbekommst.

Und noch etwas: Schau die auch die anderen Beispiele bei Timo Lappalainen an. Wenn du nur einen Wert "parsen" und anzeigen möchtest geht das auch einfacher.

Viele Grüße
Andreas
------------
Meine Projekte auf GitHub (Link)

McElch

Moses

  • »McElch« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Dresden

Bootstyp: ElbeTaxi

Heimathafen: Dresden

  • Nachricht senden

10

Samstag, 14. November 2020, 18:19

Oha, da bin ich vielleicht doch etwas hoch eingestiegen. Hatte mir das etwas leichter vorgestellt, und jetzt ist es mir peinlich, dass du dir meinetwegen jetzt solche Umstände gemacht hast. Bin deinem Rat folgend mal durch die Beispiele von Timo Lappalainen gegangen.

Für meine ersten Schritte tatsächlich völlig ausreichend scheinen "MessageSender" in Verbindung mir "DataDisplay2". Da werde ich jetzt erstmal einsteigen und versuchen, erstmal soetwas zum Laufen zu bringen.

Erstmal vielen Dank, ich werde bestimmt nochmal mit weiteren Fragen hierher zurück kommen, wenn mein Versuchsaufbau läuft! ;)

Viele Grüße
Nico

Homberger

Seebär

Beiträge: 1 267

Wohnort: Ratingen

Bootstyp: Bavaria 30 Cruiser

Heimathafen: Buyshaven

Rufzeichen: PE3215

MMSI: 244010500

  • Nachricht senden

11

Samstag, 14. November 2020, 18:32

Erstmal vielen Dank, ich werde bestimmt nochmal mit weiteren Fragen hierher zurück kommen, wenn mein Versuchsaufbau läuft!



Bei Fragen immer einfach fragen....
------------
Meine Projekte auf GitHub (Link)

McElch

Moses

  • »McElch« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Dresden

Bootstyp: ElbeTaxi

Heimathafen: Dresden

  • Nachricht senden

12

Montag, 16. November 2020, 13:23

Ja, es geht gleich los mit den Fragen.

Ich habe dieses Beispiel aufgespielt:
https://github.com/ttlappalainen/NMEA200…s/MessageSender

Am Seriellen Monitor rauschen nur Fehlermeldungen vorbei (PGN xxx send fail). Erst da fiel mir auf: An welche GPIOs ist denn der CAN Transceiver anzuschließen? Ich finde da nichts in dem .ino, was aber auch an meiner fehlenden Ahnung liegen kann.

Prüft denn ein solches Programm überhaupt, ob es an einem funktionierenden Bus hängt?

Homberger

Seebär

Beiträge: 1 267

Wohnort: Ratingen

Bootstyp: Bavaria 30 Cruiser

Heimathafen: Buyshaven

Rufzeichen: PE3215

MMSI: 244010500

  • Nachricht senden

13

Montag, 16. November 2020, 13:34

An welche GPIOs ist denn der CAN Transceiver anzuschließen? Ich finde da nichts in dem .ino, was aber auch an meiner fehlenden Ahnung liegen kann.



Die Ports legst du mit:

#define ESP32_CAN_TX_PIN GPIO_NUM_5 // Set CAN TX port to 5
#define ESP32_CAN_RX_PIN GPIO_NUM_4 // Set CAN RX port to 4

fest. Vor der include Datei #include <NMEA2000_CAN.h>

Viele Grüße
Andreas
------------
Meine Projekte auf GitHub (Link)

mimbeck

Offizier

Beiträge: 173

Wohnort: Hamburg

Bootstyp: Dehler Duetta 86 LS

Heimathafen: Grömitz

  • Nachricht senden

14

Montag, 16. November 2020, 14:14

M5Stack ESP32 Core Ink

Hi,

ich überlege gerade meine UKW Funke mit NMEA 0183 ins WLAN zu bringen - die Idee dahinter ist, dann durch die AIS Daten im Plotter per Touch einen UKW Anruf starten zu können. Der Plotter kann NMEA 2000 und WLAN. Das schon mal jemand probiert?

Wäre der M5 Stack hier ein Startpunkt für die Aufnahme der NMEA 0182 Daten?

https://m5stack.com/collections/m5-core/…54-elnk-display


(Ja, es gibt dafür auch kommerzielle Gateway, aber ich würde es gerne selber bauen)

Gruß,

Martin

norbert-walter

Salzbuckel

Beiträge: 2 399

Wohnort: Düsseldorf

Schiffsname: Cumulus

Bootstyp: Dehlya 22

Heimathafen: Lemmer (NL)

  • Nachricht senden

15

Montag, 16. November 2020, 14:59

Hmm... So weit ich weiß kann man nur die AIS-Daten der Funke über NMEA0183 an den Plotter weiterleiten. Die Funke wird die Daten per NMEA0183 ausgeben. Der Plotter muss also einen NMEA0183-Eingang haben. Das NMEA0183-AIS-Telegramm kann man laut Aussagen von @Homberger: ganz schlecht nach NMEA2000 konvertieren. Zu mindest hat er es noch nicht hinbekommen. Ich bin mir nicht sicher, ob das die kommerziellen Gateways können.

WLAN am Plotter ist nur für den Datenexport in Richtung Handy oder Tablett zu benutzen. Ein Empfang von Informationen über WLAN ist nicht möglich.

Norbert

McElch

Moses

  • »McElch« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Dresden

Bootstyp: ElbeTaxi

Heimathafen: Dresden

  • Nachricht senden

16

Montag, 16. November 2020, 16:12

Also meine Funkgeräte geben die AIS Informationen sowohl über NMEA 0183 als auch über NMEA 2000 raus. Dass Funkgeräte aber so eine Art API hätten, über die sie sich extern steuern liessen, zB um einen Anruf zu initiieren, wäre mir neu. Aber wäre diese Fragestellung nicht eigentlich in einem eigenen Thema besser aufgehoben?

@Homberger:

Ich habe die beiden Zeilen jetzt ins Sketch eingefügt und an die beiden Pins auch einen Transceiver angeschlossen. Im Serial Monitor gibt es immer noch nur Fehlermeldungen. Ich weiß gerade nicht so recht, wie ich weiter komme. Checkt die Software nun, ob ein Bus dranhängt oder nicht? Wenn Sie es checkt, wäre das ja ein Grund für die Fehlermeldungen. Checkt sie es nicht, muss der Fehler in der Hardware (das Board oder die Verkabelung) oder Software (Firmware Board, Sketch) liegen.

Viele Grüße und wie immer vielen Dank für jede Hilfe! :)

Homberger

Seebär

Beiträge: 1 267

Wohnort: Ratingen

Bootstyp: Bavaria 30 Cruiser

Heimathafen: Buyshaven

Rufzeichen: PE3215

MMSI: 244010500

  • Nachricht senden

17

Montag, 16. November 2020, 16:24

Viele Grüße und wie immer vielen Dank für jede Hilfe!


Da ich dein Board nict kenne, kann ich auch nichts dazu sagen. Funktioniert der gleiche Sketch denn auf dem M5Stack ohne Fehlermeldungen?
------------
Meine Projekte auf GitHub (Link)

McElch

Moses

  • »McElch« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Dresden

Bootstyp: ElbeTaxi

Heimathafen: Dresden

  • Nachricht senden

18

Montag, 16. November 2020, 16:34

Ich habe das jetzt auf drei Boards ausprobiert:

Conrad NodeESP
Joy-IT NodeMCU
M5Stack gray (hier habe ich aber im Sketch die Pins verändert, deinem Beispiel folgend 2 und 5)

Ergebnis ist überall gleich: Im seriellen Monitor rauschen nur Fehlermeldungen durch. :(

Homberger

Seebär

Beiträge: 1 267

Wohnort: Ratingen

Bootstyp: Bavaria 30 Cruiser

Heimathafen: Buyshaven

Rufzeichen: PE3215

MMSI: 244010500

  • Nachricht senden

19

Montag, 16. November 2020, 17:04

M5Stack gray (hier habe ich aber im Sketch die Pins verändert, deinem Beispiel folgend 2 und 5)


Dann konzentrier dich doch erst einmal auf dem M5Stack.

Vielleicht mit dem Barometer: https://github.com/AK-Homberger/NMEA2000-TempPressure

Der Sketch hat den einfachsten Aufbau. Den BME kannst du weglassen und einen festen Wert im Programm eintragen.

Und: #define ENABLE_DEBUG_LOG 1

Viele Grüße
Andreas
------------
Meine Projekte auf GitHub (Link)

McElch

Moses

  • »McElch« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Dresden

Bootstyp: ElbeTaxi

Heimathafen: Dresden

  • Nachricht senden

20

Montag, 16. November 2020, 19:45

Ok, ich werde es mal auf diesem Weg versuchen. Vielen Dank & viele Grüße von der Elbe!

Nico

Counter:

Gezählt seit: 4. Februar 2014, 08:39, nur eingeloggte Mitglieder
 Zugriffe:   Hits heute: 255   Hits gestern: 2 862   Hits Tagesrekord: 12 076   Hits gesamt: 6 673 861   Hits pro Tag: 2 475,55 
 Seitenaufrufe:   Klicks heute: 1 538   Klicks gestern: 19 357   Klicks Tagesrekord: 154 353   Klicks gesamt: 50 304 708   Klicks pro Tag: 18 659,61 

Kontrollzentrum