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 - 3 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino mit DS18B20 und MySQL
29.01.2014, 19:58
Beitrag #33
RE: Arduino mit DS18B20 und MySQL
Hallo Bitklopfer,


[/quote]

Hallo Fried,
wenn sich dein Progi aufhängt, kann es denn dabei sei das der NTP Server dir keine Zeit mehr ansagt ? ...ich nehme mal an das du alle 2Min. da die Zeit abholst... das mögen die NTP Server nicht wenn du allzu oft unter der gleichen IP Adresse bei denen die Zeit abfrägst weshalb ich bei meinem Megalogger Progi nur per Hand auf Knopfdruck oder nach einem Reset die Zeit vom Server hole. Dazwischen benutze ich die millis() Funktion um die Sekunden mitzuzählen. Das Problem ist nur das dann alle paar Tage auch die long int Variable beim Millisekunden zählen überläuft.
..ich glaube das Problem war damit behoben

[/quote]

Ne, eben nicht. Der Progi hängt sich auch auf, ohne NTP-Server. Das ist ja das kuriose. Da gibt es normal überhaupt keinen Grund. Deswegen meine Frage, ob dieses Verhalten schon mal beobachtet wurde.

Und damit die "long int" nicht überläuft, möchte ich ja die Zeit holen. Und das beim Reset oder 1x am Tag . Ich weiß nur nicht, welchen Code ich wo hinschreiben muß. Das bekomme ich nicht hin.

Grüße
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2014, 10:57 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2014 11:01 von rkuehle.)
Beitrag #34
RE: Arduino mit DS18B20 und MySQL
Hallo Micha,

bin im Moment in einem fetten Projekt mit Lotusscript drin, daher nur sporadisch was von mir.
Zu deinen Fragen:
1. Würde ich nicht die Zeit von den Amis holen (.gov), eher von Servern in deiner "Nähe". Ich benutze immer einen Server aus de.ntp.pool.org zB. 132, 163, 4, 101
2. Das NTP-Sync-Intervall kannst du einfach mit zB. "setSyncInterval(7200);" setzen. Achtung hier werden Sekunden angegeben -> 2 Stunden
Im Setup einmal die Zeit mit "setTime(hour(),minute(),second(),day(),month(),year());" setzen und den aktuellen millis() auf eine Variable. Nun noch im Loop eine Abfrage ob akuelles millis() + Interval für 1 Tag erreicht, wenn ja wieder setTime(...) - Thats it. So gibts auch keinen Überlauf bei millis().

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2014, 13:41
Beitrag #35
RE: Arduino mit DS18B20 und MySQL
Hallo Ricardo, Hallo Bitklopfer,

Sorry dass ich mich jetzt erst melde. Ich hatte in den letzten Tagen leider echt wenig Zeit.

Danke für die Tipps und Anregungen. Nun musste ich leider feststellen, Bitklopfer hatte Recht.Angry
Mit dem Uno wird das so nichts. Temp-loggen geht. Temp-loggen und UDP zusammen geht auch. Aber dann mit Display - das geht gar nicht. Dann ist der Speicher viel zu klein. Da muß schon ein Mega ran. Der ist zwar schon bestellt, aber für ein neues Projekt bestimmt.

Ergo - jetzt gehe ich erst mal ein paar Tage in mich und überlege, was ich haben möchte.Dodgy

Ich vermute aber, es wird ein Logger mit Display. Ich kann mir dabei evtl. noch vorstellen, eine Uhr zu integrieren mit RTC. Das werde ich mir nun kaufen. Wenn der Uno dafür auch zu klein ist, kommt das auf den Mega. Meine Pins werden ja auch knapp.

Wenn alles fertig ist, werde ich das hier sofort posten.Big Grin

Grüße

Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2014, 08:04
Beitrag #36
RE: Arduino mit DS18B20 und MySQL
Hallo Leute,
wie versprochen, mein fertiger Sketch. Inzwischen habe ich lange genug darüber nachgedacht, wie ich es haben möchte.

