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:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
email beim betätigen eines Schalters
29.12.2013, 18:37
Beitrag #1
email beim betätigen eines Schalters
Hallo, mein erstes Arduino Projekt und schon komm ich nicht weiter!
Ich möchte eine email versenden sobald meine Heizung auf Störung geht, dazu betätigt diese ein Potentialfreies Relais über welches ich den Eingang am Arduino schalte und dann eine mail versendet wird. Im Versuchsaufbau funktioniert soweit auch alles bis auf das der Arduino beim betätigen des Schalters eine Mailbombe wird.
Der Sketch soll wenn er denn erst mal läuft um weitere Eingänge zum versenden von mails verwendet werden. Ich bitte euch um Hilfe, ich habe schon einiges getestet und gelesen aber immer wieder eine Mailbombe. Das Relais bleibt bis zum entsperren der Sörung angezogen.
Gruß me.bo

#include <SPI.h>
#include <Ethernet.h>

const int Pin2 = 2; // the number of the pushbutton pin
const int Pin3 = 3;
const int Pin4 = 4;
const int Pin5 = 5;
const int ledPin = 13; // the number of the LED pin

int buttonState2 = 0; // variable for reading the pushbutton status
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState5 = 0;

byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
EthernetClient client;
char server[] = "www.**********.de";

