gpt4 book ai didi

android - 如何使用 Android 设备控制 Arduino 和 WiFly shield

转载 作者:可可西里 更新时间:2023-11-01 02:52:40 33 4
gpt4 key购买 nike

我正在尝试控制 Arduino Uno R3板+ WiFly RN-131C shield使用我的 Android 手机(即类似于 here 所示的内容,尽管我认为在这种情况下 Arduino 通过以太网屏蔽连接到网络)。

Arduino 可以通过 WiFly shield 连接到我的本地网络,Android 手机也连接到同一网络。

我一直在尝试寻找一些做类似事情的教程(不幸的是,上面视频中给出的教程的链接已损坏),并且我找到了一些,但是我在如何发送的步骤中遇到了问题从 Android 手机到 Arduino 的命令。许多教程展示了 Android 手机和 Arduino 如何通过蓝牙或 using two Android devices 进行通信,但我正在寻找通过 Wi-Fi 进行的沟通本地网络。

例如,我在 4x4 Remote Control car 上发现了这个很好的指导,那家伙很友好地提供了the source code for his Android application .但是,我没有在代码中看到实际通信发生的地方(即发送命令的地方)。

据我所读,我必须通过 TCP 连接创建一个套接字,但我不知道在 Android 中是如何完成的...:-/我是 Arduino 的新手,但我有一些 Android 编程经验……除了使用网络套接字和 TCP!

Android 手机如何通过 TCP 与 Arduino 通信的具体示例代码是什么?

PS:可以在 Experimenting with Android and Arduino 中找到另一个做类似事情的不错的教程。 ,但我不懂 Python,无法完全按照说明操作:(

最佳答案

我对 UDP 做了类似的事情。 TCP 需要稍微不同的实现,但希望这能很好地插入正确的方向。

看看我的安卓代码Here

UdpClient.java:

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

import android.util.Log;

public class UdpClient {
String messageStr;
DatagramSocket s;;
int server_port;
InetAddress local;
int msg_length;
byte[] message;

public UdpClient (String ipAddress, int port){
server_port = port;
try {
local = InetAddress.getByName(ipAddress);
s = new DatagramSocket();
} catch (Exception e) {
e.printStackTrace();
Log.d("Powerwheelino",e.getStackTrace() + "error");
// DatagramPacket rPacket = new DatagramPacket()
// s.receive(rPacket);

}
}

public boolean sendData(byte drive, byte steering){
byte drvByte = (byte) (drive & 0xFF);
byte steerByte = (byte) (steering & 0xFF);
message = new byte[2];
message[0] = drvByte;
message[1] = steerByte;
msg_length = message.length;
//message = messageStr.getBytes();
try {
DatagramPacket p = new DatagramPacket(message, msg_length,local,server_port);
s.send(p);
} catch (Exception e) {
Log.d("Powerwheelino", e.getStackTrace() +"ERROR ");
e.printStackTrace();
return false;
}
return true;
}

public boolean isConnected (){
return s.isConnected();
}

}

关于android - 如何使用 Android 设备控制 Arduino 和 WiFly shield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12680791/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com