Also Datenlogger mit Display und UDP-Zeit geht mittlerweile. Ich habe den Sketch einfach mal deutlich schlanker gemacht. Da der Uno im Keller steht und da ganz allein vor sich hin werkelt, habe ich das ganze Serial-Monitor-Gedöns raus geworfen.
Das braucht kein Mensch - ich zumindest.

Zusätzlich habe ich den Sketch aufgeräumt, in dem ich einen void_dispay eingebaut, um ihn übersichtlicher zu gestalten.
Der Sketch hat immo eine Größe von 24,840 Bytes, also ist durchaus noch Luft nach oben. Da könnte evtl. noch eine autom. Sommer-/Winterzeitumstellung rein. Da habe ich aber noch keine Idee, wie das zu realisieren wäre.

Code:
//
//
//
/*******************************************************************/******************************************************************/*******************************************************************/******************************************************************/*******************************************************************/******************************************************************/*******************************************************************/******************************************************************/*******************************************************************/******************************************************************/*******************************************************************/******************************************************************/*******************************************************************/******************************************************************/*******************************************************************/********************************************************************************​***************************
                                                                                                           *
-Dieser Sketch liest 10 Temperatursensoren, vom Typ "DS 18 B 20", aus.                                     *
                                                                                                           *
-Die Temperaturen werden an einen Webserver gesendet. Dort ist ein PHP-Skript abgelegt.                    *
Dadurch werden die Werte an eine Datenbank weiter gereicht. So koennen diese Werte mit                    *
Hilfe der Webseite weiter verarbeitet werden.                                                             *
                                                                                                           *
-Der Arduino erkennt die Anzahl der angeschl. Sensoren. Sollten weniger Sensoren angeschlossen sein, oder  *
ein Sensor defekt sein, wird der Temperaturwert mit -127 C weitergegeben. So wird sichergestellt, dass    *
sofort ersichtlich ist, dass ein Sensor nicht funktioniert.                                               *
Im "Serial Monitor" ist es moeglich, jederzeit den momentanen Programmablauf zu ueberpruefen              *
                                                                                                           *
-Folgende Angaben sind anzupassen:                                                                         *
                                                                                                           *
1. Die MAC-Adressen der Sensoren                                                                          *
2. MAC-Adresse des Arduino                                                                                *
3. IP-Adresse des Arduino                                                                                 *
4. char host[] = "ihrewaesche.de"; // Domain                                                              *
5. char url[] = "/ARDUINO/Temperatur/SaveTempToMySQL.php"; // Pfad zur PHP-Datei                          *
6. char key[] = "MEINPASSWORT123"; // Kennwort aus PHP-Datei                                              *                              
7. OneWire ds(7)  Digitalpin fuer Temperatursensoren                                                      *
8. im "void loop" Interval für Datenuebertragung in millis                                                *
                                                                                                           *
Sensor1:     0x28, 0x2D, 0xC2, 0x59, 0x5, 0x0, 0x0, 0x3D    T1 = Puffer oben                               *
Sensor2:     0x28, 0xC2, 0x42, 0x5A, 0x5, 0x0, 0x0, 0x73    T2 = Puffer unten                              *
Sensor3:     0x28, 0x9F, 0xFA, 0x59, 0x5, 0x0, 0x0, 0xEE    T3 = HygPuffer oben                            *
Sensor4:     0x28, 0xA, 0x2A, 0x5A, 0x5, 0x0, 0x0, 0x62     T4 = HygPuffer unten                           *
Sensor5:     0x28, 0x47, 0xFC, 0x59, 0x5, 0x0, 0x0, 0x17    T5 = HzVorlaufTemp                             *
Sensor6:     0x28, 0x12, 0x12, 0x5A, 0x5, 0x0, 0x0, 0x22    T6 = HzRuecklaufTemp                           *
Sensor7:     0x28, 0xCB, 0x0, 0x5A, 0x5, 0x0, 0x0, 0x8F     T7 = Kessel                                    *
Sensor8:     0x28, 0x9B, 0xE5, 0x59, 0x5, 0x0, 0x0, 0x21    T8 = Abgas                                     *
Sensor9:     0x28, 0xF0, 0xD0, 0x59, 0x5, 0x0, 0x0, 0x4C    T9 = Aussen                                    *
Sensor10:    0x28, 0xB9, 0xEF, 0x59, 0x5, 0x0, 0x0, 0x44    T10 =Laddomat/KesselVorlauf                    *
                                                                                                           *
