Подключение NodeMCU к Microsoft Flow для отправки электронной почты - PullRequest
0 голосов
/ 22 марта 2019

Я изо всех сил пытался заставить мой NodeMCU связаться с моим Microsoft Flow. Я хочу иметь возможность отправлять электронную почту при нажатии кнопки. Однако после изучения этого урока я все еще не могу получить адрес. Если я возьму URL своего потока и опубликую его в адресной строке, это сработает, поэтому я не думаю, что проблема с этой целью. Пожалуйста, помогите!

Мне пришлось переключиться с библиотеки WiFiClientSecure.h на библиотеку WiFiClient.h, потому что «client.connect (host, 443)» никогда не вернется как истина. Это отрывок моего потока

https://powerusers.microsoft.com/t5/Microsoft-Flow-Community-Blog/IoT-Button-Microsoft-Flow/ba-p/47011

#include <ESP8266WiFi.h>

//static const uint8_t D0   = 16;
//static const uint8_t D1   = 5;
//static const uint8_t D2   = 4;
//static const uint8_t D3   = 0;
//static const uint8_t D4   = 2;
//static const uint8_t D5   = 14;
//static const uint8_t D6   = 12;
//static const uint8_t D7   = 13;
//static const uint8_t D8   = 15;
//static const uint8_t D9   = 3;
//static const uint8_t D10  = 1;


int inPin = 5;   // pushbutton connected to digital pin 0
int val = 0;     // variable to store the read value
//Include the SSL client
#include <WiFiClient.h>

char ssid[] = "My_SSID";       // your network SSID (name)
char password[] = "My_Password";  // your network key

//Add a SSL client
WiFiClient client;

//int ledPin = 2;

void setup() {
  //pinMode(ledPin, OUTPUT);
  //digitalWrite(ledPin, 1);

  pinMode(inPin, INPUT);      // sets the digital pin 1 as input

  Serial.begin(115200);

  // Set WiFi to station mode and disconnect from an AP if it was Previously
  // connected
  //WiFi.mode(WIFI_STA);
  //WiFi.disconnect();
  //delay(100);

  // Attempt to connect to Wifi network:
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    //digitalWrite(ledPin, 1);
    delay(500);
    //digitalWrite(ledPin, 0);
    Serial.print(".");
  }

  //digitalWrite( ledPin, 0);
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  IPAddress ip = WiFi.localIP();
  Serial.println(ip);

}

String MicrosoftFlow() {

  char host[] = "prod-51.westus.logic.azure.com";

  if (client.connect(host, 443)) {
    Serial.println("connected");

    String URL = "/workflows/f9f98afb10a14752b226d37fbffbad4a/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=epmkCBrYksnVnkzfjfvjen_PQ9Uk9oDzUiDrIvbjMuo";

    Serial.println(host);
    Serial.print("URL :"); Serial.println(URL);

    client.println(String("GET ") + URL + " HTTP/1.1");
    client.print("Host: "); client.println(host);
    client.println("User-Agent: arduino/1.0");
    client.println("");
    delay(10000);
  }
  else {
    Serial.println("Connection Failed.");
  }

}
void loop() {


  val = digitalRead(inPin);  // read input value
  delay(200);
  //Serial.println(val);

  if (val == HIGH) {
    Serial.println("BUTTON PRESSED");
    MicrosoftFlow();
    delay(1000);
    setup();
  }

}
...