Клиент Arduino отправляет данные на сервер Java через сокеты - PullRequest
0 голосов
/ 14 марта 2012

Я начинаю новый проект, в котором мне нужно отправить данные из Arduino на сервер Java.Я хотел бы использовать Arduino Wifi Shield.После этого java-сервер отправит полученные данные в веб-службу через 3G-маршрутизатор.

Возможна ли эта настройка?Существует ли API для установки сокетного соединения между Arduino и Java-сервером?

Если нет, какие возможности у меня есть?Спасибо заранее

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Конечно, есть несколько способов сделать это.Вы можете использовать Arduino Ethernet-библиотеку для подключения к вашему Java-серверу.Вот хорошая маленькая программа под названием ClientConnect , которая использует устройство Ethernet для подключения к серверу.Эта небольшая программа отправляет веб-запрос на сервер со следующими строками:

client.println("GET /search?q=arduino HTTP/1.0");
client.println();

На стороне сервера было бы проще всего использовать какой-нибудь простой сервлет и использовать веб-интерфейс Java.фреймворк, такой как Tomcat .

Тогда ваши транзакции Arduino будут просто выглядеть как простые веб-транзакции:

GET /your-path-to-your-servley?field1=value1&field2=value2 HTTP/1.0
[[ empty line here ]]

Это отправит набор пар поле / значение вашемуJava веб-сервер, который будет вызывать ваш сервлет.В приведенном выше примере "q" - это имя поля, а "arduino" - это значение.

Надеюсь, это поможет.

1 голос
/ 14 марта 2012

Подобно ответу @gray, который является «push-решением», нужно, чтобы java-сервер запрашивал Arduino через некоторый интервал (модель «pull»).Для этого просто посмотрите пример веб-хостинга в библиотеке Arduino ethernet samnple.Вы можете изменить его, чтобы arduino возвращал значение своих датчиков как часть своего http-ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...