Arduino Mega Server
Модератор: Alex
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
Если Доктор сказал " В морг !" , значит в морг....
История с графиками началась Тут. Коротко смысл. Пишем лог в файл Gotdata.css Потом его подсовываем со страницы сторонним серверам и в ответ получаем картинку графиков. Потом библиотеку aMchart установил на карту памяти. В дальнейшем написали страницу с логами и графиками по дням. Причем обновляемую в реальном времени.
Добавочного кода очень много и он размазан по всему скетчу.
Так что ,наверное , проще скинуть рабочий код. Но логирование зависит от платформы. У 8266 и 32 код разный ( незначительно ).
Полный проект Файл закинуть на карту Если что не понятно - спрашивайте ))
История с графиками началась Тут. Коротко смысл. Пишем лог в файл Gotdata.css Потом его подсовываем со страницы сторонним серверам и в ответ получаем картинку графиков. Потом библиотеку aMchart установил на карту памяти. В дальнейшем написали страницу с логами и графиками по дням. Причем обновляемую в реальном времени.
Добавочного кода очень много и он размазан по всему скетчу.
Так что ,наверное , проще скинуть рабочий код. Но логирование зависит от платформы. У 8266 и 32 код разный ( незначительно ).
Полный проект Файл закинуть на карту Если что не понятно - спрашивайте ))
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: Arduino Mega Server
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
кто то имел опыт?
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
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
Тут многое зависит от версии IDE и особенно от драйверов ESP8266 .Скетч был написан кучу лет назад. С 1.8.5 и 2.4.0-rc1 . Так же в дистрибутиве не прописана работа с мажериком. Надо дописать код из проекта для Меги 014.
Буквально позавчера помог запустить сервер удалённо. Если не получится - пишите в личку доступ.
Подправил вывод в мажерик. Пропишите только свою сеть и адрес мажерика.
Буквально позавчера помог запустить сервер удалённо. Если не получится - пишите в личку доступ.
СпойлерПоказать
- Рейтинг: 1.16%
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 40
- Зарегистрирован: Пт окт 13, 2017 9:37 pm
- Откуда: Выборг
- Благодарил (а): 11 раз
- Поблагодарили: 12 раз
Re: Arduino Mega Server
"Вкладки олицетворяют доступ к файлам с различными расширениями - без расширения, .c, .cpp или .h . Когда скетч компилируется, то все вкладки без расширения будут объединены вместе в один main sketch file" http://microsin.net/programming/avr/ard ... ocess.html то есть расширение .ino для обработчика CPP таковым не является. Объединение в один файл производится в алфавитном порядке по имени вкладок. "undefined reference to " указывает на то, что встретилась необъявленная ранее чем её использование функция.lihodeev писал(а): ↑Пн апр 13, 2020 8:59 amesp 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.
Последний раз редактировалось olmoro Пн апр 13, 2020 1:11 pm, всего редактировалось 1 раз.
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: Arduino Mega Server
тут как бы понятно, но весь проект как на меня держится на честном слове, и для его запуск в работу нужны правильные звезды. много звезд и правильных. А еще необходимо вникнуть в все ньюансы. При отсутствии док-ции это сложно.olmoro писал(а): ↑Пн апр 13, 2020 12:38 pm"Вкладки олицетворяют доступ к фалам с различными расширениями - без расширения, .c, .cpp или .h . Когда скетч компилируется, то все вкладки без расширения будут объединены вместе в один main sketch file" http://microsin.net/programming/avr/ard ... ocess.html то есть расширение .ino для обработчика CPP таковым не является. Объединение в один файл производится в алфавитном порядке по имени вкладок. "undefined reference to " указывает на то, что встретилась необъявленная ранее чем её использование функция.lihodeev писал(а): ↑Пн апр 13, 2020 8:59 amesp 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.
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
Тут всё намного сложнее. Автора нет уже более полутора лет и его сайт с дистрибутивами не обновляется.
Даже учитывая что я поддерживаю проект и применяю его для новых сфер ( всё таки удалось объединить MySensors гейт и АМС ), прицепить три вида экранов , не понятно где это выкладывать и кому это надо.
Вообще то IDE не настолько тупая среда , чтоб с неё куда то переходить.В качестве бонуса проверил работу на версии до 1.8.9 , драйверов 2.6.3 . Надо заменить библиотеку на TimeLib.h и установить заново ESP8266FS не ниже 0.4 версии.
Документации для запуска вроде достаточно. Надо только её обновить до актуальной версии.
Вот как добавить своё - ну тут примеров кучу выкладывали. Я наверное смогу более менее подробно объяснить , но вести соц сети у меня нет возможности. Если есть варианты - предлагайте.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 791
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
Re: Arduino Mega Server
Добрый вечер друзья!!!
Что же такое АМС с технической точки зрения?. Это набор стандартных скетчей коих в примерах на ардуино хоть пруд пруди собранных под логотипом АМС, скетчи склеены кодом и работают как единое целое. В принципе ничего особо сложного нет))). АМС как попытка создать коммерческий продукт вообщем то тоже заслуживает похвалы, но к сожалению второй Ли́нус То́рвальдс не получился)))
Думаю сложности несколько преувеличены))))Тут всё намного сложнее
Что же такое АМС с технической точки зрения?. Это набор стандартных скетчей коих в примерах на ардуино хоть пруд пруди собранных под логотипом АМС, скетчи склеены кодом и работают как единое целое. В принципе ничего особо сложного нет))). АМС как попытка создать коммерческий продукт вообщем то тоже заслуживает похвалы, но к сожалению второй Ли́нус То́рвальдс не получился)))
.Никому! Как показывает практика для новичка это сильно сложно, а человеку который разбирается во всем этом- не нужно. Вот и остался никому не нужный АМС, лишь изредка заглядывают люди в поисках чего то этакого но почему то их интерес имеет довольно краткосрочный характер, да оно и понятно- не может АМС конкурировать с малинами и апельсинами, там си++ постепенно вытесняется более высокоуровневыми языками, да и проще они. Вот как то так Дорогие мои детишечки))))не понятно где это выкладывать и кому это надо
Функция или метод не определены, вы не можете использовать то чего нет.undefined reference to
-
- Сообщения: 12
- Зарегистрирован: Сб мар 21, 2020 9:28 am
- Благодарил (а): 6 раз
- Поблагодарили: 0
Re: Arduino Mega Server
Добрался таки поковырять графики. АМС в Вашем варианте даже не стал пробовать запускать, ибо периферия разная, половину скетча комментировать надо.. Решил разобрать www-часть, появились вопросы.
1. При открытии браузером файла graf_1.htm в консоль выпадают ошибки - нет файлов tcal.js и style.css
2. Первое поле ввода задает имя некоего файла *.msg Что это за файл и что в нем хранится?
3. Второе поле ввода задает имена двух, как я понял, файлов с одинаковыми именами: *.txt с дескрипторами заголовков (предложен файл descr.txt, из него подгружаются заголовки), и *.log с самими уже данными. Можно кусочек файла descr.log, посмотреть что там внутри?
Пока у меня на этом этапе все результаты. Графиков увидеть еще не удалось.
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
1. Да , виноват. Файл tcal.js добавить надо.
2. Файл *.msg генерирует ардуина. Как - есть для этого вкладка sd_message.ino
3. Файл descr.txt - это просто перечень имен графиков. Пишется руками в текстовом редакторе. Имена пишутся по порядку как объявлены в коде.
Это сделано для удобства - иначе пришлось бы в двух местах прописывать.
4. Ну и самое главное - *.log Опять же пишет сама ардуина во вкладке tlog.ino
Для теста просто закинь на карту файлик
На странице календарём надо выбрать эту дату или переименовать на текущее число.
Расширение .txt переименовать в .msg
И вообще то только браузером страницу не открыть. Обязательно надо закинуть на карту памяти. Работает только в составе 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{}
}
Код: Выделить всё
Серверная,Кухня,Улица,Влажность 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
- Вложения
-
- 12-11-17.LOG
- (20.37 КБ) 148 скачиваний
- Рейтинг: 1.16%
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 12
- Зарегистрирован: Сб мар 21, 2020 9:28 am
- Благодарил (а): 6 раз
- Поблагодарили: 0
Re: Arduino Mega Server
Вроде потихоньку разбираюсь. Вопрос - а сообщения о событиях из файла *.msg - они накладываются на график в виде меток-лейблов каких-то?
Вчера зашел на сайт amcharts, покурил-почитал, подумал о том, а не быстрее ли будет самому по их мануалам эти самые графики прикрутить.. С АМС сервером почти так и вышло уже у меня- как тут чуть выше говорили, насобирал из скетчей-примеров нужного мне кода, нацеплял к есп-шке датчиков, запустил wifi, поднял веб-сервер. Все работает, логов уже недели за две насобирал. И далласы работают прекрасно, а на АМС не хотели ни в какую. Видать библиотеки там старые очень. Получилось уже почти все, что надо, без того, что совсем не надо
Вот разве веб-морду теперь тоже самому рисовать надо. Ну или все-таки что-то взять за основу. Кстати, а поделитесь, плз, библиотекой фтп-сервера для есп. С фтп много проще будет веб-мастерингом заниматься. На гитхабе какие-то странные узко специальные версии только лежат.
Вчера зашел на сайт amcharts, покурил-почитал, подумал о том, а не быстрее ли будет самому по их мануалам эти самые графики прикрутить.. С АМС сервером почти так и вышло уже у меня- как тут чуть выше говорили, насобирал из скетчей-примеров нужного мне кода, нацеплял к есп-шке датчиков, запустил wifi, поднял веб-сервер. Все работает, логов уже недели за две насобирал. И далласы работают прекрасно, а на АМС не хотели ни в какую. Видать библиотеки там старые очень. Получилось уже почти все, что надо, без того, что совсем не надо
Вот разве веб-морду теперь тоже самому рисовать надо. Ну или все-таки что-то взять за основу. Кстати, а поделитесь, плз, библиотекой фтп-сервера для есп. С фтп много проще будет веб-мастерингом заниматься. На гитхабе какие-то странные узко специальные версии только лежат.