Upgrade 1: Zusätzlich hinzu gekommen ist das LiquidCristal-Display (20,4,), somit auch die Lib.            *
Display-Anschlüsse(X) sind angeschlossen an Pin (Y): X-Y   RS-D2, RW-A4, E-A5, DB4-5, DB5-6, DB6-7, DB7-8  *
                                                                                                           *
In diesem Sketch können Pin 0 und 1, für das Display nicht genutzt werden, da über diese Pins der          *
Serial Monitor angesprochen wird.                                                                          *
                                                                                                           *
Immo gehen die Pins aus (Arduino Uno), da bei einer zukünftigen, geplanten Erweiterung, die SD-Card        *
noch 2 analoge Pins verwendet. Die stehen also nicht zur Verfügung.                                        *
                                                                                                           *
Somit steht kein Pin zur Verfügung für Zeit-Aktualisierung mit RTC-Shield.                                 *
Jetzt muß also umgesetzt werden: Zeit-Aktualisierung mit UDP (Upgrade2)                                    *
Upgrade 2 fehlgeschlagen - Uno hat zu wenig Speicherplatz fuer UDP und Display, Loesung=Mega und UDP/RTC   *    
                                                                                                        
Upgrade 2 funktioniert nun - es war erforderlich die Initialisierung und anschliessende Ausgabe am
Serial Monitor herauszunehmen. Dadurch wurde der benoetigte Speicherplatz fuer die UDP-Zeit und Uhrzeit-
ausgabe am Display frei. Binaere Sketchgroesse im Moment 24.840 Bytes
Zur Zeit wird die UDP nur bei Reset bzw. Start abgefragt.

Evtl. liesse sich die Implementierung auto. Sommer-/Winterzeitumstellung noch realisieren.


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



// Includes
#include <Time.h> // Zeitfunktionen
#include <Ethernet.h> // Ethernetfunktionen
#include <EthernetUdp.h> // UDP Funktionen auf Ethernet
#include <SPI.h> // SPI fuer Ethernetboard
#include <DallasTemperature.h> // Library fuer Temperatursensoren
#include <OneWire.h> // Library fuer den OneWire Bus
#include <Wire.h>
#include <SPI.h>

// #include <LiquidCrystal_I2C.h>  //Library fuer I2C Display
// LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  //  LCD I2C Addresse setzten

#include <LiquidCrystal.h>  // Library fuer das LCD-Display
LiquidCrystal lcd(2,A4,A5,5,6,7,8);  // angeschlossen an: RS-D2, RW-A4, E-A5, DB4-5, DB5-6, DB6-7, DB7-8
  
  OneWire ds(9); // Pin fuer Temperatursensoren

//DeviceAdressen der einzelnen ds1820 Temperatursensoren  -   Steckbrett
/*
DeviceAddress sensor1 = {
   0x28, 0x9D, 0x83, 0x3C, 0x5, 0x0, 0x0, 0xF };
DeviceAddress sensor2 = {
   0x28, 0xEB, 0x86, 0x3C, 0x5, 0x0, 0x0, 0xF7 };
DeviceAddress sensor3 = {
   0x28, 0x32, 0x8D, 0x3C, 0x5, 0x0, 0x0, 0xD5 };
DeviceAddress sensor4 = {
   0x28, 0xC8, 0x76, 0x3C, 0x5, 0x0, 0x0, 0xBE };  
DeviceAddress sensor5 = {
   0x28, 0x1F, 0x81, 0x3C, 0x5, 0x0, 0x0, 0x8 };
DeviceAddress sensor6 = {
   0x28, 0x19, 0x92, 0x3C, 0x5, 0x0, 0x0, 0x88 };  
DeviceAddress sensor7 = {
   0x28, 0xB, 0x7C, 0x3C, 0x5, 0x0, 0x0, 0xC5 };
DeviceAddress sensor8 = {
   0x28, 0x9C, 0x83, 0x3C, 0x5, 0x0, 0x0, 0x38 };
DeviceAddress sensor9 = {
   0x28, 0xEB, 0x86, 0x3C, 0x5, 0x0, 0x0, 0xF7 };
DeviceAddress sensor10 = {
   0x28, 0x9D, 0x83, 0x3C, 0x5, 0x0, 0x0, 0xF };
*/
  
  
   //DeviceAdressen der einzelnen ds18b20 Temperatursensoren - Keller
  
DeviceAddress sensor1 = {
   0x28, 0x2D, 0xC2, 0x59, 0x5, 0x0, 0x0, 0x3D };
DeviceAddress sensor2 = {
   0x28, 0xC2, 0x42, 0x5A, 0x5, 0x0, 0x0, 0x73 };
DeviceAddress sensor3 = {
   0x28, 0x9F, 0xFA, 0x59, 0x5, 0x0, 0x0, 0xEE };
DeviceAddress sensor4 = {
   0x28, 0xA, 0x2A, 0x5A, 0x5, 0x0, 0x0, 0x62 };  
DeviceAddress sensor5 = {
   0x28, 0x47, 0xFC, 0x59, 0x5, 0x0, 0x0, 0x17 };
DeviceAddress sensor6 = {
   0x28, 0x12, 0x12, 0x5A, 0x5, 0x0, 0x0, 0x22 };
DeviceAddress sensor7 = {
   0x28, 0xCB, 0x0, 0x5A, 0x5, 0x0, 0x0, 0x8F };
DeviceAddress sensor8 = {
   0x28, 0x9B, 0xE5, 0x59, 0x5, 0x0, 0x0, 0x21 };
DeviceAddress sensor9 = {
   0x28, 0xF0, 0xD0, 0x59, 0x5, 0x0, 0x0, 0x4C };
DeviceAddress sensor10 = {
   0x28, 0xB9, 0xEF, 0x59, 0x5, 0x0, 0x0, 0x44 };


  //ETHERNET-SETTINGS
byte mac[] = { 0x88, 0x87, 0x17, 0x87, 0xD6, 0x67 }; // MAC-Adresse des Arduino
// byte ip[] = { 192, 168, 178, 28 }; // IP-Adresse des Arduino
//byte gateway[] = { 192, 168, 178, 1 }; // Gateway
// byte subnet[] = { 255, 255, 255, 0 }; // SubNet
byte server[] = {
   XX, XXX, XXX, XX }; // IP-Adresse des Servers
  
EthernetClient client;
char host[] = "XXX.de"; // Domain
char url[] = "/XXX/XXXX/XXX.php"; // Pfad zur PHP-Datei
char key[] = "XXXXX"; // Kennwort aus PHP-Datei
char c; // Variable fuer Rueckgabe des Servers


// Variablen

// *** NTP Server anpassen - sollte eine Adresse aus de.ntp.pool.org sein
static IPAddress timeServer(132, 163, 4, 101);
const int NTP_PACKET_SIZE = 48; // NTP Paketgroesse
byte packetBuffer[NTP_PACKET_SIZE]; // NTP Datnpuffer
time_t prevDisplay = 0; // NTP Klasse - Zeit wurde noch nicht geaendert

EthernetUDP Udp; // UDP - Instanz erstellen

//Sensoren und Sendeinterval
DallasTemperature sensors(&ds);
//int numSensors; // Variable zum speichern der Anzahl der Temperatur-Sensoren
int temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8,temp9,temp10; // Temperaturwerte der Sensoren
  // Variable fuer Daten_senden,  Timer fuer Sendeinterval im millis im "void loop"
unsigned long Zeit1;

//LED-Statusanzeigen
int ledPin2 = A2;  // LED - Rot
int ledPin3 = A3;  // LED - Gruen
int ledPin1 = A1;  // LED - gelb

