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
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 800 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  Lineares Messsystem zur Positionsbestimmung mithilfe eines Hallsensors Philipp_ 3 244 05.04.2017 16:29
Letzter Beitrag: ardu_arne
  Interrupt beim ESP8266 dost0011 9 692 08.03.2017 14:32
Letzter Beitrag: Tommy56
  Arduino hängt beim Upload deranda 14 1.068 20.01.2017 16:14
Letzter Beitrag: renid55
  Led Impuls beim Taster betätigen clemens5555 11 557 17.01.2017 20:00
Letzter Beitrag: renid55
  Beim Hochladen USB Problem Nils 10 907 29.12.2016 21:05
Letzter Beitrag: renid55
  Fehler beim Hochladen steyr 24 1.188 16.12.2016 07:52
Letzter Beitrag: hotsystems
  Fehlermedungen beim Kompilieren Franz54 7 735 07.12.2016 14:29
Letzter Beitrag: Pit
  Fehler beim Kompilieren binderj1 5 572 03.10.2016 21:27
Letzter Beitrag: hotsystems
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 569 21.09.2016 15:06
Letzter Beitrag: Bitklopfer

Gehe zu:


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