Frage zu Ethernet Shield und Fehlkauf LCD

Hy . Habe eine kleine Problem.
Ich habe mir ein Ethernet Schield gekauft und würde gerne damit ne Mail wegschicken. Muss ich da den kompletten mail Server aufspielen und in die Programmierung holen oder kann ich auch einfach einen normalen Anbieter irgendwie reinfummeln. Habe unter den Beispielen leider nichts eindeutiges gefunden woraus ich Schlau geworden bin.

  1. Problem .
    Habe mir ein LCD Display gekauft habe aber nicht darauf geachtet das es von smart saint ist. Nun passen ja die Ansteuerungen nicht so wie das in den Beispielen ist. Hat jemand Rat dazu ? ICh will nämlich noch einen Gas Sensor einbauen der mir den Aktuelle Gas Gehalt in der Luft auf dem Display anzeigt sowie ob die Anlage Scharf ist oder nicht . Auf dem LCD Shield habe ich namlich auch noch Tasten für Rechts Links Hoch Runter Select und RST . Finde dazu aber keine Steierbefehle für das Display.

  2. Problem
    Wieviele Shield kann man übereinander Stacken ohne das das Board zuviel Strom frisst.

So fürs erste wars da wieder mal . Danke im Vorraus schon mal wieder für die Tolle Hilfe.

MFG Imgrish

Hallo,
Du kannst die Shield´s stapel, bis sie umfallen. Ob das dann funktioniert
ist etwas anderes. Was Dein Board an Strom liefert, kann Dir niemand sagen-
weil, WAS für ein Board?
Das mit dem eMail versenden ist ganz einfach. Du hast eine eMail auf Deinem
PC, diese sendest Du über die serielle an den Arduino. Der baut dann mit
dem von Dir programmierten Sketch eine Verbindung zu Deinem MailServer auf.
Dann versendet der Arduino die Mail. So einfach ist das…

Für das LCD wären einige technische Daten nicht schlecht, Typ, Bezeichnung oder
auch scharfes Foto. Das bekommt man sicher zum laufen.
Gruß und Spaß
Andreas

Hier , so habe ich die LCD genutzt ich hoffe Du kannst etwas mit anfangen.

// initialisierung SinSmart LCD 1602

#include <LiquidCrystal.h>
#include <Wire.h>

LiquidCrystal lcd(8,9,4,5,6,7 );

// Tasten der LCD

int mylcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

// read the buttons
int read_mylcd_buttons()
{
 adc_key_in = analogRead(0);      // read the value from the sensor 
 // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
 // we add approx 50 to those values and check to see if we are close
 if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
 // For V1.1 us this threshold
 if (adc_key_in < 50)   return btnRIGHT;  
 if (adc_key_in < 250)  return btnUP; 
 if (adc_key_in < 450)  return btnDOWN; 
 if (adc_key_in < 650)  return btnLEFT; 
 if (adc_key_in < 850)  return btnSELECT;  

 // For V1.0 comment the other threshold and use the one below:
/*
 if (adc_key_in < 50)   return btnRIGHT;  
 if (adc_key_in < 195)  return btnUP; 
 if (adc_key_in < 380)  return btnDOWN; 
 if (adc_key_in < 555)  return btnLEFT; 
 if (adc_key_in < 790)  return btnSELECT;   
*/


 return btnNONE;  // when all others fail, return this...
}

void setup()
{
 mylcd.begin(16, 2);              // start the library
 mylcd.setCursor(0,0);
 mylcd.print("Push the buttons"); // print a simple message
}
 
void loop()
{
  count++;
	if (count == 1); 
	else if (count == 2); 
	else if (count == 3); 
        else if (count == 4); 
        
       	else {
		count = 0;
		
              }
  
 mylcd.setCursor(9,1);            // move cursor to second line "1" and 9 spaces over
 mylcd.print(millis()/1000);      // display seconds elapsed since power-up


 mylcd.setCursor(0,1);            // move to the begining of the second line
 mylcd_key = read_mylcd_buttons();  // read the buttons

 switch (mylcd_key)               // depending on which button was pushed, we perform an action
 {
   case btnRIGHT:
     {
     mylcd.print("RIGHT ");
     break;
     }
   case btnLEFT:
     {
     mylcd.print("LEFT   ");
     break;
     }
   case btnUP:
     {
     mylcd.print("UP    ");
     break;
     }
   case btnDOWN:
     {
     mylcd.print("DOWN  ");
     break;
     }
   case btnSELECT:
     {
     mylcd.print("SELECT");
     break;
     }
     case btnNONE:
     {
     mylcd.print("NONE  ");
     break;
     }
 }

}

