Arduino Mega Server

Модераторы: Bagir, Ivan, Vit, Alex

eGorka
Сообщения: 107
Зарегистрирован: Чт ноя 24, 2016 10:47 am
Благодарил (а): 1 раз
Поблагодарили: 16 раз

Re: Arduino Mega Server

Сообщение eGorka » Вт июн 12, 2018 4:49 pm

Alex писал(а):
Вс июн 10, 2018 8:39 pm
eGorka, ну какие 750 мс? И что это вообще за детский сад — штаны на лямках? Во всех моих проектах далласы работают на «второй скорости», сейчас не помню, но это кажется то ли 200, то ли 150 мс.
Про "детский сад" и "штаны на лямках"
СпойлерПоказать
ESP8266

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

#include "OneWire.h"
#include "DallasTemperature.h"
OneWire oneWire(2);
DallasTemperature sensors(&oneWire);
DeviceAddress ds[3] = { 
  {40,255,56,171,181,22,3,226},
  {40,255,61,69,192,22,4,53},
  {40,255,135,23,179,22,3,144}
};
float temp[3];
unsigned long time0,time1;
void setup(void) {
  Serial.begin(115200);
  sensors.begin();
  Serial.println();
  Serial.println(" *** \"DallasTemperature.h\" ***");
  Resolution();
}
void loop() {
  workTemp();
  delay(60000);
}
void workTemp() {
  Serial.println();
  time0 = millis();
  sensors.requestTemperatures();
  for(int i=0; i<3; i++) {
    temp[i] = sensors.getTempC(ds[i]);
  }
  time1 = millis();
  Serial.print(" Время выполнения: "); Serial.print(time1 - time0); Serial.println(" мс");
  Serial.print(" Температура:  ");
  for(int i=0; i<3; i++) {
    Serial.print(temp[i]);
    Serial.print(" ");
  }
  Serial.println();
}
void Resolution() {
  Serial.println();
  Serial.println(" \"Скорость\" датчиков");
  for(int i=0; i<3; i++) {
    uint8_t res = (sensors.getResolution(ds[i]),DEC);
    if(res == 9) { Serial.print(i + 1); Serial.println(" датчик(Первая скорость 94 мс 9бит)"); }
    if(res == 10) { Serial.print(i + 1); Serial.println(" датчик(Вторая скорость 188 мс 10бит)"); }
    if(res == 11) { Serial.print(i + 1); Serial.println(" датчик(Третья скорость 375 мс 11бит)"); }
    if(res == 12) { Serial.print(i + 1); Serial.println(" датчик(Четвёртая скорость 750 мс 12бит)"); }
  }
}
Dallas8266.PNG
Dallas8266.PNG (32.26 КБ) 296 просмотров
с учётом(в коде AMS) timeStamp() и вывода в Serial будет ещё больше.
Даже знаю кто может проверить на AMS :D.
eGorka
Сообщения: 107
Зарегистрирован: Чт ноя 24, 2016 10:47 am
Благодарил (а): 1 раз
Поблагодарили: 16 раз

Re: Arduino Mega Server

Сообщение eGorka » Вт июн 12, 2018 5:47 pm

OneWire
СпойлерПоказать

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

#include "OneWire.h"
OneWire  ow(2);
byte ds[3][8] = { {40,255,56,171,181,22,3,226}, {40,255,61,69,192,22,4,53}, {40,255,135,23,179,22,3,144} };
float temp[3];
unsigned long time0,time1;
void setup(void) {
  Serial.begin(115200);
  Serial.println();
  Serial.println(" *** \"OneWire.h\" ***");
}
void loop() {
  workTemp();
  delay(60000);
}
void workTemp() {
  Serial.println();
  time0 = millis();
  ow.reset(); 
  ow.skip();
  ow.write(0x44);
  delay(200);
  for (int i=0; i<3; i++) {
    byte data[2];
    ow.reset();
    ow.select(ds[i]);
    ow.write(0xBE);
    data[0] = ow.read();
    data[1] = ow.read();
    int16_t raw = (data[1] << 8) | data[0];
    temp[i] = raw / 16.0;
  }
  time1 = millis();
  Serial.print(" Время выполнения: "); Serial.print(time1 - time0); Serial.println(" мс)");
  Serial.print(" Температура:  ");
  for(int i=0; i<3; i++) {
    Serial.print(temp[i]);
    Serial.print(" ");
  }
  Serial.println();
}
OW8266.PNG
OW8266.PNG (27.66 КБ) 288 просмотров
serghei
Сообщения: 1950
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 241 раз
Поблагодарили: 186 раз

Re: Arduino Mega Server

Сообщение serghei » Вт июн 12, 2018 6:35 pm

nick7zmail писал(а):
Вт июн 12, 2018 11:22 am
1 контроллер 1 цель/задача. Оформления ему ни к чему.
На вкус и цвет все фломастеры разные. И каждый делает сам для себя. Человеку просто надо темную тему по дефолту.
А вот с ESP32 засада - чем больше файлов , тем дольше грузится страница редактирования и загрузки прошивки. Есть очень быстрый вариант , но при количестве файлов более 30 не работает. Хотя это надо в основном для отладки.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху
eGorka
Сообщения: 107
Зарегистрирован: Чт ноя 24, 2016 10:47 am
Благодарил (а): 1 раз
Поблагодарили: 16 раз

