Wie kann man einen Arduino über einen Django Webserver steuern?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wenn ein klein deines Webservers eine Anfrage an den Server startet im Sinne von ein Button wo sie gedrückt und jetzt wird die Datenbank bemüht die nötigen Ergebnisse zu liefern und diese werden in einer neuen Seite dargestellt, dann hat dein Webserver nachdem er erkannt hat was der fragesteller von ihm will eine SQL Abfrage an die Datenbank gesendet.

Genau gleich würde ich es mit dem Arduino machen: du verbindest ihn via USB an dem Rechner auf dem der Webserver läuft. In Python ist es einfach, einen Text Befehl auf einen com Port abzusetzen.

Ich würde mir auf der serverseite ein kleines patenmodul schreiben das eine Schnittstelle hat die ungefähr so aussieht:

String ardurequest(String)

Dieser sendet an den Arduino einen String und wartet bis der Arduino geantwortet hat.

Auf der Arduino Seite fängst du mit dem serial Befehl die Anfragen ab, sorgst dafür dass die einzelnen Worte der Anfrage in einem String Array liegen, und reagierst abhängig vom Inhalt des Arrays dass du liest auf die Anfrage:

If (request[0] == "port5")

If (request[1] == "1")

digitalWrite(5,1) ;

Serial.println("OK");

Der Befehl auf der Serverseite war dann:

String result = arduRequest("port5", "1")

...

Mit dieser Struktur hast du eine extrem flexible Schnittstelle die auf deinem Arduino alles mögliche steuern kann ohne dass du den Code signifikant umschreiben musst abhängig vom Problem und du kannst auf einfache Weise Dinge erfragen die dein Arduino für dich ermittelt z.b spannungswerte oder vorzustände die von einem Schalter gegeben werden

Ich habe mir diese Schnittstelle einmal grundiert und benutze sie seit vielen Jahren man hat damit mit wenig codezeilen eine äußerst effektive Möglichkeiten Arduino anzusprechen

Des weiteren kannst du ihn testweise direkt mit einem Tool das den Kompass benutzt von Hand ansprechen und Ergebnisse abrufen was zu debugzwecken extrem nützlich ist

Woher ich das weiß:Berufserfahrung – Seit 20 Jahren
m1chak  10.12.2023, 22:04

ein klein ...ein Client ... Kompass ... Com Port...

Blöde texterkennung

0

Du musst ein Protokoll definieren. Hierzu ist es wichtig, dass Anfang und Ende von Botschaften erkannt werden. Auch ist wichtig, dass es möglich ist, wieder zu synchronisieren.