Arduino(s) mit PC steuern : welcher Weg ?

#1 von Gelöschtes Mitglied , 01.12.2022 08:03

moin,

auf meiner protokollfreien N-Spur-Anlage werden Weichen und Fahrstraßen vom Arduino gesteuert.

Ein Arduino ist aber wohl Nicht dazu gedacht, Informationen mit einer Datenbankbasierten Applikation(Programm)
zu verwalten. Also müßte man beides koppeln : aber wie : mit Rx/Tx oder ?

Warum Datenbank :
- man kann Fahrzeuge mit eindeutiger ID speichern mit Löschverbot : Tabelle "FZ"
- man kann Fahrzeuggruppen bilden aus "FZ" : "FGRP" = Zug
- man kann Blockstrecken mit eindeutiger ID speichern mit Löschverbot : Tabelle "BST"
- man kann erzwingen, daß ein "FZ" IMMER einer "BST" zugeordnet ist !
+++ somit kann KEIN "FZ" verschinden !
beim großen Vorbild ist das leider möglich !



RE: Arduino(s) mit PC steuern : welcher Weg ?

#2 von Gelöschtes Mitglied , 01.12.2022 08:40

hi,

mir fiel jetzt beim Morgenlauf ein :geht sowas "ganz elegant" mit
Wifi und einer Datenbank+App "in the Cloud" ?


zuletzt bearbeitet 01.12.2022 08:41 | Top

RE: Arduino(s) mit PC steuern : welcher Weg ?

#3 von Janus , 01.12.2022 08:50

Ja geht

Es gibt ja genügend Boards mit Funk on Board. WiFi, Bluetooth usw.
Damit bist du dann mit der ganzen Welt verbunden und hast alle Möglichkeiten.
In einem Arduino-Forum findest du sicher detailliertere Hilfe und Beispiele!

Viel Erfolg
Jan


Janus  
Janus
InterRegioExpress (IRE)
Beiträge: 438
Registriert am: 16.10.2021
Ort: Rosenheim
Spurweite H0
Stromart AC, Digital


RE: Arduino(s) mit PC steuern : welcher Weg ?

#4 von Gelöschtes Mitglied , 01.12.2022 08:59

danke janus,

hab leider Noch keine Erfahrung damit..geht das auch bidirectional ?

denn die Datenbank+App brauchen ja nen aktuellen Status..sonst gibts Zugsalat



RE: Arduino(s) mit PC steuern : welcher Weg ?

#5 von Kurt Harders , 01.12.2022 09:18

Hallo Rhönwolf,
ich verwende statt Arduino zwar Raspberry Pi Nano, aber das Problem ist das gleiche. Als zentralen Rechner verwende ich einen Raspberry Pi mit Linux. Die Kommunikation wird über I2C erfolgen. Wenn die Kabellängen zu groß werden, wird es "Knotenkontroller" mit einem Pi Nano geben. Genaueres habe ich noch nicht vollständig geplant. Die Leistung und das Ökosystem beim Pi Nano sind so gut, dass ich nicht nach teureren Alternativen suchen werde :-).
Viele Grüße, Kurt


Kurt Harders  
Kurt Harders
RegionalExpress (RE)
Beiträge: 88
Registriert am: 31.05.2021
Ort: Wuppertal
Spurweite N
Stromart DC, Digital, Analog


RE: Arduino(s) mit PC steuern : welcher Weg ?

#6 von Janus , 01.12.2022 11:34

@Lupus

Zitat von lupus51 im Beitrag #4
..geht das auch bidirectional ?


Die verwendeten Funklösungen sind alle bidirektional.

Jan


Janus  
Janus
InterRegioExpress (IRE)
Beiträge: 438
Registriert am: 16.10.2021
Ort: Rosenheim
Spurweite H0
Stromart AC, Digital


RE: Arduino(s) mit PC steuern : welcher Weg ?

#7 von Charly2011 , 01.12.2022 12:44

Moin
Ich finde einen Arduino für Zugriffe auf eine SQL Datenbank sehr sportlich.
Auf der Hardwareseite könnte man einen Mega mit LAN oder WLan shild nutzen.
Aber auf der Softwareseite kann der Speicher schnell knapp werden.
Evlt. mit einem ESP32 etc.
https://starthardware.org/arduino-zu-mysql-via-wifi/

