Найти тему
CybernetSystems

Ethernet клиент на Arduino

Ethernet
Ethernet

В некоторых своих проектах я использую связку микроконтроллер и персональный компьютер для управления механизмами и мониторинга данных с различных датчиков, при том условие, что создается не мобильное устройство.

Разработка пользовательского интерфейса для управления с ПК, как по мне чуть проще и более функциональна чем на микроконтроллере, к которому требуется еще прицепить подходящий дисплей для вывода информации и какой то источник ввода данных, кнопки, энкодер, клавиатура и т.д.

До недавнего времени, я использовал USB для связи между ПК и микроконтроллером, но возник интерес удаленного управления. И тут я посмотрел в сторону Ethernet. При его использовании компьютер может находиться практически на любом расстоянии от исполнительного механизма (платы с микроконтроллером), и даже физически быть не связанным, то есть связь может осуществляться по Wi-Fi.

Еще одним большим плюсом данного соединения является то, что если одновременно требуется управлять некоторым количеством устройств, то можно их все подсоединить через коммутатор и к ПК.

Далее постараюсь показать, как я заставил микроконтроллер отправлять и принимать данные по ethernet. В качестве микроконтроллера использовал плату Arduino Mega, а в качестве модуля Ethernet W5500. Две платы соединяются по SPI-Serial Peripheral interface.

Подключение модуля Ethernet W5500 к Arduino UNO
Подключение модуля Ethernet W5500 к Arduino UNO
Подключение к модуля Ethernet W5500 к пинам 50, 51, 52, 10 - Arduino Mega
Подключение к модуля Ethernet W5500 к пинам 50, 51, 52, 10 - Arduino Mega

В моем случае плата с контроллером является клиентом, а компьютер сервером, то есть плата будет принимать данные с ПК (например, управляющие команды) и отправлять на него некие данные (например, с датчиков).

Далее приведу простой код скетча клиента, который будет просто принимать, и отправлять данные.

Счетч
Счетч

Работа клиента с сервером:

Работа клиента с сервером
Работа клиента с сервером

Пара слов о программе сервере. Наприсана она в среде разработки Delphi, кто не помнит это Object Pascal. Что то подобное можно организовать на любом другом языке программирования, тут все зависит от вашего умения.

Программе присвоен номер порта 5000, и клиент (ардуинка) отправляет данные в этот порт. Программа эти данные принимает и выводит. Так же она выводит IP адрес нашего клиента, и может отправлят данные.

В целом, практического применения данная организация клиент-сервер не несет, это своего рода отработка возможности использования Ethernet подключения.

Всем спасибо за внимание! :)

#Ethernet #Server #Client #сеть #Arduino #W5500 #W5100