Arduino Mega Server для esp8266

Модератор: Alex

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

Re: Arduino Mega Server для esp8266

Сообщение serghei » Сб июл 09, 2016 6:42 pm

В стандартной поставке есть много упоминаний о модуле Nrf24, но нет 90 процентов кода. Я в программировании вообще никак))) и сделал по принципу " найдите 10 отличий" .Поэтому в слепую добавил 4 вкладки обслуживания модуля из скетча МЕГИ. Я понимаю ,что так нельзя, но учиться как то надо. Соответственно в файлах "СД карты" не было файлов nrf24.htm и nrf24.js. Вначале добавил их по воздуху , скопированные из Меги. Там все файлы написаны большими буквами. Они заливались,но были битыми (редактор ЕСП их открывал пустыми). когда переименовал маленькими буквами- все встало на место. С разбегу запустить не получилось,потому что уперся в таймеры. Не могу сообразить как объединить вывод в сериал данные с ЕСП и Nrf. АМС стартует,но при 5 выводе в сериал перезапускается.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Сб июл 09, 2016 6:58 pm

Теперь по поводу градусников. В чистом виде для платы NodeMcu V3 нормально запустилось только на D2 ( в скетче пин 4) .После прикручивания экрана (D1-SCL , D2-SDA ) вывод оказался занят и подошел только D5 (в скетче пин 14).
На всех остальных либо не передавали данные ( ID определялся правильно) , либо не запускалась плата. Причем даже в таком варианте ( 1 датчик, в скетче прописаны три) по факту значения "уличного" градусника не определяется, а второе и третье соответствует правде.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server для esp8266

Сообщение Alex » Сб июл 09, 2016 8:03 pm

В стандартной поставке...
Теперь понятно.
С разбегу запустить не получилось,потому что уперся в таймеры.
Код для всех платформ очень похожий и отличия больше косметические, особенно для таймеров.
Не могу сообразить как объединить вывод в сериал данные с ЕСП и Nrf.
А в чём с ними проблема?
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Вс июл 10, 2016 12:06 pm

Простой перенос файлов не сработал. Скетч компилируется и заливается, но АМС не работает. Он стартует, конектится к сети,один раз запрашивает время и перегружается.( на NODEMCU и D1 одинаково себя ведет). Вообще с ESP не все так просто. Вроде бы куча пинов, но полноценных для 1wire нашел только 3. И то ,если в скетче активировать I2c Для экрана , далласы запустились только на одном. Наверное при неправильном подключении NRF24 АМС не запустится.Попробую еще отключить все модули . Хотя у Макса связка работает. http://homes-smart.ru/index.php/oborudo ... i-nrf24le1 С таймерами вроде разобрался, осталось понять что и как выводится в сериал.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
zilibob4ik
Сообщения: 41
Зарегистрирован: Вс июл 10, 2016 5:52 pm
Благодарил (а): 8 раз
Поблагодарили: 4 раза

Re: Arduino Mega Server для esp8266

Сообщение zilibob4ik » Вс июл 10, 2016 6:02 pm

Alex, приветствую!
В документации надо добавить, что модули есть и с 512 кб на борту,
обладателем которой я и оказался.
Как Вы советовали,
достать из ящиков запылившиеся модули версии 01, и тут оба-на, облом...
Очень огорчился
и заказал с Китая на Таобао WeMOS D1 mini.

Ну это так, предисловие.

А по компиляции проекта вылезли вопросы.

Кстати, при установке ядра 8266 в менеджере плат,
почему то не установился файл FS.h
пришлось в ручную его забирать на Гитхабе и копировать в папку.
Устал бороться, победить не получается....
И далее вот:

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

