Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение ser009 » Сб фев 02, 2013 7:47 am

По желанию трудящихся создал отдельную тему
Вот здесь будет рабочий скетч под Arduino + enc28j60

http://computer-service.pro/smf/index.php?topic=31.0
К сожалению скетч мною не проверялся:(
Последний раз редактировалось ser009 Пн фев 04, 2013 5:28 am, всего редактировалось 1 раз.
arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение arturmon » Сб фев 02, 2013 10:09 pm

А где жескетч для обсуждения? ) может разрешите ссылку на мой скетч указать? Так для общего развития вдруг кто-то подскажет как код оптимизовать, да дописать поможет. :roll:
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение ser009 » Вс фев 03, 2013 4:35 am

Конечно же. Скетч в студию. :)
arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение arturmon » Вс фев 03, 2013 9:57 am

ser009 писал(а):Конечно же. Скетч в студию. :)
тут находится "последняя версия" с переключением входов и сохранение в еепром какие порты назначенны.
еще попозже фотографий выложу где видно как можно сделать. Повторюсь: например А1- цифровой А2 - аналоговый А3 - цифровой а все остальные аналоговые :D что-то типа того ( мне это нужно например для того что к одному устройству можно будет подключить как цифровые датчики (значение True или False) так и аналоговые которые имеют значение от 0 до 255 (датчики освещенности)
зачем мне это надо? да для того что я хочу раскидать по дому много разных UNO с небольшим количеством портов, мне кажется это лучше одной меги плюс тащить кучу проводов как до исполнительных устройств так и до датчиков.
сейчас начал делать отправление команд на сервер, но пока не очень получается..
да и еще один неприятный баг обноружился все это работает только когда запущен веб интрефейс в браузере :lol:
http://computer-service.pro/smf/index.php?topic=31.0
Изображение
Изображение
могу код и сюда выложить если кого нибудь заинтересует. :roll:
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение ser009 » Вс фев 03, 2013 12:12 pm

Являюсь "счастливым обладателем" вот такого девайса
Изображение
Так что нужно прикрутить его в Arduino(Mega2560), а потом тестировать скетчи
arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение arturmon » Вс фев 03, 2013 12:31 pm

ser009 писал(а):Являюсь "счастливым обладателем" вот такого девайса
Изображение
Так что нужно прикрутить его в Arduino(Mega2560), а потом тестировать скетчи
Ближе к концу есть пост про соединение этих двух девайсов
http://www.arduino.ru/forum/apparatnye- ... 0arduino-0
и тут же есть библиотека которую я использую, более менее удобовариваямая
https://github.com/jcw/ethercard/
вот что про нее пишут:
EtherCard (не помню точно где брал, но возможно тут http://jeelabs.org/ethercard или https://github.com/jcw/ethercard/) - вообщем та которую использую на данный момент. Работает и API относительно симпатично, но "внутри у нее" - тихий ужас (лично для меня). Документации - практически нет (смотреть примеры и "сам код библиотеки"), одновременно есть "два API" (и какой пример на каком - фиг догладаешься). Но главное - работает, авторы вроде "развивают" ее, плюс, по отзывам библиотека где наиболее полно учтены всякие "заглюки" чипа (а, опять-таки по отзывам, он довольно глючиный). Ну и всякий плюшки типа "отвечать на ping запросы", DNS, DHCP, гейтвеи и т.п. - у нее уже есть "на борту" самому код для этого сочинять не нужно. Плюс некоторое количество хелперов для конструирования/парсинга запросов
arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение arturmon » Пн фев 04, 2013 12:07 am

Подскажите как "сложить" вот такие переменные:

Код: Выделить всё

Char charss [60];
For (int i=2;i<=7;i++){
If (((byte*) &config[i] == 0)
{
Sprintf(charss,"D%d=%d&",i-2,digitalRead('A'+(i-2)));
}
Else
{
Sprint(charss,"A%d=%d&",i-2,analogRead('A'+(i-2)));
}
}
Ether.browseUrl(PSTR("test1.php?"),charss,website,my_callback);
Весь этот цыкл выводит только последние значения, а мне надо все значения в одну строку....
arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение arturmon » Чт фев 07, 2013 4:32 pm

http://computer-service.pro/smf/index.php?topic=31.0
Выкладываю новую версию, в которой добавил получение статуса водных портов по команде /stat в ответ приходит адрес порта его значение и его вид как А аналоговый и D цифровой (есть одна недоработка, пока названия порта передаются в виде hex значения,вместо A=65 D=68 и получается что то такое $650=32&681=0&682=1&683=0 (в переводе будет $A0=32&D1=0&D2=1&D3=0). Но теперь запросы можно слать даже если не запущен браузер и управление реле так же можно осуществлять без запущенного браузера!

Код: Выделить всё

char port[6];
int port_znacenie[6];

 if (config.a0 == 0)
{ 
 port[0]='D';
 port_znacenie[0]=digitalRead(A0);
}
 else 
 {
 port[0]='A';
 port_znacenie[0]=analogRead(A0);
 }
  if (config.a1 == 0)
{ 
 port[1]='D';
 port_znacenie[1]=digitalRead(A1);
}
 else 
 {
 port[1]='A';
 port_znacenie[1]=analogRead(A1);
 }
  if (config.a2 == 0)
{ 
 port[2]='D';
 port_znacenie[2]=digitalRead(A2);
}
 else 
 {
 port[2]='A';
 port_znacenie[2]=analogRead(A2);
 }
  if (config.a3 == 0)
{ 
 port[3]='D';
 port_znacenie[3]=digitalRead(A3);
}
 else 
 {
 port[3]='A';
 port_znacenie[3]=analogRead(A3);
 }
  if (config.a4 == 0)
{ 
 port[4]='D';
 port_znacenie[4]=digitalRead(A4);
}
 else 
 {
 port[4]='A';
 port_znacenie[4]=analogRead(A4);
 }
 if (config.a5 == 0)
{ 
 port[5]='D';
 port_znacenie[5]=digitalRead(A5);
}
 else 
 {
 port[5]='A';
 port_znacenie[5]=analogRead(A5);
 }


       Stash::prepare(PSTR("GET /test1.php?$D0=$D&$D1=$D&$D2=$D&$D3=$D&$D4=$D&$D5=$D HTTP/1.1" "\r\n"
                        "Host: $F" "\r\n"
                        "User-Agent: Arduino EtherCard lib" "\r\n" 
                        "\r\n"
                        "$H"),
                        port[0],port_znacenie[0],
                        port[1],port_znacenie[1],
                        port[2],port_znacenie[2],
                        port[3],port_znacenie[3],
                        port[4],port_znacenie[4],
                        port[5],port_znacenie[5],website);
  ether.tcpSend(); //выводится пока зараза не A и D а 65 и 68, затем идет номер порта (0-5) и после равно значение..
arturmon
Сообщения: 155
Зарегистрирован: Сб июл 07, 2012 11:42 pm
Благодарил (а): 3 раза
Поблагодарили: 3 раза

Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение arturmon » Пт фев 08, 2013 11:51 pm

Похоже ни кто с этим чудом не развлекается :lol: поэтому мучаюсь один, прилепил еще одну страницу настроек в которых добавил настройкисети (айпи шлюз) но не получается прикрутить вместо статичных байтов :x может кто нибуть все таки настраивал переключение с статики на динамику с сохранением переменных? :ugeek:
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем

Сообщение ser009 » Сб фев 09, 2013 5:24 am

у меня не получилось подключить свою плату :x , возможно шилд мертвый поэтому помочь не могу:(
Ответить