void setup()
{

pinMode(ledPin, OUTPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
pinMode(Pin4, INPUT);
pinMode(Pin5, INPUT);

Serial.begin(9600);
while (!Serial)
delay(1000);

if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
for(;Wink
;
}
// print your local IP address:
Serial.print("DCHP IP ADRESSE: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
// print the value of each byte of the IP address:
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
}
Serial.println();
(client.connect(server, 80));
client.println("GET /************.php HTTP/1.1");
client.println("Host: http://www.***********.de");
client.println("Connection: close");
client.println();
Serial.println("Test Mail zum Neustart wurde versendet");

}
void loop()
{
buttonState2 = digitalRead(Pin2);
buttonState3 = digitalRead(Pin3);
buttonState4 = digitalRead(Pin4);
buttonState5 = digitalRead(Pin5);

if (buttonState2 == HIGH)
{


(client.connect(server, 80));
{
digitalWrite(ledPin, HIGH);
Serial.println("Schalter 2 ausgeloest Emailversand aktiviert");
client.println("GET /***********.php HTTP/1.1");
client.println("Host: http://www.*********.de");
client.println("Connection: close");
client.println();
}
}
else
{

digitalWrite(ledPin, LOW);
}

if(client.available())
{
char c = client.read();
Serial.print©;
}

if(!client.connected())
{

client.stop();
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.12.2013, 14:15
Beitrag #2
RE: email beim betätigen eines Schalters
Du muss Dir, im Programm, merken ob noch nicht bzw. ob eine Mail gesendet wurde.

Gruß
Hans-Jürgen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2014, 20:15
Beitrag #3
RE: email beim betätigen eines Schalters
Im Loop steht "if (buttonState2 == HIGH) -> sende Mail" und da das Relais angezogen bleibt, führt er diese Anweisung immer wieder aus. Entweder Du machst es so, wie Hans-Jürgen vorgeschlagen hat, oder Du arbeitest mit einem Interrupt, der Dir nur bei der ersten Änderung (z.B. "falling") einen Trigger setzt, der ein mal die Mail versenden lässt, um diesen dann wieder zurück zu setzen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2014, 23:11
Beitrag #4
RE: email beim betätigen eines Schalters
Vielen Dank für die Lösungsansätze,
meine Lösung nach vielen Stunden ist diese...




Code:
#include <SPI.h>
#include <Ethernet.h>

const int buttonPin2 = 2;
const int buttonPin3 = 3;
const int buttonPin4 = 4;
const int buttonPin5 = 5;
const int ledPin = 13; // the number of the LED pin

int buttonState2 = 0; // variable for reading the pushbutton status
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState5 = 0;
int lastButtonState2 = 0;   // previous state of the button
int lastButtonState3 = 0;
int lastButtonState4 = 0;
int lastButtonState5 = 0;

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xC8, 0xD9 };


EthernetClient client;
char server[] = "www.*******.de";
void setup(){
   
pinMode(ledPin, OUTPUT);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
pinMode(buttonPin4, INPUT_PULLUP);
pinMode(buttonPin5, INPUT_PULLUP);
  
Serial.begin(9600);
while (!Serial)
delay(1000);

if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
for(;;);
}
// print your local IP address:
Serial.print("DCHP IP ADRESSE: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
}
Serial.println();
  
(client.connect(server, 80));
client.println("GET /***********.php HTTP/1.1");
client.println("Host: www.*********.de");
client.println("Connection: close");
client.println();
Serial.println("Test Mail zum Neustart wurde versendet");
  
}
void loop()
{
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
buttonState5 = digitalRead(buttonPin5);

if (buttonState4 != lastButtonState4)
{
if (buttonState4 == LOW)
{
(client.connect(server, 80));
digitalWrite(ledPin, HIGH);
Serial.println("Schalter 4 ausgeloest Emailversand aktiviert");
client.println("GET /***********.php HTTP/1.1");
client.println("Host: www.**********.de");
client.println("Connection: close");
client.println();
}
}
else
{
digitalWrite(ledPin, LOW);
}
if (buttonState3 != lastButtonState3)
{
if (buttonState3 == LOW)
{
(client.connect(server, 80));
digitalWrite(ledPin, HIGH);
Serial.println("Schalter 3 ausgeloest Emailversand aktiviert");
client.println("GET /***********.php HTTP/1.1");
client.println("Host: www.***********.de");
client.println("Connection: close");
client.println();
}
}
else
{
digitalWrite(ledPin, LOW);
}
if(client.available())
{
char c = client.read();
Serial.print(c);
}
if(!client.connected())
{
client.stop();
}
lastButtonState2 = buttonState2;
lastButtonState3 = buttonState3;
lastButtonState4 = buttonState4;
lastButtonState5 = buttonState5;
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2014, 22:02
Beitrag #5
RE: email beim betätigen eines Schalters
Nabend.
Ich habe den Code einfach mal so bei mir ins Arduino Skethc Compiler kopiert.
Bei mir meldet der Code immer den Fehler das
Code:
java.lang.RuntimeException: */ fehlt bei einem Ende eines /* Kommentars */
    at processing.app.Sketch.scrubComments(Sketch.java:1719)
    at processing.app.preproc.PdePreprocessor.writePrefix(PdePreprocessor.java:105)
    at processing.app.Sketch.preprocess(Sketch.java:1390)
    at processing.app.Sketch.preprocess(Sketch.java:1339)
    at processing.app.Sketch.build(Sketch.java:1585)
    at processing.app.Sketch.build(Sketch.java:1567)
    at processing.app.Editor$DefaultRunHandler.run(Editor.java:1897)
    at java.lang.Thread.run(Thread.java:619)
Kann damit aber nichts anfangen.
Weiß jemand was das sein soll oder was der damit meint ?

MFG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2014, 06:32
Beitrag #6
RE: email beim betätigen eines Schalters
Hallo Imgrish,

wahrscheinlich ist beim Kopieren ein Kommentarzeichen nicht mitgenommen worden, oder es fehlt vor einem "//" das ";" insofern ein Befehl / Funktion in der gleichen Zeile davor steht. Schau dir auch die Deklaration "char server[]" an.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2014, 09:32
Beitrag #7
RE: email beim betätigen eines Schalters
(14.05.2014 06:32)rkuehle schrieb:  wahrscheinlich ist beim Kopieren ein Kommentarzeichen nicht mitgenommen worden
Hi,
ich denke, es liegt daran: Im Coding wurden URLs mit "*" maskiert, z.B.:
Code:
client.println("GET /***********.php HTTP/1.1");
Die ganzen "****...." müssen durch "echte" URLs ersetzt werden. Ich gehe mal davon aus, dass im Original das einen Webserver anspricht, der dann die erwähnten E-Mails schickt.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.05.2014, 14:59
Beitrag #8
RE: email beim betätigen eines Schalters
Hallo Thorsten,

wahrscheinlich nutzt Imgrish noch eine relativ alte IDE Version.
bei mir lief der Sketch selbst mit den "Wildcards" ohne Probleme durch.

Grüße Rk

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Fehlermedungen beim Kompilieren Franz54 7 119 07.12.2016 14:29
Letzter Beitrag: Pit
  Fehler beim Kompilieren binderj1 5 296 03.10.2016 21:27
Letzter Beitrag: hotsystems
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 357 21.09.2016 15:06
Letzter Beitrag: Bitklopfer
  Ansteuern eines Schrittmotors Uwe1475 28 1.025 03.09.2016 21:03
Letzter Beitrag: Uwe1475
  Fehler beim Speichern von Projekten Manni66 16 691 23.08.2016 10:05
Letzter Beitrag: hotsystems
  Arduino hängt beim Upload deranda 11 506 12.08.2016 21:27
Letzter Beitrag: hotsystems
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 764 16.07.2016 11:43
Letzter Beitrag: Binatone
  Problem mit ESP8266 und EMail senden torsten_156 1 608 13.06.2016 21:14
Letzter Beitrag: torsten_156
  Adafruit SD-master / logger shield: Fehler beim 2. Kompilieren kl-ing 3 337 06.06.2016 16:07
Letzter Beitrag: Bitklopfer
  Hilfe beim Arduino Shield reimundko 6 460 05.06.2016 11:28
Letzter Beitrag: rpt007

Gehe zu:


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