Projekt: Jugend-Forscht Helligkeitsdatenübermittlung -- Neuling

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo liebe Community,

    vorerst: absoluter Neuling was den Raspberry PI angeht (habe außer mal XMBC auszutesten noch nichts damit gemacht).

    Ein kurzer Satz zu mir: Bin 15 Jahre alt, Hauptberuflich Schüler, nebenberuflich selbstständig in der IT-Branche. Programmiererfahrung in C#. Handwerklich auch nicht auf der Brennsuppe dahergeschwommen :D .


    Nun zu meinem Projekt:
    Leider kann ich (noch) nichts genaues über das Projekt sagen, da ich es zum Gebrauchsmusterschutz anmelden möchte. Sobald das aber durch ist, erfahrt Ihr natürlich alle Details und bekommt meine Projektarbeit :thumbs1: .
    Das Projekt läuft über Jugend-Forscht, soviel kann ich sagen :) .


    Nun zu meinem Problem:
    Ich will Hellichkeitsdaten über den Raspberry an einen Auswertungspc übertragen. Bei bestimmten Ereignissen sollen dann Meldungen ausgegeben werden.
    Achja, der Raspberry wird über Akkupack betrieben und bewegt sich.


    Mein Ansatz (bitte gerne korrigieren wenn ihr eine bessere Idee habt, gerade übermittlungstechnisch):
    Der Raspberry bekommt die Daten von den Hellichkeitssensoren (insgesammt 4 Stück). Dann übermittelt der Raspberry diese per Wifi (auf dem ganzen Gelände sind APs verteilt) an einen Datenserver (Intel NUC o.ä.). Mit Visual Studio kann ich dann auf die Datenbank zugreifen und die Daten auswerten.

    Das doppelte System (Datenbank + Anzeige) will ich für die Ausfallsicherheit, damit, sollte der Auswertungspc ausfallen, die Messdaten immernoch in der Datenbank gespeichert werden, und später ausgewertet werden können. Auf dem NUC soll Debian Jessie mit MySQL laufen = sehr ausfallsicher. Das Auswertungssystem/software wird über Visual Studio in C# geschrieben.

    Ab dem Datenbankserver ist dabei für mich alles klar, damit kenne ich mich aus. Wie ich allerdings die Daten von den Sensoren (die ich noch garnicht habe / nicht weiss welche ich verwenden soll) in die Datenbank bekommen soll(ist das so überhaupt möglich? Brauch mind. 20 eher 30-50 Messwerte pro Sekunde und wenn das klappt laufen später bis zu 20 PIs synchron) ist mir nicht ganz klar.


    SCHON MAL IM VORAUS VIELN VIELEN DANK FÜR EURE HILFE :danke_ATDE: :danke_ATDE: :danke_ATDE:

    Liebe Grüße


    Christian Schlögl

  • Projekt: Jugend-Forscht Helligkeitsdatenübermittlung -- Neuling? Schau mal ob du hier fündig wirst!

  • Mir ist unklar, wo die Dopplung im System ist - du laesst Sensordaten in eine DB laufen, willst du sie parallel auch noch irgendwo anders hin laufen lassen?

    Und welche Rolle spielt der PI? Ist er wirklich nur zur Abfrage und dem Versand der Sensordaten gedacht? Wenn ja, dann ist er dafuer in meinen Augen ueberdimensioniert, und könnte wegen seinem Stromverbrauch und geringeren Stabilitaet eher gegen einen Arduino ausgetauscht werden.

    Die angepeilte Geschwindigkeit bei der geringen Datenmenge - 20 * 50 * 4 Byte sind ja nur ~4Kb, das kommt nun wirklich ueber jedes ungestoerte WIFI-Netz rueber. Dabei nehme ich gerade an, dass pro Sensor 1 Byte benoetigt wird. Wenn du da hoehere Aufloesung und ggf. Zeitstempel brauchst, ist das dann auch noch unproblematisch.

    Andere wichtige Fragen: sind die Daten fluechtig, oder brauchst du die gesamte Historie? Daran haengt ggf. die Wahl des Protokolls, ob UDP oder TCP.

    Und womit ich mich ueberhaupt nicht auskenne, und was ich fuer das Projekt am kritischsten sehe, ist das roaming-Verhalten der PIs (oder welcher Kleincomputer auch immer). Da solltest du so schnell wie moeglich experimentieren, indem du zB den PI eine bestaendigen Datenstrom mit Zeitstempeln generieren laesst, und dich durch ein mehrere APs bewegst. Dann kannst du abschaetzen, wie gut das funktioniert, mit welchen Totzeiten du ggf. rechnen musst usw. Zu dem Thema koennten auch In-door-Lokalisations-Systeme interessant sein, bzw. Untersuchungen darueber, ob und wie die mittels WIFI umgesetzt werden koennen.

  • Hallo,

    danke für die schnelle Antwort :)

    Zitat


    Mir ist unklar, wo die Dopplung im System ist


    Die Dopplung sind die zwei PCs (NUC und Anzeigepc). Könnte ja auch über einen einzigen laufen. Also du hast recht, keine wirkliche Dopplung, mehr eine Aufteilung.

    Zitat


    Und welche Rolle spielt der PI? Ist er wirklich nur zur Abfrage und dem Versand der Sensordaten gedacht? Wenn ja, dann ist er dafuer in meinen Augen ueberdimensioniert, und könnte wegen seinem Stromverbrauch und geringeren Stabilitaet eher gegen einen Arduino ausgetauscht werden.


    Ja, für genau das ist er gedacht. Dachte immer das Arduinos kein Wifi haben, gibts da entsprechende Module? Und wenn die stabieler laufen: GERNE! Welche Modelle sind da zu empfehlen?

    Zitat


    Die angepeilte Geschwindigkeit bei der geringen Datenmenge - 20 * 50 * 4 Byte sind ja nur ~4Kb, das kommt nun wirklich ueber jedes ungestoerte WIFI-Netz rueber. Dabei nehme ich gerade an, dass pro Sensor 1 Byte benoetigt wird. Wenn du da hoehere Aufloesung und ggf. Zeitstempel brauchst, ist das dann auch noch unproblematisch.


    Perfekt. Ja, Zeitstempel ist nötig. Aber im nachhinein ist die Rechnung ja eigentlich ganz einfach. Und 801.22b/g/n im 5GHz Band schafft bis zu 300 Mbit/s. Also garkein Problem, auch wenn man einen realistischen Datendurchsatz von 20 Mbit/s annimmt.

    Zitat


    Andere wichtige Fragen: sind die Daten fluechtig, oder brauchst du die gesamte Historie? Daran haengt ggf. die Wahl des Protokolls, ob UDP oder TCP.


    Hatte TCP angestrebt, da korrupte Daten sehr schwerwiegend wären. Ausserdem sollte die Bandbreite das erlauben.

    Zitat


    Und womit ich mich ueberhaupt nicht auskenne, und was ich fuer das Projekt am kritischsten sehe, ist das roaming-Verhalten der PIs (oder welcher Kleincomputer auch immer). Da solltest du so schnell wie moeglich experimentieren, indem du zB den PI eine bestaendigen Datenstrom mit Zeitstempeln generieren laesst, und dich durch ein mehrere APs bewegst. Dann kannst du abschaetzen, wie gut das funktioniert, mit welchen Totzeiten du ggf. rechnen musst usw. Zu dem Thema koennten auch In-door-Lokalisations-Systeme interessant sein, bzw. Untersuchungen darueber, ob und wie die mittels WIFI umgesetzt werden koennen.


    Darüber habe ich mir bereits Gedanken gemacht und auch getestet. Ich vertreibe, nur zur Info, Hotspotsysteme und bin mit dem Thema ganz gut bewandert. An dieser Stelle teste ich aber natürlich ausführlich, habe aber schon ein System das gut funktioniert :)


    Hoffe die Infos sind gut so,

    LG
    Christian

  • UDP hat mit korruptheit der Daten nichts zu tun - es ist leichtgewichtiger, und garantiert nicht, dass alle Pakete ankommen, und nicht in der richtigen Reihenfolge. Aber es koennte dazu beitragen, die Roaming-Effekte abzumildern.

    Fuer den Arduino gibt es diverse WIFI-Shields. Die lassen sich dann sehr simpel programmieren, im Grunde ueberbrueckt man mit dem WIFI eine serielle Verbindung. Ich wuerde auch da einfach ein Experiment wagen - kost ja nicht viel, bzw. findet sich vielleicht jemand, der einem einen leihen kann.

    Und zu deinem DB/Visualisierungs-Setup: du koenntest zB einen Message-Queue wie RabbitMQ benutzen, die auf dem Linux laeuft. In die laufen die Sensordaten ein, und es koennen sich beliebig viele Clients dranhaengen, welche mit den Daten dann machen, was sie jeweils wollen - also visualisieren, in eine DB pumpen usw.

  • Hi,

    Zitat


    UDP hat mit korruptheit der Daten nichts zu tun - es ist leichtgewichtiger, und garantiert nicht, dass alle Pakete ankommen, und nicht in der richtigen Reihenfolge. Aber es koennte dazu beitragen, die Roaming-Effekte abzumildern.


    Ja, wieder mal undeutlich ausgedrückt. Mit korruptheit der Daten meine ich nicht dass die daten kaputt sind, das kann / wird ja mit der Checksumme überprüft, sondern eher das das gesammte Datenpaket "korrupt" ist weil Daten fehlen, da ja UDP nicht überprüft ob Daten ankommen. Aber das würde ich einfach testen.

    Zitat


    Fuer den Arduino gibt es diverse WIFI-Shields. Die lassen sich dann sehr simpel programmieren, im Grunde ueberbrueckt man mit dem WIFI eine serielle Verbindung. Ich wuerde auch da einfach ein Experiment wagen - kost ja nicht viel, bzw. findet sich vielleicht jemand, der einem einen leihen kann.


    Cool, dann werd ich mir das mal anschauen. Du könntest mir nicht zufällig einen Link bereitstellen xD. Und da, was ich bis jetzt so gesehen habe, sich die Arduinos in einem absolut erschwinglichen Preisbereich bewegen, ist kaufen die beste Lösung :)

    Zitat


    Und zu deinem DB/Visualisierungs-Setup: du koenntest zB einen Message-Queue wie RabbitMQ benutzen, die auf dem Linux laeuft. In die laufen die Sensordaten ein, und es koennen sich beliebig viele Clients dranhaengen, welche mit den Daten dann machen, was sie jeweils wollen - also visualisieren, in eine DB pumpen usw.


    Perfekt. Danke hierfür, werd ich mir gleich mal anschauen :)


    LG
    Christian

  • Ich kann keinen Link bereitstellen - du wirkst durchaus googelfaehig ;) und darueber hinaus ist eine Empfehlung auch abhaengig vom Einsatzzweck, den du ja im Dunkeln laesst: am besten sind natuerlich grosse Antennen, aber ggf. sieht deine Anwendung vor, dass die nicht moeglich sind. Da wirst du also schon selbst suchen muessen.


  • Noch kompakter und kostengünstiger wäre ein ESP8266, dass direkt WLAN mitliefert.
    Als digitaler Sensor ist der https://www.adafruit.com/datasheets/TSL2561.pdf ziemlich einfach zu verwenden.
    Viel Erfolg!
    kobold254

    OK wäre ein Möglichkeit
    Arduino mit WiFi Shield gibt es ja schon komplett und der Arduino bringt gleich den ADC mit, ein Photowiderstand angebaut und es kann losgehen, da wäre die Frage wie genau was wird gebraucht? Kalibrieren müsste man halt selber.

    Der PI bringt eben keinen ADC mit, auch kein WiFi ergo müsste man das extra noch anstecken und das geht auf den Stromverbrauch!
    Der Arduino kann ja schlafen geschickt werden und nur ab und an mal aufwachen um Daten zu ermitteln und zu senden.
    Am günstigsten wäre ein ESP mit Arduino Clone per AT Befehle

    Das muss man alles mal gegenüberstellen.
    Stromverbrauch, Kosten der Hardware, Hardware- und Programmieraufwand

    Das kann nur der TO abschätzen.

    Ein ESP kann auch ohne Arduino laufen, nur weiss ich grad nicht ob der einen ADC mitbringt, Ports ja, aber ADC?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Jetzt mitmachen!

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