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