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-fiveLink 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/RH7GxFNckNMRoboterarm im Einsatz:
https://youtu.be/40ipxqiOb8IKameraverfolgung auf Basis Node.js und API-Builder im Einsatz:
Demo, wie man dank Node.js einen Alexa-Skill damit verbinden kann:
https://youtu.be/zt8PB3OVxzEDie Kamerasteuerung im Einsatz. Von TC kommt im Prinzip nur die Information über den Start einer Zugfahrt und den Gleissensoren:
https://youtu.be/XsoLxSV3XRQStatt 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.