#android #wifi #raspberry-pi3
#Android #Wi-Fi #raspberry-pi3
Вопрос:
Я хочу отправлять данные между RaspberryPi 3 и приложением для Android, предпочтительно через Wi-Fi.
Я уже отправлял данные между RPi 1 model B и Android раньше, но через USB-модем. Теперь используется RPI 3 model B, поэтому я подумал об отправке через Wi-Fi.
Кто-нибудь может подсказать мне, как это сделать? Любая небольшая помощь приветствуется.
Комментарии:
1. Как вы отправляли данные через usb-модем? И как вы подключили устройства?
2. Обмен данными между двумя приложениями на двух устройствах, подключенных по Wi-Fi, осуществляется серверным приложением и клиентским приложением.
3. То, что вам нужно сделать, зависит от типа данных, которые вы хотите передать. Вы должны предоставить более подробную информацию.
4. @greenapps: Я использовал связь через сокет. Модель клиент-сервер
5. Я просто хочу отправить целое число в RPi. Это просто управляющие сигналы
Ответ №1:
Поскольку вы уже программируете на Java для клиента Android, одним из способов продвижения вперед может быть установка Java на Pi, а затем использование чего-то столь же простого, как базовые сокеты. Однако это зависит от вашего варианта использования.
Возьмите все о сокетах Oracle в качестве примера, напишите программу на стороне сервера для запуска на Pi с ServerSocket:
try (
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket clientSocket = serverSocket.accept();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
) {
while (dataProvider.isDataAvailable()) {
out.println(dataProvider.getData());
}
} catch (IOException e) {
// TODO
}
Затем подключитесь к серверу из приложения для Android:
try (
Socket socket = new Socket(hostName, portNumber);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
) {
while (true) {
parseData(in.readLine());
}
}
Комментарии:
1. Спасибо. Я программировал на базовых HTML и JS и использовал Cordova TCP Socket API.
2. Это работает с подключением USB. Но когда я попытался подключить RPi и приложение, код не сработал.
3. Извините, но с «код не сработал» никто не сможет или не захочет вам помочь. Вы даже «приняли» ответ, хотя он работает, и вы, очевидно, столкнулись с другой проблемой.
4. Привет, ребята, проблема была в статическом IP, который я установил.
5. @Micheal Kanis — Извините, я не имел в виду, что ваш код не работает. Код, который я уже использовал, не работал (потому что статический IP был неправильным).