lg Charly


Charly2011  
Charly2011
InterRegio (IR)
Beiträge: 109
Registriert am: 30.01.2012
Ort: Monheim am Rhein
Spurweite H0, H0e
Stromart DC, Digital


RE: Arduino(s) mit PC steuern : welcher Weg ?

#8 von Janus , 01.12.2022 13:17

Ich habe es so verstanden, dass der PC die Anbindung an die DB und die Fahrlogik übernimmt.
Der Arduino nimmt nur die Steuerung der Moba-Hardware bzw gibt Rückmeldungen aus der Anlage an den PC.

Jan


Janus  
Janus
InterRegioExpress (IRE)
Beiträge: 438
Registriert am: 16.10.2021
Ort: Rosenheim
Spurweite H0
Stromart AC, Digital


RE: Arduino(s) mit PC steuern : welcher Weg ?

#9 von Gelöschtes Mitglied , 01.12.2022 14:13

hallo jan,

GENAUSO habe ich es mir vorgestellt !

wobei ich evtl die LAN-Version mit Arduino vorziehen würde, wg vhd Kenntisse bezgl LAN und Arduino..
will ja nicht ALLE Probleme aufeinmal haben ; nichtwissend, ob das mit Wifi wesentlich schwieriger wäre

hab hier noch n kleineren PC mit Win7 , den ich unter der Anlage plazieren könnte;LINUX kenne ich von früher,
wäre auch denkbar..
jedenfalls könnte ich dann mit Java und mySQL arbeiten und dem Ardiuno Daten im Textformat schicken
bzw von ihm beziehen..



RE: Arduino(s) mit PC steuern : welcher Weg ?

#10 von Klaus3 , 01.12.2022 14:26

Hi,

1. ) wenn Du Arduino schreibst, kann das nahezu alles sein, was unter diesem Markennamen vertrieben wird. Das geht vom kleinen 8 Bit Controller mit 512 Byte Ram bis zu recht großen Controllern im MByte-Bereich. Da ist einfach völlig unklar, was gemeint ist!

2.) Die Datenbank auf einem PC oder einem PC-artigen Board ist ja kein Problem. Ein Rhasperry ist so leistungsstark, daß er einen 10 Jahre alten Laptop in die Tasche steckt. natürlich kann der dann auch Datenbanken fahren.

3.) Das eine hat aber mit dem anderen doch nun mal gar nichts zu tun. Der vermutlich kleine Controller, der letztlich nicht viel mehr macht als eine Weichenspule oder einen Servo zu steuen, weiß nichts von Datenbanken oder irgendwelchen Konfigurationsdateien. Der kennt typischer Weise irgendeine Adresse und ein paar Befehle. Das paßt in 2K Flash locker rein und fertig ist die Laube.

Ich denke, Du solltest erst mal darüber klar werden, welche Aufgaben Du hast und wie die von der Logik ablaufen sollen. Danach kannst Du Dir überlegen, wie diese Aufgaben auf welcher Hardware stattfinden. Ein 8 Bit-AVR irgendwie mit SQL-Kommandos zu belasten, erscheint fraglich. Andererseits kann ein ATMega 256 durchaus auch SQL über Ethernet auf eine Remote Datenbank fahren. Aber mal ehrlich: Wer will das?

Deine Fragestellung ist insofern völlig unklar. Weder erahnen wir, was überhaupt passieren soll, noch haben wir eine Idee welche konkrete Hardware Dir vor strebt. Ohnehin, wie oben Beschrieben, würde ich erst mal die Aufgabe skizzieren und danach die Hardware auswählen, die so was dann schaffen kann. Andersrum wirds vermutlich unpassende Resultate geben.

Gruß
Klaus


Klaus3  
Klaus3
InterCity (IC)
Beiträge: 557
Registriert am: 06.11.2015
Spurweite N
Stromart DC


RE: Arduino(s) mit PC steuern : welcher Weg ?

#11 von Langsamfahrer , 01.12.2022 15:01

