Arduino Mega Server

Модератор: Alex

serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Сб апр 11, 2020 9:03 pm

Если Доктор сказал " В морг !" , значит в морг....
История с графиками началась Тут. Коротко смысл. Пишем лог в файл Gotdata.css Потом его подсовываем со страницы сторонним серверам и в ответ получаем картинку графиков. Потом библиотеку aMchart установил на карту памяти. В дальнейшем написали страницу с логами и графиками по дням. Причем обновляемую в реальном времени.
Добавочного кода очень много и он размазан по всему скетчу.
Так что ,наверное , проще скинуть рабочий код. Но логирование зависит от платформы. У 8266 и 32 код разный ( незначительно ).
Полный проект
AMS_32_2423_work.zip
(69.52 КБ) 167 скачиваний
Файл закинуть на карту
descr.txt
(96 байт) 189 скачиваний
Форум.zip
(136.67 КБ) 195 скачиваний
Если что не понятно - спрашивайте ))
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
lihodeev
Сообщения: 148
Зарегистрирован: Ср июл 25, 2018 10:37 pm
Благодарил (а): 43 раза
Поблагодарили: 8 раз

Re: Arduino Mega Server

Сообщение lihodeev » Пн апр 13, 2020 8:59 am

esp 12f, без мажордома компилируется, правда куча ошибок, но как то работает, как только раскомментируешь #define MAJORDOMO_FEATURE получаю -
arduino_mega_server_d1mini_en.cpp.o: In function `majordomoInit()':
C:\Program Files (x86)\Arduino/dmajor.ino:166: undefined reference to `sendHttpRequest(unsigned char*, int, WiFiClient)'
arduino_mega_server_d1mini_en.cpp.o: In function `sendRequestM(char*, int)':
C:\Program Files (x86)\Arduino/dmajor.ino:166: undefined reference to `sendHttpRequest(unsigned char*, int, WiFiClient)'
collect2.exe: error: ld returned 1 exit status
кто то имел опыт?
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пн апр 13, 2020 9:26 am

Тут многое зависит от версии IDE и особенно от драйверов ESP8266 .Скетч был написан кучу лет назад. С 1.8.5 и 2.4.0-rc1 . Так же в дистрибутиве не прописана работа с мажериком. Надо дописать код из проекта для Меги 014.
Буквально позавчера помог запустить сервер удалённо. Если не получится - пишите в личку доступ.
СпойлерПоказать
Скриншот 2020-04-13 09.18.39.png
Скриншот 2020-04-13 09.18.39.png (42.49 КБ) 4075 просмотров
arduino_mega_server.zip
(77.3 КБ) 165 скачиваний
Подправил вывод в мажерик. Пропишите только свою сеть и адрес мажерика.
За это сообщение автора serghei поблагодарил:
lihodeev (Пн апр 13, 2020 10:01 am)
Рейтинг: 1.16%
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
olmoro
Сообщения: 40
Зарегистрирован: Пт окт 13, 2017 9:37 pm
Откуда: Выборг
Благодарил (а): 11 раз
Поблагодарили: 12 раз

Re: Arduino Mega Server

Сообщение olmoro » Пн апр 13, 2020 12:38 pm

lihodeev писал(а):
Пн апр 13, 2020 8:59 am
esp 12f, без мажордома компилируется, правда куча ошибок, но как то работает, как только раскомментируешь #define MAJORDOMO_FEATURE получаю -
arduino_mega_server_d1mini_en.cpp.o: In function `majordomoInit()':
C:\Program Files (x86)\Arduino/dmajor.ino:166: undefined reference to `sendHttpRequest(unsigned char*, int, WiFiClient)'
arduino_mega_server_d1mini_en.cpp.o: In function `sendRequestM(char*, int)':
C:\Program Files (x86)\Arduino/dmajor.ino:166: undefined reference to `sendHttpRequest(unsigned char*, int, WiFiClient)'
collect2.exe: error: ld returned 1 exit status
кто то имел опыт?
"Вкладки олицетворяют доступ к файлам с различными расширениями - без расширения, .c, .cpp или .h . Когда скетч компилируется, то все вкладки без расширения будут объединены вместе в один main sketch file" http://microsin.net/programming/avr/ard ... ocess.html то есть расширение .ino для обработчика CPP таковым не является. Объединение в один файл производится в алфавитном порядке по имени вкладок. "undefined reference to " указывает на то, что встретилась необъявленная ранее чем её использование функция.
Варианты решения могут быть разные - от переименования вкладок до пунктуального следования правилам C/CPP.
Последний раз редактировалось olmoro Пн апр 13, 2020 1:11 pm, всего редактировалось 1 раз.
lihodeev
Сообщения: 148
Зарегистрирован: Ср июл 25, 2018 10:37 pm
Благодарил (а): 43 раза
Поблагодарили: 8 раз

