Funk Kommunikation Raspi arduino

  • Hallo zusammen,

    ich bin noch relativ neu hier und stehe gerade ein wenig auf dem Schlauch glaube ich.

    Was ich vorhabe ist mit Arduinos/Raspis und beispielsweise Funksteckdosen oder Relais verschiedene einfache Aufgaben zu automatisieren. Die Kommunikation vom Arduino (Mega 2560) und Funksteckdosen über die RCSwitch Library habe ich hinbekommen. Als Funkmodule habe ich diese billigen 433MHz China Teile benutzt, der Sender ist ein FS1000A auf dem Empfänger finde ich gerade keine Bezeichnung, aber die kamen im Set, falls das als Info hilft.

    Mein Anliegen ist jetzt folgendes. Ich such nach einer Möglichkeit mit beispielsweise einem Raspberry einen "Befehl" zu funken, woraufhin der Arduino z.B. einen Ausgang HIGH setzt und dadurch ein Relais schaltet. Jetzt habe ich mich hier im Forum schon durch etliche Seiten und Threads gewühlt aber nicht so richtig das passende gefunden. Vielleicht bin ich auch einfach nur blind?

    Habt ihr Tipps für mich, wo/wonach ich am besten suchen soll? Ich denke hilfreich wäre zum Beispiel ein Protokoll das ich nutzen könnte oder ein Verweis auf eine grobe Anleitung wie ich mir selbst ein Protokoll basteln kann/was dabei zu beachten ist. Klar könnte ich mithilfe der RCSwitch Library und selbst ausgedachten Binary Codes die Steuerung realisieren, aber das kommt mir irgendwie sehr primitiv vor und wird sicherlich auch sehr sehr unübersichtlich.

    Der zweite Punkt wäre, wie ich die Steuerung auf dem Raspi realisieren kann. Ich würde dort gerne sowas wie einen Hintergrunddienst laufen lassen, evtl. auch selbstprogrammiert dem ich später z.B. von einer App über UDP oder Webserver/PHP Kommandos und anfragen senden möchte. Ich hoffe hier auch nicht auf fertige Lösungen, sondern würde mich einfach über den einen oder anderen Hinweis freuen, wo ich Tutorials/Infos bekomme um mir das benötigte Wissen anzueignen, da ich gerade nicht mehr weiß wonach ich noch suchen soll.


    Ich würde mich wirklich sehr freuen wenn ihr Tipps oder Anregungen hättet.

    Viele Grüße
    Karl

  • Hallo Karlj,

    ich habe mir für sowas ein Programm geschrieben (ACC - Arduino Control Center). Der RPi schickt über die serielle Schnittstelle Kommandos an den Arduino, der diese auswertet und umsetzt. Ergebnisse (Status von Eingängen) wird ebenso rückgemeldet und auf dem RPi ausgewertet und angezeigt.

    Hier bist Du also vollkommen frei in der Wahl der Kommandos sowie der Programmiersprache, die auf dem Raspberry Pi eingesetzt wird.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Die FS1000A kannst du eigentlich auch an einen Arduino anschließen.
    Einen entsprechenden Sketch müsstest du aber selber programmieren bzw Deinen Bedürfnissen anpassen....

    Ich hab für mein RoPi Projekt zB ein Sketch mit dem ich jeden I/O des AVR's beliebig vom Pi aus schalten/auslesen/bedienen kann - der Sketch wird ein mal geflasht und alles andere regelt dann der Pi, also zB einen bestimmten Pin als Digital HIGH zu stellen oder Analog auslesen usw. Bei mir nutze ich zwar USB also auch UART, sollte aber kein großer Aufwand sein das auf Funk umzuschreiben.
    meinen Code dazu findest du über den Link in meiner Signatur und dann im Entwicklungsthread auf der (derzeit) letzten Seite.

    Den zweiten Teil würde ich in Python umsetzen => FAQ => Nützliche Links / Linksammlung => [Python] Webserver, Websocket und ein bisschen AJAX
    Wenn du das nicht direkt in das web_bottle.py einbauen willst könntest du auch alternativ ein Daemon Script im Hintergrund laufen lassen und dann via Socket ansprechen - darauf basiert quasi die erste Version meines RoPi Codes, mittlerweile nutze ich aber besagte web_bottle.py nur etwas aufgepimpter :fies: Bezüglich Socket: FAQ => Nützliche Links / Linksammlung => Daten zwischen PI's über Netzwerk verschicken

  • Hallo zusammen,

    vielen Dank für die schnellen und umfangreichen Antworten! Das hört sich alles interessant an, werde ich mir mal genau anschauen und dann natürlich auch Rückmeldung geben. Vielleicht hat ja jemand anderes mal ein ähnliches Problem.
    An einem Punk hatte ich mich etwas undeutlich ausgedrückt. Testweise läuft der FS1000A aktuell auch am Arduino und schaltet da auf Knopfdruck eine Funksteckdose ein bzw. aus. Werde ich am Raspi dann aber sicher auch an laufen bekommen.

    Vielen Dank

    Einmal editiert, zuletzt von karlj (7. Oktober 2016 um 15:01)

  • Ich wollte mich dann auch mal wieder melden. Die Variante über virtualWire (neue Version scheint RadioHead zu heißen) scheint sehr interessant zu sein. Ich hatte die Woche über aber leider Null Zeit und werde mich da jetzt mal intensiver mit beschäftigen. Bin allerdings dermaßen eingerostet, dass ich jetzt erstmal alles soweit einrichten muss, dass ich überhaupt für den Raspberry programmieren kann.

    Ich werde schauen, dass ich das in C hinbekomme, weil Python habe ich noch nie mit gearbeitet und so bleibe ich auch näher an der Programmierung des Arduino. Eine interessante Alternative für Python könnte aber "piVirtualWire" sein. Ist wohl ein Port der virtualWire Library in Python.


  • ....dass ich jetzt erstmal alles soweit einrichten muss, dass ich überhaupt für den Raspberry programmieren kann.

    Ich werde schauen, dass ich das in C hinbekomme

    ich bin ganz bei dir, hatte sofort Erfolg am PI mit dem hier:

    http://kampis-elektroecke.de/?page_id=1544

    Python mag ich auch nicht, C finde ich besser und man kann vermutlich leichter von Arduino nach PI portieren oder den Code verstehen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • So, "Entwicklungsumgebung" steht soweit. Ich verwende geany direkt auf dem Raspberry und nutze das wie hier beschrieben über xming auf meinem Windows Rechner.

    Sieht auch ganz interessant aus, um ein bisschen in die Materie zu kommen. Danke!
    Ich bin jetzt gerade nur am überlegen, ob C wirklich die richtige Wahl ist oder ich doch lieber C++ nehme. Mein Bauchgefühl sagt mir, dass C zum wieder reinkommen einfacher wäre, aber ich habe schon in der Schule immer Objektorientiert gelernt (allerdings Java) und dadurch ist mein Denken glaube ich ein bisschen verbohrt.
    Hintergrund ist, dass ich später, wenn ich Arduinos Befehle erteilen kann, das ganze Konstrukt auch um weitere Arduinos erweitern möchte ohne groß Code schreiben zu müssen --> Mein erster Gedanke: Klar kein Problem, machst du einfach mehrere Objekte und speicherst die in einer .cfg oder Datenbank ab und ließt die dann ein. --> 2. Gedanke: Ach Mist, du hast ja gar keine Objekte in C :wallbash:

    Jetzt muss ich nur mal gucken, ob ich die ganzen Bibliotheken, die ich benötige auch in C++ verwenden kann und ob ich weiter geany nutzen kann. Aber erste flüchtige Google Ergebnisse sind schonmal vielversprechend.

    Einmal editiert, zuletzt von karlj (15. Oktober 2016 um 13:36)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!