Imgrish:
2. Problem .
Habe mir ein LCD Display gekauft habe aber nicht darauf geachtet das es von smart saint ist. Nun passen ja die Ansteuerungen nicht so wie das in den Beispielen ist. Hat jemand Rat dazu ? ICh will nämlich noch einen Gas Sensor einbauen der mir den Aktuelle Gas Gehalt in der Luft auf dem Display anzeigt sowie ob die Anlage Scharf ist oder nicht . Auf dem LCD Shield habe ich namlich auch noch Tasten für Rechts Links Hoch Runter Select und RST . Finde dazu aber keine Steierbefehle für das Display.

Hallo,

ich gehe davon aus, dass es dieses Shield ist: http://www.sainsmart.com/sainsmart-1602-lcd-keypad-shield-for-arduino-duemilanove-uno-mega2560-mega1280.html

Das Ding ist doch perfekt dokumentiert mit Beispielcode und allem. Schau dir mal die Materialien unter Tutorial an und arbeite den Beispielcode durch.

SkobyMobil:
Was Dein Board an Strom liefert, kann Dir niemand sagen-weil, WAS für ein Board?

Mit 99% Wahrscheinlichkeit meint er einen Standard Arduino. Die können etwa 500mA

Das hängt aber auch von der Eingangsspannung ab. An USB betrieben gehen sowieso nicht mehr als 500mA. An der Strombuchse ist das bei 7V und 500mA unkritisch. Bei 12V wird der Spannungsregler schon wärmer.

Ansonsten kommt es halt drauf an was dran hängt.

Und email mit arduino ist in Zeiten von SSL eher nicht machbar. Schau Dir die letzten Beiträge dazu an. Die Suchfunktion hilft da.

OK. Board ist Arduino Mega 2560.
OK Nur mal so vorne weg ich will mir eine kleine Alarmanalge bauen mit dem Arduino. (Projektarbeit )

Genau das LCD Shield ist es,. Die Seite die ihr mir da geschickt habt kannte ich noch nicht , Immer wenn ich zu saint smart wollte kam ich auf Irgnedwelche dubiosen Chinesischen Seiten im Netz. Danke Werde mir das mal durchlesen . Danke.

So nun mal zu dem Mail Problem.
Ich würde das gerne so machen das wenn ich Ein Signal auf dem Ausgang 13 habe das dann eine Mail an eine vordefinierte Adresse rausgeht mit einem vorgegebenen Text.
( so nach dem Motto " EInbruchalarm in ihrer Behausung " )
Das stell ich mir so vor Desgwegen die Frage mit dem Mailserver auf dem Arduino .

Nun noch ma das wegen dem Stacken.

Wenn ich nun auf dem Arduino Board ein Ethernet Shield sowie ein LCD Display Stacke dann sind ja auf jeden Fall die PWm Ausgaenge 8-13 immer belegt . Diese kann man ja nicht dopplet ansteuern so nach dem Motto " dsa Signal ist fuer dich , und das ist fuer Dich . "

Ich brauchen naemlich die Ausgaenge um mein Relais Board anzusteuern.

Ich weis. Problem Imgrish hat zugeschlagen :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley:

Der Mega hat doch genug Ports, wo ist das Problem?
Da kannste noch mehr Relais dranhängen ohne irgendwelchen Shields in die Querezu kommen.

Und zum email kann ich mich nur wiederholen.

Ich hab ähnliches vor; lass mir aber eine SMS über ein altes Siemens-Handy schicken.
Funktioniert zuverlässig und schnell.
OK, kostet natürlich ein paar Cent.

Gruß Jürgen

Das Thema EMail-Verschicken kann in Zukunft zum Problem werden, da mittlerweile die Emailanbieter keine Mails mehr ohne TLS (Transport Layer Security – Wikipedia) für SMTP (das ist das Mailversand-Protokoll) annehmen, oder diese Möglichkeit nach und nach abschalten. Für TLS hat der Arduino aber zu wenig Ressourcen.
Wenn es nicht viele Nachrichten sind, kann man einen SMS Dienst verwenden, der per HTTP GET steuerbar ist. Ansonsten geht je nach "Endgerät" auch ein Push Notification Dienst.

Hallo,
wenn der Arduino eMail auf Grund von SSL nicht kann, dann könnte man es
umgekehrt machen.
Ede bricht ein, klaut die goldene Uhr der Großmutter. Arduino merkt das,
gibt Signal an PC, PC fährt hoch, Arduino sagt- sende EinbrucheMail.
Aber frag mich mal, wie man das programmiert. Keine Ahnung.
Gruß und Spaß dabei.
Andreas

GSM-Shield wäre auch eine Option. Und Platz nach oben für das Shield dürfte auch noch sein.

SkobyMobil:
Hallo,
wenn der Arduino eMail auf Grund von SSL nicht kann, dann könnte man es
umgekehrt machen.
Ede bricht ein, klaut die goldene Uhr der Großmutter. Arduino merkt das,
gibt Signal an PC, PC fährt hoch, Arduino sagt- sende EinbrucheMail.
Aber frag mich mal, wie man das programmiert. Keine Ahnung.
Gruß und Spaß dabei.
Andreas

Solange Ede den PC nicht auch mitnimmt. :fearful:
Dann würde ich doch lieber zu einem Raspberry greifen oder dem Arduino Yun.
Mario.

Danke. Soweit habe ich jetzt alles im Griff.

Das mit dem Startbefehl am PC ist zwar ganz sinvoll aber nicht so gewollt,

Mir geht es darum das ich über ein Separates GSM Gerät ne Mail versenden kann . Das hat aber nur ne ethernet SChnittstelle.
Sonst hätte ich ja direkt das GSM teil benutzt. Aber bekomme ich schon hin .

Das Disply funzt soweit auch und macht fast genau das was es soll . Aber irgendwie ist beim Starten des Displays der TExt gut lesbar und dannacht hat der Text nur ein zärtliches leuchten . Dreh ich den Poti Hoch wird da Display zwar heller aber ich habe ein Streifen in der Schrift der sich von oben nach unten zieht.,

#include <LiquidCrystal.h>
#include <DFR_Key.h>
//Pin assignments for SainSmart LCD Keypad Shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 
//---------------------------------------------

DFR_Key keypad;

int localKey = 0;
String keyString = "";
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5
void setup()
{
lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Mobile Security");
  lcd.setCursor(0, 1);
  lcd.print("Center Ver. 01");
  delay(2500); //startvorgang beendet 
  Serial.begin(9600);
  pinMode(22, INPUT_PULLUP); // zuweisung Eingaenge
  pinMode(23, INPUT_PULLUP);
  pinMode(3, OUTPUT); // zuweisung Ausgaenge
pinMode(2, OUTPUT); 
}

void loop(){
  //Eingaenge lesen 
  int sensorS = digitalRead(22);// Scharf Eingang
  int sensorA = digitalRead(23);// Alarm INput
  if (sensorS == LOW) {
    digitalWrite(3, LOW);
    lcd.clear();
    lcd.setCursor(5,0);
    lcd.print("Scharf");
  } 
  else {
    digitalWrite(3, HIGH);
    lcd.clear();
    lcd.setCursor(4,1);
    lcd.print("Unscharf");
  }
if (sensorS == LOW && sensorA == HIGH ) {
    digitalWrite(2, LOW); 
    lcd.clear();
    lcd.setCursor(4,0);
    lcd.print("Alarm");
  } 
  else {
    digitalWrite(2, HIGH);
  }
}

Woran kann sowas liegen ?

Mach mal Fotos von den Displayzuständen, ich kann's mir nicht vorstellen.

Hallo,

da ist der lcd.clear()-Befehl schuld. Du löschst ständig das Display um es neu zu beschreiben. Es flimmert. Am Anfang hast du eine lange Delay, wo der Inhalt stehen bleiben darf. Da funktioniert es so, wie es soll.
Lösch das Display nur, wenn sich was ändert oder überschreibe die alten Inhalte einfach mit den neuen. Man muss nicht erst das Display löschen. Zum Löschen kann man die stehengebliebene Zeichen mit Leerzeichen überschreiben.