• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266WebServer и отправка данных на thingspeak

avgaz

New member
Добрый день, подскажите последующему вопросу имеется скетч вебсервера возьмем из примера
Код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

const char* ssid = "........";
const char* password = "........";

ESP8266WebServer server(80);

const int led = 13;

void handleRoot() {
  digitalWrite(led, 1);
  server.send(200, "text/plain", "hello from esp8266!");
  digitalWrite(led, 0);
}

void handleNotFound() {
  digitalWrite(led, 1);
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET) ? "GET" : "POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) {
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
  digitalWrite(led, 0);
}

void setup(void) {
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp8266")) {
    Serial.println("MDNS responder started");
  }

  server.on("/", handleRoot);

  server.on("/inline", []() {
    server.send(200, "text/plain", "this works as well");
  });

  server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP server started");
}

void loop(void) {
  server.handleClient();
}
Работает все нормально, но есть необходимость отправлять из этого кода данные на thingspeak
пробую следующим образом
Код:
void updateThingSpeak(String tsData)
{
          String thingspeak = "GET /update HTTP/1.1";
         thingspeak += "Host: api.thingspeak.com";
          thingspeak += "Connection: close";
          thingspeak += "X-THINGSPEAKAPIKEY: "+writeAPIKey+"\n";
          thingspeak += "Content-Type: application/x-www-form-urlencoded\n";
          thingspeak += "Content-Length:";
          thingspeak += tsData.length();
          thingspeak += "\n\n";
          thingspeak +=(tsData);
          server.send(200, "text/html", thingspeak);
          Serial.println (thingspeak);
но не какой отправки не происходит собственно то есть данные все поступают в эту функцию но не отправляются, как собственно реализовать из этого сервера отправку?
 

CodeNameHawk

Moderator
Команда форума
Сервер отправляет, когда у него запрашивают.
Вам нужен клиент, который будет посылать на сервер.
Посмотрите BasicHTTPClient.ino
 
Последнее редактирование:
Сверху Снизу