hwater / NMEA2000-Workshop

Material für den NMEA2000-Workshop

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NMEA2000-Workshop

Dieses Repository enthält Informationen zum NMEA2000-Workshop in 2021.

Die Informationen sind eigentlich für die Nutzung in einem Präsenz- oder Online-Workshop gedacht. Sie können aber auch ohne Workshop in eigener Regie genutzt werden. Alle notwendigen Informationen und Erklärungen sind im Text enthalten.

Es haben inzwischen zwei Online-Workshops stattgefunden:

Die Zweiteilung des Workshops hat sich dabei bewährt, da es für einen Termin zu viel Inhalt ist.

Weitere Workshops können bei Bedarf folgen.

Bei Interesse bitte im Segeln-Forum hier melden.

Sobald genügend Interessenten dabei sind, planen wir dann den nächsten Workshop.

Für Fragen und Diskussionen zum Workshop könnt ihr gern auch das Segeln-Forum nutzen.

Für den Workshop sind einige Bauteile notwendig. Die Liste mit genauen Bestelldaten folgt weiter unten.

Ziele

Nach dem Workshop solltet ihr folgendes können:

  • Grundlegende Informationen zu NMEA0183 und NMEA2000 finden und verstehen
  • Aufbau eines NMEA2000-Netzwerks auf einem Steckbrett (ESP32, CAN-Bus-Transceiver)
  • Die Arduino-IDE installieren
  • Die nötigen Bibliotheken installieren (ZIP-Datei und Bibliotheksverwalter)
  • Grundlegende Informationen zur NMEA2000-Bibliothek finden (PGN, Datentypen)
  • Arduino-IDE nutzen (Programme laden und auf den ESP32 hochladen)
  • Daten von einem NMEA2000-Bus auslesen und auf dem PC darstellen (mit NMEA-Reader)
  • Den Aufbau eines typischen Programms (C/C++) verstehen
  • I2C-Sensoren (hier BME280) nutzen (Anschluss I2C, Bibliotheken)
  • Messen von Werten (Temperatur, Luftfeuchte, Druck) und Senden entsprechender PGNs
  • Nutzung von 1-Wire und Multitasking mit ESP32 (Temperatursensor DS18B20)
  • Messung von Spannungen und Widerständen (Batteriespannung, Tanksensoren)
  • Messung von Frequenzen (Motordrehzahl, Durchflussgeber)
  • Daten mit dem ESP32 vom NMEA2000-Bus lesen (PGN) und nutzen
  • Aufbau eines NMEA2000-zu-NMEA0183-WLAN-Gateways und Darstellung von simulierten Daten (NMEA-Simulator) in OpenCPN und auf dem Tablet
  • Optional: Aufbau eines ESP32-Web-Servers und Senden von Daten an einen SignalK-Server

Vorkenntnisse in Programmiersprachen wie C und C++ sind hilfreich, für den Workshop aber nicht unbedingt notwendig. Die Nutzung der Beispiele und auch das eigenständige Erweitern von Programmen wird auch ohne Vorkenntnisse funktionieren.

Wenn ihr alle Vorbereitungen abgeschlossen habt, startet hier der Workshop.

Vorbereitungen

Für den Workshop sind einige Vorbereitungen notwendig. Diese sollten vor dem Workshop durchgeführt werden, um im Workshop mehr Zeit für die Beispiele zu haben.

Falls es bei den Vorbereitungen zu Problemen kam, können wir die Probleme im Workshop gemeinsam lösen.

Vorbereiten der Arduino-IDE

  • Download und Installation der Arduino-Entwicklungsumgebung Link
  • Installation der ESP32-Board Informationen Link

In der Arduino-IDE müssen wir als Nächstes das richtige Board auswählen. Dazu klicken wir auf "Werkzeuge", "Board" und wählen dann "ESP32 Arduino" und "ESP32 Dev Module".

Download der NMEA2000-Bibliotheken

Folgene Bibliotheken als ZIP-Dateien downloaden und installieren:

Jeweils auf den Namen des Repositories klicken, dann den auf "Code" klicken und "Download ZIP" auswählen. Dann in der Arduino-IDE: Sketch, Bibliothek einbinden, .ZIP-Bibliothek hinzufügen auswählen und den Speicherort der heruntergeladenen Bibliotheken für jede der drei Bibliotheken nacheinander auswählen und installieren.

Vorbereiten des Steckbretts