void setup()
{  
   pinMode (ledPin1,OUTPUT); //LED1-3 überprüfen
   pinMode (ledPin2,OUTPUT);
   pinMode (ledPin3,OUTPUT);
   digitalWrite(ledPin1,HIGH);
   digitalWrite(ledPin2,HIGH);
   digitalWrite(ledPin3,HIGH);
   delay(2000);
   digitalWrite(ledPin1,LOW);
   digitalWrite(ledPin2,LOW);
   digitalWrite(ledPin3,LOW);
   delay(1000);
  
   digitalWrite(ledPin2,HIGH); //Beginn Setup anzeigen
  // Serial.begin(9600); // Monitor starten
   Ethernet.begin(mac); // EthernetClient starten, 1 Sekunde warten
   delay(1000);
   Udp.begin(8888);   // UDP starten Port 8888
   setSyncProvider(getNtpTime); // NTP Provider starten / erstmalig abfragen
   setTime(hour(),minute(),second(),day(),month(),year()); // Zeit auf Arduino setzen
   SPI.begin();
  
   sensors.begin();
   lcd.begin(20,4);  
    
   digitalWrite(ledPin2,LOW); //Ende Setup anzeigen

}



void loop()
{
  
  //     ClockDisplay();
   digitalClockDisplay();  
   digitalWrite(ledPin3,HIGH);

   sensors.requestTemperatures();
   temp1 = sensors.getTempC(sensor1);
   temp2 = sensors.getTempC(sensor2);
   temp3 = sensors.getTempC(sensor3);
   temp4 = sensors.getTempC(sensor4);
   temp5 = sensors.getTempC(sensor5);
   temp6 = sensors.getTempC(sensor6);
   temp7 = sensors.getTempC(sensor7);
   temp8 = sensors.getTempC(sensor8);
   temp9 = sensors.getTempC(sensor9);
   temp10 = sensors.getTempC(sensor10);

     // Daten senden
  unsigned long now = millis();
  
  if( ( now - Zeit1 ) >= 300000 )  // Timer fuer Sendeinterval im millis - 5 Minuten in Millis

   {
       digitalWrite(ledPin1,HIGH);
       //*** und senden
       Daten_Senden(temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9, temp10); // Temperaturdaten an Server uebertragen
       delay(700);
       byte maxReads = 10; //Seconds
       while ((maxReads-- > 0) && client.connected()) // Antwort des Servers lesen
       {
         delay(1000);
         while (client.available())
         {
           char response = client.read();
         }
       }
       client.stop();
       client.flush();    
       Zeit1 = now;
       digitalWrite(ledPin1,LOW);
   }
  
}

// 0 vorsetzen wenn Uebergebener Wert < 10
void printDigits(int digits)
{
   if(digits < 10)
     lcd.print('0');
   lcd.print(digits);
}
  
// NTP Provider - prueft ob NTP laeuft und holt die Daten
time_t getNtpTime()
{
   while (Udp.parsePacket() > 0) ; // vorhergehende Pakete verwerfen
   sendNTPpacket(timeServer);
   uint32_t beginWait = millis();
   while (millis() - beginWait < 1500) // 1500 Millisekunden Wartezeit fuer NTP Antwort
   {
     int size = Udp.parsePacket();
     if (size >= NTP_PACKET_SIZE)
     {
       Udp.read(packetBuffer, NTP_PACKET_SIZE); // Paket in Puffer einlesen
       unsigned long secsSince1900;
       // Byte 40,41,42,43 zusammen in long umwandeln
       secsSince1900 =  (unsigned long)packetBuffer[40] << 24;
       secsSince1900 |= (unsigned long)packetBuffer[41] << 16;
       secsSince1900 |= (unsigned long)packetBuffer[42] << 8;
       secsSince1900 |= (unsigned long)packetBuffer[43];
       return secsSince1900 - 2208988800UL + 1 * SECS_PER_HOUR;
     }
   }
   return 0;
}
// NTP Request senden
void sendNTPpacket(IPAddress &address)
{
   memset(packetBuffer, 0, NTP_PACKET_SIZE); // Puffer auf 0 setzen
   // notwendige Werte fuer NTP-Request
   packetBuffer[0] = 0b11100011;   // LI, Version, Mode
   packetBuffer[1] = 0;     // Stratum oder Uhrentyp
   packetBuffer[2] = 6;     // Pollingintervall
   packetBuffer[3] = 0xEC;  // Peer Clock Praezision
   /* 8 bytes 0 fuer Root Delay & Root Dispersion
    Es wird also immer eine Antwort entgegengenommen,
    egal welche Abweichung der Server vom Root hat */
   packetBuffer[12]  = 49;
   packetBuffer[13]  = 0x4E;
   packetBuffer[14]  = 49;
   packetBuffer[15]  = 52;
   // Werte fuer Request gesetzt, Request senden auf Port 123
   Udp.beginPacket(address, 123);
   Udp.write(packetBuffer, NTP_PACKET_SIZE);
   Udp.endPacket();
}

  // digital clock display Zeit- und Sensorausgabe
