Projektvorstellung und Fragen

  • Hallo Zusammen

    Ich bin neu hier im Forum. Mein Name ist Oli und ich wohne in Zürich in der Schweiz.

    Hier auf dem Forum bin ich, da ich ein Projekt habe an dem ich arbeite und ich mich freuen würde, wenn ich hier ein wenig Hilfe zu der Wegrichtung bekommen könnte, da ich in dem Bereich noch nicht so viel Erfahrung habe.

    Vorab kurz zu mir, ich kenne mich gut in der Elektrotechnik, sehr gut in Mechanik und Konstruktion aus und baue seit vielen Jahren diverse Projekte welche meist mechanisch mit Steuerung sind wie zum Bsp. CNC Maschinen. Daher habe ich auch schon einige Erfahrung mit Arduinos und deren Möglichkeiten gesammelt. Des Weiteren lerne ich seit ein paar Monaten 2 Programmiersprachen, Python und Dart weil ich diese für mein jetziges Projekt benötige und es auch einfach sehr viel Spass macht. :) Daher bitte entschuldigt, falls ich Begriffe noch falsch sage oder meine Gedanken zur Umsetzung nicht passen. ?

    Ich bin kein Freund von «Das ist mein Problem, wie ist die Lösung, dann copy paste und fertig». Ich möchte die Dinge verstehen die ich mache und wie sie laufen. Daher lerne ich die Sachen gerne selber und arbeite mich in die Materie ein. Deshalb suche ich hier auch nicht eine Fertige Lösung, sondern würde gerne vorstellen was ich machen werde, wie ich denke es zu realisieren und bei gewissen Punkten wäre es toll eine «Richtung» zu bekommen mit was das umsetzbar wäre. So kann ich das dann Schritt für Schritt erarbeiten.

    Nun gut, genug gequasselt ?

    Also es geht eigentlich um eine Steuerung bzw. ein System, welches verschiedene Komponenten beinhaltet welche verbunden sind und sich Informationen zustellen und auch Dinge ausführen. Da das System ein Raspberry, Arduinos, App und Netzwerke beinhaltet, dachte ich das Projekt-Forum hier ist die richtige Stelle, wenn es wo anders hin muss bitte melden.


    Ein Bild mit der Übersicht ist hier und versuche es anhand dem zu erklären.


    Also das System beinhaltet folgende Hardware:

    - Raspberry PI 3+

    - Mikrocontroller (ESP8266/ESP32 mit Wifi Chip)

    - Diverse Sensoren und Aktoren

    - Android Tablet für App

    - Touchscreen 7 Zoll

    - Netgear Nighthawk® M1


    Bereich 1 Mikrocontroller:

    Funktion:

    - Die haben diverse Funktionen wie Steuern on Aktoren, Sensordaten zurückgeben und LED steuern.

    - Sie verbinden sich automatisch mit dem Wifi Netzwerk (Raspberry), sobald sie Spannung haben.

    - Die Anzahl der Mikrocontroller ist offen und auch Modular.

    - Senden via GPRS/GSM SMS bei Bedarf.

    Fragen zu dem Bereich:

    Hier geht es mir um die Wifi Verbindung zum Raspberry. Nicht um das Verbinden selber das ist kein Problem, sondern um die IP Adressen die sie vom Raspberry Netzwerk bekommen. Da ich ja möchte, dass nach dem Einstecken an den Strom der spezifische Mikrocontroller per Python Befehle empfangen kann, visuell zeigen kann was er ist (zum Bsp. LED Steuerung) und auch Daten wie zum Bsp. Stromwerte zurückgeben kann. Da ist bei mir noch der Knopf drin, wie könnte hier ein Lösungsansatz aussehen, dass bei einer dynamischen IP danach das Programm weiss, wo er die Befehle hinsenden muss und die Daten empfangen kann bei keiner festen Anzahl Controllern. Kann man so was über das Python Skript lösen, also, dass dieses die IP ausliest und dann zuordnet oder eher in die Richtung bei Verbinden oder ganz anders?


    Bereich 2 Raspberry PI:

    Funktion:


    - Kern der ganzen Steuerung (Python Programm das alles steuert)

    - Senden und Empfangen von Daten und Befehlen an die Microkontroller via App und Screen

    - Generieren eines Wifi Netzwerkes für die Steuerung der Mikrokontroller und Infos für die App

    - Ein zweites Netzwerk für den Internetzugriff per App via den Netgear

    - Eine Datenbank, wo Werte und Logs gespeichert sind und ggf. für die Steuerung brauchen

    - Daten an Screen und App für die visuelle Darstellung schicken

    Fragen zu dem Bereich:


    Da habe ich eine Frage, wie das machbar wäre, 2 Netzwerke zusammen laufen zu lassen die aber getrennt sind. Also einfaches Bsp. Ich bin per App via Wifi mit dem System verbunden, nun möchte ich per Spotify Musik hören und für das benötige ich Internet. Mein Ziel wäre, wenn das App per Wifi verbunden ist, dass es auf der einen Seite mit dem System kommunizieren kann aber auch Internet hat. Gebe es da eine Richtung die ich mir mal anschauen könnte?


    Bereich 3 App und Touchscreen:

    Funktion:


    - App und Touchscreen, Steuerung und Anzeige der Werte von den Mikrokontrollern

    - App, Login, Internet, Cloud Zugang


    Hier habe ich nicht direkt Fragen, da ich weiss in welche Richtung ich gehen muss, aber wenn einer eine tolle Idee hätte kann er sie natürlich gerne mitteilen. ?

    So, ich weiss, war viel zu lesen aber ich weiss, wenn man eine Frage hat, sollte man au so gut wie möglich beschreiben was man möchte.

    Ich freue mich auf euren Feedback und wenn ich vergessen habe was zu erwähnen oder ihr braucht noch eine Info, bitte lasst es mich wissen.

    LG

    Oli

  • Hallo Oli,

    vielen Dank für die beeindruckende Projektvorstellung.

    Ich würde die ganze Kommunikation (Austausch von Kommandos und Rückmeldungen) über Sockets laufen lassen. Beschäftige Dich mal mit dem Thema, um erkennen zu können, ob Du dies auch als Lösung nutzen möchtest.

    In der Regel ist der Ablauf dazu recht überschaubar. Einer der Beteiligten ist der Socket-Server (wohl der RPi). Die netzwerkfähigen Microcontroller sind die Socket-Clients.

    Der Server lauscht auf einem Port einer IP-Adresse nach den Clients.

    Der Client meldet sich auf diesem Port in der Art "Ich bin jetzt da!". Der Server sollte ein wenig mit dem Client "plaudern", um ihn zu identifizieren (nicht dass sich da jemand unautorisiert hinein mogelt). Das "Plaudern" kann z.B. so erfolgen, dass der Server eine "Frage stellt", der Client antwortet mit seiner Funktion "Ich bin der mit LED und Sensor". Dann würde ich da noch irgendwas auf Verschlüsselungen kommunizieren, was NUR der Arduino, der WIRKLICH der mit "LED und Sensor" ist, lösen kann.

    Wenn der Server der Ansicht ist, dass der Client der WAHRE ist, dann bleibt der Port offen - ansonsten wird der Port geschlossen und die IP-Adresse des vermeintlichen Angreifers gesperrt. Ein erneuter Versuch von dieser IP-Adresse kann der Server gleich abblocken.

    Alles weitere besteht dann nur darin, dass der eine irgendwas sendet und der andere irgendwas als Ergebnis zurücksendet.

    Z.B. kann der Server den "Temperatur-Arduino" nach der Temperatur fragen. Nach Rückmeldung kann der "LED-Arduino" aufgefordert werden,. eine LED gemäss der Temperatur leuchten oder blinken zu lassen.

    Wenn Du das mit den Sockets hinbekommen hast, ist der Rest vergleichbar einfach und nur durch Deine Phantasie begrenzt.


    Beste Grüsse

    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.

  • Hallo Oli,

    Bereich 1 Mikrocontroller:

    Hier würde ich versuchen mir die Mac-Adressen zu merken und dann über das existierende Protokoll die entsprechenden IP-Adressen beim Router zu ermitteln.

    Netgear wäre wahrscheinlich https://pypi.org/project/pynetgear/


    Bereich 2 Raspberry PI:

    Netzwerktrennung kann über VPNs gelöst werden. Hier ist die Frage was der Router an Möglichkeiten bereit stellt.

    Bereich 3 App und Touchscreen:

    Wieso TKinter und Flutter und nicht einfach kivy für beides?

    Ich komme bei meinem Softwareprojekt sehr gut mit einem Bottle-Server auf dem rPi zurecht. Die App, unabhängig ob auf dem Laptop oder Android-Handy schickt http-Requests mit eingefügten json-Blöcken und der Server macht dann was er soll.

    Grüße

    Thomas

  • Hier geht es mir um die Wifi Verbindung zum Raspberry. Nicht um das Verbinden selber das ist kein Problem, sondern um die IP Adressen die sie vom Raspberry Netzwerk bekommen.

    Der Raspberry soll das WLAN zur Verfügung stellen? Da gibt es, wenn ich mich richtig erinnere, eine gar nicht mal so hohe Grenze für die Anzahl an WLAN-Clients. Wiedergefunden, betraf aber RPi4. Könnte ich mir auch beim RPi3+ vorstellen.

    :rolleyes: sudo !!

  • Es stehen nur 9-19 Verbindungen zur Verfügung. Die Tests führen zu sehr unterschiedlichen Ergebnissen.

    Der WLAN-Chip stammt aus dem mobilen Bereich und zu hat wenig RAM auf dem Chip.

    Dadurch können ab einer gewissen Anzahl keine neuen Clients angenommen werden.


    Number of wireless clients in AP mode is very limited #3010

    Dafür nimmt man einfach einen Router mit WLAN und dann hat man die Probleme erst gar nicht.

    Einmal editiert, zuletzt von RestlessMud46765 (1. September 2022 um 08:34) aus folgendem Grund: Link korrigiert

  • Linkfix , wenn der denn endlich mal funktioniert.

    :rolleyes: sudo !!

Jetzt mitmachen!

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