server_ajax.ino: In function 'void parseRequest(WiFiClient)':
server_ajax.ino:87:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:87:80: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:100:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:100:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:107:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:107:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:113:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:113:73: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:119:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:119:74: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:125:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:125:75: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:126:75: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:127:75: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:135:51: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:140:51: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:144:52: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:149:50: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:154:51: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:166:50: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:171:47: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:176:50: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:180:48: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino: In function 'void SetLEDs()':
server_ajax.ino:310:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:313:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:317:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:320:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:324:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:327:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:331:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:334:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino: In function 'void setSettings()':
server_ajax.ino:439:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:442:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino: In function 'void setThemes()':
server_ajax.ino:469:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:470:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:471:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:472:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:473:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:474:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:475:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:476:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino: In function 'void setControl()':
server_ajax.ino:511:39: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:515:44: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:520:39: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:524:44: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:529:39: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:533:44: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:538:39: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:542:44: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:547:39: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:551:44: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino: In function 'void checkPage()':
server_ajax.ino:677:49: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:678:47: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:679:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:680:47: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
server_ajax.ino:681:48: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
D:\Downloads\Arduino\arduino-1.6.5-r5\libraries\ESP8266FtpServer\ESP8266FtpServer.cpp: In member function 'boolean FtpServer::doRetrieve()':
D:\Downloads\Arduino\arduino-1.6.5-r5\libraries\ESP8266FtpServer\ESP8266FtpServer.cpp:678:59: error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'char*' [-fpermissive]
  int16_t nb = file.readBytes((uint8_t*) buf, FTP_BUF_SIZE );
                                                           ^
In file included from D:\Downloads\Arduino\arduino-1.6.5-r5\libraries\ESP8266FtpServer\ESP8266FtpServer.h:36:0,
                 from D:\Downloads\Arduino\arduino-1.6.5-r5\libraries\ESP8266FtpServer\ESP8266FtpServer.cpp:21:
