связь между двумя arduino с помощью ENC28J60?
Как я могу подключить и отправить данные между двумя arduino с помощью адаптеров ENC28J60 Ethernet на обоих из них. Есть ли какие-либо руководства или примеры кодов для меня, чтобы взглянуть из какой-либо библиотеки, которую я могу использовать для достижения этой связи?
У меня есть один arduino, подключенный к ультразвуковому датчику, а другой к релейному модулю, так что один arduino измеряет расстояние между определенными объектами и отправляет расстояние другому arduino, который затем обрабатывает его, чтобы проверить, находится ли он в пределах определенного предела, если нет, то включите реле. Я мог бы использовать два esp32 с одним в режиме AP, но диапазон недостаточен, и последовательная связь невозможна, так как кабели хрупкие, а расстояние слишком велико, а также я не мог найти другого способа передачи данных.
Открыты для любых предложений даже изменить способ общения? или использование каких-либо других модулей Ethernet?
1 ответ
Вы можете использовать библиотеку 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();
}
- Клиент MQTT на Arduino + SIM900
- Разбор HTTP с аутентификацией в Arduino + Ethernet Shield
- Сдвиг фазы квадратной волны Arduino на 270 градусов
- Ethernet Shield не работает с TFT-экраном
- Ограничения подключения ко многим ардуино через Ethernet?
- DF Robot W5200 Ethernet Shield для Arduino Uno не работает?
- Ethernet Shield не подключается
- Передача нескольких значений в arduino и их интерпретация с минимальной задержкой
Вам понадобится перекрестный кабель., @Gil