Страница 5 из 326

Re: Arduino Mega Server

Добавлено: Пн июн 29, 2015 3:40 pm
arturmon
Alex писал(а):>
Спасибо, как буду разбираться с этим модулем обязательно посмотрю ваш пример. Я не стал засовывать ПИР в цикл потому, что для каждого ПИРа нужна индивидуальная реакция и код получается ещё больше.
вот почти готовая функция которая требует только номер пира (чуть чуть допилить) и будет возвращать значение. тоесть если нужна массавая обработка пира то цикл в помощь, а так наоборот получается довольно гибкая функция.
По поводу кода...много статики (( переписывать придется индивидульано действительно, я тоже раньше что то подобное делал хотел как раз переехать на due )) из-за нехватки памяти и необходимой гибкости.
предлагаю сделать отдельный сетап файл с общими,отдельными для модулей настройками :roll:
Про printf я имел ввиду
например:

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

Serial.print("Connect to Laurent... "); 
заменить на

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

printf("Connect to Laurent... "); 
прошифка конечно раздуется, но значения будут храниться в флешке, а не в памяти.

вот немного переработал функцию пира для возврата значения
SPOILERSPOILER_SHOW

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

#define pirNumber 6
int pirPin[pirNumber]={22,23,24,25,26,30};
boolean pirState[pirNumber];
boolean pir[pirNumber];

void pirsInitX() {
for (int x = 0; x < pirNumber; x++)
  {
    pirState[x] = LOW;
    pir[x] = 0;
    pinMode (pirPin[x], INPUT);
  }
modulPirs = 1;    
}


// вызов функции pirsWorksX (x);
// вызов с присвоением boolean x = pirsWorksX (x);
// возвращает значение pirState[Pin];
boolean pirsWorksX(boolean Pin) {
  pir[Pin] = digitalRead(pirPin[Pin]);
  if (pir[Pin] == HIGH) { 
    if (pirState[Pin] == LOW) {
      printf("Detect motion STD");
      pirState[Pin] = HIGH;
    }
  } else {
    if (pirState[Pin] == HIGH){
      printf("End motion STD");
      pirState[Pin] = LOW;
    }
  }
  return pirState[Pin];
}




Re: Arduino Mega Server

Добавлено: Пн июн 29, 2015 4:28 pm
Alex
> предлагаю сделать отдельный сетап файл с общими,отдельными для модулей настройками

Это как? Что-то я не понял. У меня есть другая идея. Стандартизировать «публичные» переменные модулей. У меня есть 3 разные реализации модулей температуры — идея в том, чтобы выбирать реализацию при компиляции — хочешь «длинный код», хочешь с циклами. А проект компилируется корректно с любым модулем.

> Про printf я имел ввиду

И что, простая замена Serial.print на printf прокатит и сэкономит память? Очень интересно. Если это так, то нужно всё поменять.

> вот немного переработал функцию пира для возврата значения

Проблема: там, где находится

 printf("Detect motion STD"); (printf("End motion STD"); )

у каждого пира может находиться произвольный и объёмный код. Это _индивидуальная_ реакция на событие.

Re: Arduino Mega Server

Добавлено: Пн июн 29, 2015 5:10 pm
Alex
> прошифка конечно раздуется, но значения будут храниться в флешке, а не в памяти.

Попробовал заменить сериал на printf

Во первых, сообщения перестали выводиться,
во-вторых, память так и осталась 2464.

Так что...

Re: Arduino Mega Server

Добавлено: Пн июн 29, 2015 5:56 pm
arturmon
Alex писал(а):> прошифка конечно раздуется, но значения будут храниться в флешке, а не в памяти.

Попробовал заменить сериал на printf

Во первых, сообщения перестали выводиться,
во-вторых, память так и осталась 2464.

Так что...
вот тут описывается одна из альтернатив сериала
http://www.utopiamechanicus.com/article ... ial-print/

Re: Arduino Mega Server

Добавлено: Пн июн 29, 2015 7:41 pm
Alex
Пять баллов вам, arturmon и плюс в карму. Это работает! Если не будет глюков, то просто супер.

Re: Arduino Mega Server

Добавлено: Пн июн 29, 2015 9:49 pm
Alex
Прошелся по скетчу и освободил 630 (!) байт памяти (почти 10%). Ещё бы освободить длинные строки, формирующие буффер (sprintf).

Re: Arduino Mega Server

Добавлено: Вт июн 30, 2015 1:26 am
arturmon82
Выложил на гит хаб можем теперь дружно разработывать и заниматься улучшением )) завтра ссылку кину, надеюсь что будет много желающих развивать данный проект.

Re: Arduino Mega Server

Добавлено: Вт июн 30, 2015 7:40 am
Alex
Супер. Поздравляю всех с выходом на геостационарную орбиту :)

Ещё желательно лёгенькую инструкцию как это грамотно делать на гитхабе (для парней из Айовы, вроде меня). :)

Или ссылку где расписаны простым языком принципы совместной работы на гитхаб.

Re: Arduino Mega Server

Добавлено: Вт июн 30, 2015 8:12 am
Alex
Очередной вопрос. Яваскрипт шлёт запросы Ардуине и они мониторятся через сериал. Всё ок. Закрываем браузер, а запросы... продолжают сыпаться (судя по сериалу) ещё несколько минут.

Вопрос. Откуда они берутся, если браузер закрыт?! Это что, какой-то буфер или как? И что за буфер — операционной системы или где?

Re: Arduino Mega Server

Добавлено: Вт июн 30, 2015 12:13 pm
arturmon
вот обещанная ссылка )) надеюсь на дружный и плодотворный труд ;)
https://github.com/arturmon/Arduino-Mega-Server-