Forum: Haus & Smart Home HTML zu I2c und wieder zurück


von Dirk S. (thetuner)


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

von Horst Hoden (Gast)


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/

von Tilo R. (joey5337) Benutzerseite


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.

: Bearbeitet durch User
von Tilo R. (joey5337) Benutzerseite


Lesenswert?

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.

von Horst Hoden (Gast)


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.

von Sascha W. (sascha-w)


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

von hounter (Gast)


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

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
Noch kein Account? Hier anmelden.