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. olegmak3
    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442

    olegmak3

    Живу здесь

    olegmak3

    Живу здесь

    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442
    Адрес:
    Санкт-Петербург
    Попробую обнулить память в меге, и флешку чистую поставить.
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Т. е. что я делаю: отключаю все датчики с меги, закачиваю прошивку с отладочным режимом GSM, жду, пока модем зарегистрируется (в логе это вижу) - и звоню на него. В ответ - получаю СМС со статистикой, оно приходит FLASH, т. е. сразу на экран выводится.

    У вас проблема на момент кодирования СМС: мега нормально формирует текст СМС, потом пытается его закодировать, а на выходе - пустая строка, хотя она ну никак не должна быть пустой, там спереди жёстко прописанные заголовки, как минимум строка должна содержать несколько символов.

    Мне бы добиться, чтобы хотя бы иногда такое увидеть - не получается. И дело тут не в SD, а в самой памяти меги, кмк.

    Судя по логам - вы делали ровно то же самое, т. е. просто звонили на модем, в ответ на звонок он всегда присылает СМС со статистикой, кастомные СМС там не при чём.
     
  4. olegmak3
    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442

    olegmak3

    Живу здесь

    olegmak3

    Живу здесь

    Регистрация:
    14.08.11
    Сообщения:
    524
    Благодарности:
    442
    Адрес:
    Санкт-Петербург
    Есть еще вариант про симку.
    Пытался сегодня с нее зайти в личный кабинет на мтс-се - получить пароль по смс.
    Не вышло. Пишут карта ограничена от 2 февраля 17-го.
    Глюки мтс-а?
    Завтра опять к ним заеду.
    Я когда впервые воткнул"грязную" флэшку, обратил внимание, что свободной памяти всего 70-80 байт кажет в конфигураторе.
    Сегодня было уже около 800 (правил штук 30 у меня)
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Маловато памяти для работы с SMS, очень маловато.

    Обновил прошивку, добавил больше отладочной информации при кодировании сообщения. Вот как примерно выглядит у меня:

    Видите, что команда AT+CMGS=123 нормально сформирована, плюс - текст сообщения закодирован. Но обратите внимание, сколько нужно свободной памяти, чтобы отправить одно простенькое СМС: одно оно закодированное занимает 248 байт, плюс - это число надо как минимум умножить на два, как минимум. Я бы сказал, что для комфортной работы с СМС надо иметь как минимум более килобайта свободной памяти, ибо - ещё фрагментация есть, и если памяти не хватит - один чёрт знает, что там внутри происходит.

    Скачайте новую прошивку и выложите мне лог, если не затруднит - будем рыть дальше.
     
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    В общем, для начала надо понять, в чём именно проблема - и тогда уже будем думать про пути её решения ;) Хотя, если честно - я бы не рекомендовал юзать мегу, когда в ней свободной нефрагментированной памяти (а именно эту память показывает конфигуратор) остаётся меньше килобайта.

    Но от оптимизации кода работы с памятью, конечно, не отказываюсь - буду думать в этом направлении.
     
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    А я пока, пожалуй, жёстко пооптимизирую код - уж больно там пренебрежительно память туда/сюда таскается почём зря.
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    1. До оптимизации было: перед отсылом СМС свободной памяти - 2050 байт, после отсыла - 1264 байта, в результате бездумного копирования туда-сюда буферов памяти просило под работу: 2050 - 1264 = 786 байт, охренеть.

    2. После жестокой оптимизации стало: до отсыла - 2047 байт, после отсыла - 1930 байт, итого - 117 байт на всякие внутренние нужды.

    Но! Прошу учесть, что для отсыла СМС таки нужно байт 500, как ни крути - то, что я чищу память после отсыла СМС, не значит, что для её формирования памяти не надо - мне же где-то этот буфер до скармливания модему держать надо? Надо. По сути всё, что я сделал - это оптимизировал работу с буферами памяти, избавившись от одного промежуточного, да принудительно чищу память после отсыла СМС (не хотелось этого делать, но приходится; почему не хотелось - боюсь фрагментации очень).

    Короче: прошивку обновил, можно пробовать, как сейчас. Навскидку приведу минимальные цифры по необходимой памяти, которая юзается для отсыла СМС статистики: 250 + 50 + ещё на байт 200 служебки на время генерации - итого примерно 500 байт.

    Если эта версия не заработает - не сочтите за труд выложить лог ;) Очень интересная задача - оптимизация кода в условиях, когда в прошивке оперативка забита уже под самый минимальный краешек ;)

    Конечно, подобные вещи надо нещадно вылавливать и давить как клопов. Если бы ещё знать, как ещё больше оптимизировать правила, чтобы они занимали меньше оперативки - прыгал бы от восторга, но пока там - практически никак, выжал всё, что мог (дорого обходятся строковые команды в части оперативки, не ошибусь, если предположу, что ваши 30 правил занимают не менее килобайта).

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

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Баланс просили? Их есть у меня, вернее - уже на гитхабе ;) Сделал так, что теперь можно получать СМС с балансом симки, послав СМС с текстом "#5", или выполнив в терминалке (или через вебморду, например) команду CTGET=SMS|BAL. В ответ придёт СМС с балансом на счету.

    Сделано просто: посылаю USSD-запрос, а поскольку ответ на этот запрос уже приходит закодированный, как мне надо - я его тупо пересылаю хозяину, по итогу - на хозяйский телефон придёт СМС, которое оператор отсылает в ответ на запрос баланса.

    По умолчанию команда получения баланса настроена на Tele2, будьте внимательны: в Globals. h есть настройки команды, сейчас она "ATD#105#". Можно сменить на другого оператора, достаточно между решётками поставить нужный короткий номер, например, 101, чтобы получилось в итоге "ATD#101#".

    Естественно, имею возможность попробовать пока только с Tele2, но должно работать и с другими операторами - по сути, я ничего в СМС не разбираю, только пересылаю его.

    @olegmak3 - с вами бы нам ещё решить вопрос, и было бы просто супер ;)
     
  10. Jekiss_m
    Регистрация:
    09.05.16
    Сообщения:
    68
    Благодарности:
    31

    Jekiss_m

    Живу здесь

    Jekiss_m

    Живу здесь

    Регистрация:
    09.05.16
    Сообщения:
    68
    Благодарности:
    31
    Адрес:
    Белгородская область, г. Белгород
    Кто-нибудь сможет посмотреть мою плату на предмет ошибок, а то хочется закончить. Осталось только пересброс питания сделать.
     

    Вложения:

  11. Jekiss_m
    Регистрация:
    09.05.16
    Сообщения:
    68
    Благодарности:
    31

    Jekiss_m

    Живу здесь

    Jekiss_m

    Живу здесь

    Регистрация:
    09.05.16
    Сообщения:
    68
    Благодарности:
    31
    Адрес:
    Белгородская область, г. Белгород
    И еще вопрос как пользоваться негативным фоторезистом, а именно распечатывать слой К2 зеркально и в негативе?, слой К1 просто в негативе?
     
  12. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Слой К1 (у меня красный), использую для обозначения габаритов деталей. К2 (желтый) использую как маску нижнего слоя. Все слои дорожек печатаются в негативе, верхний слой еще и в зеркале, слои масок не инвертируются, верхняя маска то же зеркалится
     
  13. Jekiss_m
    Регистрация:
    09.05.16
    Сообщения:
    68
    Благодарности:
    31

    Jekiss_m

    Живу здесь

    Jekiss_m

    Живу здесь

    Регистрация:
    09.05.16
    Сообщения:
    68
    Благодарности:
    31
    Адрес:
    Белгородская область, г. Белгород
    в вебморде можно сделать окошко с авто балансом (например раз в день)?
     
  14. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Не понятно, зачем два DC на 5в?:)
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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