void digitalClockDisplay(){
  
   lcd.setCursor(0,0);
   lcd.print("Po  Pu  Ho  Hu  KsRL");
   lcd.setCursor(0,1);
   lcd.print(temp1),lcd.print("  "),lcd.print(temp2),lcd.print("  "),lcd.print(temp3),lcd.print("  "),lcd.print(temp4),lcd.print("   "),lcd.print(temp10);
   lcd.setCursor(0,2);
   lcd.print("VL:  "),lcd.print(temp5),lcd.print("   RL: "),lcd.print(temp6);
   lcd.setCursor(0, 3);
   printDigits(hour()), lcd.print(':'), printDigits(minute()), lcd.print(':'), printDigits(second()), lcd.print("  "), printDigits(day()), lcd.print("/"), printDigits(month()), lcd.print("/"), lcd.print(year());
    
}

      //Datensaetze an MySQL

void Daten_Senden(int T1, int T2, int T3, int T4, int T5, int T6, int T7, int T8, int T9, int T10)
{
   if (client.connect(server, 80)) // Verbindung zum Server aufbauen
   {
     client.print("GET " + String(url));
     client.print("?T1=");
     client.print(T1);
     client.print("&T2=");
     client.print(T2);
     client.print("&T3=");
     client.print(T3);
     client.print("&T4=");
     client.print(T4);
     client.print("&T5=");
     client.print(T5);
     client.print("&T6=");
     client.print(T6);
     client.print("&T7=");
     client.print(T7);
     client.print("&T8=");
     client.print(T8);
     client.print("&T9=");
     client.print(T9);
     client.print("&T10=");
     client.print(T10);
     client.print("&key=" + String(key));
     client.println(" HTTP/1.1");
     client.print("Host: " + String(host));
     client.println();
     client.println("User-Agent: Arduino");
     client.println("Connection: close");
     client.println();
     digitalWrite(ledPin2,LOW);
     lcd.clear();
   }
   else
   {
     digitalWrite(ledPin2,HIGH);
     lcd.clear();
    }    
}

So, Verbesserungsvorschläge sind natürlich ausdrücklich erwünscht.Big Grin

Ach ja, zu sehen ist das Ergebnis hier: Schako24.de


Grüße
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2014, 12:00
Beitrag #37
RE: Arduino mit DS18B20 und MySQL
Da weck ich gleich mal Garfield:
   

denn das ist nicht nur ein gut erarbeites Ergebnis - sondern wie man auch sieht - klasse Zusammenarbeit und weiterdenken - Endergebnis: Poster und Helfer zufrieden und dank Deinem Code, können andere das viel schneller lösen.

Und mit der Code Funktion, wird es auch noch superlesbar und übersichtlich...
da gibt es auch von mir und nicht nur Garfield den
Daumen hochExclamation

Greetz
Sloompie

Dimidium facti, qui coepit, habet: SAPERE AUDE, incipe!©Horaz

Vor allem sapere aude! oder wie Immanuel Kant sagt:
"Habe Mut, dich deines eigenen Verstandes zu bedienen!"

Es tut auch nicht weh! Daher: incipe! oder Tu es! wie Yoda sagen würde.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2014, 12:44
Beitrag #38
RE: Arduino mit DS18B20 und MySQL
(25.02.2014 12:00)Sloompie schrieb:  denn das ist nicht nur ein gut erarbeites Ergebnis - sondern wie man auch sieht - klasse Zusammenarbeit und weiterdenken - Endergebnis: Poster und Helfer zufrieden und dank Deinem Code, können andere das viel schneller lösen.

