Re: Arduino Mega Server
Добавлено: Вт апр 28, 2020 9:28 pm
1. Да , виноват. Файл tcal.js добавить надо.
И вообще то только браузером страницу не открыть. Обязательно надо закинуть на карту памяти. Работает только в составе AMS/. файл стилей подтянется сам.
2. Файл *.msg генерирует ардуина. Как - есть для этого вкладка sd_message.ino
3. Файл descr.txt - это просто перечень имен графиков. Пишется руками в текстовом редакторе. Имена пишутся по порядку как объявлены в коде.
Это сделано для удобства - иначе пришлось бы в двух местах прописывать.
4. Ну и самое главное - *.log Опять же пишет сама ардуина во вкладке tlog.ino
Для теста просто закинь на карту файлик
На странице календарём надо выбрать эту дату или переименовать на текущее число.
Расширение .txt переименовать в .msg
2. Файл *.msg генерирует ардуина. Как - есть для этого вкладка sd_message.ino
Код: Выделить всё
/*
Modul Message ver 0.1
part of Arduino Mega Server project
Модуль архивных сообщений
для Ардуино Мега Сервер
*/
/* Создает запись в файле *.msg
* Необходимо передать функции:
* MessText - название сообщения
* MessType - тип сообщения
*/
void MessLoger(String MessText, String MessType){
// собираем Имя путь и имя файла
String MessName;
if(day()<10)
MessName+="0"+String(day(),DEC);
else
MessName+=String(day(),DEC);
if(month()<10)
MessName+="-0"+String(month(),DEC);
else
MessName+="-"+String(month(),DEC);
MessName+="-"+String(year()-2000,DEC);
//MessName+=".csv";
MessName+=".msg";
File file = SD.open(String (MessName), FILE_WRITE);
if(file){
if(day() < 10) {file.print('0');}
file.print(String (day()));
file.print("-");
if(month() < 10) {file.print('0');}
file.print(String (month()));
file.print("-");
file.print( String (year()));
file.print(",");
if(hour() < 10) {file.print('0');}
file.print( String (hour()));
file.print(":");
if(minute() < 10) {file.print('0');}
file.print(String (minute()));
file.print(":");
if(second() < 10) {file.print('0');}
file.print(String (second()));
file.print(",");
file.print( String (MessText));
file.print(",");
file.println( String (MessType));
file.close();
}
else{}
}Код: Выделить всё
Серверная,Кухня,Улица,Влажность DHT,Температура DHT,Температура BME,Влажность BME,Давление BMEЭто сделано для удобства - иначе пришлось бы в двух местах прописывать.
4. Ну и самое главное - *.log Опять же пишет сама ардуина во вкладке tlog.ino
Код: Выделить всё
/*
Module TLOG DUE
part of Arduino Mega Server project
*/
/*
Модуль создаёт два файла :
1 "Gotdata.css" для страницы "Chart.htm". Автор идеи и сода Ledmax.
2 "/день-месяц-год/.log" для страницы "Graf.htm". Автор кода Ser009.
Страницу "Graf.htm" создал Alexsis_76.
*/
#ifdef TLOG_FEATURE
void TlogInit() { // Инициализируем модуль
moduleTlog = MODULE_ENABLE; // Если модуль активен
started("TLog"); // Старт модуля
}
void TlogWorks(){
if(cycle5m){ // Каждые 5 минут записываем данные
// собираем Имя путь и имя файла
String Mess1Name;
//MessName+="/Alarm/";
if(day()<10)
Mess1Name+="0"+String(day(),DEC);
else
Mess1Name+=String(day(),DEC);
if(month()<10)
Mess1Name+="-0"+String(month(),DEC);
else
Mess1Name+="-"+String(month(),DEC);
Mess1Name+="-"+String(year()-2000,DEC);
Mess1Name+=".log";
File dataFile = SD.open(String (Mess1Name), FILE_WRITE); // Открываем файл для записи логов страницы "Graf.htm"
if (dataFile) { // Если удалось открыть файл
dataFile.println(logString()); // Записываем строку логов в файл
dataFile.close(); // Закрываем файл
}else // Если не удалось открыть файл
Serial.println("Can't open file"); // Выводим сообщение об ошибке
}
//================================================================================================
if(cycle5m){ // Каждые 5 минут записываем данные
File dataFile = SD.open("gotdata.css", FILE_WRITE); // Открываем файл для записи логов для страницы "Chart.htm"
if (dataFile) { // Если удалось открыть файл
dataFile.println(logString()); // Записываем строку логов в файл
dataFile.close(); // Закрываем файл
}else // Если не удалось открыть файл
Serial.println("Can't open file"); // Выводим сообщение об ошибке
}
}
String logString() { // Функция для генерации логов
String dataString = String (year()) + "-" + String (month()) + "-" + String (day()) + " " + String (hour()) + ":" + String (minute()) + ":" + String (second())+ " " + ","
+ String (current_temp[0]) + "," + String (current_temp[1]) + "," + String (current_temp[2]) + "," + String (dht.readHumidity()) + "," + String (dht.readTemperature())+ " " + ","
+ String (temp) + "," + String (hum) + "," + String (pres); // Помещаем дату и температуру в новую строку логов ( можно добавить еще данных. 6 штук работают уверенно )
Serial.println(dataString); // Выводим строку логов на монитор серийного порта
return(dataString); // Возвращаем полученные значения в место вызова функции
}
#endif // DATALOG_FEATURE