Aktive Hilfe gesucht für Telemetriedatenerfassung

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Aktive Hilfe gesucht für Telemetriedatenerfassung

      Hi
      Zeitlich bin ich ein bisschen Klamm und hoffe jemand kann mir helfen.
      Ich möchte mit dem Lattepanda Temperaturen messen und eine Selbsthaltung der Betriebsspannung realisieren.
      Auf der WIN 10 Ebene möchte ich Daten aus einer Datei lesen und diese als min Max werte abspeichern.
      Beim Onlinezugriff möchte ich alle Daten live sehen können.
      Das handy als Modem muss noch gerooted werden.

      Wer kann mir sowas machen?

      Gruß, Klaus
    • Hi
      Ein Thema ist das Handy Routen oder Tipps geben welche Software das bei dem Modell kann.
      Das ist ein Moto e5 Play XT1920-16 mit Android 8.1.0
      Momentan bin ich am kämpfen die erste Sketch hochzuladen über Visual Studio.
      Da muss ja erst alles eingestellt sein. Im Debug sagt er verbunden aber es passiert nix.
      Auch habe ich bisher es nur einma geschafft die Firmdata Software zu übertragen mit dem Arduino Programm.
      Die Comports sind mal da und mal nicht zum auswählen.
      Die Datei arduino.cs soll ich da noch laden im Visual Studio.
      Ich finde immer bei neuen Systemen erstmal das schwierigste die Umgebung hinzubekommen, dass man das erste Programm debuggen und ausführen kann.
    • Hallo Lemminger65,

      im letzten Absatz von
      Mein "Für-was-auch-immer-erstmal-TV-Server" - Projekte - Einplatinencomputer Forum | single-board computer forum
      gibt es eine ZIP-Datei in der über die Firmata-SW ein Arduino-Pin ein- und Ausgeschaltet wird... oder ware es ein PWM-Signal ?
      Egal.
      Wichtig ist es, das Du die neueste (oder zumindest eine neuere Version) der Arduino-IDE inkl. der Firmata-SW auf den LP aufspielst. Sonst wirst Du ewig Probleme mit dem COM-Port haben.
      Das die Portnummer wechselt liegt vermutlich daran, das die USB mal als Programmierschnittstelle und mal als serielle des Leonardo benutzt wird.
    • Hi,
      Der Lattepanda war hin. Ev mit dem Biosuodate aus 10’ geschrottet.
      Hab nun nen neuen und da geht das.
      Die Auflösung headless bekomme ich über die Registry hin. Hklocalmachine und dann auf allen Auflösungen der Graka die Werte eingetippt.

      Nun kann ich auch über Visual Studio die EAs bedienen und Analogwerte einlesen.
      Mit dem Firmwareupload in Den LP kann ich ja nur noch vom Windowsprogramm arbeiten? Habe ich das so richtig verstanden
      Dann muss ich mein erlerntes C Sketch wissen in die Tonne treten wegen ich ohne WIN 10 mit EAs arbeiten möchte?
      Kann der arduino überhaupt in Dateien schreiben auf dem LP?
      Bis auf die Selbsthaltung der Betriebsspannung würde das auch auf dem Windows gehen, da hätte ich schon ne Oberfläche.
      Beides geht wohl nicht?
      Selbsthaltung auf Arduino Ebene bis Der Windows Teil ein abschalten Befehl gibt und Overhead mit Auswertung auf Win10?

      Gruß, Klaus
    • Hallo Klaus,
      ich bin mir nicht ganz sicher, ob wir nicht aneinander vorbeireden.
      Also :
      Der Arduino-Leonardo ist ein vollständig unabhängiger Microcontroller der im LP nur über die USB-Seriell-Schnittstelle mit dem PC-Teil verbunden ist.
      Zur Programmierung des Leonardo braucht es eine Programmierumgebung, die Arduino-IDE.
      Innerhalb dieser IDE gibt es fertige Programme, unter anderem die "Firmata-SW".
      Diese "Firmata-SW" stellt den Zugriff auf die EAs über die USB-Seriell-Schnittstelle nach dem Firmata-Protokoll zur Verfügung

      Auf der PC-Seite kann man alles machen, was ein PC halt so kann, z.B. die VisualStudio-IDE.
      In der Beispiel-SW für VisualStudio wird nun das Gegenstück zur Arduino-Firmata, die "using LattePanda.Firmata;" als Source in ein eigenes Project eingebunden.
      Diese Firmata-Source öffnet die serielle COM5 (oder COM6 oder was auch immer), die in Wahrheit der USB-Seriell-Converter zum Leonardo ist.
      Jeder Aufruf von digitalWrite(int pin, byte value);
      - wird also von der Firmata-Source in einen Firmata-Befehl übersetzt
      - über die serielle zum Leonardo geschickt.
      - der Leonardo empfängt mit der Firmata-SW die Zeichen
      - dekodiert den Firmata-Befehl
      - und steuert den Pin an.

      Das heißt nun :
      - Der PC hat keine eigenen Pins, ADCs oder PWM/DACs. Alle Daten der IOS müssen durch den "Flaschenhals" der USB-Seriell-Schnittstelle. Die ist mit 115kBaud allerdings recht flott und C# auf dem LP nicht das schnellste...
      - Der Leonardo kann keine Dateien schreiben und hat keinen eigenen Speicher zum halten der Daten.

      VG
      Lutz
    • Hallo Lutz

      Da nutzt mir der Leonardo wohl nur um Ein und Ausgänge zu lesen schreiben, sozusagen als Hardware.
      Mein Programm kann weiter auf c Sketch geschrieben werden. Das ist ja dann ganz nett und muss dann in Windows mit Autostart laufen

      Was kann ich schon
      Ein Ausgänge auf Lattepanda bedienen.
      Analogwerte lesen.

      Ich muss noch realisieren:
      Programm als Exe kompilieren------ erledigt, liegt im Bin/Debug Ordner.
      Lesen aus einer Datei aus dem Handy, angestöpselt an USB
      Ein bisschen Logik der Analogen Eingänge nach dem Lesen
      Schreiben der Werte in eine Log Datei
      Befehl über USB senden um Android Handy auszuschalten
      Rechner herunterfahren aus dem Programm heraus. ------- erledigt

      Die Aufgaben sind für mich nicht einfach, hat Du Tips oder kannst mir helfen zu programmieren?


      Gruss Klaus

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von lemminger65 ()

    • Hallo Klaus,

      ich bin noch etwas verwirrt.

      Also "C Sketch" heißt das C-Programmieren auf dem Leonardo.
      Auf dem PC programmierst Du unter Windows (wenn Du das Beispiel von LP nimmst) aber in C# ( 'C Sharp' gesprochen).

      Du hast also "irgendwas" (vermutlich 'Firmata' ) auf dem Leonardo laufen und kannst per C#-Programm auf die Pins zugreifen.

      Was Dir jetzt fehlt sind read/write auf file-Ebene für die Log-Datei und die Datei auf dem Handy (falls diese im Datei-Explorer auftaucht, sonst wird es schwierig)
      => Da hilft nur viel lesen in der C#-Dokumentation, Taste 'F1' hilft manchmal aber leider nicht immer...
      Aber Tante google kennt unwahrscheinlich viele Programmbeispiele, einfach mal fragen.
      => "log-datei in c# schreiben"
      Bei "Handy-über USB ausschalten" bin ich allerdings hoffnungslos überfragt, da müsstest Du vermutlich in den Android-Foren suchen/fragen... oder auch hier googlen.

      Sorry das ich da nicht mehr viel helfen kann.


      VG
      Lutz
    • C# Logging

      Als erstes eine Methode WriteLog in der Klasse Log erstellen:

      C#-Quellcode

      1. public class Log
      2. {
      3. public static void WriteLog(string type, string error)
      4. {
      5. string logFile = @"C:\temp\log.txt";
      6. StreamWriter sw = new StreamWriter(logFile, true);
      7. sw.WriteLine(DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss.FFF") + " | " + type + " | " + error);
      8. sw.Flush();
      9. sw.Close();
      10. }
      11. }
      Alles anzeigen
      Diese kannst Du dann folgendermaßen aufrufen:

      C#-Quellcode

      1. Log.WriteLog("ERROR", "Fehlermeldung");
      Dabei wird in das File log.txt unter C:\temp\ folgendes geschrieben:

      Quellcode

      1. 2018.12.19-22.41.49.042 | ERROR | Fehlermeldung
      2. 2018.12.19-22.43.46.268 | ERROR | Fehlermeldung
      3. 2018.12.19-22.43.48.098 | ERROR | Fehlermeldung
      4. 2018.12.19-22.43.51.475 | ERROR | Fehlermeldung
      ERROR und Fehlermeldung müsstest Du im Aufruf dann eben entsprechend angeben.

      Bei Fragen gerne fragen!
    • Hallo Klaus,

      der Code war zwar von g0su aber ich antworte mal.

      Welche Version von VisualStudio benutzt Du bitte ?
      Bei meiner sagt der Editor, was er für verbesserungswürdig hält. Einfach den Mauszeiger auf dem fehlerhaften Ausdruck einen Moment stehen lassen, dann klappen die Tips auf.

      - Bei "Streamwriter" tippe ich auf eine fehlende "using"-directive. Mein Vorschlag : Doppelklick zum markeiren und dann "F1"-Taste und hoffen, das MS was sinnvolles liefert.

      - Am saubersten ist es, wenn es für jede Klasse eine eigene Datei gibt.
      Also im ???-Explorer (komme jetzt nicht auf den Namen ?( ) auf "Hinzufügen/Neu/Klasse anwählen und den Anweisungen folgen.

      Achso, es gibt verschieden Arten von C#-Projekten.
      Ich mache meist WPF-Projekte. Könnte also sein, das alles was ich geschrieben habe bei Dir nicht unbedingt stimmt... ;(

      VG
      Lutz
    • using.system;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      using System.Windows;
      using System.Windows.Controls;
      using System.Windows.Data;
      using System.Windows.Documents;
      using System.Windows.Input;
      using System.Windows.Media;
      using System.Windows.Media.Imaging;
      using System.Windows.Navigation;
      using System.Windows.Shapes;
      using System.IO;

      namespace WpfApp2
      {
      ///<sumary>
      /// Interaction logic for MainWindow.xaml
      ///</sumary>

      public class Log
      {
      public static void WriteLog(string type, string error)
      {
      string logFile = @"C:\temp\log.txt";

      StreamWriter sw = new StreamWriter(logFile, true);
      sw.WriteLine(DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss.FFF") + " | " + type + " | " + error);
      sw.Flush();
      sw.Close();
      }
      }




      public partial class MainWindow : Window
      {
      public MainWindow()
      {
      InitializeComponent();
      }

      private void Schreiben_Click(object sender, RoutedEventArgs e)
      {

      Log.WriteLog("ERROR", "Fehlermeldung");
      }
      }
      }


      Wie lade ich denn den Code so schön ins Fenster?
      Ich wollte was ändern, nun geht gar nichts mehr.
      "XML in line 1 invalid"
      "summary was not found."
      Ich finde da keinen Unterschied, was habe ich verändert?

      Gruss Klaus
    • lemminger65 schrieb:


      (...)
      Wie lade ich denn den Code so schön ins Fenster?
      (...)
      Auf Button "</>" klicken :



      Ein Fenster geht auf, dort Code einfügen, Sprache wählen und speichern :




      Ergebnis (erst in der Vorschau sichtbar!)

      C#-Quellcode

      1. public class Log
      2. {
      3. public static void WriteLog(string type, string error)
      4. {
      5. string logFile = @"C:\temp\log.txt";
      6. StreamWriter sw = new StreamWriter(logFile, true);
      7. sw.WriteLine(DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss.FFF") + " | " + type + " | " + error);
      8. sw.Flush();
      9. sw.Close();
      10. }
      11. }
      Alles anzeigen


      Welche Version von VisualStudio (z.B. VS2017 Express) benutzt du ?
      Hier meine Version, VS2017 Enterprise :



      1) "XML in line 1 invalid" deutet eher auf den Sourcecode hin, den der Grafikeditor erzeugt. Vermutlich stimmen die Namen nicht überein.
      2) Wenn Du hier eine neue Klasse erstellst, sollte die automatisch im Projekt erscheinen...
    • Quellcode

      1. using System;
      2. using System.Collections.Generic;
      3. using System.Linq;
      4. using System.Text;
      5. using System.Threading.Tasks;
      6. using System.Windows;
      7. using System.Windows.Controls;
      8. using System.Windows.Data;
      9. using System.Windows.Documents;
      10. using System.Windows.Input;
      11. using System.Windows.Media;
      12. using System.Windows.Media.Imaging;
      13. using System.Windows.Navigation;
      14. using System.Windows.Shapes;
      15. namespace WPF_Test_3
      16. {
      17. /// <summary>
      18. /// Interaction logic for MainWindow.xaml
      19. /// </summary>
      20. public partial class MainWindow : Window
      21. {
      22. public MainWindow()
      23. {
      24. InitializeComponent();
      25. }
      26. private void Button_Click(object sender, RoutedEventArgs e)
      27. {
      28. Box1.Text = "Datensatz geschrieben";
      29. Log.WriteLog("Wert1", "Wert2");
      30. }
      31. private void Lesen_Click(object sender, RoutedEventArgs e)
      32. {
      33. int counter = 0;
      34. string line;
      35. string textstring;
      36. textstring = "";
      37. // Read the file and display it line by line.
      38. System.IO.StreamReader file =
      39. new System.IO.StreamReader(@"C:\temp\log.txt");
      40. while ((line = file.ReadLine()) != null)
      41. {
      42. textstring = textstring +";"+ line;
      43. counter++;
      44. }
      45. file.Close();
      46. lesetext.Text = ("text"+textstring);
      47. // "Zeilen "+ counter + " Inhalt "+
      48. //
      49. }
      50. }
      51. }
      Alles anzeigen

      Hi
      Erstmal frohe Weihnachten!
      Das mit dem Code einstellen funktioniert auch schonmal.
      Lesen aus der Log Datei auch.
      Was mir nicht klar ist, warum immer noch mit dem Trennstrich getrennt wird beim Datei schreiben und nicht mit Komma.
      Warum wird überhaupt noch geschrieben, ich habe die Funktion auskommentiert.

      Gruss Klaus

      Quellcode

      1. using System;
      2. using System.IO;
      3. public class Log
      4. {
      5. public static void WriteLog(string type, string error)
      6. {
      7. string logFile = @"C:\temp\log.txt";
      8. StreamWriter sw = new StreamWriter(logFile, true);
      9. //sw.WriteLine(DateTime.Now.ToString("yyyy.MM.dd-HH.mm.ss.FFF") + "," + type + "," + error);
      10. sw.Flush();
      11. sw.Close();
      12. }
      13. }
      Alles anzeigen

      Quellcode

      1. 2018.12.26-03.24.16.115 | Wert1 | Wert2
      2. 2018.12.26-03.24.18.24 | Wert1 | Wert2
      3. 2018.12.26-03.24.21.437 | Wert1 | Wert2
      4. 2018.12.26-03.24.22.073 | Wert1 | Wert2
      5. 2018.12.26-03.24.23.571 | Wert1 | Wert2
      6. 2018.12.26-03.24.23.765 | Wert1 | Wert2
    • Neu

      Moin!

      Es ist einige Zeit vergangen. Das System mit Motor und Batterien ist schon im Boot und arbeitet schon mal.
      Leider habe ich beim Netzteil anschließen einen Kurschluss fabriziert. Der Lattepanda mitsamtem USB Stick hat es geschrottet. Ich muss nun von vorne anfangen.
      Ende nächster Woche muss meine Software laufen.
      Gerade installiere ich Visual Studio und habe die Firmdata liberary auf den Arduion gespielt.
      Wenn ich nun noch das erste BlinkyourBoard zum laufen kriege bin ich wieder im Rennen.