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

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

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

Статус темы:
Закрыта.
  1. Gazland
    Регистрация:
    10.12.12
    Сообщения:
    1.312
    Благодарности:
    745

    Gazland

    Живу здесь

    Gazland

    Живу здесь

    Регистрация:
    10.12.12
    Сообщения:
    1.312
    Благодарности:
    745
    Адрес:
    Москва
    Тут главное не перемудрить, зачем большие файлы гонять по Wi-Fi? Он нам нужен для передачи команды и то не всегда, дистанционный контроль. При желании статистику можно просто писать на карту. А так посылаем запрос, делаем запрос состояния, исполнения, если запрос выполнен и принят про него забываем, если нет повторяем.
     
  2. Gazland
    Регистрация:
    10.12.12
    Сообщения:
    1.312
    Благодарности:
    745

    Gazland

    Живу здесь

    Gazland

    Живу здесь

    Регистрация:
    10.12.12
    Сообщения:
    1.312
    Благодарности:
    745
    Адрес:
    Москва
    У меня складывается впечатления что делаете это ради процесса, а не конечного результата. Постоянные апдейты, абргрейды и. т. д. :)
     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Мда, глючноватая среда разработки. Решил поменять размер буфера приёма, открыл файл HardwareSerial. h, поменял там всё, что надо, сохранил, перезапустил Arduino IDE. Итог - откуда-то берётся старое значение. Сама среда установлена с путём по умолчанию, в Program Files.

    Ок, думаю - знаем мы защиту файлов Windows, может - там собака порылась. Снёс Arduino IDE, поставил на D:\Arduino. Поменял опять размер буфера, скомпилировал - смотрю, подхватилось. Ну, думаю - заживём теперь!

    Ага, не тут то было - теперь с неуловимой периодичностью при компиляции возникают вот такие ошибки:
    Код:
    GetFileAttributesEx D:\Arduino\libraries\SD\src\File.cpp D:\Arduino\libraries\SD\src/SD.h: The filename, directory name, or volume label syntax is incorrect.
    Ошибка компиляции.
    Уроды, блин, криворукие! У Windows путь в файловой системе разделяется "\", из-за одного неправильного "/" в пути - ошибки. Цуки, одним словом. Помогает только перезапуск IDE, и то - до первой компиляции проекта, как один раз закачал - закрывай среду и открывай по новой.

    Не нахожу культурных слов.
     
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Просто заставлять пользователя открывать какой-то файл на диске, чтобы получить доступ к веб-морде - зачем, если есть браузер, в который можно ввести адрес и получить доступ к управлению контроллером? А уж на каком устройстве открыт браузер - неважно: практически ничего потом не помешает дописать проверку - откуда пришёл запрос (User-Agent), и отдавать то или иное оформление.
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Итак, краткое резюме по пользованию Arduino IDE версии 1.6.7:

    1. Устанавливать только в путь по умолчанию, иначе - глюки;
    2. Если надо изменить файл в поставке - делать не через проводник, а через FAR, например. Иначе - у меня просто не менялся файл HardwareSerial. h - винда показывала, что всё изменила, однако - где-то продолжала хранить первую версию. Обнаружил так - просто переименовал HardwareSerial. h в любое другое имя, открыл Arduino IDE, скомпилировал проект - к моему удивлению, он благополучно собрался. Тогда залез FAR'ом в папку с исходниками - и обнаружил там здравствующий HardwareSerial. h, которого - в проводнике Windows заметно просто не было!

    Итог: защита файлов в Windows - такая защита, что ахтунг! Обладая правами администратора на компьютере - я не могу как я хочу поправить файл внутри Program Files - это уже даже не смешно!

    Это я к чему речи такие толкаю: к тому, что готовьтесь - у себя-то я поменял размер приёмного буфера, но вот как это будете делать вы, вдруг это потребуется - вопрос.

    Для пытливых умов задачка:

    1. Открываем новый скетч, в setup() пишем Serial. begin (9600);
    2. Компилируем скетч, запоминаем его размер и сколько оперативной памяти он отъел.
    3. Закрываем Arduino IDE, идём в C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino (оценили путь, да? :)]:aga:), ищем там HardwareSerial. h, открываем его в Блокноте, например.
    4. Ищем там строку
    Код:
    #define SERIAL_RX_BUFFER_SIZE 64
    и меняем её на
    Код:
    #define SERIAL_RX_BUFFER_SIZE 128
    5. Сохраняем файл. При необходимости говорим Windows, что мы - не олень и всё будет норм. Стараемся быть велеречивыми, убедительными и настойчивыми, учитывая тот факт, что женщины с первого раза не сдаются :)]:aga:

    6. Открываем Arduino IDE, открываем наш скетч, созданный на шаге 1, компилируем его и смотрим - оперативки должно быть занято как минимум на 64 байта больше - мы ведь увеличили размер приёмного буфера вдвое.

    7. Если это не так и скетч занимает столько же, сколько и до наших изменений - чешем репу, нервно смеёмся, открываем файл HardwareSerial. h в Блокноте опять, убеждаемся, что там всё изменено, ничего не понимаем, начинаем нервничать, сучить ножками, и вообще - беситься.

    8. Закрываем IDE, переименовываем файл HardwareSerial. h в файл Какашка. h

    9. Открываем IDE, открываем наш скетч, компилируем - и, блджад - он компилируется, хотя не должен! Думаем - как это IDE узнала про файл Какашка. h? Бесимся, нервничаем, курим вторую пачку сигарет.

    10. Догадываемся открыть FAR Manager (незаменимый спутник уже второй десяток лет), идём в нём в указанную папку с исходниками, и, блджад - видим там файл HardwareSerial. h, прямо радом с нашим какашечным, переименованным. Прямо из FAR редактируем этот файл, сохраняем, выходим, открываем IDE, открываем наш скетч, компилируем, видим - размер, наконец, изменился, бинго!

    З. Ы. Windows 7 у меня, если что.
    З. З. Ы. Несколько часов моей жизни потрачены зря.
    З. З. З. Ы. :mad::mad::mad::mad::mad::mad:
     
  6. D_J_Instruktor
    Регистрация:
    28.01.16
    Сообщения:
    35
    Благодарности:
    18

    D_J_Instruktor

    Участник

    D_J_Instruktor

    Участник

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

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Тестирую с Google Chrome, самым быстрым браузером :) Короче, он быстрый, да. Но - без указания заголовка Connection: close в ответе - не хочет, собака, закрывать TCP-соединение, даже если на другом конце свистка я рву связь, прося ESP закрыть TCP-стек вызовом AT+CIPCLOSE.

    Firefox, кстати, эту ситуацию разруливает успешно. Так что вопрос, какой браузер лучше - реально холивар: нет таких браузеров.

    Первое ограничение ESP выплыло наружу: одновременно из нескольких браузеров (дома три компа, бегал как шавка между ними :)]:aga:) не получится смотреть веб-морду, не хватает стека клиентов (там 4 по умолчанию, т. е. на каждый запрос - один клиент, а запрос - это обращение к любому файлу, в одном HTML-файле может быть туча ссылок на подключаемые). Естественно, это и ожидалось, не ожидалось другое - что при этом ESP будет морозиться, да иногда так, что помогает только перезапуск. Впрочем, ещё не факт, что это морозится ESP - вполне возможно, что мой код где-то неправильно отрабатывает состояние, надо будет внимательно смотреть граф состояний конечного автомата, а эта срань - запутанней некуда, блин.

    В общем, обновил прошивку, добавляю потихоньку разный нормальный код, который должен там быть :)

    З. Ы. И да - передатчик у ESP слабенький, надо внешнюю антенну крутить. Подожду, когда ESP-07 придёт, да надо ещё антенну заказать на али - и тогда можно будет тестировать дальнобойность. Хотя я уже сомневаюсь, что добьёт на 70 м - разве что с ноутбуком выходить на улицу и в прямой видимости работать. ну или - промежуточный роутер ставить где-нибудь в сарае. С этим будем решать позже. На крайняк - есть вариант RS-485, там тоже конь ещё не валялся :)
     
    Последнее редактирование: 28.02.16
  8. YRA26
    Регистрация:
    09.01.16
    Сообщения:
    160
    Благодарности:
    71

    YRA26

    Живу здесь

    YRA26

    Живу здесь

    Регистрация:
    09.01.16
    Сообщения:
    160
    Благодарности:
    71
    @DIYMan, да надо искать новые мокасины да и бубен за одно, для работы, ну чем труднее путь, тем слаще чувство покорения вершины.
     
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Да, это точно :) Кстати - качаю Arduino IDE 1.7.8 в виде ZIP-архива - попробую там скомпилировать и посмотреть, на что ругается. Я и не знал, что есть arduino. org - качал сроду с arduino. cc, а тут, думаю - дай, посмотрю, что за версия такая мне неизвестная - 1.7.8? Хоть гляну, что за зверь - больно здоров, зараза - 261 мегабайт против 80-ти у версии с arduino. cc.

    В общем, попробую адаптировать и под эту версию.
     
  10. YRA26
    Регистрация:
    09.01.16
    Сообщения:
    160
    Благодарности:
    71

    YRA26

    Живу здесь

    YRA26

    Живу здесь

    Регистрация:
    09.01.16
    Сообщения:
    160
    Благодарности:
    71
    Да я все проекты по поливу скачивал и на ней 1.7.8. компилировал, кроме твоего на нем не смог запустить, а может руки кривые. Вот смотри по умолчанию IDE предлагает библиотеку в корне винды, я же твой проект, да и все остальные, храню на флешке, которую таскаю с собой, единственно приходится прописывать путь на флешку ну, например, для твоего проекта -F:/TEPLICA_DIY/arduino-1.6.7_DIYMan_Teplichka/Sketch, а для запуска ESP я должен все прописывать в Виндах?
    P. S. Флешка SanDisK Extreme 32 Gb
     
    Последнее редактирование: 28.02.16
  11. Voron74
    Регистрация:
    29.01.16
    Сообщения:
    411
    Благодарности:
    227

    Voron74

    Живу здесь

    Voron74

    Живу здесь

    Регистрация:
    29.01.16
    Сообщения:
    411
    Благодарности:
    227
    Адрес:
    Магнитогорск
    Попробовал переименовать "HardwareSerial.h и скомпилировать, выдало такое:
    Arduino: 1.6.7 (Windows 7), Плата:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    In file included from sketch\sketch_feb29a.ino.cpp:1:0:

    C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:224:28: fatal error: HardwareSerial. h: No such file or directory

    #include "HardwareSerial.h"

    compilation terminated.

    exit status 1
    Ошибка компиляции.

    А это размер после изменинй
    Скетч использует 1 960 байт (0%) памяти устройства. Всего доступно 253 952 байт.
    Глобальные переменные используют 246 байт (3%) динамической памяти, оставляя 7 946 байт для локальных переменных. Максимум: 8 192 байт.
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Итак, ответственно заявляю про версию 1.7.8 с левого сайта arduino. org - хрень собачья. И пользоваться ей я точно не буду, потому что тут как раз тот случай, когда совместная разработка сообществом "делателей" до добра не доводит. Поясню: это ж надо так писать код, что банально разобрать пути в подключаемых файлах не могут! Если в подключаемом файле (например, WiFiModule. h) написано
    Код:
    #include <SD.h>
    то это значит ровным счётом то, что файл <SD.h> надо искать в путях, прописанных в глобальных настройках, например, в папке с библиотеками. Эта же недоподелка даже этого не делает, предпочитая выпалить "Файл не найден, ничо не знаю!" и свалиться в истерике.

    Плюс ко всему - у этой каки версии библиотек, например, той же SD - старые как заскорузлое мамонтово гуано, и опираться на них - не буду точно.

    Так что всем советую использовать более-менее нормальную (от этого не менее глючную, конечно, но всё-же) версию, скачанную с сайта arduino. cc.

    Доклад окончил.
     
  13. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Хорошо вам, у меня всё жёстко замаскировано :) А до изменений размер был меньше? Я имею в виду - размер глобальных переменных (246 байт)?

    И что за версия Windows у вас? Как-то не верится, что я попал в чудо и у меня одного так жёстко обстоит ситуация с изменением файлов внутри Program Files :)
     
  14. Voron74
    Регистрация:
    29.01.16
    Сообщения:
    411
    Благодарности:
    227

    Voron74

    Живу здесь

    Voron74

    Живу здесь

    Регистрация:
    29.01.16
    Сообщения:
    411
    Благодарности:
    227
    Адрес:
    Магнитогорск
    Размер изменился)
    Windows 7 x64 Максимальная, SP1 (лицензионная пиратка)
    файл искал чеpез Total Commander Версия 7.56a 32 bit (16.12.2010)
    менял текст через Sublime Text 3, Build 3083
    Всё с админ. правами.
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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