15.03.2016 08:49
Highway
|
Re: Arduino Regelung
Johh KapHorn deine Seite und Beschreibungen haben mich richtig Süchtig gemacht "Auch haben will Effekt" Hier fand ich dann die Überzeugung das kannst du auch!
So und hiermit gebe ich meinen Teil zurück damit andere auch was zur Unterstüzung finden.
##################################### # Keils Datenlogger # #####################################
Hardware: --------- - SainSmart Mega2560 - 4x Tenflyer 5 Stück 3M Wasserdicht digitale Temperaturtemp Sensorfühler DS18b20 gibts bei Amazon, Lieferung dauert aber 3 Wochen (aus China) gute Verarbeitung! 4,7kOhm Widerstand nicht vergessen sonst geht nix! - SunFounder Ethernet Shield W5100 for Arduino UNO R3 Mega 2560 1280 A057 Aufbau Schaltungen: Habe mir ein Sunfounder LCD1602 Starter Kit for Arduino besorgt, da hat man fast alles für den Anfang! http://www.sunfounder.com/index.php?c=sh...=Kit&pid=21
Schaltungen http://www.sunfounder.com/index.php?c=ca..._nr&type=27 Immer auf das Pluszeichen klicken da tauchen dann Infos Schaltpläne auf! Für den Taster: http://www.sunfounder.com/index.php?c=ca...ino&zsid=88 Für das Display: http://www.sunfounder.com/index.php?c=ca...ino&zsid=96 DS18B20 Temperaturfühler: http://www.sunfounder.com/index.php?c=ca...0Arduino%20V2.0
Funktionen: ----------- Wird der Taster gedrückt, schaltet die Anzeige auf einen anderen Fühler um. Alle 5 Minuten werden alle Werte an meinen Server per Ethernet-Shield in eine mySQL-Datenbank übertragen. Somit kann ich meine Werte von überall abrufen. Hierzu enthält die angegebenen URL ein PHP Skript, welches die Daten per GET-Befehl übernimmt und in die Datenbank einträgt. Alles auf http://www.horbach-in-franken.de/index.p...rluftkollektors dokumentiert. Dokumentation PHP und Scripte von http://jleopold.de/2011/03/16/arduino-da...gger-mysql-php/ Code ab hier ------------------------------------------------------------------------------------
#include <Ethernet.h> #include <SPI.h> #include <OneWire.h> #include <DallasTemperature.h> #include <LiquidCrystal.h> #include <Wire.h> /**********************************************************/ // assign a MAC address for the ethernet controller. // fill in your address here: //ETHERNET-SETTINGS byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC-Adresse des Arduino byte ip[] = { 192, 168, 178, XX }; // IP-Adresse des Arduino irgend eine freie Adresse nehmen byte gateway[] = { 192, 168, 178, 1 }; // Gateway byte subnet[] = { 255, 255, 255, 0 }; // SubNet byte server[] = { XX, XX, XX, XX }; // IP-Adresse des Servers EthernetClient client; char host[] = "http://irgendwo"; // Domain char url[] = "/arduino_push_data.php"; // Pfad zur PHP-Datei char key[] = "passwort"; // Kennwort aus PHP-Datei char c;
/**********************************************************/ // initialize the library with the numbers of the interface pins LiquidCrystal lcd(4, 6, 10, 11, 12, 13); /**********************************************************/
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) #define ONE_WIRE_BUS 7 OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); const int keyPin = 8; //the number of the key pin int anzeige = 0;
/**********************************************************/ unsigned long previousMillis = 0; // will store last time Data was send const long interval = 300000; // Time delay for Data send /**********************************************************/
void setup() { delay(1000); Serial.begin(9600); Serial.flush(); delay(200); Serial.println("TemperaturLogger"); Serial.println("Ethernet initialisieren..."); Ethernet.begin(mac, ip, gateway); delay(5000); // warten, bis Ethernet gestartet ist //Sensoren abfragen sensors.begin(); // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Taster als Eingang pinMode(keyPin,INPUT);//initialize the key pin as input // print the Ethernet board/shield's IP address: // Serial.print("My IP address: "); // Serial.println(Ethernet.localIP()); }
void loop() { unsigned long currentMillis = millis();
/************************** Taster fuer Anzeige umschalten ********************************/ if(digitalRead(keyPin) ==HIGH ) { anzeige = (anzeige +1);//Anzeige umschalten delay(1500);//Warten damit der Finger wech kommt } if((anzeige) == 4) { anzeige = 0; } /************************** Sensor ********************************/ Werte der Sensoren einsammeln und Anzeigen /************************* LCD *********************************/ lcd.setCursor(0,0); // set the cursor to column 0, line 0 switch(anzeige) { case 0: lcd.print("Zulufttemp "); lcd.setCursor(0,1); // set the cursor to column 0, line 1 lcd.print("Temp: "); lcd.print(sensors.getTempCByIndex(0)); // Print temp 0 to the LCD. break; case 1: lcd.print("Aussentemp"); lcd.setCursor(0,1); // set the cursor to column 0, line 1 lcd.print("Temp: "); lcd.print(sensors.getTempCByIndex(1)); // Print temp 0 to the LCD. break; case 2: lcd.print("Kellertemp"); lcd.setCursor(0,1); // set the cursor to column 0, line 1 lcd.print("Temp: "); lcd.print(sensors.getTempCByIndex(2)); // Print temp 0 to the LCD. break; case 3: lcd.print("Kollektortemp"); lcd.setCursor(0,1); // set the cursor to column 0, line 1 lcd.print("Temp: "); lcd.print(sensors.getTempCByIndex(3)); // Print temp 0 to the LCD. break; } lcd.setCursor(11,1); // set the cursor to column 0, line 1 lcd.print(" \337C");
/************************* Daten an Webserver senden *********************************/ if (currentMillis - previousMillis >= interval) { if (client.connect(server, 80)) // Verbindung zum Server aufbauen { lcd.setCursor(0,0); // set the cursor to column 0, line 0 lcd.print("Uebertrage "); lcd.setCursor(0,1); // set the cursor to column 0, line 1 lcd.print(sensors.getTempCByIndex(anzeige)); Serial.println("Verbunden, Sende Daten..."); client.print("GET " + String(url)); Serial.println("GET " + String(url)); client.print("?ZULUFT="); Serial.print("?ZULUFT="); client.print(sensors.getTempCByIndex(0)); Serial.print(sensors.getTempCByIndex(0)); client.print("&AUSSENLUFT="); Serial.print("&AUSSENLUFT="); client.print(sensors.getTempCByIndex(1)); Serial.print(sensors.getTempCByIndex(1)); client.print("&KELLER="); Serial.print("&KELLER="); client.print(sensors.getTempCByIndex(2)); Serial.print(sensors.getTempCByIndex(2)); client.print("&KOLLEKTOR="); Serial.print("&KOLLEKTOR="); client.print(sensors.getTempCByIndex(3)); Serial.print(sensors.getTempCByIndex(3)); client.print("&key=" + String(key)); Serial.print("&key=" + String(key)); client.println(" HTTP/1.1"); Serial.println(" HTTP/1.1"); client.print("Host: " + String(host)); Serial.print("Host: " + String(host)); client.println(); Serial.println(); client.println("User-Agent: Arduino"); Serial.println("User-Agent: Arduino"); client.println("Connection: close"); Serial.println("Connection: close"); client.println(); Serial.println(); } else { Serial.println(" ***** VERBINDUNGSAUFBAU NICHT MÖGLICH *****"); } client.stop(); Serial.println("Done."); client.flush(); previousMillis = currentMillis; delay(3500);//Warten damit mann es sieht } }
Wann wird es endlich wieder Sonnig?
Highway
|