Ein Steckbrett (auch Breadboard), ist die einfachste Art, kleine Schaltungen aufzubauen. Wie ein Steckbrett funktioniert wird zum Beispiel hier beschrieben.

Die Basis für den Workshop bilden zwei ESP32-Module mit zusätzlichen CAN-Bus-Transceivern. Der linke ESP32 dient als Schnittstelle zum NMEA-Simulator/-Reader auf dem PC/Laptop. Der rechte wird für die Beispielprogramme genutzt.

Um Schäden durch falsche Steckverbindungen zu vermeiden, bitte den ESP32 immer zuerst von der USB-Stromversorgung trennen, bevor Steckverbindungen gesteckt oder geändert werden.

An beiden ESP32 wird der CAN-Transceiver angeschlossen:

  • 3,3 Volt an 3,3 Volt
  • GND an GND
  • CAN-RX an GPIO 4
  • CAN-TX an GPIO 5

Die beiden Transceiver werden dann verbunden (CAN-H mit CAN-H und CAN-L mit CAN-L).

Damit haben wir ein kleines NMEA2000-Netzwerk zum Üben.

Eigentlich besteht ein NMEA2000-Netzwerk aus einem Backbone-Kabel, das an beiden Enden mit einem Widerstand abgeschlossen ist. Vom Backbone können dann mehrere Stichleitungen zu den Geräten abgehen. Für unser Mini-Netzwerk ist das aber nicht weiter wichtig. Der CAN-Bus ist so robust, dass es auch mit einer einfachen Direktverbindung von CAN-L und CAN-H funktioniert.

So sieht das dann auf dem Steckbrett aus:

Basis

Zusätzliche Programme zum Testen von Funktionen (PC und Apple/Android APP)

  • Zum Lesen und Anzeigen von NMEA2000-Daten auf dem PC soll der NMEA-Reader verwendet werden: Link
  • Auf dem PC muss zum Senden von Daten der NMEA2000-Simulator installiert werden: Link. Eventuell muss zum Entpacken des Simulators auch das Entpack-Programm 7-ZIP installiert werden.
  • Optional kann auf dem PC auch OpenCPN installiert werden (wird zum Testen des WLAN-Gateways genutzt): Link
  • Auf dem Telefon/Tablet benötigen wir eine APP zum Anzeigen von NMEA0183-Daten. Zum Beispiel NMEAremote(lite) für Apple-Geräte. Die "lite"-Version kostet wohl 3,49 Euro. Für Android-Geräte bitte im App-Store nach einer geeigneten APP suchen und installieren (z.B. AvNav oder nke Display). Ich konnte das leider nicht testen.

Workshop-Beispielprogramme

Auf dem rechten ESP32 werden unterschiedliche Programme installiert, um die Nutzung der NMEA2000-Bibliothek zu erklären.

Mit dem NMEA-Reader können wir Daten vom NMEA2000-Netzwerk anzeigen, und mit dem NMEA-Simulator auch Daten an das Netzwerk senden. Beides werden wir im Workshop nutzen.

Hier startet der Workshop.

Material für den Workshop

Folgende Materialien werden für den Workshop benötigt:

  • Steckbrett (Spannungsversorgung Mitte) Link
  • 2* ESP32 Link
  • 2* CAN-Bus-Transceiver Link
  • BME280-Sensor Link. Die Stiftleiste bitte anlöten. Am Besten so herum, dass man die Kontaktbezeichnungen gesteckt noch lesen kann.
  • DS18B20-Temperaturfühler Link
  • Drehpotentiometer 10 kOhm Link. Falls das Potentiometer nicht direkt ins Steckbrett gesteckt werden kann, bitte kurze Drahtbrücken anlöten.
  • Flexible Drahtbrücken Link

Zusätzlich benötigen wir auch noch folgendes:

  • 2* USB-Kabel (Micro, passend für ESP32)
  • PC/Laptop (mit 2* USB)
  • Tablet/Smartphone (Android/Apple)

Der bei Reichelt angebotene ESP32 (Joy-IT) geht prinzipiell auch. Er hat aber eine andere Pin-Belegung als der von AZ-Delivery. Im Workshop nutzen wir den ESP32 von AZ-Delivery.

About

Material für den NMEA2000-Workshop

License:GNU General Public License v3.0


Languages

Language:C++ 94.7%Language:Objective-C 3.8%Language:C 1.4%