Datenübertragung per WLAN

  • Hallo in die Runde,


    bin neu in diesem Forum, aber habe beim Durchschauen einiger Themen einen sehr positiven Eindruck und hoffe, dass ich hier eine genauso gute Hilfe erhalte, wie andere vor mir ;)


    Wird sich gleich für erfahrene Programmierer eventuell nicht so schwer anhören, aber ich habe mich erst kürzlich für meine Studienarbeit an das Abenteuer Programmierung einer Android App gewagt. Vorkenntnisse habe ich von C, C++ vom Studium und etwas Java aus der Schule schon. Also schon Anfänger, aber mit etwas Vorkenntnis ;)


    Meine Aufgabe ist eine App für eine Lüftersteuerung zu programmieren, mit der man die aktuellen Daten abrufen, Parameter verändern und einen manuellen Lauf starten kann.
    Grundlayout steht alles schon, habe mir schon einige Tutorials angeschaut und durchgearbeitet.


    Mein momentanes Problem ist eine Datenübertragung zu generieren, mit der man Daten, die in einem WLAN-Modul vom Microcontroller bereit gestellt werden, zu übertragen, um sie in der App anzeigen zu lassen bzw. verändern zu können.


    Meine Frage nun, wie kann ich diese Datenübertragung per WLAN oder WiFi erzeugen, um einzelne Daten(von Temperaturwerte/Feuchtewerte von Sensoren) übertragen zu können? Zum einen möchte ich vorhandene Daten anzeigen können und zum anderen vorhandene Daten verändern und diese neu an das WLAN-Modul zu übertragen?


    Wäre für jede Hilfe sehr froh :D

  • Über das WLAN Modul? 8|
    Das WLAN Modul ist doch bloß ein Weg, die Übertragungsschicht zu implementieren (OSI Layer 1)


    Du musst eigentlich erst ab OSI Layer 4 anfangen, der Transportschicht.
    Das ist in dem Fall des WLAN eine einfache TCP Verbindung.


    Also IP–Adresse der Lüftersteuerung und Port benutzen, Socketverbindung via TCP dort hin aufbauen und loslegen.
    Das 'Loslegen' ist dann im Datenübertragungsprotokoll der Lüftersteuerung definiert.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Alles klar, vielen Dank schonmal für deine Antwort!


    Hätte da jetzt noch ne andere Frage dazu, Socketverbindung hab ich mir jetzt mal nach etwas stöbern und durchlesen was dazu erstellt. Meine Frage nun ist für die Übertragung der einzelnen Daten:


    Ich hab leere TextViews auf meiner Seite als Anzeige. Durch diese TextViews möchte ich die Werte benutzen, die das WLAN-Modul mir bereitstellt, das sind einzelne Werte (evtl sogar nur als Bitfolge), wie kann ich diese Werte nun meinen TextViews zuweisen bzw vorher noch konvertieren falls notwendig, damit mir zb für die Innentemperatur dann ein Wert von 21°C angegeben wird?

  • Zitat


    Ich hab leere TextViews auf meiner Seite als Anzeige. Durch diese TextViews möchte ich die Werte benutzen, die das WLAN-Modul mir bereitstellt, das sind einzelne Werte (evtl sogar nur als Bitfolge), wie kann ich diese Werte nun meinen TextViews zuweisen bzw vorher noch konvertieren falls notwendig, damit mir zb für die Innentemperatur dann ein Wert von 21°C angegeben wird?


    Na wenn du per Socketverbindung an die Daten schon ran kommst, musst du Sie nur auslesen und speichern.
    die TextViews findest du per ID in deinem LAyout



    Code
    double temperatur = auslesen_der_Temperatur();
    
    
      TextView tv_temperatur = (TextView) findViewbyId(R.id.meinTemperaturTextview);
    
    
      tv_temperatur.setText( Double.toString(temperaturl) + "°C");


    Meinst du so etwas ???

  • Ja genau, so hab ich das gemeint, vielen Dank! :)


    Das auslesen_der_temperatur() als eigene Methode sollte dann für eine richtige Übertragung der Daten was in etwa beinhalten, damit meine verschiedenen Daten richtig ausgelesen werden, da ich verschiedene einzelne Daten zu übertragen habe?

  • Wie sieht das nun mit den Auslesemethoden eig aus? Könnte mir da einer einen Tipp geben?


    Eine andere Frage hätte ich auch noch, wie kann ich einen Drehzahlwert auf eine SeekBar interaktiv übertragen, wenn dieser auch als Bitwert vom WLAN-Modul bereitgestellt wird, um diesen dann verändern und wieder zurück an das WLAN-Modul übergeben kann?


    Vielen Dank schonmal :)

  • Wir können dir sicherlich nicht sagen, was genau du tun musst, damit aus deiner Lüftersteuerung die angefragten Werte zurückkommen.
    Genausowenig können wir dir sagen, was genau du tun musst, damit du deine geänderten Werte in die Lüftersteuerung gepumpt bekommst.


    Dementsprechend können wir dir auch nicht sagen, was deine Methoden beinhalten müssen.


    Kurz: mit den spärlichen Informationen haben wir keine Möglichkeit, dir deine App zu erstellen. :P


    Dein WLAN Modul im Mobiltelefon stellt dir erst einmal gar nix zur Verfügung, du musst permanent nachfragen.
    Dein WLAN Modul im Mobiltelefon stellt der Lüftersteuerung gar nix zur Verfügung, du musst permanent senden.


    Alle relevanten Informationen stehen nämlich im TCP Protokoll deiner Lüftersteuerung.
    Also ob das bitweise übertragen wird, als csv, als JSON oder sonstwie und welche Keys es zu welchen Werten gibt etc.pp.


    Du hast eigentlich mehrere Möglichkeiten:
    - du besorgst dir die Dokumentation zu der Lüftersteuerung
    - du probierst einfach mal rum was so passiert
    - du stellst mir so ein Teil zur Verfügung und ich finde das für dich heraus
    - du beauftragst jemanden, der sich mit sowas auskennt (könnte gleichbedeutend mit Möglichkeit 3 sein)


    Das ist gerade ungefähr so als stündest du vor einem Auto, sagst du könntest es nicht fahren und wir wissen noch nicht einmal, ob du überhaupt einen Schlüssel dafür hast.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Ich verstehe was du mir sagen willst.
    Ich habe nur gedacht, es gibt allgemeine Befehle für die Methoden um die Werte zb. wenn sie Bitweise vorliegen umzuwandeln zur Anzeige als zb Temperaturwert. Also einen definierten Namenszugriff ;)


    Meine andere Frage war nur gewesen, ob jemand Ahnung hat, wenn ein Drehzahlwert eines Lüfters gegeben ist, wie ich den auf einer Seekbar anzeigen lassen kann und wie ich den veränderten Wert an das WLAN-Modul der Lüftersteuerung, also nicht das WLAN Modul des Smartphones meinte ich, übergeben kann.


    Der Aufbau meiner App steht soweit alles, mir fehlen momentan nur noch Details zur Kommunikation mit dem WLAN-Modul, welches mein Kommilitone, der den Mikrocontroller programmiert hat für unsere Raumlüftung, bearbeitet.


    Hoffe es ist jetzt etwas verständlicher rübergekommen ;)

  • Du bekommst nur einen Datenstream. Du sendest nur einen Datenstream. Alles Andere ist Implementierungsdetail.


    Da Seekbar von ProgressBar erbt, geht das mit den Standardmethoden der Progressbar.
    Also setMax() für den Maximalwert, setProgress() für den aktuellen Wert und Änderungen bekommst du über einen OnSeekBarChangeListener mit.
    Steht alles so in der Doku. ;)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!