#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
const char *ssid = "a";
const char *password = "88888888";
ESP8266WebServer server(80);
/* http://192.168.4.1 in a web browser*/
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
String webString = "";
#include <SPI.h>
#include <SD.h>
long id=1;
void setup() {
//инициализируем SD карту, если не удачно то выводим в USART ошибку инициализации
//если удачно, то выводим сообщение что все ОК
Serial.begin(115200);
Serial.println();
Serial.print("Configuring access point...");
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
server.on("/", handleRoot);
server.begin();
Serial.println("HTTP server started");
sensors.begin();
if (!SD.begin(15)) {
Serial.println("SD не запущена !");
return;
}
Serial.println("SD запущена успешно!");
File Logcsv = SD.open("logcsv.csv", FILE_WRITE );
String Title = String(id)+ ","+ String("t1")+","+String("t2")+","+String("t3")+","+String("t4")+","+String("t5");
if (Logcsv)
{
Logcsv.println(",,,,");
Logcsv.println(Title);
Logcsv.close();
Serial.println(Title);
}
else
{
Serial.println("Не могу записать данные в csv");
}
File Loghtm = SD.open("loghtm.htm", FILE_WRITE );
if (Loghtm)
{
Loghtm.println(",,,,");
Loghtm.println(Title);
Loghtm.close();
Serial.println(Title);
}
else
{
Serial.println("Не могу записать данные в csv");
}
}
void loop()
{
server.handleClient();
sensors.requestTemperatures(); // Send the command to get temperatures
}
void handleRoot()
{
int time=millis()/1000;
int h =(((time/60)/60)%60);
if (h<0){h=0;}
int s =(time%60);
int m =((time/60)%60);
if (m<0){m=0;}
File Logcsv = SD.open("logcsv.csv", FILE_WRITE );
String TempAll = String(id)+ ","+ String(sensors.getTempCByIndex(0))+","+String("t2")+","+String("t3")+","+String("t4")+","+String("t5") +String(h,DEC)+":"+String(m,DEC)+":"+String(s,DEC);
if (Logcsv)
{
Logcsv.println(TempAll);
Logcsv.close();
Serial.println(TempAll);
}
else
{
Serial.println("Не могу записать данные в csv");
}
File Loghtm = SD.open("loghtm.htm", FILE_WRITE );
if (Loghtm)
{
Loghtm.println(TempAll);
Serial.println(TempAll);
}
else
{
Serial.println("Не могу записать данные в csv");
}
id++;
delay(2000);
// цикл для построчного чтения файла с SD карты и отправки данных в браузер
while (Loghtm.available()) { // пока не достигнем конца файла
char buff = Loghtm.read(); //читаем символ из файла
webString += buff; //добавляем прочитанный символ к строке
server.send(200, "text/plain", webString); // send to someones browser when asked
Serial.print(webString);
}
Loghtm.close(); // закрываем файл на SD карте
delay(2000);
}