【发布时间】:2021-05-02 10:29:19
【问题描述】:
所以我得到了我的 ESP32 并想做一些项目,我想用一个 Android 应用程序来控制它们,例如 LED 条纹。我已经用我的 Raspberry Pi 做到了这一点,它运行良好。 我已经尝试了一些代码,它可以连接到 Wifi。我的电脑甚至 Raspberry Pi 都可以连接到它,但是当我尝试使用我的智能手机时,我只是没有工作。 这是我的 Android 代码: mainActivity.jre
connectButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!IPAddress.getText().equals("") || IPAddress.getText() != null || !portNumber.getText().equals("") || portNumber.getText() != null){
return;
}
IPaddresse= IPAddress.getText().toString();
port=Integer.parseInt(portNumber.getText().toString());
try {
client = new Socket(IPaddresse,port);
pw = new PrintWriter(client.getOutputStream());
dataOutputStream= new DataOutputStream(client.getOutputStream());
msg.setText("Verbunden!");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
权限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
ESP32 代码:
#include <WiFi.h>
const char* ssid="Name";
const char* password="password";
WiFiServer server(80 );
void setup() {
Serial.begin(115200);
Serial.println("start");
delay(1000);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
Serial.println("Connected to the WiFi network");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (client) {
while (client.connected()) {
while (client.available()>0) {
char c = client.read();
client.write(c);
}
Serial.println(client.localIP());
delay(10);
}
}
}
对不起我的英语。而且我的代码并不是最好的 我刚开始编写代码 谢谢
【问题讨论】:
-
but when i tried with my Smartphone i just didn't worked.确实如此。你看到了吗:NetworkOnMainThreadException? -
不,我没有看到任何异常
标签: java android wifi android-wifi esp32