Sensordaten übertragen

achja mühsam ernährt sich das Eichhörnchen eine umfassende Projektbeschreibung ist das nicht.
Dann mache ich jetzt trotzdem mal einen Vorschlag ins blaue:

Also was ich aus der eher rudimentären Antwort verstehe ist:
Es wird einmal pro Sekunde ein Lautstärkewert gemessen und soll als db(A) Wert auf einer SD-Karte gespeichert werden.

Das ganze soll eine Stunde lang laufen. Man braucht also einen Akku der eine Stunde lang durchhält. Nach einer Stunde wird das Gerät mitsamt SD_Karte wieder abgebaut.

Dann sieht die Lösung so aus:
Du nimmst einfach einen Teensy 4.1. Der hat schon einen SD-Kartenadapter onboard.
Das der 100-200 mA braucht spielt überhaupt keine Rolle weil das jeder mittelgroße Popelakku schafft. Aufs Daten funken kannste komplett verzichten weil auf der SD-Karte extrem viel Speicherplatz ist und auf eine 256GB SD-Karte ganz locker 3600 Zahlenwerte draufpassen.

Merkste was? Je präziser du das Gesamtprojekt beschreibst desto genauere Alternativ-Vorschläge kann man machen wie das gut zu realisieren ist.

vgs

Ja, bin in diesem Bereich sehr unerfahren... Danke für die Hilfe... ich merke da habe ich noch grossen Nachholbedarf.

Wenn ich jetzt das ganze System während 1 Monat betreiben möchte und alle 15min mit LoRaWAN übertragen möchte?

Dann solltest Du mit einer Uhr arbeiten. :wink:
Und speichern geht auf die SD-Karte.
31d * 24h * 60m *60s = 2678400 Speicherzyklen.

11 Bytes für datum/zeit
2 Bytes für den Messwert
Macht 34819200 bytes insgesamt.

Da reicht ne 128MB Karte...

Was dann aber Sorgen macht, ist die Versorgung.
Kannst Du nen Solarpanel montieren?

Klar hat eine SD Karte unendlich viel Platz. Vereinfacht zwar die Auswertung, aber jede Sekunde Datum und Uhrzeit zu speichern hört sich nicht nach einer überlegten Strategie an.

Hängt vermutlich mit der Lautstärkemessung im anderen Thread zusammen.

Da würde ich eine Aufgabe nach der anderen angehen:

  • Elektronik, Messen und Ergebnis anzeigen
  • Speichern / offline auswerten
  • LoRa

Sorry; eine Frequenz kann man nicht in dB(A) umwandeln.

Grüße Uwe

Vielleicht will er die Feldstärke einer bestimmten Frequenz messen.

EDIT: Ok in Verbindung mit deinem anderen Beitrag wird es schon klarer..
https://forum.arduino.cc/t/sensordaten-mit-logarithmus-ubertragen/884530

Gruß

Ja. Frequenz wäre zu einfach. Oder zu kompliziert, wenn es mehr als eine ist.

Evtl. meint er "Wechselspannung" statt "Frequenz".
Dass zwischen einer Schallquelle und einem Arduino-Analogeingang nicht nur ein Mikrofon, sondern auch Elektronik muss, wird er wohl schon gemerkt haben.

Ich tippe aufgrund der Logarithmik auf Schalldruck.
Vielleicht möchte noch wer seinen Hut in den Ring werfen.
:slight_smile:

Nicht daß Ihr jetzt Wetten abschließt wer den To besser verstanden hat bzw besser geraten hat was der TO audrücken wollte und ich jetzt Schiedrichter, Buchmacher und Preisüberreicher spielen darf. :wink:

Grüße Uwe

1 Like

Wenn man Information übertragen könnte,
dann wäre Kommunikation Gehirnwäsche.
(Maria Pruckner)

Okay, die Übertragung soll aller 15min stattfinden. Meinetwegen.

Der einfachste Weg wäre die Daten in einem Array vorzuhalten. Wenn du aller 1s den Sensor ausliest und für 15min Daten sammelst, musst du entsprechend 900 Werte vorhalten. Nehmen wir mal an 4 Byte pro Wert biste bei einem Speicherbedarf von 3600 Bytes nur für die Daten. Geht mit einem ATmega328P schon nicht mehr.

Sendest du aller 5min musste nur 300 Werte sammeln und im Maximum werden nur 1200 Bytes belegt. Vielleicht machbar vielleicht auch nicht. Je nachdem wie umfangreich der Sketch wird und welche Libs benötigt werden.

Andere Variante wäre auf eine SD-Karte zwischenspeichern und auslesen oder ein FRAM verwenden. FRAM ist vielleicht besser.

Deine Projektplanung benötigt noch etwas Ausarbeitung.

Achtung: mit LoRA kannst Du nicht beliebig viele Daten übertragen. Die Datenmenge ist begrenzt.
Grüße Uwe

Hallo,

ich muss die Beschränkung erstmal verstehen.
IoT Telekom pdf

Ich denke einmal laut vor mich hin ... :wink:

Also 1% Upload Limit (10% Download Limit) für LoRaWAN.
Datenmenge je Übertragung in der EU zwischen 51 und 242 Bytes, abhängig vom SF und Bandbreite.
Unter optimaler Netzabdeckung hat man mit SF7 5470 Bits/s und schlechter Netzabdeckung mit SF12 nur noch 300 Bits/s. Darunter bricht die Verbindung ab. Die Angaben sind laut Telekom Brutto Datenraten.