Re: Arduino Mega Server

Сообщение lihodeev » Пн апр 13, 2020 1:04 pm

olmoro писал(а):
Пн апр 13, 2020 12:38 pm
lihodeev писал(а):
Пн апр 13, 2020 8:59 am
esp 12f, без мажордома компилируется, правда куча ошибок, но как то работает, как только раскомментируешь #define MAJORDOMO_FEATURE получаю -
arduino_mega_server_d1mini_en.cpp.o: In function `majordomoInit()':
C:\Program Files (x86)\Arduino/dmajor.ino:166: undefined reference to `sendHttpRequest(unsigned char*, int, WiFiClient)'
arduino_mega_server_d1mini_en.cpp.o: In function `sendRequestM(char*, int)':
C:\Program Files (x86)\Arduino/dmajor.ino:166: undefined reference to `sendHttpRequest(unsigned char*, int, WiFiClient)'
collect2.exe: error: ld returned 1 exit status
кто то имел опыт?
"Вкладки олицетворяют доступ к фалам с различными расширениями - без расширения, .c, .cpp или .h . Когда скетч компилируется, то все вкладки без расширения будут объединены вместе в один main sketch file" http://microsin.net/programming/avr/ard ... ocess.html то есть расширение .ino для обработчика CPP таковым не является. Объединение в один файл производится в алфавитном порядке по имени вкладок. "undefined reference to " указывает на то, что встретилась необъявленная ранее чем её использование функция.
Варианты решения могут быть разные - от переименования вкладок до пунктуального следования правилам C/CPP.
тут как бы понятно, но весь проект как на меня держится на честном слове, и для его запуск в работу нужны правильные звезды. много звезд и правильных. А еще необходимо вникнуть в все ньюансы. При отсутствии док-ции это сложно.
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пн апр 13, 2020 5:09 pm

lihodeev писал(а):
Пн апр 13, 2020 1:04 pm
.. весь проект как на меня держится на честном слове, и для его запуск в работу нужны правильные звезды. много звезд и правильных. А еще необходимо вникнуть в все ньюансы. При отсутствии док-ции это сложно.
Тут всё намного сложнее. Автора нет уже более полутора лет и его сайт с дистрибутивами не обновляется.
Даже учитывая что я поддерживаю проект и применяю его для новых сфер ( всё таки удалось объединить MySensors гейт и АМС ), прицепить три вида экранов , не понятно где это выкладывать и кому это надо.
Вообще то IDE не настолько тупая среда , чтоб с неё куда то переходить.В качестве бонуса проверил работу на версии до 1.8.9 , драйверов 2.6.3 . Надо заменить библиотеку на TimeLib.h и установить заново ESP8266FS не ниже 0.4 версии.
Документации для запуска вроде достаточно. Надо только её обновить до актуальной версии.
Вот как добавить своё - ну тут примеров кучу выкладывали. Я наверное смогу более менее подробно объяснить , но вести соц сети у меня нет возможности. Если есть варианты - предлагайте.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Вт апр 14, 2020 1:18 pm