Hallo!

Ich finde Lupus' Fragestellung gar nicht so unklar:
Er möchte in einer Datenbank die Information über Fahrzeuge, daraus zusammengestellte Züge und deren aktuellen Ort (Block) führen, dazu will er einen PC nutzen.
Die Anlage steuert er über einen Mikrocontroller, er schreibt Arduino.
Also muss er die Bewegungen der Züge vom Arduino zum PC melden und fragt, wie er die beiden am besten verbindet.
Ob er auch eine Übertragung vom PC zum Arduino braucht (vielleicht: Darf Zug 47 auf Gleis 11 fahren?), weiß ich bisher nicht.

Die Datenbank sollte ein SQL-System sein, also braucht er SQL als Kommando-Sprache.
Ich stimme allen zu, die das von einem Arduino aus für schwierig halten - oder gibt es für den Arduino eine Bibliothek, die SQL an einen Server schickt?
Es könnte einfacher sein, dafür einen Raspi mit Linux zu nehmen, da ist das alles gut verfügbar.
Dann bleibt die Frage, ob der Raspi direkt die Anlage steuert (hat er dafür genug IO-Pins? das muss Lupus sagen) oder seinerseits mit einem Steuerungs-Arduino redet.
Wenn er das so aufteilt, stellt sich wieder die Frage nach der Kommunikation, sowohl Hardware (seriell, I2C, ...) als auch Software (vermutlich ein selbst geschriebenes Protokoll - nicht trivial).

Da ich vermutlich mehrere Arduinos und vielleicht auch einen Raspi miteinander reden lassen will, bleibe ich dran.

Gutes Entwerfen!
Jörg


H0, Märklin C+K, DCC, kleine Fahrzeuge, Dampf+Diesel, III-IV, eingleisig


Langsamfahrer  
Langsamfahrer
InterCity (IC)
Beiträge: 620
Registriert am: 13.05.2020
Ort: Berlin
Gleise Märklin C+K
Spurweite H0
Stromart Digital


RE: Arduino(s) mit PC steuern : welcher Weg ?

#12 von Gelöschtes Mitglied , 01.12.2022 15:26

hi all,
danke für Interesse !

das Problem ist bei mir, daß ich (uraltem Kötz) noch nicht so lange (ca 1 Jahr) mit Hardware-orientierten Prozessoren usw
"bastele", so daß mir einfach der Überblick fehlt !

Ich kann das somit noch nicht so "messerscharf" formulieren..., sorry !

Bei SQL und Java- oder PHP - Applikationen hab ich halt Berufserfahrung und nun - in der Rente - mit Arduino
langsam angefangen, daher lag es mir näher, hiermit auch so ein übergreifendes Projekt ins Auge zu fassen !

die Welt ist bunt


zuletzt bearbeitet 01.12.2022 16:43 | Top

RE: Arduino(s) mit PC steuern : welcher Weg ?

#13 von Ulf325 , 02.12.2022 17:08

Einen SQL Server kann man "fast" überall aufsetzen, zum Beispiel auch auf einer NAS. Da bräuchte man nicht mal meinen PC. Die Software ist sogar kostenlos.
SQL Klienten über WiFi ist auch kein Problem. Ich habe da schon einiges gebastelt, zum Beispiel Android Geräte die in Echtzeit per SQL auf unsere Warenwirtschaft zugreifen


Mit freundlichen Grüßen: Ulf

2L DCC + Roco Z21 + Rocrail
Meine Anlage
Modelleisenbahnfreunde Magdeburg


 
Ulf325
CityNightLine (CNL)
Beiträge: 1.515
Registriert am: 06.12.2014
Ort: Magdeburg
Spurweite H0
Stromart DC, Digital


RE: Arduino(s) mit PC steuern : welcher Weg ?

#14 von graetz , 03.12.2022 16:06

Zitat von lupus51 im Beitrag #1
moin,

Ein Arduino ist aber wohl Nicht dazu gedacht, Informationen mit einer Datenbankbasierten Applikation(Programm)
zu verwalten. Also müßte man beides koppeln : aber wie : mit Rx/Tx oder ?




Auf einem PC - ein Raspi tut es auch - habe ich Node.js und MariaDB installiert.
Für Node.js gibt es eine Bibliothek namens "Johnny-Five". Diese erlaubt es, über LAN, WLAN oder USB beliebig viele Arduinos anzusteuern. Auf den Arduinos läuft dann aber immer der gleiche Sketch, der gegenüber der Johnny-Five-Bibliothek eine Art Fernsteuerung des Arduino ermöglicht. Die komplette Logik ist dann auf dem PC implementiert aber man hat dadurch die Möglichkeit, quasi beliebig viele Arduinos zu vernetzen und auch bezüglich der Pins die Lösung beliebig zu skalieren.
Von Node.js aus hat man dann auch einen einfachen Zugriff auf die Datenbank, weil es für die - wie auch zu ziemlich jeder anderen Datenbank - auch Bibliotheken für Node.js gibt.

Programmiert wird dann in Javascript.

Obwohl für den Einsatz auf meiner Moba konzipiert, habe ich es dort noch nicht im Einsatz. Aber ein Roboterarm-Projekt für meinen Arbeitgeber läuft damit schon produktiv auf Messen und Events. Wobei ich da nicht nur einen einfachen Datenbankzugriff habe sondern das ganze auch noch über REST-APIs aus dem Internet erreichbar ist. Da läuft dann u.a. ein Alexa-Skill, der auf Zuruf mit dem Roboterarm auf einer Weltkarte jeden genannten Ort anzeigt. Die Datenbank kennt über 2 Milliarden Ortsnamen und deren Koodinaten.

Ich selbst benutze noch einen von meinem Arbeitgeber vertriebenen Aufsatz zu Node.js namens "API-Builder", der es mir nach einiger Vorarbeit erlaubt, die Logik in einem Low-Code Ansatz zu implementieren. Man "malt" ein Flussdiagramm und Node.js führt es aus. Dabei stehen dann Elemente für Johnny-Five und auch für den Datenbankzugriff zur Verfügung. Darauf basiert auch mein Roboterarm.

Diese Lösung setze ich dann auch schon für meine Moba ein für eine Zugverfolgung. Traincontroller gibt die Meldungen der Gleissensoren über einen REST-Request an Node.js weiter. Dort ist hinterlegt, welche Zugfahrten zu diesen Sensoren gehören. Basierend auf diesen Daten steuert Node.js dann eine Überwachungskamera über meiner Anlage. Die Kamera folgt damit fahrenden Zügen automatisch.

Link zu Johnny-Five: https://github.com/rwaldron/johnny-five
Link zum API-Builder: https://docs.axway.com/bundle/api-builde...docs/index.html (das Programm ist gratis als "Community Edition")

Video, das den Low-Code Ansatz in Verbindung mit IoT beschreibt. Dort nutze ich direkt die Pins des Raspi, aber das selbe Prinzip steuert auch Arduinos: https://youtu.be/RH7GxFNckNM

Roboterarm im Einsatz: https://youtu.be/40ipxqiOb8I

Kameraverfolgung auf Basis Node.js und API-Builder im Einsatz:
Demo, wie man dank Node.js einen Alexa-Skill damit verbinden kann: https://youtu.be/zt8PB3OVxzE
Die Kamerasteuerung im Einsatz. Von TC kommt im Prinzip nur die Information über den Start einer Zugfahrt und den Gleissensoren: https://youtu.be/XsoLxSV3XRQ

Statt der Kamera liesse sch über angeschlossene Arduinos natürlich auch alles andere steuern und statt REST-Requests von TC könnte es natürlich auch eine direkte Rückmeldung sein. In Javascript löst ein Pin dann einen Event aus, der dann über einen Event-Handler die Logik triggert. Ich finde das eleganter als die übliche Endlosschleife eines Sketchs.


Gruß

Andreas

http://www.andreas-graetz.de/modellbahn/


 
graetz
InterRegio (IR)
Beiträge: 168
Registriert am: 18.01.2013
Homepage: Link
Spurweite Z
Stromart Digital, Analog


   

Einrichtung Trainprogrammer mit DR5000
Lochrasterplatinen bestücken lassen

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz