Страница 39 из 51

Re: Arduino Mega Server для ESP32

Добавлено: Чт июн 21, 2018 3:47 pm
alexsis_76
можно редактировать и создавать страницы прямо в браузере
это больше похоже на какое то насилие,есть же хорошие редакторы кода и есть FTP.
Лично мне чертовски нравиться извращаться с визуализацией
не я наизвращался.
нужно хватать jpeg кадры,паковать в UDP и пинать в сеть,15 fps хватит.
я так думаю что место для кнопочек должно остаться,насчет датчиков - не уверен.

Re: Arduino Mega Server для ESP32

Добавлено: Чт июн 21, 2018 4:21 pm
serghei
Насилием было вытаскивание карты из платы , заливка файла, не понравилось - возвращайся в редактор , заливай файл по новой и так 20 - 100 раз. А тут никуда ничего заливать не надо. Изменил содержание , посмотрел на результат. Супер !

Re: Arduino Mega Server для ESP32

Добавлено: Чт июн 21, 2018 5:36 pm
eGorka
alexsis_76 писал(а):
Чт июн 21, 2018 3:47 pm
это больше похоже на какое то насилие,есть же хорошие редакторы кода и есть FTP.
Делитесь библиотекой FTP для 32-ой :D

Re: Arduino Mega Server для ESP32

Добавлено: Чт июн 21, 2018 6:10 pm
Alex
Делитесь библиотекой FTP для 32-ой :D
Во-во, а заодно и для ESP8266. И для Меги тоже не помешает, только реально работающей (библиотек много, но мне ещё ни одну не удалось заставить нормально работать).

Re: Arduino Mega Server для ESP32

Добавлено: Чт июн 21, 2018 10:47 pm
alexsis_76
Делитесь библиотекой FTP для 32-ой
делится пока нечем,кристалл только выехал из Китая.
esp8266FTPServer-master.zip
(20.35 КБ) 131 скачивание
вот эта вроде работает,пробовал в файлзилла,нет работы с каталогами(собственно неважно) иногда вываливается,но автореконнект решает проблему(может отваливается из за того что запускается отдельной задачей),добавление,удаление,просмотр файлов,если зацепился то держит мертвой хваткой,файлы не теряет.
Для меги нет,да и меги тоже нет.

Re: Arduino Mega Server для ESP32

Добавлено: Чт июн 21, 2018 10:50 pm
serghei
Продолжение банкета. Пока " правильно " работал реконнект. Добавил еще Далласы и PowerMonitor ( физически датчиков пока нет ).
СпойлерПоказать
AMS32_Task.jpg
AMS32_Task.jpg (196.41 КБ) 3846 просмотров
При измерении тока раз в пол секунды (!!!) и 4 температур раз в секунду нагрузки на сервер вообще НЕТ !!! До этого ток мерил раз в 20 секунд . Нагрузка здорово чувствовалась.
Так что идея правильная и надо это двигать дальше. На очереди запуск сервера. Цифры в даш-панели не правильные , так как в Ажаксе еще не прописал.

PS. Не так всё просто оказалось. Нужен файл конфигурации платы ( куда что подключено ). А у всех пользователей они разные. Править библиотеку вряд ли кто будет. А с другой стороны - хочешь прикрутить реле на произвольный пин , пиши это в библиотеке.
Если 4 реле , зуммер и RGB , то начало файла
СпойлерПоказать

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

/*
 * pcb.cpp
 *  
 */

#include "Arduino.h"
#include "pcb.h"

//#define U32v17
#define U32maxi.xx

#ifdef U32maxi.xx
  #include <Wire.h>
  #include <PCF8574.h>  // Do not forget to comment define to disable interrupt support (36 //#define PCF8574_INTERRUPT_SUPPORT)
                        // 63 void begin(uint8_t address);   // Remove  = 0x21 or set 0x38 for "A"
#endif

#ifdef U32v17

  const int K1          = 32;  //  IO32  
  const int K2          = 25;  //  IO25
  const int K3          = 26;  //  IO26
  const int K4          = 04;  //  IO04
  const int SG          = 27;  //  IO27
  const int LED_R       = 33;  //  IO33
  const int LED_G       = 17;  //  IO17
  const int LED_B       = 02;  //  IO02
  const int FIRE        = 16;  //  IO16
	
#endif
Зато элементарно цепляется расширитель выходов.

Re: Arduino Mega Server для ESP32

Добавлено: Сб июн 23, 2018 12:36 pm
eGorka
serghei писал(а):
Чт июн 21, 2018 10:50 pm
... Добавил еще Далласы ...
кодом(задачей) от olmoro ?

Re: Arduino Mega Server для ESP32

