Ви не увійшли.
Сторінки 1
Я не сильно большой спец, но сделал асутп для пиролизной установки. Тоже мега+этот шилд. Но входных линий 12 и исполнителей 16. Реализовал ПИД + еще всякую мелочь. Но. Скорость опроса датчиков где-то раз в секунду - полторы из-за всяких расчетов и синхронизации. Потому 20 входных(разбил 120 на 6 ардуинок) и почти 13 выходных + необходимость синхронизации параметров, думаю, могут давать низкую скорость реакции. Как мне кажется.
Думаю, как вариант, можно использовать емкостной датчик. Их можно изготовить даже самому. Конечно их нужно будет калибровать. Но не обязательно в лаборатории. Можно воткнуть такой датчик в землю требующую полива(сухую) и заметить значение. Потом полить землю до нужного уровня и тоже заметить значение. Собственно и все. Реализовать гистерезис и можно работать. Предполагаю что в пределах одного участка диэлектическая проницаемость почвы не сильно меняется, потому для одинаковых датчиков(с одинаковой емкостью) можно использовать одинаковые параметры.
Перепайка резистора, немного для другой проблемы. Я как раз с таким столкнулся.
Проблему решил, но напишу сюда, может кому пригодится.
В общем сначала конфигурация сети у меня была похожа а такую комп<->роутер<->ардуино c w5100 шилдом. В роли роутера выступал linksys wrt54gl и вся схема работала исправно. Потом появилась необходимость добавить свич и конфигурация приняла такой вид комп<->роутер<->свич<->ардуино.
Тут-то западло и случилось т.к. ардуинка перестала видеть комп. Когда запускал тестовый скетч, IP адрес писало заданый а не 0.0.0.0, все линки были активны. Более того, когда с компа пытался пинговать ардуину то на шилде мигали светодиоды Rx и Tx а пинг не проходил. Т.е. как бы все живое но не работает. Только сетевой шнур переключаю со свича в роутер - все работает сразу. И свич менял и кабель менял, ничего не помогает. Для справки, перепробовал DLink DES-1008A и TP-LINK TL-SF1005D.
Перепайка резистора помогла.
За протеус ничего не скажу, не пробовал. У меня шилд на чипе w5100. Принципиальная разница в чипах: w5100 имеет аппаратную реализацию tcp/ip, стандартную библиотеку входящую в состав среды arduino. Enc28j60 реализует протоколы через библиотеки, которые нужно устанавливать дополнительно. Я Enc28j60 никогда не использовал, потому ничего дельного по нему сказать не могу.
Если вы хотите передавать данные на сервер и ждать от него ответа на эти данные, то думаю, это лучше делать GET. В сообщении Lic Control там есть хороший пример, как это делать. Если же вы уверенны, что вам нужен POST то вот функция, я юзаю у себя в проекте для POST запросов
void saveHistory(String data, String url) {
if (clientCommon.connect(computerHost, 80)) {
clientCommon.println("POST " + url + "&arduino=1 HTTP/1.1");
clientCommon.println("Host: " + ipStr);
clientCommon.println("Content-Type: application/x-www-form-urlencoded");
clientCommon.println("User-Agent: arduino-ethernet");
clientCommon.println("Connection: close");
clientCommon.print("Content-Length: ");
clientCommon.println(data.length());
clientCommon.println();
clientCommon.print(data);
clientCommon.println();
clientCommon.stop();
}
}
Внешние переменные computerHost, url, ipStr Вот их определения
computerHost можно или как тип IPAddress
IPAddress computerHost(192, 168, 100, 111);
или как си-строку
char computerHost[] = "piroliz.loc";
url это тип String, установить можно так
String url = "/piroliz/web/index.php?q=flippers"
ну и ipStr имеет тип String. Можно задать так
String ipStr = "piroliz.loc";
Обратите внимание на совпадение значений ipStr и computerHost, в случае если computerHost си-строка. В этих переменных пишется имя сервера, на который вы шлете запросы. Но если у вас в сети нету никакого dns маскарадинга или вообще какого-то резолва имени на ip адрес, то computerHost нужно задать как IPAddress. В то же время в ipStr всегда содержится имя компа.
Примеры работы можно взять в ArduinoIDE https://www.arduino.cc/en/Main/Software Меню Файл-Примеры-Ethernet там есть пример WebServer и WebClient. Та ардуинка, которая будет принимать сигнал управления релюхой - та сервер, которая отдает команду, то клиент.
да, нужен или кросс-кабель или хаб. А меня ардуина через вот такой шилд http://arduino-ua.com/prod693-W5100-eth … hield-Rev3 подключена к компу. Но, дело в том что 20 метров кабеля этот шилд не "пробил", т.е. комп не видел подключения, пришлось рядом с ардуинкой поставить хаб.
Сторінки 1