C:\Users\Small\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/FS.h:62:12: error:   initializing argument 1 of 'virtual size_t fs::File::readBytes(char*, size_t)' [-fpermissive]
     size_t readBytes(char *buffer, size_t length)  override {
            ^
Ошибка компиляции. 
relict
Сообщения: 72
Зарегистрирован: Пт июл 10, 2015 8:44 pm
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: Arduino Mega Server для esp8266

Сообщение relict » Вс июл 10, 2016 6:14 pm

serghei писал(а):Простой перенос файлов не сработал. Скетч компилируется и заливается, но АМС не работает. Он стартует, конектится к сети,один раз запрашивает время и перегружается.( на NODEMCU и D1 одинаково себя ведет). Вообще с ESP не все так просто. Вроде бы куча пинов, но полноценных для 1wire нашел только 3. И то ,если в скетче активировать I2c Для экрана , далласы запустились только на одном. Наверное при неправильном подключении NRF24 АМС не запустится.Попробую еще отключить все модули . Хотя у Макса связка работает. http://homes-smart.ru/index.php/oborudo ... i-nrf24le1 С таймерами вроде разобрался, осталось понять что и как выводится в сериал.
Как оказалось запустить веб-сервер на ESP недостаточно, как и пинов(полноценных) на модуле. Может просто перепилить FSBrowser из примеров под свои нужды?
zilibob4ik писал(а):... модули есть и с 512 кб на борту, обладателем которой я и оказался.
...достать из ящиков запылившиеся модули версии 01, и тут оба-на, облом....
А поменять флеш ?
Последний раз редактировалось relict Вс июл 10, 2016 6:38 pm, всего редактировалось 1 раз.
Debian GNU/Linux 8 (jessie)
Arduino 1.8.5 / esp32 1.0.1
zilibob4ik
Сообщения: 41
Зарегистрирован: Вс июл 10, 2016 5:52 pm
Благодарил (а): 8 раз
Поблагодарили: 4 раза

Re: Arduino Mega Server для esp8266

Сообщение zilibob4ik » Вс июл 10, 2016 6:34 pm

relict писал(а):
zilibob4ik писал(а):... модули есть и с 512 кб на борту, обладателем которой я и оказался.
...достать из ящиков запылившиеся модули версии 01, и тут оба-на, облом....
А поменять флеш ?
Да без проблем...

А теперь элементарный расчёт...
СпойлерПоказать
Проблема в том, что чипы надо заказывать, и ждать их одинаково долго, как и готовые модули.
Чипы 10 штук - от 215 руб, а модулей у меня всего 2 !
Т.е, не зависимо от количества присланных микросхем, рабочих модулей мы получим 2шт, за 215 руб.
Готовый модуль D1 mini - 160 руб.
В итоге D1 mini, 2 модуля - 320 руб, против перепайки 2-х чипов за 215 руб.
При одинаковом времени ожидания посылки.
Да и на старые модули были тоже потрачены деньги, учитывая что я их брал,
как только они появились, то стоили они как то не мало, иначе я бы их не заказал всего 2 штуки.
Обычно подобное (NRF-ки, Arduin-ки и пр. заказываю по 5-10 штук)
Вот такая элементарная математика, с выводом - они того не стоят.
Покопаюсь в барахле, если найду флешки со старых мамок (или гаджетов) то перепаяю...
Меня вот больше сейчас волнует, почему не компилится скетч...
Последний раз редактировалось zilibob4ik Вс июл 10, 2016 8:28 pm, всего редактировалось 1 раз.
relict
Сообщения: 72
Зарегистрирован: Пт июл 10, 2015 8:44 pm
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: Arduino Mega Server для esp8266

Сообщение relict » Вс июл 10, 2016 7:00 pm

zilibob4ik писал(а):Меня вот больше сейчас волнует, почему не компилится скетч...
zilibob4ik писал(а):In file included from D:\Downloads\Arduino\arduino-1.6.5-r5\libraries\ESP8266FtpServer\ESP8266FtpServer.h:36:0,
                 from D:\Downloads\Arduino\arduino-1.6.5-r5\libraries\ESP8266FtpServer\ESP8266FtpServer.cpp:21:
C:\Users\Small\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores
А с этим просто, версия arduino не соответствует версии esp, т.е. для arduino-1.6.5 нужно установить 2.0.0, а не 2.3.0(она для arduino 1.6.8 и выше).
P.S.
Как по мне так при наличии SPIFFS вроде FtpServer не особо и нужен.
Последний раз редактировалось relict Вс июл 10, 2016 7:11 pm, всего редактировалось 2 раза.
За это сообщение автора relict поблагодарил:
zilibob4ik (Вс июл 10, 2016 7:07 pm)
Рейтинг: 1.16%
Debian GNU/Linux 8 (jessie)
Arduino 1.8.5 / esp32 1.0.1
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Вс июл 10, 2016 7:07 pm

По ходу экспериментов с АМС удалось вывести температуру в даш-панель и на LCD 20*4. Пробую запустить счетчик воды и электроэнергии.
СпойлерПоказать

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

/*
   YF-S201 Hall Effect Water Flow Meter / Sensor
   http://www.hobbytronics.co.uk/yf-s201-water-flow-meter
   
   Read Water Flow Meter and output reading in litres/hour


Тупо регистрируем замыкания контактов
*/
  #ifdef YFS201_FEATURE



  int pin = 3;       // 3-й цифровой пин, первое прерывание
  long counter = 0;  // счётчик импульсов
  long vol1;         //счетчик литров

  void yfs201Init()


  {
  // Настраиваем последовательный интерфейс, для вывода информации 
    Serial.begin(115000);
  
  //Настраиваем цифровой вход
    pinMode(pin, INPUT);      // Сюда будем подключать подтягивающий резюк
    digitalWrite(pin, HIGH);  // "Подключаем" подтягивающий резистор (реализован внутри ATmega)
    attachInterrupt(1, count, FALLING); // задаём обработчик прерывания 1 (3-й пин). 
                                      // прерывание будет при изменении уровня с HIGHT на LOW
                                      // вызывать функицю count
   }


    void yfs201Works ()  


   {
  
  
  // основной рабочий цикл
    
     vol1 = (counter / 430); //430 оборотов на литр
   
 /* 
   #ifdef YFS201_FEATURE
    if (vol1NeedSend) {
      sendPacket(DTA_VOL_1);
    }
  #endif
 */
    //checkTemp(); 

    #ifdef SERIAL_PRINT
    Serial.print(F("Volume: "));// вывод литров . Надо дописать условие - выволить при изменении на 1 литр
    Serial.println(vol1);
    
     Serial.print(F("V: ")); // для проверки работы счетчика
    Serial.println(counter);
    #endif
  }


   void count(){
  // вызывается прерыванием 1 от 3-го цифрового входа
     counter++;  // ясен перец, увеличиваем переменную. Утекло ещё 2 грамма
  }
 
   #endif
ESP реагирует на замыкание контакта морганием светодиода, но счетчик не увеличивается. В описании ESP написано,что прерывания есть на всех пинах,кроме 16. Понимаю,что не хватает какой то мелочи, а вот что делаю не так? Как вообще работают прерывания в ESP ?
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
relict
Сообщения: 72
Зарегистрирован: Пт июл 10, 2015 8:44 pm
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: Arduino Mega Server для esp8266

Сообщение relict » Вс июл 10, 2016 7:25 pm

serghei писал(а):По ходу экспериментов с АМС удалось вывести температуру в даш-панель
Вам то хорошо, а я так и не смог победить ds18b20 на NODEMCU.
Debian GNU/Linux 8 (jessie)
Arduino 1.8.5 / esp32 1.0.1
Ответить