Anfänger brauch wirklich Hilfe!!!! Danke :-)

Projekt: Datenaufzeichnungsgerät

Sie entwickeln eine Software für den Mikrocontrollers eines Messdatenaufzeichnungsgeräts (Data Logger). Dabei gilt es folgende Umweltdaten zu erfassen und zu verarbeiten:

  • Umgebungshelligkeit (LDR, analog, 0 – 5 V)
  • Temperatur (LM 35 DZ, analog, vgl. Datenblatt)
  • rel. Luftfeuchtigkeit (HIH-4030, analog, vgl. Datenblatt)

Diese sind mit einer Zeitinformation (verstrichene Zeit seit Messbeginn bzw. Uhrzeit) im internen EEPROM des Mikrocontrollers abzulegen.

Das Gerät soll die Messdaten über einen Zeitraum von 24 Stunden aufzeichnen können, wobei jede Minute eine Messung erfolgen soll. Auf Grund der beschränkten Speicherkapazität des EEPROMS ist eine Mittelwertbildung über jeweils 6 Messungen vorzunehmen, so dass jeweils 10 Datensätze pro Stunde Messwertaufzeichnung zu speichern sind.
Um die Funktionsfähigkeit des Datenaufzeichnungsgeräts überprüfen zu können, ist ein Test-Modus vorzusehen, der innerhalb von 30 Sekunden jede Sekunde einen Datensatz aufzeichnet und abspeichert.

Über ein LC-Display soll der Benutzer über die Funktionsabläufe des Gerätes informiert werden. Dabei sollen der Betriebszustand und die aktuell aufgezeichneten Messwerte angezeigt werden.
Eine grün leuchtende LED informiert über das betriebsbereite Gerät. Während der laufenden Messung soll diese blinken.

Die Spannungsversorgung erfolgt über einen NiCd-Akku mit einer Nennspannung von 4,8V. Die Versorgungsspannung ist über den analogen Eingang A4 des Mikrocontrollers auswertbar.

Das Auslesen der aufgezeichneten Daten erfolgt über die serielle Schnittstelle. Dabei sind die Daten im Format MESSZEIT, HELLIGKEIT, TEMPERATUR, LUFTFEUCHTIGKEIT durch Kommas getrennt über den seriellen Monitor der Arduino-Entwicklungsumgebung auszugeben, so dass diese zur grafischen Auswertung am PC übernommen werden können.

Optional sind weitere Funktionen umsetzbar (Speicherung der Uhrzeit, Einstellung der Messintervalle und der Messdauer durch den Nutzer, Löschen des Speichers, Information über den Akkuzustand, Maßnahmen zur Reduktion des Energieverbrauchs des Datenaufzeichnungsgeräts…).

?
Muss dieses Projekt abgeben, und habe nicht wirklich ein Plan.
Bin für jede Hilfe Dankbar!!! :astonished:

Immer hin bist du ehrlich, dass es eine Aufgabe ist, die dir gestellt wurde. Dir sollte allerdings klar sein, dass dir hier niemand den fertigen Sketch zusammenbastelt. Demnach solltest du deinen bisherigen Arbeitsstand wie Programmschnipsel, Schaltpläne usw. hier zusammentragen. Wir können dann mal einen Blick drauf werfen und dich in die richtige Richtung lenken, entsprechende Stichwörter vorgeben dass die Lösungssuche nicht zum Labyrinthspiel wird.
Wie schnell muss du das hinbekommen?

Wie siehts denn von der Hardware her aus, das kommt in Deiner Aufgabenstellung irgendwie nicht richtig rüber: Musst Du das Messdatenaufzeichnungsgeräts selbst entwerfen oder gibts das schon?

Ich gehe mal davon aus, dass es auf einem Arduino basiert bzw. basieren soll, sonst würds ja keinen Sinn machen, hier im Forum zu fragen. :slight_smile:

Würde da stückweise rangehen: Zuerst mal versuchen, die LED zum leuchten/blinken zu bringen. Dann jeden Sensor (und den ggf. vorhandenen Taster) einzeln auslesen und die Werte per "Serial" an den Computer übergeben. Dann versuchen, was auf das Display zu bringen. Dann was ins EEPROM zu speichern und auszulesen. Und am Ende alles zusammenbasteln. :slight_smile:

Ich kann nur immer wieder sagen: Zerteilt euch solche Aufgaben in mundgerechte Stückchen, dann sind sie einfacher umzusetzen und ihr behaltet den Überblick. Hier würde ich verschiedene Pakete schnüren, Immer nach dem EVA-Prinzip (Eingabe, Verarbeitung, Ausgabe):

  1. Sensorik: als erstes mal EINEN Sensor zum laufen bringen, ein bisschen damit rumspielen, Werte verändern etc. Dann den zweiten, danach den dritten - immer das selbe spiel.
  2. Aufzeichnung: erst mal IRGENTETWAS in den EEPROM packen, auslesen etc. Dann die Mittelwertbildung der Zeitwerte anpacken.
  3. Ausgabe: Zuerst die serielle Ausgabe dann die Ausgabe über LCD. Spiel ein bisschen mit dem LCD herum, damit du verstehst, was da passiert.

Diese drei Schritte würde ich in unabhängigen Sketches implementieren. Wenn alle drei Schritte bzw. 7 Sketches problemlos funktionieren, kann man sie anschließend in ein gemeinsames Projekt übertragen. So versteht man von anfang an, was wo im Code passiert und lernt Schritt für Schritt dazu. Außerdem behällt man den Überblick.

Gruß
Marcus

Es ist schon die 2. Ferienwoche um, jetzt musst mal langsam die Finger schwingen :grin:

Ich werd hier mal ein paar Denkanstöße preisgeben :slight_smile:

// Wichtig um später Daten ins EEPROM zu speichern und das LCD anzusteuern ;-)
#include <LiquidCrystal.h>
#include <EEPROM.h>

// hier noch die richtige steckverbindung fürs lcd auswählen
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

// ein paar variablen initieren
int taster = 9;
int led = 10;
int analogwert_0 = 0;
int analogwert_1 = 0;

// dann sollte dies hier nicht fehlen
void setup(){
// hier sollte man die pins deklarieren INPUT oder OUTPUT? so z.b.
pinMode(led,OUTPUT);
pinMode(taster,INPUT);
//lcd displaylänge angeben 16 zeichen, 2 zeilen
lcd.begin(16,2);
// lcd cursor nach vorne stellen
lcd.setCursor(0,0);
}

// sowie die schleife
void loop(){

// einfach die sensoren auslesen
analogwert_0 = analogRead(A0);
analogwert_1 = analogRead(A1);

lcd.print(analogwert_0);
lcd.setCursor(0,1);
lcd.print(analogwert_1);
delay(1000);
// jetzt sollte jede sekunde der blanke analogwert auf dem display erscheinen
}

Dieser Programmcide hat 39 zeilen, meiner der noch nicht ganz fertig ist ca 198 ^^

Haben wir ihn verschreckt?

ich nehm' an, er ist irgendwo, wo er's fertig gebaut kriegt...