Verständnisfrage zur Kommunikation arduino/Raspberry und wieso nur 1 sketch

Hallo Arduino-Profis,

ich bin ja absolut neu auf dem Gebiet um den Arduino mit einem Raspberry zu nutzen. Da ich gerade am Programmieren eines sketches bin der mit einer mysqldb auf dem raspberry zusammenarbeitet (lesen und Schreiben (schreiben über php-script) habe ich da noch ein paar Verständnisfragen.

Die meisten Beispiele im Netz die ich fand bei denen der Arduino mit einer mysql-db zusammenarbeitet nutzen auf dem Arduino das Ethernet-Shield um via TCP/IP die mysql zu nutzen. Da beide Geräte ja schon via USB auf der seriellen Schnittstelle zusammenhängen frage ich mich wieso man nicht diese gleich nutzt. Ich denke da die meisten das Ethernet-shield verwenden werden die schon ihre triftigen Gründe haben nur welche?

Dann frage ich mich, wenn das lesen aus einer DB via Sketch funktioniert wieso dann nicht auch das schreiben in die DB. Aktuell fand ich nur Beispiele bei denen ein PHP-Script aufgerufen wird und an dieses die Werte übergeben werden. Irgendwie umständlich wie ich finde. Muss das sein?

Dann wurde mir in diesem Forum schon mitgeteilt das auf dem Arduino immer nur ein Sketch laufen kann bzw. gespeichert werden kann. Gibt es da keine Möglichkeit das man mehrere Sketche abspeichert und diese dann bei Bedarf angestoßen werden (z:B wie unter Linux über einen cronjob?

Ich interessiere mich aktuell sehr für diese beiden System Arduino+Raspberry . Aus dem Grund interessiert mich auch das Udoo Board da hier beide verheiratet wurden. Ich glaube nur das gerade auf der Arduino-Seite des Udoo-Boards sich keine großen Vorteile ergeben haben wie z.B. mehrere Sketche die gleichzeitig laufen können. Auch erfuhr ich das wohl die Verbindung dort bei Udoo wenn Artduino auf eine mysql-db auf der Raspberry-Seite zugreift das dann hier die serielle Schnittstelle genommen wird.

Nun zielt meine Fragen ja oben auf diese Nachteile/Orteile der Schnittstelle ab.

Was meint Ihr? hat so ein Udoo-Board genau die Vorteile die ich suche oder ganz und gar nicht ausser auf der Linux-Seite eine stärkere CPU?

Viele Grüße

Jürgen

selfmade: Gibt es da keine Möglichkeit das man mehrere Sketche abspeichert und diese dann bei Bedarf angestoßen werden (z:B wie unter Linux über einen cronjob?

Du kannst natürlich mehrere Unterprogramme in einen Sketch packen und dann zwischen diesen z.B. mit einem Taster/Schalter oder einem seriellen Kommando umschalten.

Das sollte man aber nicht mit Programmen machen die unterschiedliche Hardware ansteuern. Sie sollten schon was miteinander zu tun haben.

Mehrere Programme wirklich gleichzeitig geht nicht, da es nun mal kein Programm wie auf dem PC gibt, dass diese verwaltet. Der Controller arbeitet stur den Code von Anfang bis zum Ende ab.

Hallo, ja das mit den Unterprogrammen wurde mir hier im Forum so schon gesagt.

könnte man es in versch. Programme auslagern so würde ich mich in der Struktur und Übersicht viel leichter tun. Wenn ich alles in ein Programm packe so muss ich 1000 Sachen berücksichtigen was mit Zeiten zu tun hat. Es soll ein umfangreicher Auariumcontroller werden der das Wasser ständig in den Becken kontrolliert und anpasst. So läuft das Programm also permanent. ich muss also mehrere Becken abfragen, dann dort wieder Werte auslesen und somit bei Bedarf dann zig mal hin und her springen. Das wird schon sehr umfangreich und dann halt auch recht unübersichtlich da x-mal verschachtelt.

gerade beim Suchen im Netz kam mir die Idee die wohl andere auch umsetzen. Ich könnte ja mein Mega für die umgreichen Mess-Aufgaben verwenden also Sensoren lesen etc. Die Werte könnte ich dann in eine DB speichern. an mein Raspberry an dem ja schon das Mega hängt könnte ich doch dann noch ein oder sogar zwei Micro-Arduinos hängen. Auf diesen läuft auch wieder je ein Programm was ab und an die DB auf dem Raspberry abfragt und wenn dort was eingetragen ist dann läuft eben eine bestimmte aktion auf dem micro-arduino

oder? oder ist das zu komplex gedacht. Ich meine ich muss schliesslich die EC und PH Werte in 3-4 Becken kontrollieren und dann eine Dosieranlage steuern damit diese angepasst werden. Nebenbei müssen dann noch Filterpumpen und Strömungspumpen gesteuert werden nicht zu vergessen Licht, Temperatur etc.

Und wenn der Arduino MEGA abschmiert oder mal die Komunikation nicht funktioniert, sind dann gleich alle Aquarien hin.

Du denkst zu kompliziert.

Zu was brauchst Du ein DB? Wieso willst Du alles mit einem Arduino kontrollieren?

Wieviel Programmerfahrung hast Du?

Grüße Uwe

uwefed: Und wenn der Arduino MEGA abschmiert oder mal die Komunikation nicht funktioniert, sind dann gleich alle Aquarien hin. Du denkst zu kompliziert. Zu was brauchst Du ein DB? Wieso willst Du alles mit einem Arduino kontrollieren?

Hallo, ja, irgendwie versuche es sicher zu gestalten und verliere mich hier wohl in zu komplexen Gedanken. Das kann gut sein. Programmiererfahrung ? diese ist schon etwas länger her, als ich mal mit PHP und mysql an einem Groupwaresystem mitprogrammierte. Ich bin jedoch nicht der Programmierprofi, An Ausfallsicherheit bzw. der Kontrolle habe ich schon gedacht bzw. mkir Gedanken gemacht wie man es einigermaßen unter Kontrolle haben könnte. Da muss ich ja nicht nur den Arduino mit einbeziehen sondern auch wenn der Strom durch Sicherung etc. nicht mehr vorhanden ist. Zum Glück gibt es da kleine Module bei denen man via Sim-Karte mal eine sms versenden kann. Und den Arduino bzw. auch den Raspberry könnte ich dann immer noch an einen Akku hängen. Alles kann ich nicht abdecken. Da bräuchte ich dann schon ein zu aufwändiges System mit USV etc. damit die Pumpen weiter laufen Wieso ich eine DB brauche? Ganz einfach, ich möchte dann via PHP einfach meine geloggten Daten abfragen können und/oder Änderungen in die DB schreiben damit dann der Arduino diese Änderungen wieder lesen kann. Ich glaube das würden andere u.U. auch mit einem Textfile auf einer SD-Karte machen. Ich alles es in eine DB schreiben.

Wieso ist das mit zusätzlichen Mini-Arduinos zu kompliziert gedacht?

Wenn es eine komplexe Steuerung ist, dort ständig also in kürzeren Intervallen Daten abgefragt werden und ab und an Aktionen ausgeführt werden sollen z.B. PH-Wert anpassen, könnte ich dies natürlich auch in ein komplexes Programm verschachteln und in deren Unterprogramme springen. Wenn das dann jedoch umfangreich wird, was spricht dann dagegen hier einen Prozess auf einem zweiten mini-Arduino anzustoßen der sich dann allein um diese PH-Anpassung kümmert?

Grüße Jürgen

Hallo, bei Sicherheit würde ich einmal die Kosten zu Grunde legen, die entstehen wenn ein (1) Arduino abschmiert. Wenn Du in den Becken nur Stichlinge und Kaulquappe hast, dann kannst Du das mit einem Arduino regeln. Wenn das aber 3 Becken zu z.B. 30.- Fische sind, dann würde ich mit 3 gleichen Arduino´s arbeiten. Auf allen das selbe System.

Ich würde mal mit einem Becken und einem Arduino anfangen. Der Sketch für die Steuerung wird nicht komplex werden. Was hast Du denn schon zu erledigen? Schreibe das doch einmal genau auf, die wenigen Sachen steuert Dir der Arduino in Bruchteilen von Sekunden.

Komplex wird die Sache, wenn Du den ersten Anlauf nimmst um etwas elektronisch anzusteuern. Ein TemperaturSensor oder ein Ph-Meter sind die leichtesten Dinge. Spannend wird es doch bei der Heizungssteuerung, oder die Ansteuerung der Strömungspumpen.

Das DatenLoggen ist eine nette Idee, würde ich aber erst einmal außen vor lassen. Du kannst ja mal versuchen die Temperaturen zu loggen, dann auf SD schreiben, dann als SMS versenden. Da wirst Du schon auf massive Probleme stoßen. Wenn Du die Temperatur dann noch von "außen" steuern möchtest, dann wird es richtig schwer.

Bei so einem Projekt sollte man in kleinen Schritten, einen nach den anderen, anfangen, das vorher zu dokumentieren. Wenn Du DA "wild drauf los programmierst" dann saufen Dir Deine Fische mit Sicherheit ab. Gruß und Spaß Andreas

Ich frage mich wie oft Du einen Parameter (Temperatur oder Strömungspumpen) ändern mußt? mehrmals Täglich? wenn das nicht so ist dann hat es keinen Sinn Arduino über das Webinterface zu steuern. grüße Uwe