Das 1% Limit maximale Sendezeit pro Teilnehmer pro Tag beträgt 864s.
Das heißt man kann zwischen optimal 590'760 Bytes/Tag und im ungünstigen Fall nur 32'400 Bytes/Tag senden.

Wieviel Messwerte sind sind damit möglich?
optimal 590'760 Bytes / 4 Bytes = 147690 int32/uint32 Werte
ungünstige 32'400 Bytes / 4 Bytes = 8100 int32/uint32 Werte

Wenn jede Sekunde gemessen werden soll, fallen demzufolge pro Tag 86'400 Messwerte an.
Pro Stunde 3600.

Das heißt mit schlechter Verbindung ist das nicht möglich. Mit optimaler theoretisch im Bereich des Möglichen. Allerdings wird sich das noch reduzieren, weil zum Messwert sicherlich noch ein zwei Bytes zusätzlich übertragen werden und die Netto Datenrate unbekannt ist. Zusammengefasst jede Sekunde mit angenommenen 4Byte Wert ist das nicht möglich. Selbst mit 2 Byte Messwerten wird das knapp, weil man die Netzqualität nicht beeinflussen kann. Müßte man Langzeittests an seinem festen Ort machen.

Korrekt gedacht?

Für einen grob geschätzten dB Wert reicht ja wohl ein Byte, wenn's darauf ankommt und knapp ist. Nur 25% statt uint32_t.
Oder gar nur pro Minute 1* min/mittel/max. Nur 20% von den 25% , also 5% deiner Schätzung.

Wenn die Nutzdaten 51Bytes sind, könnten mehrere Werte zusammen übertragen werden.
Aber ich halte LoRaWan auch nicht für geeignet.

Wie dem Dokument zu entnehen ist, ist die Verlustrate nicht zu unterschätzen.

Ich würde auch fram nehmen, das zusammenpacken, ein SIMxxx Shield mit SD-Karte und mir einen vernünftigen Tarif suchen, bei dem ich genügend Frei-SMS oder Volumen habe.

Das hätte den Vorteil, das sogar eine Möglichkeit der Fremdkonfiguration via SMS oder Abruf möglich wäre.

Hallo,

die Datenmenge (51 Bytes Nachrichtenlänge) ist eigentlich nur eine Nebeninformation. Das ist laut meiner Meinung in der möglichen Datenrate/Sendezeit schon enthalten. Wenn die Nachrichtenlänge kürzer ist kann man öfters pro Tag senden um sein Limit auszuschöpfen und wenn die Nachrichtenlänge länger ist darf man nicht so viele Übertragungen starten. Das ändert laut meiner Betrachtung nichts an der Anzahl der möglichen Werte die pro Tag übertragen werden können. Nur die Verteilung auf 24h wäre anders. Auf Grund der Verlustrate steigt allerdings das Risiko je länger die Nachrichtenlänge ist das Müll übertragen wird. Sollte so stimmen?

@ Micha:
Ich weiß ja nicht wie sein Messwert wirklich aussieht. Darum die maximal schlechteste Annahme. Er möchte jede Sekunde messen hat er geschrieben. Aber es wird ja für nichts garantiert. Man kann ja nicht wie bei einer häuslich abgegrenzten Kabelverbindung davon ausgehen das alles optimal läuft. Wo man genau weiß das man keine Verluste hat und übertragen kann wie man lustig ist. Bzw. kennt man genau seinen Bus inkl. Protokoll was machbar ist und was nicht. Ohne seine örtliche Netzqualität und sein Protokoll zu kennen kann man das eh nichts auf das letzte Bit/s ausrechnen. :wink:

Wenn es nur ein kurzzeitiger Spass sein soll kann man das probieren. Ansonsten bin ich da ganz bei my_xy_projekt. Entweder man kann sich mit den Limits anfreunden oder man muss bezahlen.

na gut, sie zitieren da eine Studie. Aber nachvollziehen kann ich deren Aussage nicht. Wenn man eine stabile Verbindung vorraussetzt, ist man da genauso auf "nahe" 100%. Klar - wenn die Empfangsbedingungen so schlecht sind, dass Paketverlust gegeben ist, sinkt die Rate. Aber das habe ich auch mit SMS in einem Tal ohne GSM Versorgung :wink:

Ich habs zwar nicht empirisch, aber ich "schätze" keiner meiner "einmal alle 5 Minuten Lora Nodes" verliert im Monatsschnitt mehr als 1 Message pro Tag. Wenn mans braucht muss man das halt protokollmäßig absichern (Store and Forward, bestätigte Pakete, Wiederholungen...)

1 km Entfernung wurde so in den Raum - äh ins freie Gelände geworfen.
Ist die Entfernungsangabe 1 km jetzt etwas was an jedem dritten Messort auftritt oder
nur so ein theoretischer Maximalwert "das könnte gaaaanz evtl. auch mal 1 km Entfernung sein"?

vgs

Es wäre gut, zu wissen, mit welcher zeitlichen Auflösung die Daten letztlich gebraucht werden. Angenommen, es reicht eine Auflösung von 1 Minute, könnte der Arduino eine Vorauswertung machen und pro Minute Mittel- Minimal- und Maximalwert berechnen. Das würde sowohl den Speicherbedarf als auch das Übertragungsvolumen etwa um den Faktor 20 reduzieren.

Hallo,

also so lang ist der Thread noch nicht. :wink: