Hallo
ich habe (danke der Hilfe hier im Forum) es hinbekommen das mein 8266 Emails versendet.
Jetzt habe ich folgendes Problem.
Ich Messe die Luftfeuchtigkeit mittels BME280.
Jetzt soll mein 8266 bei einer bestimmten Luftfeuchtigkeit den gemessenen Wert mir per Mail schicken. Die Mail schickt er mir auch, aber ich weiß nicht wie ich den Variable der Befehlszeile anhänge.
Habe versucht den Text
aber einfach die Variable im Befehl anhängen bekomme ich nicht hin
folgendes funktioniert nicht auch mit &
if(SMTP.Send("Email@gmail.com",(bme.readHumidity()))) {
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
unsigned long delayTime;
// ---------------
// Email Teil
// ---------------
#include <ESP8266WiFi.h>
#include <ESP8266SMTP.h>
const char* ssid = "Meine SSD"; // WIFI network name
const char* password = "Mein Passwort"; // WIFI network password
uint8_t connection_state = 0; // Connected to WIFI or not
uint16_t reconnect_interval = 10000; // If not connected wait time to try again
uint8_t WiFiConnect(const char* ssID, const char* nPassword)
{
static uint16_t attempt = 0;
Serial.print("Connecting to ");
Serial.println(ssID);
WiFi.begin(ssID, nPassword);
uint8_t i = 0;
while(WiFi.status() != WL_CONNECTED && i++ < 50) {
delay(200);
Serial.print(".");
}
++attempt;
Serial.println("");
if(i == 51) {
Serial.print(F("Connection: TIMEOUT on attempt: "));
Serial.println(attempt);
if(attempt % 2 == 0)
Serial.println(F("Check if access point available or SSID and Password are correct\r\n"));
return false;
}
Serial.println(F("Connection: ESTABLISHED"));
Serial.print(F("Got IP address: "));
Serial.println(WiFi.localIP());
return true;
}
void Awaits(uint16_t interval)
{
uint32_t ts = millis();
while(!connection_state){
delay(50);
if(!connection_state && millis() > (ts + interval)){
connection_state = WiFiConnect(ssid, password);
ts = millis();
}
}
}
// ---------------
// ENDE Email Teil
// ---------------
void setup() {
Serial.begin(9600);
while(!Serial); // time to get serial running
// Serial.println(F("BME280 test"));
Serial.println("Aufwachen");
delayTime =1000;
pinMode(D5, OUTPUT);
unsigned status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin();
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!");
Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID(),16);
Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");
Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n");
Serial.print(" ID of 0x60 represents a BME 280.\n");
Serial.print(" ID of 0x61 represents a BME 680.\n");
while (1);
}
Serial.println("-- Default Test --");
delayTime = 1000;
Serial.println();
delay(delayTime);
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");
// ---------------
// Email Teil
// ---------------
delay(2000);
connection_state = WiFiConnect(ssid, password);
if(!connection_state) { // if not connected to WIFI
Awaits(reconnect_interval); // constantly trying to connect
}
uint32_t startTime = millis();
SMTP.setEmail("Test@gmail.com")
.setPassword("Mein Passwort")
.Subject("ESP8266SMTP Gmail test")
.setFrom("ESP8266SMTP")
.setForGmail(); // simply sets port to 465 and setServer("smtp.gmail.com");
// message text from http://www.blindtextgenerator.com/lorem-ipsum
// if(SMTP.Send("EmailADR@gmail.com", "(bme.readHumidity())")) {
if(SMTP.Send("EmailADR@gmail.com", (bme.readHumidity()))) {
Serial.println(F("Message sent"));
} else {
Serial.print(F("Error sending message: "));
Serial.println(SMTP.getError());
}
Serial.println(millis() - startTime);
// ---------------
// ENDE Email Teil
// ---------------
}
void loop() {
if (bme.readHumidity()>60)
{
Serial.print(bme.readHumidity());
for (int i=0; i<60; i++){
digitalWrite(D5, HIGH);
delay(300);
digitalWrite(D5, LOW);
delay(300);
}
//Serial.println();
}
if (bme.readHumidity()<60)
{
digitalWrite(D5, LOW);
Serial.print("DeepSleep");
ESP.deepSleep(1*3*1000000);
delay(100);
}
Serial.println();
}