Und mit der Code Funktion, wird es auch noch superlesbar und übersichtlich...
da gibt es auch von mir und nicht nur Garfield den
Daumen hochExclamation

Greetz
Sloompie

Genau ins Schwarze getroffen Sloompie,

Dank an dieser Stelle, insbesondere an Ricardo und Bitklopfer, und natürlich auch an diejenigen, deren Codeschnipsel ich "geklaut" habe. Ohne die Tipps wäre ich nicht zu diesem Ergebnis gekommen. Das zu betonen, ist mir an dieser Stelle sehr wichtig. Ich möchte mich auf gar keinen Fall, mit fremden Federn schmücken.
Mein Projekt beweist aber auch, dass der Arduino auf alle Fälle etwas für Anfänger ist. Man sollte aber nicht unbedingt mit einem Datenlogger starten.
Ein wenig Geduld ist natürlich Bedingung. Nun hat mich das Fieber gepackt und ein Mega ist im Haus. Big Grin

Mal schaun, wo der mich hintreibt. Motorshield und Motoren habe ich auch schon, dass wird ein Fest. Evtl. auch ne Trauerfeier. Na ja, learning by doing, wie man so schön sagt.

Nichts desto trotz, Verbesserungen an meinem Sketch sind vielleicht möglich. Bin auf Vorschläge gespannt.


Grüße
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2014, 12:57
Beitrag #39
RE: Arduino mit DS18B20 und MySQL
... Smile

Dimidium facti, qui coepit, habet: SAPERE AUDE, incipe!©Horaz

Vor allem sapere aude! oder wie Immanuel Kant sagt:
"Habe Mut, dich deines eigenen Verstandes zu bedienen!"

Es tut auch nicht weh! Daher: incipe! oder Tu es! wie Yoda sagen würde.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.06.2014, 13:48
Beitrag #40
RE: Arduino mit DS18B20 und MySQL
Hallo Fried22,

toll, was du da zusammengestellt hast. Ich habe viel Input für ein ähnliches Projekt bekommen. Danke! Eine Sache ist mir allerdings nicht ganz klar: Du gibst dir viel Mühe mit der Uhrzeit. Das nutzt aber doch nur für die Darstellung auf dem Display - oder? Die Uhrzeit wird doch nicht auf den Server übertragen. Die Zeiten in der SQL Tabelle entsprechen den Zeiten des localen Servers in dem Moment, in dem die Temperaturen geschrieben werden. Sehe ich das richtig?
Ich frage, weil ich an dieser Stelle noch ein Problem mit meinem Projekt habe. Ich habe keine Idee, in welchen Format ich das Datum und die Uhrzeit zum Server übertragen kann. Im SQL möchte ich gerne den Typ "datetime" nehmen. In den Arduino Projekten/Beispielen, die mir zur Verfügung stehen, finde ich kein passendes Format. Hier ist der Zeitstempel immer in Jahr, Tag, Stunde, Minute.... zerteilt. Eine Variable, welche dem Format "datetime" enstpricht, habe ich noch nicht gefunden. Hast du oder jemand anders eine Idee?

Ganz vielen Dank!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino+Ethernet+RFID+MySQL RonSH 12 662 13.10.2016 22:32
Letzter Beitrag: Tommy56
Lightbulb LED Thermometer über WS2812b LED und Dallas DS18B20 Wampo 2 1.736 15.03.2015 17:45
Letzter Beitrag: Wampo
Star ATTINY85 mit DS18B20 Temperatursensor und echtem Analogausgang ardu_arne 0 4.174 07.01.2015 21:28
Letzter Beitrag: ardu_arne
  Arduino Neuling: Zugeklappten Laptop mit Arduino aufwecken + Kiste aufklappen? Ikearegal 2 2.528 02.02.2014 07:59
Letzter Beitrag: Ikearegal

Gehe zu:


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