Я регулярно захожу на этот сайт как начинающий, почитать, что для себя интересного подсмотреть.
Помогите мне, изменить пару строк, код не мой, мне нужен алгоритм работы, не при включении отправлять сообщение на мэил, с этим я разобрался всё отлично тут. А отправлять по высокому уровню на пине 5, который я пытаюсь добавить. Если для кого кто знает, это 2 минуты , помогите... Пожелание, я читал тут не один пост с издёвками типа тебе за 500р любой напишет, или вот пример из гугла, просьба нет желания помочь, не пишите мне, надо этого. Заранее спасибо за понимание.
Вот код который я пытаюсь под себя переделать в цикле в строке 104, (97 убирается ), при опросе кнопки, мне не понятно. И можно ли эту функцию так использовать
Помогите мне, изменить пару строк, код не мой, мне нужен алгоритм работы, не при включении отправлять сообщение на мэил, с этим я разобрался всё отлично тут. А отправлять по высокому уровню на пине 5, который я пытаюсь добавить. Если для кого кто знает, это 2 минуты , помогите... Пожелание, я читал тут не один пост с издёвками типа тебе за 500р любой напишет, или вот пример из гугла, просьба нет желания помочь, не пишите мне, надо этого. Заранее спасибо за понимание.
Вот код который я пытаюсь под себя переделать в цикле в строке 104, (97 убирается ), при опросе кнопки, мне не понятно. И можно ли эту функцию так использовать
Код:
//подаем питание на контроллер на время отработки кода. //
//светодиод для сигнализирования успешной передачи сообщения. //
//на 13 пине св диод сигнализирует о удачной отправке на 5 сек //
#include <ESP8266WiFi.h>
#include "Gsender.h"
#pragma region Globals
#define INPUT_PIN 5
IPAddress ip(192, 168, 1, 100); //Node static IP
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
const char* host = "Mail";
const char* ssid = "********"; // имя вашейсети
const char* password = "a********"; // пароль сети
uint8_t connection_state = 0;
uint16_t reconnect_interval = 20000; // если не удалось связаться - повторим через 10 секунд
#pragma endregion Globals
uint8_t WiFiConnect(const char* nSSID = nullptr, const char* nPassword = nullptr)
{
static uint16_t attempt = 0;
Serial.print("Connecting to ");
if(nSSID) {
WiFi.begin(nSSID, nPassword);
Serial.println(nSSID);
} else {
WiFi.begin(ssid, password);
Serial.println(ssid);
}
uint8_t i = 0;
while(WiFi.status()!= WL_CONNECTED && i++ < 100)
{
delay(200);
Serial.print(".");
}
++attempt;
Serial.println("");
if(i == 101) {
Serial.print("Connection: TIMEOUT on attempt: ");
Serial.println(attempt);
if(attempt % 2 == 0)
Serial.println("Check if access point available or SSID and Password\r\n");
return false;
}
Serial.println("Connection: ESTABLISHED");
Serial.print("Got IP address: ");
Serial.println(WiFi.localIP());
return true;
}
void Awaits()
{
uint32_t ts = millis();
while(!connection_state)
{
delay(100);
if(millis() > (ts + reconnect_interval) && !connection_state){
connection_state = WiFiConnect();
ts = millis();
}
}
}
void setup()
{
pinMode(INPUT_PIN, INPUT);
digitalWrite(INPUT_PIN, LOW);
pinMode(13, OUTPUT);
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.config(ip, gateway, subnet);
connection_state = WiFiConnect();
if(!connection_state) // if not connected to WIFI
Awaits(); // constantly trying to connect
Gsender *gsender = Gsender::Instance(); // Getting pointer to class instance
String subject = "ESP8266 send mesege";
content += "<p>.<p>";
content += "<p>TEXT...XXXX.......TEXT<p>";
if(gsender->Subject(subject)->Send("********@mail.ru", content)) {
Serial.println("Message send.");
digitalWrite(13, HIGH); // включаем зеленый светодиод - все ОК
delay(2000);
digitalWrite(13, LOW); // вылючаем зеленый светодиод
} else {
Serial.print("Error sending message: ");
Serial.println(gsender->getError());
}
}
void loop(){
if(digitalRead(INPUT_PIN)==HIGH) {
Serial.println("5p +1 now ");
///// gsender->Subject(subject)->Send("altar71@mail.ru", content) {
Serial.println("Message send.");
}
}