Добавлено: Сб июн 23, 2018 1:20 pm
serghei
Да , от него. Градусники определились , только не показывают ((. Я думаю , проблема в библиотеках. У меня уже куча перепиленных версий. Надо попробовать на оригинальной.
Еще заметил - плата перегружается раз в 2-3 часа. Надо еще код сервера в задачу поставить.
И к стати , там же можно задать на каком ядре работать.Задать жёстко ядро для выполнения задачи конкретным ядром можно, добавив в объявление задачи

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

xTaskCreatePinnedToCore номер ядра - 0 или 1
Вроде работает , только еще в дебаг вывести надо. Но это уже вечером.

Re: Arduino Mega Server для ESP32

Добавлено: Сб июн 23, 2018 1:34 pm
eGorka
serghei писал(а):
Сб июн 23, 2018 1:20 pm
Да , от него.
А ничего в коде для Далласов не смущает? А если прицепить 60 датчиков?

Re: Arduino Mega Server для ESP32

Добавлено: Сб июн 23, 2018 2:26 pm
serghei
Смущает , что не работает :evil: . Гавкнулся шлейф до счетчиков и 4-х градусников. Но один определился (( подключил отдельно ). Если начать разбираться
СпойлерПоказать

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

/*
 * temp.cpp
 * Ol.Moro 2018.02.08
*/

#include "Arduino.h"
#include "DS2482.h"           // I2C to 1-Wire bridge used with ESP WIFI
#include "DS18B20_DS2482.h"
#include "Wire.h"             // I²C
#include "temp.h"

portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;

float current_temp0 = 0.0;
float current_temp1 = 0.0;
float current_temp2 = 0.0;
float current_temp3 = 0.0;

DS2482 DS2482(0);
DS18B20_DS2482 sensors(&DS2482); 

// Sensors ID's
const byte id0[] = {0x28, 0x22, 0xb3, 0x3b, 0x04, 0x00, 0x00, 0x85};  // sens0 as tempSTR
const byte id1[] = {0x28, 0xfa, 0x77, 0x3b, 0x04, 0x00, 0x00, 0xdd};  // sens1 as tempHOM
const byte id2[] = {0x28, 0xf6, 0xac, 0x3b, 0x04, 0x00, 0x00, 0x8e};  // sens2 as tempWRM
const byte id3[] = {0x28, 0x01, 0x0f, 0x36, 0x04, 0x00, 0x00, 0x99};  // sens3 as tempBTH


void initTemp(void) 
{
  Wire.begin(SDA, SCL, 400000);

  Serial.print("DS2482-100 reset: ");
  DS2482.reset();
  Serial.println("ok");
  
  if (!DS2482.configure(DS2482_CONFIG_APU))
  { 
    Serial.println(F("Active pull-up cofigured.")); 
  } 

  DS2482.wireResetSearch();
  
  // locate devices on the bus
  uint8_t count = DS2482.devicesCount(true);
  Serial.print(F("Found devices: "));   Serial.println(count);

  DS2482.wireResetSearch();
  sensors.setWaitForConversion(false);

}


void workTemp(void)
{
  static int cnt = 5;
  cnt++;
  if ( cnt >= 5 ) { cnt = 0; }
  Serial.print(F(" work Temp2: "));

  switch ( cnt )
  {
  case 0:
    // sends command for all devices on the bus to perform a temperature conversion
    vTaskEnterCritical(&timerMux);
      sensors.requestTemperatures();
    vTaskExitCritical(&timerMux);
    Serial.println(F(" Start conversion for all devices"));
    break;
    
  case 1:
    vTaskEnterCritical(&timerMux);
      current_temp0 = sensors.getTempC((const unsigned char*) &id0);
    vTaskExitCritical(&timerMux);
    Serial.print(F(" Read 1-st device: "));   Serial.println(current_temp0);
    break;
    
  case 2:
    vTaskEnterCritical(&timerMux);
      current_temp1 = sensors.getTempC((const unsigned char*) &id1);
    vTaskExitCritical(&timerMux);
    Serial.print(F(" Read 2-nd device: "));   Serial.println(current_temp1);
    break;
    
  case 3:
    vTaskEnterCritical(&timerMux);
      current_temp2 = sensors.getTempC((const unsigned char*) &id2);
    vTaskExitCritical(&timerMux);
    Serial.print(F(" Read 3-th device: "));   Serial.println(current_temp2);
    break;
    
  case 4:
    vTaskEnterCritical(&timerMux);
      current_temp3 = sensors.getTempC((const unsigned char*) &id3);
    vTaskExitCritical(&timerMux);
    Serial.print(F(" Read 4-th device: "));   Serial.println(current_temp3);
    break;
    
  default:

  break;
  }
}
Поиск работает. Инициализация и какое питание ? Ну еще объектов нет. Мне бы для начала и это запустить.