1 2 3 4 5 6 7 8 9 10 10/10 10,00оценок: 8

Arduino Mega. Контроллер теплицы. Хроники - 2

Тема в разделе "Теплицы и парники", создана пользователем DIYMan, 06.06.16.

Статус темы:
Закрыта.
  1. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Дык есть в правилах поддержка выполнения составной команды, не? Или я чего не понял? Вот смотрите, про таймер: это просто периодически выполняемые операции, и всё. Для таймера нет никаких условий и пр. Вы же описываете ситуацию, которая штатно разруливается правилами, только надо, как вы правильно заметили - подобрать дельту, и всё.
     
  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Там в принципе ещё состояния пишутся, типа открыты или закрыты форточки, вкл/выкл полив и т. п. В принципе, можно это дело подсократить, ничего по состояниям не сохраняя.

    Насчёт объёма - не сильно-то и много, мегабайт, не думаю, что в этом дело и из-за этого тормозит? Чего ему тормозить, если работа с базой идёт только при запросе графиков, по сути? Или вообще - тупо тормозит на всём?
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Так и это можно правилами разрулить, в принципе. Вас пугают частые включения насоса? Так это оборотная сторона поддержания стабильного микроклимата. Хотите реже - делайте дельту больше, и заведите третье правило, которое вырубает пин, когда поступает сигнал с датчика опустошения колодца, например. У первых двух в зависимостях поставить третье правило, чтобы они не срабатывали, когда сработало третье. Не будет опустошения, дельта между влажностями большая, насос включается редко, профит.

    Как в данной ситуации может помочь простой неконтролируемый таймер (типа минуту поработали, 5 минут отдыхаем) - не понимаю. Это просто бесконтрольная периодическая работа, годная только для постоянно нужных вещей, типа циркуляции чего-то по трубам. Поддержания микроклимата таким образом не получишь, а мы ведь за это боремся, не?
     
  4. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    Состояния нужны, мониторить как-то нужно же. На графиках тупит хорошо так, уверенно. При выборке, на графиках, блочит файловую систему. На остальном вроде не страшно, но чувствуется нарастающая заторможенность. Все таки роутер это роутер, не заточен он под такое.
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @Shelllonn, обновил cron. php, сделал там настройку (по умолчанию выкл) - сохранять или нет статус контроллера в БД. Мне кажется, что на данном этапе оно бессмысленно - сохранять это дело. По остальному - будем думать, как оптимизировать БД, хотя там в принципе вторая нормальная форма, как минимум, т. е. ничего лишнего не хранится. Можно поиграть с размерами полей ещё, подумаю над этим вопросом.
     
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Что предлагаете? БД нужна, как ни крути. Вариант, конечно, известен - развёртывать вебморду на локальном компе, как у меня сейчас, но хотелось бы мобильности. В принципе, я совсем не против вебморды на локальном компе, тем более что это, по сути, ничего не меняет - можно юзать роутер просто как добивающий до основного роутера шлюз между контроллером и вебмордой. То есть варианты - есть. Честно говоря, я не думал, что будет так печально с роутером уже на мегабайте данных в БД.

    А просьба к вам: попробуйте поковырять индексы в БД, может, там чего настроить можно, чтобы побыстрее выборки делала? Я щас провентилирую этот вариант.
     
  7. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    DIYMan, я пока не могу тестировать, у меня мега скончалась, хз от чего и что с ней. Виснет на модуле влажности, хотя сам DH22 живой, на уно работает. Я уже забил на нее, на днях закажу новую.
    БД нужна, и графики нужны, все нужно :)
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @Shelllonn, обновил БД на гитхабе, добавил индексы, вы в принципе можете их скопировать и в своей базе их создать. Стало работать чуть повеселее, вроде.
     
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    А если модуль влажности исключить из прошивки? Или пин для DHT поменять? Может, пин отгорел, да мало ли чего - надо проверять, всё равно пока терять нечего :)
     
  10. Olezhan58
    Регистрация:
    25.08.14
    Сообщения:
    90
    Благодарности:
    39

    Olezhan58

    Живу здесь

    Olezhan58

    Живу здесь

    Регистрация:
    25.08.14
    Сообщения:
    90
    Благодарности:
    39
    Адрес:
    Санкт-Петербург
    @Shelllonn,
    root@OpenWrt:~# cd /www/web
    root@OpenWrt:/www/web# sqlite3 gh3_EMPTY.db
    SQLite version 3.8.11.1 2015-07-29 20:00:57
    Enter ".help" for usage hints.
    sqlite> .databases
    seq name file
    - - -
    0 main /www/web/gh3_EMPTY.db
    sqlite> .schema
    CREATE TABLE controllers (controller_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, controller_name VARCHAR (50), is_online BOOLEAN NOT NULL, controller_address VARCHAR (100);
    CREATE TABLE modules (module_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, module_name VARCHAR (20) UNIQUE, description VARCHAR (100);
    CREATE TABLE sensor_types (sensor_type_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, sensor_type VARCHAR (20) UNIQUE, type_description VARCHAR (100);
    CREATE TABLE states (state_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL, state_name VARCHAR (10) NOT NULL, state_description VARCHAR (255);
    CREATE TABLE controller_data (record_id INTEGER PRIMARY KEY AUTOINCREMENT, controller_id INTEGER NOT NULL, sensor_type_id INTEGER REFERENCES sensor_types (sensor_type_id), module_id INTEGER REFERENCES modules (module_id), sensor_index INTEGER NOT NULL, sensor_data REAL (10, 2) NOT NULL, record_date DATETIME DEFAULT (CURRENT_TIMESTAMP);
    CREATE TABLE cc_lists (list_index INTEGER NOT NULL, list_name VARCHAR (100), controller_id INTEGER);
    CREATE TABLE composite_commands (controller_id INTEGER NOT NULL, list_index INTEGER NOT NULL, command_action INTEGER NOT NULL, command_param INTEGER);
    CREATE TABLE controller_state (record_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, controller_id INTEGER NOT NULL, state_id INTEGER REFERENCES states (state_id), state BOOLEAN NOT NULL, record_date DATETIME DEFAULT (CURRENT_TIMESTAMP);
    CREATE TABLE sensor_names (controller_id INTEGER, sensor_idx INTEGER, module_name VARCHAR (50), display_name VARCHAR (100);
    CREATE TABLE wifi_settings (controller_id INTEGER, connect_to_router BOOLEAN DEFAULT (0), router_id VARCHAR (50), router_pass VARCHAR (50), station_id VARCHAR (50), station_pass VARCHAR (50);
    CREATE TABLE sms (controller_id INTEGER NOT NULL, sms_text VARCHAR (50) NOT NULL, sms_answer VARCHAR (255), sms_command VARCHAR (255);
    sqlite>

    И лог прикрепляю
     

    Вложения:

  11. Anatoly8853
    Регистрация:
    21.07.13
    Сообщения:
    94
    Благодарности:
    45

    Anatoly8853

    Живу здесь

    Anatoly8853

    Живу здесь

    Регистрация:
    21.07.13
    Сообщения:
    94
    Благодарности:
    45
    Адрес:
    Пятигорск
    Переложите все файлы непосредственно в /www без web
     
  12. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
  13. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    /usr/lib/php/pdo_sqlite.so' - File not found in Unknown on line 0 - проверте наличие этой билиотеки или переустановите
    open("/www/web/gh3.db", O_RDWR|O_CREAT|O_LARGEFILE|O_CLOEXEC, 0644) = -1 EACCES (Permission denied) - ls -la /www/web/gh3.db

    SQLite3:exec(): unable to open database file in <b>/www/web/utils/database.config.php</b> on line <b>28
     
  14. olegmak3
    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442

    olegmak3

    Живу здесь

    olegmak3

    Живу здесь

    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442
    Адрес:
    Санкт-Петербург
    "Датчик опустошения колодца"...
    Вы представляете, сколько гимора с реализацией данного девайса?
    Пока буду колхозить то, что есть.
    Включение какого-либо устройства при наступлении условия на определенном временном интервале штука удобная. Но система будет намного гибче (и к рано или поздно придем к этому) ежели еще будет и включение по условию на определенное время.
    ИМХО, ес-сно.
     
  15. 2mike
    Регистрация:
    14.03.10
    Сообщения:
    596
    Благодарности:
    417

    2mike

    Живу здесь

    2mike

    Живу здесь

    Регистрация:
    14.03.10
    Сообщения:
    596
    Благодарности:
    417
    Адрес:
    Россия
    PH, как и ЕС, меряются специализированным электродом, там идет сравнение относительно эталона (есть конечно и простейшие некомпенсированные элеткроды).
    нужна еще плата которая будет отрабатывать это сравнение (аналоговая) и сам вход показаний надо будет заводить на АЦП меги и привязывать по значению эталонного раствора.
     
Статус темы:
Закрыта.