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

WebServer + ThingSpeak как совместить

e357sn

New member
Здравствуйте. Есть необходимость сделать локальный веб сервер на двух датчиках и отправкой температуры с одного (DS18B20) на ThingSpeak
Код с этих двух датчиков я соединил все ок вебсервер работает. Но вот добавить код с отправкой на ThingSpeak не получается
Как его туда добавить?

Код:
#include <Wire.h>
#include <OneWire.h>
#include <ESP8266WebServer.h>
#include <DallasTemperature.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define ONE_WIRE_BUS D4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
Adafruit_BME280 bme;

float temperature, humidity, pressure, tempSensor1;
uint8_t sensor1[8] = { 0x28, 0xFF, 0x64, 0x0E, 0x6B, 0xBD, 0x98, 0x6F  };

const char* ssid = "MikroTik";
const char* password = "e357sn@201";

ESP8266WebServer server(80);             
 
void setup()
{
  Serial.begin(115200);
  delay(100);

  sensors.begin();
  bme.begin(0x76);   

  Serial.println("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED)
  {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected..!");
  Serial.print("Got IP: ");  Serial.println(WiFi.localIP());

  server.on("/", handle_OnConnect);
  server.onNotFound(handle_NotFound);

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

}
void loop()
{
  server.handleClient();
}

void handle_OnConnect()
{
  sensors.requestTemperatures();
  tempSensor1 = sensors.getTempC(sensor1);
  temperature = bme.readTemperature();
  humidity = bme.readHumidity();
  pressure = bme.readPressure() / 133.3224;
  server.send(200, "text/html", SendHTML(temperature,humidity,pressure,tempSensor1));
}

void handle_NotFound()
{
  server.send(404, "text/plain", "Not found");
}

String SendHTML(float temperature,float humidity,float pressure,float tempSensor1)
{
  String ptr = "<!DOCTYPE html> <html>\n";
  ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
  ptr +="<title>ESP8266 Weather Station</title>\n";
  ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";
  ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;}\n";
  ptr +="p {font-size: 24px;color: #444444;margin-bottom: 10px;}\n";
  ptr +="</style>\n";
  ptr +="</head>\n";
  ptr +="<body>\n";
  ptr +="<div id=\"webpage\">\n";
  ptr +="<h1>BME280 Weather Station</h1>\n";
  ptr +="<p>Temperature: ";
  ptr +=temperature;
  ptr +="&deg;C</p>";
  ptr +="<p>Humidity: ";
  ptr +=humidity;
  ptr +="%</p>";
  ptr +="<p>Pressure: ";
  ptr +=pressure;
  ptr +="'mmHg</p>";
  ptr +="<h1>DS18B20 Weather Station</h1>\n";
  ptr +="<p>Temperature: ";
  ptr +=tempSensor1;
  ptr +="&deg;C</p>";
  ptr +="</div>\n";
  ptr +="</body>\n";
  ptr +="</html>\n";
  return ptr;
}
 
Сверху Снизу