INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Mobile wissenschaftliche Wetterstation
24.07.2014, 10:58
Beitrag #9
RE: Mobile wissenschaftliche Wetterstation
Uff Smile) mal ein Nachtrag *gg*

So viel Zeit dahingegangen und viel viel Tüftelei und Problemchen zu bewältigen... Habe viel gelernt und mein Kopf qualmt .... Mittlerweile quillt mein Testboard über *gg* und ähnelt einem Drahtigel mehr als einer Schaltung.
Habe viel am Script verbessert und gelernt... UND ich habe ein geniales Meßgerät entdeckt, das sich optimal für meine Wetterbeobachtung und die Gewitterbeobachtung passt.
Eine sogenannte Feldmühle Smile mit der man die elektrische Ladung der Luft und den Wolken und Gewitterzellen messen kann. Bissi schwierig zu bauen aber es brennt mir unter den Fingernägeln. *freu* UND... mit meinem gelernten kann ich an dieses Gerät dann eine Anbindung an den Mega bauen, sodaß ich die Werte auch auslesen kann und so weiter.

Mittlerweile komme ich aber gefühlt an die ( Zeitlichen ) grenzen des Megas... denn je länger das Script wird... um so länger dauert das jeweile Auslesen der einzelnen Meßplatinchen..
ein einfaches Abfragen eines Ausgangs mit einem als Eingang geschalteten Digital Pins, das nebenbei den DCF77 Sekundentakt darstellen soll über eine LED... ^^^das wird nicht mehr gehen glaube ich, weil ja alles sequenziell abgearbeitet wird und noch dazu durch die delays verzögert Sad(((

Würde es etwas bringen, das Programm umzuschreiben auf eine Interruptbasierte Version ? *WILL MULTITASKING" Sad

Das datenloggen funktioniert mitterweile super auf meiner 2 GB SD Card... der DCF77 läuft gut und aktualisiert sich freiwillig... Nur hab ich mir glaub einen Mega schon zerschossen.. der USB Anschluß an den PC verhält sich manchmal irgendwie eigensinnig... es gab mal während des Schraubens einen lauten knall,,, wie als wenn ein Chip platzt oder nen Elko,.,, habe aber nix gefunden *grübel* nichtmal nen Krater oder nen weggeflogenes Teil... weiss aber nicht, welche von meinen vielen Schaltungen da ins jenseits gewechselt ist..
seeehr mysteriöös...

Idea War es nicht Edison, der unter einem Kronleuchter saß und nachdachte, und dem dann eine Glühbirne auf den Kopf fiel? Tongue
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.07.2014, 13:58
Beitrag #10
RE: Mobile wissenschaftliche Wetterstation
Hallo an alle!!
Ich bin neu hier und dies ist mein erster Beitrag in diesem Forum.

Ich habe mich vor ein paar Monaten mit dem Arduino-Virus infiziert und auch schon ein erstes Projekt im Probebetrieb laufen.
Es gab immer wieder Rückschläge aber auch Fortschritte.
Ich bin sicherlich alles andere als Fit im Thema Arduino, aber ich habe inzwischen auch schon so manches gelernt.

Ein Teil meines ersten Projektes ist eine kleine Wetterstation im Garten.
Statt eines kompletten Arduinos werkelt darin ein "nackter" ATMEGA328P-PU. Also der Controller der auch im UNO verbaut ist.

Als Sensoren sind verbaut:
2 x DS18B20 für Lufttemperatur und Bodentemperatur
1 x DHT22 für die rel. Luftfeuchtigkeit und Temperatur
1 x BMP185 Modul für den Luftdruck und Temperatur
1 x analoger Lichtsensor an einem Analogeingang

Die gesammelten Messwerte übertrage ich alle 15s mittels nRF24L01 Modul an die Basisstation wo ein Arduino Mega 2560 sein Unwesen treibt.


(24.07.2014 10:58)fp.blues2013 schrieb:  ...
Mittlerweile komme ich aber gefühlt an die ( Zeitlichen ) grenzen des Megas... denn je länger das Script wird... um so länger dauert das jeweile Auslesen der einzelnen Meßplatinchen..
ein einfaches Abfragen eines Ausgangs mit einem als Eingang geschalteten Digital Pins, das nebenbei den DCF77 Sekundentakt darstellen soll über eine LED... ^^^das wird nicht mehr gehen glaube ich, weil ja alles sequenziell abgearbeitet wird und noch dazu durch die delays verzögert Sad(((

Würde es etwas bringen, das Programm umzuschreiben auf eine Interruptbasierte Version ? *WILL MULTITASKING" Sad
...

Ich vermute dass eine "Interruptbasierte Version" keine wesentlichen Vorteile bringt und Multitasking wird es leider nicht geben.
Eine meiner wesentlichen Erkenntnissse bisher ist: Man muss nicht in jedem Loop-Zyklus alles abarbeiten.

Ich hatte zeitliche Probleme beim Lesen der Temperatursensoren DS18B20.
Ich betreibe die mit 12 Bit Auflösung und um beide Sensoren auszulesen dauerte es knapp 800ms.
Die Beispielsketche die ich verwendete forderten die Messwerte von den Sensoren an und warteten dann in einer Schleife bis der Ergebnisse da waren.

Ich habe diese beiden Schritte jetzt getrennt.
Ich starte nachdem die Messwerte der Wetterstation abgeholt wurden eine neue Messung der DS18B20 Sensoren, frage aber nicht das Ergebnis ab.
Erst wenn wiederum neue Messwerte von der Wetterstation angefordert werden lese ich die dann längst fertigen Messungen der Temperatursensoren aus. Das dauert dann weniger als 50ms.
So habe ich gut 750ms Zeit gewonnen die ich anders nutzen kann.
Nachteil: Die Messwerte die ich jetzt erhalte sind bereits fast 15s alt, aber das stört doch nicht wirklich bei so langsamen Vorgängen wie der Lufttemperaturmessung.

Diese Methode funktioniert sicherlich auch bei vielen anderen intelligenten Sensoren bei denen zuerst per Software eine Messung gestartet wird und danach per Software das Ergebnis abgeholt wird. Man muss an der Stelle nicht warten bis der Sensor fertig ist sondern kann in der Wartezeit andere Dinge tun weil der Mikrocontroller Freizeit hat und nicht in einer Warteschleife fest hängt.

Ich habe mir den Sketch aus Beitrag #2 nicht komplett angesehen aber folgende Zeile ist mir u.A. aufgefallen:
Code:
delay(1000); //warte ne Sekunde, um die Werte nochmal auszulesen
Das kann man auch anders lösen ohne den Mikrocontroller für eine Sekunde in "Urlaub zu schicken".

Ich habe soweit es geht in meinen Sketchen alle delays() verbannt und durch Zeitabfragen mit millis() ersetzt.

Viele Grüße
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.07.2014, 14:18
Beitrag #11
RE: Mobile wissenschaftliche Wetterstation
Hallo Arne,
Zitat:Ich starte nachdem die Messwerte der Wetterstation abgeholt wurden eine neue Messung der DS18B20 Sensoren, frage aber nicht das Ergebnis ab.
Erst wenn wiederum neue Messwerte von der Wetterstation angefordert werden lese ich die dann längst fertigen Messungen der Temperatursensoren aus. Das dauert dann weniger als 50ms.
...
Ich starte nachdem die Messwerte der Wetterstation abgeholt wurden eine neue Messung der DS18B20 Sensoren, frage aber nicht das Ergebnis ab.
Erst wenn wiederum neue Messwerte von der Wetterstation angefordert werden lese ich die dann längst fertigen Messungen der Temperatursensoren aus.
Simple, aber geniale Idee. Muss man eben erst mal drauf kommen.
Der "No-Delay()" - Hinweis immer wieder richtig.
Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.07.2014, 23:24 (Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2014 23:29 von ardu_arne.)
Beitrag #12
RE: Mobile wissenschaftliche Wetterstation
Hallo nochmal,

ich würde mich hier gerne nochmal einmischen, und hoffe ihr verzeiht mir. Smile

Im Beitrag #7 ist mir der für meine Begriffe recht "umständliche" Code zur Umsetzung der Tagesnummer in den Tagesnamen aufgefallen.

Code:
if (dateTime.getWeekday()==0)
{
sprintf(Wochentag, "Montag");
Serial.println();
}
else if (dateTime.getWeekday()==1)
{
sprintf(Wochentag, "Dienstag");
Serial.println();
}
.
.
.
.

Ich habe deshalb mal etwas ausprobiert und bei mir funktioniert das so mit Serial.println(); und sprintf();

Code:
// Variablendefinition
char dayStr0[] = "    Montag";
char dayStr1[] = "  Dienstag";
char dayStr2[] = "  Mittwoch";
char dayStr3[] = "Donnerstag";
char dayStr4[] = "   Freitag";
char dayStr5[] = "   Samstag";
char dayStr6[] = "   Sonntag";
char* dayStr[] = { dayStr0, dayStr1, dayStr2, dayStr3, dayStr4, dayStr5, dayStr6};


void setup()
{
Serial.begin(115200);
}


void loop()
{
char clockString[56];

Serial.println( dayStr[i] );

sprintf(clockString, "Heute ist: %s, der ", dayStr[i] );
Serial.print(clockString);

}

i ist bei meinem Test eine Variable die von 0 bis 6 zählt.
Dadurch werden die Elemente 0 bis 6 aus dem Array "dayStr" selektiert.

Du musst in deinem Sketch "i" durch den Funktionsaufruf für die Tageszahl ersetzen, dann sollte das funktionieren.
Aus "dayStr[i])" wird also dayStr[dateTime.getWeekday()]


Der fertige Code im loop() wäre dann:
Code:
{
char clockString[56];

sprintf(clockString, "Heute ist: %s, der %02u:%02u:20%02u um %02u.%02u.%02u ", dayStr[dateTime.getWeekday()], dateTime.getDay(), dateTime.getMonth(), dateTime.getYear(), dateTime.getHour(), dateTime.getMinute(), dateTime.getSecond());

Serial.print(clockString);
Serial.println(" <-- Ausdruck nur zur Darstellung auf dem Serial Monitor");
Serial.println();
}


Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2014, 00:10 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2014 00:43 von fp.blues2013.)
Beitrag #13
RE: Mobile wissenschaftliche Wetterstation
Huhu Ihr alle Big Grin

Ersteinmal viiieelene Dank für die ganze Input() Smile Das muss ich erstmal verarbeiten. Die Idee mit dem "Ausführen nur das, was gerade notwendig ist" kam mir auch schon, aber ich habe noch nicht alle Ideen umgesetzt. Wenn ich den Script fertig habe, dann möchte ich ans Eingemachte gehen, und das alles optimieren. Bin ja schon froh, wenn momentan das Meiste gut läuft, was ich eingebaut habe. Nebenbei muss ich noch alles lernen und begreifen, wie das alles zusammenspielt, wie man alles anspricht und auswertet, und viele grundlegende Dinge. Dann kommt ja noch das, was ich vorhabe im Script, auch umzusetzen, und dann treten ja noch soo viele Fehler auf b.z.w. funktioniert noch nicht alles auf Anhieb. Dann muss ich suchen, nachlesen und auch ausprobieren. lerning by doingSmile Aber wie gesagt, ich bin ja froh, in den wenigen Tagen schon so viel aufgebaut bekommen zu haben.

Eure Tipps und Denkanregungen sind echt gutes Futter für mich, aber leider arbeite ich noch in Wechselschicht, und dann fehlt einem manchmal einfach die Zeit, sich nochmal dranzusetzen und weiter zu lernen.

Folgende Kombination läuft gerade bei mir:

1 Mega 2560 mit großem Sensor shield
2 x 20x4 LCDs parallel über i2C Bus
1 x DHT22 Luftfeuchte und Temp. fühler direkt am Pin Digital 2
1 x LC Studio SD-Card Reader mit 2 GB SD-Card direkt am Pin 50-53
1 x Luftdrucksensor 3,3V zu 5 Volt über Bidirektional Pegelanpassungsmodul I2C Bus
1 x RTC DS1307 mit Backup Knopfzelle über I2C
1 x RTC mit DCF77 Empfänger 3,3V zu 5 Volt über Bidirektional Pegelanpassungsmodul I2C Bus
Die 2 Meldeausgänge der DCF77 RTC ( DCF77Interrupt ( Empfang von auswertbarem Signal ) und PeriodicInterrupt ( Zeitsignal 1 sec. ) habe ich mal Hardwaremäßig herausgeführt, und wird über einen 3,3 v zu 5 Volt Pegelwandler an 2 DigitalPins des Megas geführt und dort verarbeitet und über LEDs angezeigt. ( solange bis ich es geschafft habe, das ganze direkt Softwaremäßig auszulesen und anzuzeigen ^^ Sorry )

4 LEDs am Mega2560 zur Statusanzeige: SD-Card schreiben oder Fehler, Alarmmeldungen, DCF77 zeit synchronisiert, und DCF77 zeitsignal ( 1 Sek. Takt)
1 Piezzo Brüller für Hinweis, oder Meldungstöne ( startton beim "booten" ) und Fehlersignale
1 Blitzdetektor über I2C
1 Taster ( für Später ) zum Umschalten von angezeigten Texten oder Meßwerten.
Gefühlte 5 Km Kabel und Steckbrücken Big Grin Big Grin
1 Sicherung für den I2C Bus ( hat mir schon mehrfach geholfen ^^ beim Löten )

3 Dinge habe ich noch vor, bevor ich ans Text optimieren gehe:

1. das die DCF77 zeit die Zeit des RTC Moduls DS1307 aktualisiert.
2. Programmzeilen hinzufügen, mit denen alle Meßwerte auf die SD Card geschrieben werden. ( Momentan schreibts nur die Zeit, Datum und den Wochentag )
3. Laufzeitoptimierung ( Das Thema obendran ); Auslesen und Anzeigen der Sensoren nur in gebräuchlichen Abständen

Danach dann das ganze Script noch aufräumen, kommentieren, bunt anmalen Smile und optimieren.

Momentan habe ich mal sämtliche Serial.print() Befehle auskommentiert. Diese Zeilen dienten mir nur als Anzeige im Serial Monitor, das ich sehe, ob die Module richtig funktionieren.

Wie gesagt, ich bin froh, schon mal soweit das alles am laufen zu haben. Ich hänge mal die letzte Version als File hier an den Post dran.. wer mag, kann sich ja mal das ganze ansehen. Das Script ist noch nicht fertig und ich habe noch keinen Header oben dran, sorry..

Hier mal der aktuelle Drahtigel Smile
http://i39.servimg.com/u/f39/14/73/53/23/20140716.jpg

Die Idee mit dem Array ist super *freu*... bin aus meinem kleinen Buch zu dem Thema nicht schlau geworden.. Sad Morgen sehe ich mir mal das genau an, versprochen.

Guts Nächtle und viele Grüße

Frank


Angehängte Datei(en)
.ino  Wetterstation_14_Backup_TOP.ino (Größe: 28,32 KB / Downloads: 46)

Idea War es nicht Edison, der unter einem Kronleuchter saß und nachdachte, und dem dann eine Glühbirne auf den Kopf fiel? Tongue
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.07.2014, 09:05 (Dieser Beitrag wurde zuletzt bearbeitet: 26.07.2014 09:14 von fp.blues2013.)
Beitrag #14
RE: Mobile wissenschaftliche Wetterstation
.... Heute ist wieder so ein Tag Sad((( Ich könnt .... *in den Tisch beiß" grummel......

Bin nun dran, die RTC Teit als Hauptzeit anzuzeigen, und dann, wenn das DCF77 Zeitsignal da ist, mit diesem die RTC Zeit zu aktualisieren....

soweit so gut... AAABER... Nach dem Start wird nur für eine gefühlte halbe Sekunde die RTC Zeit richtig angezeigt, dann springt es um zur RTC-DCF77 Zeit, die ja bei 1.1.14 0:0:00 Startet ( keine Backup Batterie ). Nach einer kurzen Zeit später gehen die grüne LED an, die anzeigt, das die Zeit im DCF77 CHIP aktualisiert wurde, und ne Sekunde später ist die Zeitanzeige auf dem Display dann richtig umgeschaltet auf DCF77 aktualisierte Zeit. Wäääh...

Habe schon alles 5 x durchgelesen, sooo viel umgestellt und ausprobiert, sogar Schleifen eingebaut mit einem Zähler, das die Zeit nur beim ersten Anlauf einmal aktualisiert wird....
Ich bin ratlos und am Ende Sad(((

Es tut, tut aber nicht so, wie es soll.... er soll anfangs gleich die normale RTC Zeit vom DS1307 anzeigen und diese dann nur 1 x überschreiben, sobald die DCF77 Zeit bereit steht.

Ich habe aus meinem Script momentan NUR diese Eine Schleife laufen, die mit der DS1307 RTC und natürlich das Setup und die Initialisierung am Anfang..

weiter oben gibt's eine Zeile, in der die Zeit nach jedem Start frisch gesetzt werden kann in der DCF77 RTC. Ich habe versucht, diese Zeit irgendwie aus dem DS1307 Chip auszulesen und dann als erstes die DCF77 Zeit umzuschreiben... aber ich konnte die Zeile nicht richtig ausformulieren... Wäre ein kleiner Umweg gewesen, aber hätte auch gereicht... aber ich mag nicht mit einer Null Zeit beginnen

Mein Kopf qualmt.... Ich lese aus dem DCF77 RTC die Zeit aus und aktualisiere dann damit die DS1307... aber es stimmt nicht vom Zeitlichen Ablauf.. Ich muss mal den Script total auseinander pflücken.... und austesten, woran es liegt.. Aber mir fehlt es einfach noch am Wissen... Sad

hier mal die relevanten Ausschnitte aus dem Script:

#include "RealTimeClock_DCF.h"
/* für die Kommunikation über Wire die Wire.h verwenden */
#include <Wire.h> // Kommt mit Arduino IDE

/******************************************************************************
globale Variablen
******************************************************************************/

/* einzustellende Uhrzeit am DS1307 */
DateTime dateTime = DateTime(14, 1, 1, DateTime::SUNDAY, 0, 0, 0);

/*-----( Deklarierung der Variablen )-----*/
// variables will change:
int PeriodicInput = 1; // variable for reading the Input PeriodicSignal Pin 9
int DCF77Input = 1; // variable for reading the Input DCF77Signal Pin 10

*********************************************************

void setup() /*----( SETUP: Läuft nur einmal ab )----*/
{

pinMode(AlarmOutput, INPUT);
pinMode(DCF77Signal, INPUT);
pinMode(PeriodicSignal, INPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin7, OUTPUT);
pinMode(ledPin8, OUTPUT);

/************************* Initialisierung der RTC-DCF77 Clock **************************/

/* RTC-DCF initialisieren */
RTC_DCF.begin();

/* der RTC-DCF benötigt ca. 1,5 Sekunden bis er Daten empfangen kann */
delay(1500);

/* DCF77-Empfang aktivieren */
RTC_DCF.enableDCF77Reception();

/* den periodischen Interrupt auf 1 Hz einstellen */
RTC_DCF.setPeriodicInterruptMode(RTC_PERIODIC_INT_PULSE_1_HZ);

/* den periodischen Interrupt des RTC-DCF aktivieren */
RTC_DCF.enablePeriodicInterrupt(); // Ausgang am Board Pin /SS
RTC_DCF.enableDCF77Interrupt(); // Ausgang am Board Pin MISO

/* Interrupts einschalten */
interrupts();

/* Uhrzeit im RTC-DCF setzen */
RTC_DCF.setDateTime(&dateTime);

/* aktiviert, dass die LED bei einem DCF77-Empfangs-Interrupt
ein- bzw. nach ausschalten des Interrupts wieder ausgeschaltet wird. */
RTC_DCF.enableDCF77LED();

*******************************************************
/************************* (Ende des einmaligen Setups )***********************************************************/

/******************************************************************************
Ab hier kontinuierliche Ausführung der einzelnen Bausteine
/********************************************************************************​***********************************/

void loop() /* --(Startet nun den main loop )-- */
{

// Aussentemperatur_Luftfeuchtigkeit(); // Loop 1
// Luftdruck_Innentemperatur(); // Loop 2
DS1307_RTC_Clock(); // Loop 5
// RTC_DCF77_CLOCK(); // Loop 3
// Datenlogger_auf_SDCard(); // Loop 4

/********************************************************************************​***********************************/

void DS1307_RTC_Clock () /*----( LOOP4: Läuft permanent )----*/

{
printDate();
delay(100);
}



byte decToBcd(byte val)
{
// Convert normal decimal numbers to binary coded decimal
return ( (val/10*16) + (val%10) );
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}

void printDate(){

// Reset the register pointer
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(0);
Wire.endTransmission();

Wire.requestFrom(DS1307_ADDRESS, 7);

int second = bcdToDec(Wire.read());
int minute = bcdToDec(Wire.read());
int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
int weekDay = bcdToDec(Wire.read()); // 0-6 -> sunday - Saturday
int monthDay = bcdToDec(Wire.read());
int month = bcdToDec(Wire.read());
int year = bcdToDec(Wire.read());

/* Ausdruck von Wochentag, Datum und Uhrzeit auf dem LCD Display2

Montag, der
27.01.2011
23:59:59
RTC-Zeit // DCF77-Zeit

*/

lcd1.setCursor(0,0); //Starte in Zeile 0, bei Zeichen 0

if (weekDay == 0) lcd1.print("Montag"); // Wochentag Zuordnung
if (weekDay == 1) lcd1.print("Dienstag");
if (weekDay == 2) lcd1.print("Mittwoch");
if (weekDay == 3) lcd1.print("Donnerstag");
if (weekDay == 4) lcd1.print("Freitag");
if (weekDay == 5) lcd1.print("Samstag");
if (weekDay == 6) lcd1.print("Sonntag");

lcd1.print(", der");
lcd1.setCursor(0,1);
if (monthDay<10) lcd1.print("0"); // Ergänzung der führenden Nullen bei Bedarf
lcd1.print(monthDay);
lcd1.print(".");
if (month<10) lcd1.print("0");
lcd1.print(month);
lcd1.print(".");
if (year <99) lcd1.print("20");
lcd1.print(year);
lcd1.setCursor(0,2);
if (hour<10) lcd1.print("0");
lcd1.print(hour);
lcd1.print(":");
if (minute<10) lcd1.print("0");
lcd1.print(minute);
lcd1.print(":");
if (second<10) lcd1.print("0");
lcd1.print(second);
if(PeriodicInput == HIGH)
{
lcd1.setCursor(0,3);
lcd1.print("RTC-Zeit");
}
else
{
lcd1.setCursor(0,3);
lcd1.print("DCF77-Zeit");
}


// read the state of the PeriodicInput / DCF77Input value:
PeriodicInput = digitalRead(PeriodicSignal);
DCF77Input = digitalRead(DCF77Signal);

// if it is, the PeriodicInput is HIGH:
if (PeriodicInput == HIGH)
{
// turn LED off:
digitalWrite(ledPin5,LOW);
}
else
{
// turn LED on:
digitalWrite(ledPin5, HIGH);
}
// if it is, the DCF77Input is HIGH:
if (DCF77Input == HIGH)
{
// turn LED off:
digitalWrite(ledPin6,LOW);
}
else
{
// turn LED on:
digitalWrite(ledPin6, HIGH);
RTC_DCF.getDateTime(&dateTime); // Nebenbei schonmal die RTC-DCF77 Clock durchs Funksignal aktualisieren lassen


// Dieser Abschnitt wird nur 1 x an Anfang zum Aktualisieren der DC1307 RTC Zeit einmalig benötigt

byte zero = 0x00; //workaround for issue #527

/*
byte second = 59; //0-59 // nur für die manuelle Einstellung !
byte minute = 59; //0-59
byte hour = 23; //0-23
byte weekDay = 5; //1-7
byte monthDay = 25; //1-31
byte month = 7; //1-12
byte year = 14; //0-99
*/

Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero); //stop Oscillator
Wire.write(decToBcd(dateTime.getSecond()));
Wire.write(decToBcd(dateTime.getMinute()));
Wire.write(decToBcd(dateTime.getHour()));
Wire.write(decToBcd(dateTime.getWeekday()));
Wire.write(decToBcd(dateTime.getDay()));
Wire.write(decToBcd(dateTime.getMonth()));
Wire.write(decToBcd(dateTime.getYear()));
Wire.write(zero); //start
Wire.endTransmission();

}

}

/********************************************************************************​***********************************/

Idea War es nicht Edison, der unter einem Kronleuchter saß und nachdachte, und dem dann eine Glühbirne auf den Kopf fiel? Tongue
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.07.2014, 12:43
Beitrag #15
RE: Mobile wissenschaftliche Wetterstation
Ist Loop() evtl. nicht mit "}" geschlossen?
Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.07.2014, 16:05
Beitrag #16
RE: Mobile wissenschaftliche Wetterstation
Verzeih RK Smile

ja, natürlich ist die Klammer am Ende geschlossen Smile Hatte sie beim "drag and dropp" ausversehen gedroppt... Ich grübel immer noch, wie ich das Problem lösen kann.... *würg* naja... ich geh mal was futtern Smile das regt das Hirn an. Aber soo schnell geb ich nicht aufSmile Und wenn ich den Script bis auf jeden einzelnen Buchstaben durchsuchen muss Big Grin

Wenn alles läuft, dann werde ich sowieso den ganzen Script mal verbessern, räumlich, inhaltlich, zeitlich... und ganz neu aufschreiben. Beim surfen im WWW habe ich vor ein paar Tagen eine kleine flache SMD Platine gefunden mit einem Geigerzähler-Chip druff für Gammastrahlung O.o Smile) Nicht schlecht Herr Specht... Nur mit der Ansteuerung wird's etwas schwieriger, man bräuchte dann ein Interface... Den Link poste ich noch, wenn ichs wiederfinde.

sooo futtern angesagt Smile) Bis später Smile

Idea War es nicht Edison, der unter einem Kronleuchter saß und nachdachte, und dem dann eine Glühbirne auf den Kopf fiel? Tongue
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Rainbow Wetterstation mit LC-Display I2C --> Feuchte, Temp, Wind, Druck, Tau, Tendenz Wampo 25 36.358 24.10.2016 19:05
Letzter Beitrag: Wampo
  Wetterstation sascha35 19 4.684 18.12.2015 16:51
Letzter Beitrag: sascha35
  Arduino GPRS Wetterstation derdemo 4 8.111 25.07.2014 00:49
Letzter Beitrag: fp.blues2013

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste