Hallo zusammen, ich benötige eure Unterstützung : Der Grundaufbau ist ein arduino der mit einem raspberry pi per I2C verbunden ist. Nun ist das Ziel eine einfache Webseite (Oberfläche) mit einem Button zu haben welcher einen i2c Befehl an den arduino sendet und dieser dann eine Antwort zurück schickt, im optimalen Fall sollte der raspberry regelmäßig den Status am arduino abrufen und auf der Oberfläche wiedergeben. Ich habe leider mit dem Pi nur wenig Erfahrung und habe keine Ahnung wie ich es umsetzen soll. Besten Dank für eure Mühe und seid nachsichtig mit mir. LG Dirk
Dirk S. schrieb: > Besten Dank für eure Mühe und seid nachsichtig mit mir. Haste gute Gründe für diese Nachsicht? Bist also als Kind vom Tisch gefallen und die Geschwister sind Dir mit ihren Dreirädern übern Kopf gerollert ??? Vergiss das mit dem I2C, schau dir RX/TX (UART, serielle Kommunikation) übern Raspi an, notfalls kann man das auch mit GPIOs emulieren. https://www.elektronikpraxis.vogel.de/raspberry-pi-grundlagen-serieller-kommunikation-a-824110/
Du brauchst auf dem Raspberry ein Programm, das a) eine Webseite anbietet und ggf. auf den Knopfdruck reagiert und b) über I2C mit dem Arduino spricht (Protokoll musst du dir selbst ausdenken). Eine mögliche Programmiersprache für so was wäre Python. Da finden sich bestimmt genug Beispiele, wie man damit auf dem Raspberry I2C spricht. Und Python hat ein Webserver-Modul, mit dem man zumindest einfache Sachen machen kann. Wichtig: erstmal beides getrennt ausprobieren! Erst wenn beides einzeln geht, und du es verstanden hast, solltest du versuchen es zusammen zu bringen.
:
Bearbeitet durch User
Und wenn du es mit der seriellen statt I2C Schnittstelle machst, ändert sich an meinem Vorschlag nichts. Nur das Protokoll, das du entwerfen musst, ist seriell vermutlich einfacher als mit I2C.
Tilo R. schrieb: > Nur das Protokoll, das du entwerfen musst, ist seriell vermutlich > einfacher als mit I2C. Naja parity kennt I2C nicht und die addressbits sind auch quatsch bei der angefragten P2P kommunikation. I2C-PullUps sind auch so ein Quatsch den man nicht wirklich braucht. Also vergiss den I2C scheiss und setz auf die bewärte UART-Kommunikation, notfalls per Bit-bang.
Dirk S. schrieb: > im optimalen Fall sollte der raspberry > regelmäßig den Status am arduino abrufen und auf der Oberfläche > wiedergeben. das sind schon mal 2 verschiedene Paar Schuh'! Der RPi der als Webserver die Seite anbietet und ein Browser (wo läuft der?) der die Seite anzeigt. Da hast du folgende Möglichkeiten: (Standart) Browser fragt die Daten regelmäßig beim Webserver (PI) an, der wiederum fragt die Daten live beim AVR an und gibt das Ergebnis zurück an den Browser. Man könnte die Daten am PI natürlich auch noch irgendwie puffern. (Erweitert) - so wie du es gern hättest Websocketverbindung verwenden (gibts auch ein Python Modul), dann kann der PI neue Daten selbständig an den Browser senden. Dann würde sich folgendes anbieten: AVR hat einen neuen Wert - sendet diesen ungefragt über UART an den PI - dieser gibt ihn an den Browser weiter. Ist aber nicht grad für Anfänger geeignet. Sascha
Moin, ich bastele gerade an etwas Ähnlichem für einen Hühnerstall, in meinem Fall wird allerdings nur ein Servoboard mittels i2c angesteuert. Ein 1-Wire-Bus läuft auch noch parallel, das kannst erweitern wie Du lustig bist. Das folgende Tutorial hat mir sehr geholfen, parallel in HTML und Python reinzukommen. Der RPi hostet eine lokale Webpage und übersetzt die Aufrufe von von Subpages (aka "192.168.x.yyy/DiesIstEinBefehl/") in Aktionen. Den Rest musst für Deine Zwecke eben erweitern. Sollte allerdings nicht in einem von außen zugänglichem Netzwerk laufen, da sehr leicht manipulierbar. https://towardsdatascience.com/python-webserver-with-flask-and-raspberry-pi-398423cc6f5d Beste Grüße, Matze
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.