Пишу прогу для автополива. Схема такая: к ардуино подключены электромагнитные клапаны через реле. Ардуино через сетевой модуль обращается на сайт. Сайт в ответ на обращение отдает строку с параметрами - какой клапан включить. Если сайт, для обращения ардуины, делаю на локальном компе - всё работает. Проблема началась при переносе сайта с локального компа в интернет. Проблема следующая - сайт в интернете работает по протоколу https, а ардуино делает запрос по протоколу http. В результате ардуино получает страницу "301 переадресация на протокол https". Ну и, соответственно, не те данные, которые нужны. Как можно отправить запрос по протоколу https? Использую библиотеку EtherCard.h. я так понимаю, что настройку работы с сайтом делает команда ether.dnsLookup(website). Но как ее изменить - не найду((( ну или может в интернете есть бесплатный хостинг, который позволяет сделать поддомен с http? в инете не нашел таких((( может таких уже и в природе не существует?
Сделайте все с протоколом MQTT. И легче и мороки меньше. А еще лучше, чтобы устройство без всякого Интернета работало. Чет очень сложная у вас задумка. У меня это работает на esp-8266 и управляется так: То есть один раз указал сколько надо поливать автоматом утром и вечером, и пока что-то не изменил - оно там само трудится. Управление через Интернет вещь слишком скользкая - сигнал на открытие прошел, а на закрытие - потерялся.
Я имел в виду хостинги, которые позволяют работать через http, а не только по https. На хостиман был - пытался их сайт через http открыть - перебрасывает на https (и еще несколько хостингов пытался таким же образом проверить - не выходит). Регистрироваться там не стал для пробы, думаю что и поддомены будут также себя вести( Или я не прав? по поводу интернета - ну мне нужно иметь оперативный доступ к настройкам. Делаю это для ТСЖ - полив будет во дворе 9-ти этажки. Всякое может быть - начался полив, а там дети или еще что - мамаши ругаться начнут (уже было такое даже с обычным поливом через шланг) ну или еще что. Чтобы в подвал не бежать и не отключать - с телефона зашел на сайт и отключил. Я в Астрахани живу - у нас климат жаркий - вдруг дополить нужно будет или еще что - я первый раз этим делом вообще занимаюсь - в подвал не бежать, ну и т.д. Поэтому решил через интернет этим делом заниматься. Про esp - мне тоже посоветовали в эту сторону смотреть. Я так понял, что его и к ардуино можно подключить, и самостоятельно программировать. Он может по https протоколу работать. Попробую в эту сторону ковырять))) По поводу mqtt - я правильно понимаю, что нужен сервер, который будет работать по этому протоколу? По поводу вашей программы - немного не понял. Вы написали прошивку, залили ее и она управляет вашим поливом, без доступа через интернет - так? А картинка ваша что показывает - это данные откуда выводятся (ну с телефона или еще с чего)? ну управляете вы как - не пойму чего-то)))
ЕSP-8266 работает и без ардуино. Полив организовать ног хватит. Может. Да. Поднять его самому проще пареной репы на той же малине. Можно применить бесплатный: mqtt.eclipse.org broker.mqtt-dashboard.com test.mosquitto.org ... Здесь комбинация. По протоколу MQTT можно менять настройки полива или давать команду напрямую. Однако и без связи устройство отрабатывает программу полива, например раз утром, раз вечером, пока я не изменю это командой. (Новая команда будет запомнена и исполняться каждый день без необходимости ее подтверждать) Нет интернета - все выполнится и без него, польется утром и вечером и после каждого полива наполнится бочка.
чтобы по жсм работать, я так понимаю отдельные модули нужны, сим карта и т.д. Мне кажется через сеть проще сделать это. а изменение командой у вас как реализовано? вы заходите на какой-то сайт и делаете там изменения. esp8266 по протоколу mqtt с какой-то периодичностью опрашивает этот сайт. И если видит изменения, то вносит их себе - такая логика? Не подскажете - библиотека EtherCard.h может по протоколу mqtt работать? или это нужно что-то другое искать?
Ну это смотря как. Если устройство одно, - то проще с модемом, А если не одно, - то проще роутер поставить.
Разберитесь в протоколе MQTT. Я о чем талдычу. Устройство не должно получать команды "открыть кран", "закрыть кран". Какой бы вы способ обмена информацией ни выбрали, устройство должно получать команды "поливать ежедневно в 6 утра", или "поливать через день в 18 вечера".
спасибо огромное - сейчас полезу создавать аккаунт, а то завтра уже собирать автополив собирался. Пока я с другими вариантами разберусь - пусть пока работает так, как сделал. ну на данный момент в подвале уже проведена интернет-розетка, все запчасти для ардуино есть. Так что я пока пойду по этому пути. Но тема с жсм сама по-себе очень интересная - думаю попозже ей заняться! протокол, конечно, поковыряю)) и про то, что устройство должно само открывать и закрывать клапан по расписанию тоже понял - переделаю. Меня интересует вопрос - как мне экстренно закрыть клапан, случись что. Или это как раз я и пойму, разобравшись в том, как MQTT посылает команды?)
Здесь как раз дело не в протоколе. Устройство должно иметь возможность принять такую команду и выполнить ее, что бы оно ни делало. Это вопрос кода устройства. Устройство (протокол MQTT) подписано на сообщения и постоянно слушает брокер (тот, кто пересылает ему сообщения). Как только приходит команда "стоп" - устройство прерывает работу и закрывает кран.
спасибо большое - буду ковырять в этом направлении. А как вы решили вопрос с пропажей электроэнергии? ну внутренние часы же сбросятся. У меня была мысль реализовывать так - при перезагрузке устройства, посылается запрос на сервер, на который приходит текущее серверное время. Дальше узнаем расписание, сохраненное на сервере и работаем уже по штатному расписанию. Или такие вещи не так реализуются?
Как только электричество восстановится, появится и сеть. А в сети время есть всегда. Расписание должно храниться на устройстве.
настроил сегодня хостинг хостимана - заработало))) всем спасибо огромное за помощь. Пока что будет работать так, но попозже переделаю систему.