Re: Arduino Mega Server

Сообщение eGorka » Вт июн 12, 2018 7:10 pm

Каюсь, был неправ, DallasTemperature работает корректно и быстрее!!! чистой OneWire, правда ест память.
Dallas2.PNG
Dallas2.PNG (28.89 КБ) 277 просмотров
время измерения берётся по датчику с самым высоким разрешением.
serghei
Сообщения: 1950
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 241 раз
Поблагодарили: 186 раз

Re: Arduino Mega Server

Сообщение serghei » Вт июн 12, 2018 9:29 pm

Уффф. А что тогда говорить про PowerMonitor ? Ну тогда пусть AMS занимается серверной частью , а все измерения водрузить на сторонние Атмеги , а данные получать хоть по сериалу, хоть по NRF24. А до кучи можно еще и по UDP.
К тому же всплывает вопрос о точности показаний разных датчиков при разных напряжениях питания. Разброс температуры далласов и DHT11 минимальный ( 1 С), а вот влажность - около 10 % , по сравнению с BME280.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху
alexsis_76
Сообщения: 518
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 2 раза
Поблагодарили: 33 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Ср июн 13, 2018 1:29 am

Скажите а зачем вы ждете 200мс,я делаю так,даю команду на измерение ,завожу будильник и делаю другие дела,после того как будильник прозвенел я могу забрать данные с датчика,он может измерять сколько хочет,вообще я склоняюсь к мысли что http со многоими файлами для таких устройств роскошь,хватит им и TCP ,написать программу скажем на дельфи и спокойно обмениваться данными по вышеуказанному протоколу,увеличится скорость (при экспериментах запросы шли с интервалом 30мс что для обычной схемы недостижимо) и добавится интерактивность(больше не надо будет долбить сервер запросами)он сам все скажет),можно будет сделать сигнализацию c оповещением.
eGorka
Сообщения: 107
Зарегистрирован: Чт ноя 24, 2016 10:47 am
Благодарил (а): 1 раз
Поблагодарили: 16 раз

Re: Arduino Mega Server

Сообщение eGorka » Ср июн 13, 2018 7:42 am

alexsis_76 писал(а):
Ср июн 13, 2018 1:29 am
Скажите а зачем вы ждете 200мс,я делаю так,даю команду на измерение ,завожу будильник и делаю другие дела,после того как будильник прозвенел я могу забрать данные с датчика,он может измерять сколько хочет,вообще я склоняюсь к мысли что http со многоими файлами для таких устройств роскошь,хватит им и TCP ,написать программу скажем на дельфи и спокойно обмениваться данными по вышеуказанному протоколу,увеличится скорость (при экспериментах запросы шли с интервалом 30мс что для обычной схемы недостижимо) и добавится интерактивность(больше не надо будет долбить сервер запросами)он сам все скажет),можно будет сделать сигнализацию c оповещением.
Это не я, это DallasTemperature, тесты для наглядности как быстрее при использовании delay. В реале(у меня) всё сделано как вы и описали, т.е. без DallasTemperature и delay.
zDimaBYz
Сообщения: 5
Зарегистрирован: Сб июн 09, 2018 6:57 am
Благодарил (а): 0
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение zDimaBYz » Чт июн 14, 2018 10:40 pm

Моя прошивка правда ищо в _DASH не разобрался с pir датчиками
serghei
Сообщения: 1950
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 241 раз
Поблагодарили: 186 раз

Re: Arduino Mega Server

Сообщение serghei » Вт июн 19, 2018 12:42 pm

Еще оказывается год назад у меня начал потихоньку умирать W5100 ..... Проявляется это в виде полного напряжения на A0 и А1 , а так же в отваливании SD карты. А я уже думал Дую спалил ...

Прикрутил опять W5500 от RobotDyn. От этернет шилда оставил только карточку. 10-ый пин отогнул в сторону и подставил CS от W5500. На коротких проводах подключил этернет и О - Чюдо - Завелся без танцев с бубном с полоборота !

В дистрибутиве Меги_017 на главной странице картинок мало , может по этому проглатывания не вижу. Субъективно скорость сопоставима с DUE . Обратно точно не вернусь. Переключение библиотек происходит корректно.
Картинка сделана на Очень медленном компе ( 512 метров ОЗУ ), поэтому наверное не объективна.

На DUE запилил кеширование всех типов файлов в браузере. Это вообще термоядерная скорость. Но есть "обратная сторона Луны" )) - Переключение тем работает не правильно ( кэш , блин )). Так что темная тема по дефолту имеет право на жизнь.
СпойлерПоказать
W5500.JPG
W5500.JPG (134.94 КБ) 99 просмотров
Спокойно позволяет открывать 15 страниц. ( дальше память в компе закончилась ))).
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху
Ответить