AndreyFly
New member
Абсолютно верно, если бы знал, то давно бы сделал. Но к сожалению в интернет протоколах и все, что связано с Web протоколами я не разбираюсь от слова совсем. Я до сих пор не понимаю принципов общения модулем, но думаю за пару недель поборю.
Если я все правильно понял, то по запросу с клиента, будет вызываться процедура [inline]void handleRoot() {[/inline]. В таком случае я опрашиваю АЦП именно при ее вызове, высчитываю среднее по 10 последним измерениям и шлю на клиента. Все ли верно я понял?
Код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
const char *ssid = "Paraplan";
const char *password = "Throttle";
const int numReadings = 10;
int readings[numReadings]; // the readings from the analog input
int readIndex = 0; // the index of the current reading
int total = 0; // the running total
int average = 0; // the average
int inputPin = A0;
int val;
ESP8266WebServer server(80);
void handleRoot() {
total = total - readings[readIndex];
readings[readIndex] = analogRead(inputPin);
total = total + readings[readIndex];
readIndex = readIndex + 1;
if (readIndex >= numReadings) {
readIndex = 0;}
average = total / numReadings;
server.send(200, "text/html", String(average));
}
void setup() {
for (int thisReading = 0; thisReading < numReadings; thisReading++) {
readings[thisReading] = 0;}
delay(1000);
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
server.on("/", handleRoot);
server.begin();
}
void loop() {
server.handleClient();
}