Соединение двух Ардуино через Ethernet посредством Ethernwt Shield W5100
- Войдите на сайт для отправки комментариев
Втр, 17/06/2014 - 14:41
Подскажите кто-нибудь соединял две ардуино по Ethernet на базе W5100? У меня задача передавать данные с одной дуины на другую на расстояние 15 метров, решил попробовать использовать Ethernet. Привожу в пример скетчи:
Arduino 1 (sender):
#include <SPI.h> #include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,1,101); IPAddress gateway(192,168,1,1); IPAddress subnet(255,255,255,0); EthernetServer server(23); // telnet defaults to port 23 void setup () { Serial.begin(115200); Ethernet.begin(mac, ip, gateway, subnet); server.begin(); Serial.print("Chat server address:"); Serial.println(Ethernet.localIP()); } void loop () { EthernetClient client = server.available(); if (client) { client.print("hello"); client.println(" world"); } }
Arduino 2 (receiver):
#include <SPI.h> #include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,1,102); IPAddress gateway(192,168,1,1); IPAddress subnet(255,255,255,0); IPAddress server(192,168,1,101); EthernetClient client; void setup() { Serial.begin(115200); Ethernet.begin(mac, ip); delay(1000); Serial.println("connecting..."); if (client.connect(server, 23)) { Serial.println("connected"); } else { Serial.println("connection failed"); } } void loop() { if (client.available()) { char c = client.read(); Serial.print(c); } if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop(); delay(1000); } }
Мониторю принимающую сторону, в порту вижу "disconnecting". Несмотря на это на передающем Шилде все время мигает лампочка Tx, а на принимающем Шилде так же мигает Rx..
Помогите пожалуйста разобраться в чем дело
Попробуй это. У меня работает.
Условно "сервер"
Условно "клиетн"
Здравствуйте! Ув. BeletskyAV!
Я попробовал скетчи, выложенные Вами, но связь между двумя контроллерами установить не удалось.
Вот, что у меня получилось: слева сервер, справа клиент.
Если честно, Я уже не помню эти сскетчи. Но судя по логам - летит "мусор", а связь есть. Другой вопрос . Что хотите получить от связи двух Ардуин? Если передавать данные и в соответствии с алгоритмом выполнить действия - то загляните сюда : http://smartliving.ru/ . Это и Ардуино и Винда ( Линукс) , и PHP ? и MySQL в одном флаконе , т.е. можно менять алгоритм на ходу не меняя скеч Ардуины.
P.S. Это не реклама , это то чем Я "заболел" и там сижу.
P.P.S. В любом случае зайдите , там связь Ардуины с Сервером и обратно построена на GET запросах - работает на все 100 . Только скечи я использую свои. Если будут вопросы пишите beletskyav@gmail.com чем смогу помогу.
Спасибо! Буду разбираться.
От связи ардуин хочу получить следующее:
Из одной сделаю мастер модуль который будет раздавать команды, а остальные - разнесу по разным помещениям в качестве устройств удалённого ввода-вывода.
Если один мастер и куча слейвов то точно MajorDoMo вам в помощь.