Добрый вечер друзья!!!
Тут всё намного сложнее
Думаю сложности несколько преувеличены))))
Что же такое АМС с технической точки зрения?. Это набор стандартных скетчей коих в примерах на ардуино хоть пруд пруди собранных под логотипом АМС, скетчи склеены кодом и работают как единое целое. В принципе ничего особо сложного нет))). АМС как попытка создать коммерческий продукт вообщем то тоже заслуживает похвалы, но к сожалению второй Ли́нус То́рвальдс не получился)))
не понятно где это выкладывать и кому это надо
.Никому! Как показывает практика для новичка это сильно сложно, а человеку который разбирается во всем этом- не нужно. Вот и остался никому не нужный АМС, лишь изредка заглядывают люди в поисках чего то этакого но почему то их интерес имеет довольно краткосрочный характер, да оно и понятно- не может АМС конкурировать с малинами и апельсинами, там си++ постепенно вытесняется более высокоуровневыми языками, да и проще они. Вот как то так Дорогие мои детишечки))))
undefined reference to
Функция или метод не определены, вы не можете использовать то чего нет.
Smeech
Сообщения: 12
Зарегистрирован: Сб мар 21, 2020 9:28 am
Благодарил (а): 6 раз
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение Smeech » Пн апр 27, 2020 11:09 pm

serghei писал(а):
Сб апр 11, 2020 9:03 pm
Если что не понятно - спрашивайте ))
Добрался таки поковырять графики. АМС в Вашем варианте даже не стал пробовать запускать, ибо периферия разная, половину скетча комментировать надо.. Решил разобрать www-часть, появились вопросы.
1. При открытии браузером файла graf_1.htm в консоль выпадают ошибки - нет файлов tcal.js и style.css
2. Первое поле ввода задает имя некоего файла *.msg Что это за файл и что в нем хранится?
3. Второе поле ввода задает имена двух, как я понял, файлов с одинаковыми именами: *.txt с дескрипторами заголовков (предложен файл descr.txt, из него подгружаются заголовки), и *.log с самими уже данными. Можно кусочек файла descr.log, посмотреть что там внутри?
Пока у меня на этом этапе все результаты. Графиков увидеть еще не удалось.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Вт апр 28, 2020 9:28 pm

1. Да , виноват. Файл tcal.js добавить надо.
tcal.js
(11.54 КБ) 168 скачиваний
И вообще то только браузером страницу не открыть. Обязательно надо закинуть на карту памяти. Работает только в составе AMS/. файл стилей подтянется сам.
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{}
}
3. Файл descr.txt - это просто перечень имен графиков. Пишется руками в текстовом редакторе.

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

Серверная,Кухня,Улица,Влажность 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 
Для теста просто закинь на карту файлик
30-03-18.LOG
(19.12 КБ) 149 скачиваний
На странице календарём надо выбрать эту дату или переименовать на текущее число.
28-04-20.txt
(1.39 КБ) 132 скачивания
Расширение .txt переименовать в .msg
Вложения
12-11-17.LOG
(20.37 КБ) 148 скачиваний
За это сообщение автора serghei поблагодарил:
Smeech (Вт апр 28, 2020 10:31 pm)
Рейтинг: 1.16%
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Smeech
Сообщения: 12
Зарегистрирован: Сб мар 21, 2020 9:28 am
Благодарил (а): 6 раз
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение Smeech » Вт апр 28, 2020 10:44 pm

Вроде потихоньку разбираюсь. Вопрос - а сообщения о событиях из файла *.msg - они накладываются на график в виде меток-лейблов каких-то?
Вчера зашел на сайт amcharts, покурил-почитал, подумал о том, а не быстрее ли будет самому по их мануалам эти самые графики прикрутить.. С АМС сервером почти так и вышло уже у меня- как тут чуть выше говорили, насобирал из скетчей-примеров нужного мне кода, нацеплял к есп-шке датчиков, запустил wifi, поднял веб-сервер. Все работает, логов уже недели за две насобирал. И далласы работают прекрасно, а на АМС не хотели ни в какую. Видать библиотеки там старые очень. Получилось уже почти все, что надо, без того, что совсем не надо :)
Вот разве веб-морду теперь тоже самому рисовать надо. Ну или все-таки что-то взять за основу. Кстати, а поделитесь, плз, библиотекой фтп-сервера для есп. С фтп много проще будет веб-мастерингом заниматься. На гитхабе какие-то странные узко специальные версии только лежат.
Ответить