Android与EPS8266模块通信(一)编写Android客户端
- 开发环境
- Windows 10
- Android Studio 2021.2.1
- 编写布局文件,这里需要两个按钮,一个按钮用来连接esp8266开启的热点,一个按钮用来控制LED的开启和关闭。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:scaleX="0.5"
android:scaleY="0.5"
android:src="@drawable/gray" />
<Button
android:id="@+id/button_connect"
android:layout_width="280dp"
android:layout_height="60dp"
android:layout_below="@+id/image"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:onClick="connect"
android:text="连接" />
<Button
android:id="@+id/openOrCloseLED"
android:layout_width="280dp"
android:layout_height="60dp"
android:layout_below="@+id/button_connect"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:onClick="openOrCloseLED"
android:text="打开LED" />
</RelativeLayout>
- 布局效果图
> 4. 编码MainActivity代码,ESP8266的IP地址为192.168.4.1,端口号为80
package com.lili.esp8266;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
// 主页面
public class MainActivity extends Activity {
public ImageView ledImageView;
public Button connectButton; // 连接esp8266
public Button openOrCloseLEDButton; // 打开或者关闭LED按钮
private ConnectThread connectThread;
public boolean isConnected;
public boolean isOpenLED;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
connectThread = new ConnectThread(this, "192.168.4.1", 80);
// 开启连接线程
connectThread.start();
}
private void initView() {
// LED灯图标
ledImageView = (ImageView) findViewById(R.id.image);
connectButton = findViewById(R.id.button_connect);
openOrCloseLEDButton = findViewById(R.id.openOrCloseLED);
}
// 连接到esp8266
public void connect(View view)
{
// 如果没有连接
if (!isConnected)
{
connectThread.startConnect = true;
} else {
try {
connectThread.closeConnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
// 打开或者关闭LED
public void openOrCloseLED(View view)
{
// 如果已经连接到esp8266
if (isConnected)
{
// 如果已经打开LED
if (isOpenLED)
{
// 关闭LED
connectThread.closeLED();
} else {
// 开启LED
connectThread.openLED();
}
} else {
Toast.makeText(this, "未连接到服务器!", Toast.LENGTH_SHORT).show();
}
}
}
- 运行在真机上的效果图
> 最后,完整源码下载地址 https://www.lilihewo.com/article/239.html
文章来源地址https://www.toymoban.com/news/detail-516309.html
文章来源:https://www.toymoban.com/news/detail-516309.html
到了这里,关于Android与EPS8266模块通信(一)编写Android客户端的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!