Arduino Mega Server для ESP32
Модератор: Alex
-
- Сообщения: 791
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
Re: Arduino Mega Server для ESP32
что такое NOP?error: 'NOP' was not declared in this scope
см функцию spiTrans
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server для ESP32
Я подразумеваю , что NOP , это нет операции. Тут засада для меня гораздо глубже. Для 8266 я просто скопировал код для NRF24 и вставил в AMS и все скомпилировалось и заработало.
С ЕСП32 такой фокус не сработал из-за <avr/pgmspace.h> и других не соответстрий в драйверах.Как переписывать библиотеки под дрова я пока не знаю.
И работа с SD картой то же по другому организована.Пока файлы записать на карту не знаю как.
С ЕСП32 такой фокус не сработал из-за <avr/pgmspace.h> и других не соответстрий в драйверах.Как переписывать библиотеки под дрова я пока не знаю.
И работа с SD картой то же по другому организована.Пока файлы записать на карту не знаю как.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 182
- Зарегистрирован: Чт ноя 24, 2016 10:47 am
- Благодарил (а): 5 раз
- Поблагодарили: 25 раз
Re: Arduino Mega Server для ESP32
serghei писал(а):И работа с SD картой то же по другому организована.Пока файлы записать на карту не знаю как.
Код: Выделить всё
File file = SD.open("/test.txt", w);
file.print("test");
file.close();
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server для ESP32
Так не пробовал.В тестовом примере для карты запись и чтение файлов работает. Я просто не доганяю как это адаптировать для 32.Тут ещё надо сформировать дату и значение переменной.Вечером попробую подробней написать, с планшета код не вставить.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 791
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
Re: Arduino Mega Server для ESP32
мне честно говоря сложно представить использование NOP в таком контексте ,загляни в spiTransЯ подразумеваю , что NOP , это нет операции
что она принимает
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server для ESP32
Я в шоке. В дистрибутиве AMS для ESP32, в модуле SD есть код для любых манипуляций с файлами. АМС его не использует и я его закомментировал, но оставил (видать специально для вас).И работа с SD картой то же по другому организована.Пока файлы записать на карту не знаю как.
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server для ESP32
Я сам от себя в не меньшем шоке ( из - за проблем с головой и памятью 15 лет назад ). Только благодаря Вашим урокам и помощи форумчан что то стало получаться.
Закоментированный код карты - это первый скетч , который запустил на ESP32. Всё чудесно работало. Сейчас перепроверил код Ser009, если руками подставить готовый файл , то он откроется правильно. Значит AMS-32 умеет работать с файлами .csv , но файл пока не создается. Чтобы его создать , должно произойти событие и записаться на карту. У Дуи это место рядом с
В ESP32 подобных мест два: первый в конце setup
И во вкладке Common
Сам код для логгера событий
Может просто не туда вставляю вывод текста и файл не создается ? Ещё раз - если файл закинуть на карту руками - он отображается
Закоментированный код карты - это первый скетч , который запустил на ESP32. Всё чудесно работало. Сейчас перепроверил код Ser009, если руками подставить готовый файл , то он откроется правильно. Значит AMS-32 умеет работать с файлами .csv , но файл пока не создается. Чтобы его создать , должно произойти событие и записаться на карту. У Дуи это место рядом с
СпойлерПоказать
Код: Выделить всё
timeStamp();
Serial.print("GLOBAL Init DONE (");
Serial.print(millis() / 1000);
Serial.println(F("s)\n"));
timeStamp();
Serial.print("AMS WORK ");
//printFreeMem();
Serial.println();
MessText = "Перезапуск AMS"; // текст сообщения
MessLoger(String (MessText), String(Info)); // тип сообщения
} // setup
СпойлерПоказать
Код: Выделить всё
#ifdef FEATURE_LEDS
initLeds();
#endif
#ifdef FEATURE_KEYS
initKeys();
#endif
#ifdef ROBOTDYN_FEATURE
initRobotdyn();
#endif
#ifdef FEATURE_DHT
initDHT();
#endif
printInitDone();
//============================================
MessText = "Перезапуск AMS_ESP32";
MessLoger(String (MessText), String(Info));
//==============================================
} // setup
СпойлерПоказать
Код: Выделить всё
void printInitDone() {
Serial.print(F("GLOBAL Init DONE (")); Serial.print(millis() / 1000); Serial.println(F("s)"));
Serial.println();
Serial.println(F("AMS WORK"));
timeStamp(); printFreeMem("");
//============================================
//MessText = "Перезапуск AMS_ESP32";
//MessLoger(String (MessText), String(Info));
//==============================================
}
// Lifer
byte lifer;
СпойлерПоказать
Код: Выделить всё
/*
Modul Message ver 0.1
part of Arduino Mega Server project
Модуль архивных сообщений
для Ардуино Мега Сервер
*/
/* Создает запись в файле *.csv
* Необходимо передать функции:
* MessText - название сообщения
* MessType - тип сообщения
*/
void MessLoger(String MessText, String MessType){
// собираем Имя путь и имя файла
String MessName;
//MessName+="/Alarm/";
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";
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{}
}
СпойлерПоказать
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 182
- Зарегистрирован: Чт ноя 24, 2016 10:47 am
- Благодарил (а): 5 раз
- Поблагодарили: 25 раз
Re: Arduino Mega Server для ESP32
Описание решения проблемы.serghei писал(а):Я подразумеваю , что NOP , это нет операции. Тут засада для меня гораздо глубже. Для 8266 я просто скопировал код для NRF24 и вставил в AMS и все скомпилировалось и заработало.
С ЕСП32 такой фокус не сработал из-за <avr/pgmspace.h> и других не соответстрий в драйверах.Как переписывать библиотеки под дрова я пока не знаю.
- Рейтинг: 1.16%
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server для ESP32
Библиотеку нашел сразу и переименовал первым делом. Дальше буду разбираться в выходные. Спасибо !
Как оказалось не все так просто в Датском королевстве. Смысл ошибки в гуглопереводе
Как оказалось не все так просто в Датском королевстве. Смысл ошибки в гуглопереводе
Проблема здесь в том, что библиотека ESP32 и RF24 имеет одно и то же имя макроса, NOP так что компилятор не знает, что заменить где.
В этом случае проще сменить библиотеку RF24, чем ESP32, потому что она появляется меньше раз и никогда не является хорошей идеей переименовать что-нибудь из ядра ESP32
Таким образом, в RF24 он объявлен RF24-master\nRF24L01.h и используется только в строке 176 файла RF24-master\RF24.cpp, одним из способов является переименование этого макроса, а другой способ просто заменить это имя идентификатора на значение напрямую.
Заменил и посыпались ошибки компилятораВы можете переименовать «NOP» во всю библиотеку RF24
или
просто удалить его и заменить: status = SPI.transfer( NOP );на status = SPI.transfer( 0xFF );
И целый букет дальше.nrf24.ino: In function 'void setNotRequired(Sender*)':
nrf24.ino:104:4: error: invalid use of incomplete type 'struct Sender'
arduino_mega_server_esp32sd.ino:208:28: note: forward declaration of 'struct Sender'
nrf24.ino: In function 'void setPacketType(Sender*, byte)':
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS