Поиск по этому блогу

воскресенье, 11 декабря 2016 г.

Wemos D1. Управляем розетками через интернет.

#include <esp8266wifi.h>

const char* ssid     = "SSIDNAME";      // SSID of local network
const char* password = "YOUPASSWORD";  // Password on network
char servername[]="a131bb4c.ngrok.io";             // my remote server
WiFiClient client;
String result;

int pinrelay = D2;

extern "C" {
#include "user_interface.h"
}

String deleteHttpHeader(String result) {
   int headerLast = result.indexOf("X-Powered-By: PHP/5.5.9-1ubuntu4.20");
   if (headerLast > -1) {
      result.trim();
      result = ""; 
  }
   return result;
}

void setup() {
  pinMode(BUILTIN_LED, OUTPUT);
  pinMode(pinrelay, OUTPUT);
  Serial.begin(9600);
  delay(5000);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) { delay(500); }
}

void loop() {
  digitalWrite(BUILTIN_LED, !digitalRead(BUILTIN_LED));
  result="";
  doSendGET();
  delay(2000);
}


void doSendGET() {                      
  if (client.connect(servername, 80)) {                     
    client.print("GET /test/get");
    client.println(" HTTP/1.1");                // download text
    client.printf("Host: %s\n", servername);
    client.println("Connection: close");
    client.println();
  } else {
    Serial.println("Connection failed"); //error message if no client connect
  }

  while(client.connected() && !client.available()) delay(1); //waits for data
  while (client.connected() || client.available()) { //connected or data available
    char c = client.read(); //gets byte from ethernet buffer
    result = result + c;
  }
  client.stop();

  if (result.indexOf("status-1") > -1) {
    Serial.println("Turn ON");
    digitalWrite(pinrelay, HIGH);
  } else {
    Serial.println("Turn OFF");
    digitalWrite(pinrelay, LOW);
  }
}

5 комментариев:

  1. doSendGET(); пишет ошибка
    "doSendGET();

    ^

    exit status 1
    'doSendGET' was not declared in this scope"
    Название библиотеки неправильно, у вас #include , а надо #include (у меня ругался на это)

    ОтветитьУдалить
    Ответы
    1. Что-то не совсем понял про include. Где именно ошибка? Возможно блог конвертирует символы.

      Удалить
    2. esp8266wifi.h и ESP8266WiFi.h

      Удалить
    3. sketch_feb28a:35: error: 'doSendGET' was not declared in this scope

      doSendGET();

      ^

      exit status 1
      'doSendGET' was not declared in this scope

      Удалить
    4. Возможно мы их из разных источников скачали или разные версии. Поэтому регистр имен файлов и отличается.

      Удалить

Количество·просмотров