HTML zu I2c und wieder zurück

OP #6512278
Lesenswert?

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
Gast #6512287
Lesenswert?

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/
Persönliche Seite #6512316
Lesenswert?

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.
Gast #6512328
Lesenswert?

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.
#6512678
Lesenswert?

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
Gast #6515824
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren