Страница 247 из 326

Re: Arduino Mega Server

Добавлено: Ср фев 07, 2018 9:51 pm
Alex
вот здесь на форуме по АМС Вы часто на вопрос как что-либо сделать или что и откуда берется посылаете учить матчасть и копать код
Если я могу сразу ответить и что-то подсказать, то отвечаю, но АМС неисчерпаем как атом ( (с) сами знаете кто) и если я буду сам копать код по каждому вопросу, то у меня времени ни на что больше не останется.

Re: Arduino Mega Server

Добавлено: Чт фев 08, 2018 5:13 am
ser009
Sps писал(а):
Alex писал(а):
... хотя вот здесь на форуме по АМС Вы часто на вопрос как что-либо сделать или что и откуда берется посылаете учить матчасть и копать код, а вот с 3D принтером кликнуть 2 раза мышкой и купить, напрочь отбивает творческое начало.
Проект изначально разрабатывался как коммерческий. И до сих пор им остается. Так что это нормально.

Re: Arduino Mega Server

Добавлено: Чт фев 08, 2018 8:17 am
Alex
Проект изначально разрабатывался как коммерческий
Это не совсем так. У проекта много граней и монетизация это только одна из них. Любой желающий может бесплатно скачать любой дистрибутив и свободно его использовать для личных целей и обучения. А также каждый может задать вопрос на форуме и получить ответ от меня или от сообщества.

Re: Arduino Mega Server

Добавлено: Чт фев 08, 2018 7:15 pm
Sps
Alex писал(а):
А также каждый может задать вопрос на форуме и получить ответ от меня или от сообщества.
Как организовать логгирование показаний датчиков на SD карту с последующим их выводом в график.

Re: Arduino Mega Server

Добавлено: Чт фев 08, 2018 7:55 pm
Alex
Как организовать логгирование показаний датчиков на SD карту с последующим их выводом в график.
Пару сообщений назад я уже ответил по поводу таких вопросов.
Если я могу сразу ответить и что-то подсказать, то отвечаю, но АМС неисчерпаем как атом ( (с) сами знаете кто) и если я буду сам копать код по каждому вопросу, то у меня времени ни на что больше не останется.
Если коротко, то эта задача вполне решаемая, но потребует значительных затрат сил и времени на её реализацию. Тут уже выкладывали пару её реализаций, я за этим не слежу, форумчане помогут ссылками.

Re: Arduino Mega Server

Добавлено: Чт фев 08, 2018 8:11 pm
serghei
Конечно ответим ! Буквально вчера Alexsis_76 выложил поправленную версию страницы с динамическим обновлением графиков. Конкретная реализация зависит от платформы , на которую установлен AMS. ( От этого зависит процедура записи файла. У меня конкретно работает на DUE и ESP32 ). Почитайте историю создания этого чуда в ветке " Визуализация".

Re: Arduino Mega Server

Добавлено: Чт фев 08, 2018 8:15 pm
nick7zmail
Sps писал(а): Как организовать логгирование показаний датчиков на SD карту с последующим их выводом в график.
где-то тут https://majordomo.smartliving.ru/forum/ ... 246#p51246

Re: Arduino Mega Server

Добавлено: Чт фев 08, 2018 8:34 pm
Sps
serghei писал(а):Буквально вчера Alexsis_76 выложил поправленную версию страницы с динамическим обновлением графиков. Конкретная реализация зависит от платформы , на которую установлен AMS.
У меня Mega 2560 AMS v.0.16 чтобы прикрутить эти графики мне надо что-то менять в AMS?

Re: Arduino Mega Server

Добавлено: Чт фев 08, 2018 9:41 pm
serghei
Та ссылка на самое начало , с чего все началось. Работает на ESP8266 без SD карты. Запись истории в памяти 3 мегабайта. Использует сторонний сервер для построения графиков. То есть посылает файл данных и сервер возвращает картинку. Ограничения - файл не более 1 мегабайта. Из глобальных минусов - используется сторонний серверов и очень медленная работа.
На Меге сначала надо сформировать файл с историей значений каких хотите. Потом скачать и установить библиотеки графиков. И последнее - просто установить готовую .htm страницу graf.htm / Да и еще руками прописать в файле .txt названия для графиков.
А всё!
Все это работает на Due более полугода. Причем в двух версиях - логгирование по дням и за один период.
Готовый код выложу в ветке " Библиотека готовых решений". Единственное - на Меге я это не проверял. Да и работает очень медленно.
Сначала Вам надо проверить как правильно создается и записывается файл истории. А затем просто скопировать и установить файл graf.htm

PS. Если сами разберётесь - то быстро отвечу. Добавьте вкладку tlog
SPOILERSPOILER_SHOW

Код: Выделить всё

/*
  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() {                                              // Инициализируем модуль

   modulTlog = MODUL_ENABLE;                                   // Если модуль активен
  started("TLog", true);                                       // Старт модуля
  
}


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);                                          // Возвращаем полученные значения в место вызова функции 

}


#ifdef DATALOG_DEBUG
//Serial.print(objSens[n]);
// Serial.print(": ");
// Serial.println(current_temp[n]);
#endif 

#endif // DATALOG_FEATURE       
На SD закинь файлы
LOG.zip
(135.55 КБ) 190 скачиваний
В сервер ажакс добавить по смыслу
SPOILERSPOILER_SHOW

Код: Выделить всё

void sendLogAnswer (WiFiClient cl) {
  cl.println(makeAnswer("text/log"));
}

void sendMsgAnswer (WiFiClient cl) {
  cl.println(makeAnswer("text/msg"));
===========

  else if (StrContains(HTTP_req, "GET /") && StrContains(HTTP_req, ".csv")) {
    fileName = strtok(HTTP_req, "GET /");
    webFile = SD.open("/" + (String)fileName);
    if (webFile) {
      sendCsvAnswer(cl);
    }
    else {
      sendErrorAnswer(fileName, cl);
    }
  }

    else if (StrContains(HTTP_req, "GET /") && StrContains(HTTP_req, ".log")) {
    fileName = strtok(HTTP_req, "GET /");
    webFile = SD.open("/" + (String)fileName);
    if (webFile) {
      sendLogAnswer(cl);
    }
    else {
      sendErrorAnswer(fileName, cl);
    }
  }

    else if (StrContains(HTTP_req, "GET /") && StrContains(HTTP_req, ".msg")) {
    fileName = strtok(HTTP_req, "GET /");
    webFile = SD.open("/" + (String)fileName);
    if (webFile) {
      sendMsgAnswer(cl);
    }
    else {
      sendErrorAnswer(fileName, cl);
    }
  }
}

Re: Arduino Mega Server

Добавлено: Пт фев 09, 2018 6:38 pm
Sps
serghei писал(а):Потом скачать и установить библиотеки графиков.
Библиотеку можно скачать любую (для построения графиков) или эти файлы заточены под что-то определенное?