связь между двумя arduino с помощью ENC28J60?

Как я могу подключить и отправить данные между двумя arduino с помощью адаптеров ENC28J60 Ethernet на обоих из них. Есть ли какие-либо руководства или примеры кодов для меня, чтобы взглянуть из какой-либо библиотеки, которую я могу использовать для достижения этой связи?

У меня есть один arduino, подключенный к ультразвуковому датчику, а другой к релейному модулю, так что один arduino измеряет расстояние между определенными объектами и отправляет расстояние другому arduino, который затем обрабатывает его, чтобы проверить, находится ли он в пределах определенного предела, если нет, то включите реле. Я мог бы использовать два esp32 с одним в режиме AP, но диапазон недостаточен, и последовательная связь невозможна, так как кабели хрупкие, а расстояние слишком велико, а также я не мог найти другого способа передачи данных.

Открыты для любых предложений даже изменить способ общения? или использование каких-либо других модулей Ethernet?

, 👍2


1 ответ


0

Вы можете использовать библиотеку EthernetENC. См. Примеры библиотеки Arduino Ethernet о том, как использовать библиотеки Ethernet для Arduino.

Объект EthernetClient обертывает TCP-сокет. Обычный TCP-сокет подключен к IP - адресу и порту. EthernetServer прослушивает порт. Если сервер связывается с удаленным клиентским сокетом, он создает локальный сокет, связанный с удаленным клиентским сокетом на свободном порту, и возвращает объект EthernetClient, обертывающий сокет. Все, что вы пишете или печатаете в EthernetClient, отправляется в этот один удаленный сокет.

Если клиентская плата создает EthernetClient и подключает его к IP-адресу и порту EthernetServer на вашей плате "сервер", то вы получаете там EthernetClient от server.available (), и эти два объекта EthernetClient соединяются. То, что вы пишете/печатаете на одной стороне, вы читаете только из объекта EthernetClient на другой стороне.

клиентский сокет

   if (client.connect(serverIP, PORT)) {
     client.print("request\n");
     String response = client.readStringUntil('\n');
     Serial.println(response);
     client.stop();
   }

серверная сторона

   EthernetClient client = server.available();
   if (client && client.connected()) {
     String request = client.readStringUntil('\n');
     Serial.println(request);
     client.print("response\n");
     client.stop();
   }
,

Вам понадобится перекрестный кабель., @Gil