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

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

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

Статус темы:
Закрыта.
  1. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

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

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    Вшуьщт1991, вообще как-то удивил ваш ответ. Вы как человек знающий как прикрутить есп изменив скетч. И наверняка знающий что производитель есп говорит об своем изделии "на свой страх и риск" пишете об роутерах имеющие варианты альтернативных прошивок и производители которых упоминают о девятках, говорить что они барахло. Прикольно. Обратите тогда на них внимание. Ну хотябы для того чтоб не звонить и просить переткнуть розетку. И почитайте вики проекта, в нем говорится о апи телнете и прочих радостях, я от себя добавлю ssh и впн, очень облегчат жизнь и доступ из командировок. Роутеры, продаются в любых спец магазинах, на любой вкус
    А веб-сервер вы планируете ставить на MS?
    По моему вы занимаетесь костыле строительством
     
  3. Вшуьщт1991
    Регистрация:
    07.07.16
    Сообщения:
    44
    Благодарности:
    11

    Вшуьщт1991

    Участник

    Вшуьщт1991

    Участник

    Регистрация:
    07.07.16
    Сообщения:
    44
    Благодарности:
    11
    @Shelllonn, не знаю, я пока против нагромождения этого всего.
    Зачем я буду заморачиваться и добавлять еще одно устройство в виде роутера в эту систему. Который нужно еще найти, разобраться в нем, прошивках и прочее.
    Мне не нужен телнет, ssh и vpn. хоть я и знаю что это такое, и даже периодически пользуюсь. Мне не нужен новый роутер, хотя в кварире и стоит asus на tomatousb :)
    Чем проще тем лучше, особенно когда это "проект ради проекта", как в моем случае. Для того чтобы понять, стоит ли вообще овчинка выделки.
    P. S. я наверное неправильно описал свою ситуацию. тепличка для отца, он всегда дома, даже когда я в командировке. у меня не стоит задача удаленно управлять/перезагружать/перетыкать розетку. Хотя идея удаленно перешивать мегу стоит внимания... Но это уже тема другого разговора.
    Давайте жить дружно :hello:
    P. P. S. что такое MS из "А веб-сервер вы планируете ставить на MS?"
     
    Последнее редактирование: 16.03.17
  4. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

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

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    под никсами через usb, под консолью заливается без проблем, через uart не пробывал
     
  6. Вшуьщт1991
    Регистрация:
    07.07.16
    Сообщения:
    44
    Благодарности:
    11

    Вшуьщт1991

    Участник

    Вшуьщт1991

    Участник

    Регистрация:
    07.07.16
    Сообщения:
    44
    Благодарности:
    11
    В этом и проблема. Там usb-uart преобразователь на меге в нужный момент ресетит основной камень. А если напрямую в uart пытаться лить прошивку, основной контроллер не ресетится автоматически. В свое время решал эту проблему и заливал ардуинку по блютусу :). В общем тоже есть нюансы, как и везде
     
  7. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Обновил на гитхабе, добавил первую версию отсыла данных на ThingSpeak через ESP, которая юзается модулем WiFiModule.

    Для того, чтобы проверить - раскомментируем USE_IOT_MODULE, настраиваем ниже ключ канала и датчики, которые на канал надо отсылать (до 8 штук для ThingSpeak, все в курсе, кому надо :)), время обновления, при необходимости - включаем WIFI_DEBUG, чтобы посмотреть в мониторе порта, чего там вдруг не так - и пробуем.

    Проверил - запрос уходит в формате, понятном ThingSpeak. Но, поскольку у мну роутер, к которому подключается ESP, не имеет выхода в сеть - то я тестировал на локальном серваке, делая запросы к нему и смотря логи. Сейчас в прошивке указан IP-адрес сервера ThingSpeak, выдратый из официальной библиотеки.

    Теперь что из интересного: поскольку у ESP четыре канала для подключения клиентов, то имеем такую ситуацию: в браузере открыта вебморда - это один клиент. Периодически по cron дёргается скрипт складывания данных в базу вебсервера - это второй клиент. Остаётся - два. Для отсыла данных на ThingSpeak я юзаю крайнего клиента, четвёртого. Завалить всё это дело (не смертельно, оно откиснет) можно, открыв ещё пару клиентов с каких-нибудь устройств.

    Ну не совсем завалить, а просто ESP такая тупая: если я коннекчусь клиентом к удалённому серваку, и в этот момент к ESP коннектится клиент - то эта тупая мразота не отсылает клиента восвояси, а спокойно так принимает от него коннект, несмотря на то, что я сейчас на этом, цуко, канале пытаюсь достучаться до ThingSpeak. Соответственно, такая шляпа никак не разруливается, ибо это - тупой косяк прошивки ESP, и никакими коврижками и конечными автоматами я даже не хочу пытаться это дело разрулить.

    Как откисает: параллельно с этим я сделал проверку на зависание ESP, так же, как и для GSM-модема. И если долгое время какая-то команда висит не отработана - то ESP просто перезагружается (пока виртуально, ибо нет новой версии платы в наличии, с контролем перезагрузки через пин) - на нужном пине пересбрасывается уровень, питание ESP откл, потом - вкл, и она стартует опять, как ни в чём ни бывало.

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

    Интерфейс взаимодействия получился простой: модуль IoTModule формирует данные в формате, понятном каждому поддерживаемому сервису, и дёргает модули, зарегистрированные как шлюзы для IoT, за усы, передавая им эти данные. Что там делает конкретный модуль внутри - уже неважно, например, ESP - формирует GET-запрос и отсылает специфичные для ESP AT-команды, чтобы выпулить это дело в эфир. Через GSM, ясное дело, по другому будет отсылаться - там свой набор команд.

    Работа полностью асинхронная, неблокирующая, поэтому могут быть косяки, ибо - уж очень развесистый конечный автомат уже получается. Суть работы: IoTModule сообщает шлюзу, что он хотел бы на такой-то сервис отослать столько-то байт. Если шлюз поддерживает этот сервис, то, как только данные можно будет отослать - он дёргает функцию получения подготовленных данных, и уже по завершению отсыла (опять же, через некоторое время, асинхронно) - дёргает функцию статуса отсыла. Вся эта возня позволяет нам не тормозить работу всей прошивки на время отсыла данных на тот же ThingSpeak.

    Как тестировать, если вдруг чего? Про WIFI_DEBUG я уже упоминал. Далее, чтобы не напрягать бедный ThingSpeak и чтобы там не отключили аккаунт: можно вместо IP ThingSpeak поставить в настройках любой IP в локальной сети, где есть веб-сервер, откликающийся по порту 80, поставить интервал отсыла данных раз в секунд 15, и смотреть access. log на этом серваке на предмет запроса GET /update?api_key=XXXXX&field1=XXX&...

    @Вшуьщт1991, буду очень признателен, если отпишитесь, как оно - взлетело или нет. Новых настроек в Globals. h не так много, разобраться не составит труда, я думаю. Пока решил оставить все настройки жёстко вшитыми в прошивку, потом уже будем посмотреть - если найду дырку в EEPROM, куда влезет хотя бы 8 датчиков + настройки для того же ThingSpeak (ключ канала) - то можно будет вытащить это дело в конфигуратор.

    Но для начала надо протестировать то, что есть. Если реализованная архитектура взлетит - значит, можно будет заниматься отсылкой данных через GSM-модем ;) Ну а потом уже - искать свободное место для хранения настроек в EEPROM.
     
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Это у них у всех такая беда ;)
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

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

    Так что дело не в ESP - я просто предоставляю возможность попытки отправить через ESP данные на ThingSpeak. А уж пройдёт эта попытка или нет - сиё заранее неведомо.

    То же самое будет и с GSM-модемом: будет предоставлена возможность. А уж включён там GPRS, хватает ли денег на счету и пр. - проблемы индейцев шерифа не волнуют, как известно ;)
     
  11. Вшуьщт1991
    Регистрация:
    07.07.16
    Сообщения:
    44
    Благодарности:
    11

    Вшуьщт1991

    Участник

    Вшуьщт1991

    Участник

    Регистрация:
    07.07.16
    Сообщения:
    44
    Благодарности:
    11
    Вчера вечером настроил отправку данных в Thingspeak. Закомментил стадартный wifi модуль, и на esp посылал свои АТ команды.
    Пока взял две температуры (SI7021, DS18B20) и влажность (SI7021). Данные отправлялись раз в 30 секунд.
    Кому интересно: https://thingspeak.com/channels/50516
    DS18B20 положил возле выхода горячего воздуха из ноутбука, поэтому значения такие.
    В принципе все работает, единственный нюанс - пока не разобрался как работает yield(), поэтому пока есть delay (2000); в коде. Для меня некритично на данный момент.

    P. S. пост выше пока не читал. Сейчас налью кофе и буду вникать :)
     
  12. Anatoly8853
    Регистрация:
    21.07.13
    Сообщения:
    94
    Благодарности:
    45

    Anatoly8853

    Живу здесь

    Anatoly8853

    Живу здесь

    Регистрация:
    21.07.13
    Сообщения:
    94
    Благодарности:
    45
    Адрес:
    Пятигорск
    http://samopal.pro/arduino-esp8266/
     
  13. Вшуьщт1991
    Регистрация:
    07.07.16
    Сообщения:
    44
    Благодарности:
    11

    Вшуьщт1991

    Участник

    Вшуьщт1991

    Участник

    Регистрация:
    07.07.16
    Сообщения:
    44
    Благодарности:
    11
    @DIYMan, залил ваше обновление в мегу, данные отсылаются. Напомню ссылку: https://thingspeak.com/channels/50516
    Сейчас там уже ваш код работает. Отдельное спасибо за замену запятой на точку :). Вчера тоже этот нюанс заметил.
    Одно пожелание: когда WIFI_DEBUG раскомментирован, в com порту есть такая запись:
    [CA] 16: => Send the "GET /update?api_key=P8MQLYSZ3JL1JN18&" command to ESP...
    Но это не вся строчка, нет данных с датчиков. Она должна быть примерно такого вида:
    GET /update?api_key=P8MQLYSZ3JL1JN18&field1=12.2&field2=24.2&field3=36.2
    Это чуть поможет в отладке, чтобы понимать какие значения уходят на сервер
     
  14. Shelllonn
    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300

    Shelllonn

    Живу здесь

    Shelllonn

    Живу здесь

    Регистрация:
    04.02.16
    Сообщения:
    759
    Благодарности:
    300
    Esp-link и подобные проекты, пробывал тестировал. Работают, заливают, но сами то пингуются то нет. Я в первой части отписывался, и сам эти же линки выкладывал.
    Для себя решил, мега занимается теплицей, а со всем внешним отдельная железка, более заточенная
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

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

    DIYMan

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

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Там просто данные с датчиков прямо в порт меги пуляются. Если надо посмотреть, что собирается к отсылу - то в модуле IoTModule есть данные, функция CollectDataForThingSpeak - там можно вывести отладочный режим, если надо ;)

    Рад, что всё взлетело :super:, какой же я молодец :)]:aga:
     
Статус темы:
Закрыта.