赞
踩
- 开发环境
- 编写布局文件,这里需要两个按钮,一个按钮用来连接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(); } } }
- 运行在真机上的效果图
> 最后,完整源码下载地址 ESP8266LED.zip: https://url83.ctfile.com/f/45573183-1037171603-f8f744?p=7526 (访问密码: 7526)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。