Android与EPS8266模块通信(一)编写Android客户端

  1. 开发环境
  • Windows 10
  • Android Studio 2021.2.1
  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"><ImageViewandroid: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" /><Buttonandroid: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="连接" /><Buttonandroid: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>
  1. 布局效果图
    > 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; // 连接esp8266public Button openOrCloseLEDButton; // 打开或者关闭LED按钮private ConnectThread connectThread;public boolean isConnected;public boolean isOpenLED;@Overrideprotected 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);}// 连接到esp8266public void connect(View view){// 如果没有连接if (!isConnected){connectThread.startConnect = true;} else {try {connectThread.closeConnect();} catch (Exception e) {e.printStackTrace();}}}// 打开或者关闭LEDpublic void openOrCloseLED(View view){// 如果已经连接到esp8266if (isConnected){// 如果已经打开LEDif (isOpenLED){// 关闭LEDconnectThread.closeLED();} else {// 开启LEDconnectThread.openLED();}} else {Toast.makeText(this, "未连接到服务器!", Toast.LENGTH_SHORT).show();}}}
  1. 运行在真机上的效果图
    > 最后,完整源码下载地址 https://www.lilihewo.com/article/239.html

Android与EPS8266模块通信(一)编写Android客户端相关推荐

  1. unity android ndk的作用,Unity中编写Android下使用的so插件

    四月 24.2019. 0 Comment 在android上编写插件有多种路子: 1. c# portable library,用c#写的可移植的assembly.使用起来最简单.最方便,比如那些j ...

  2. Android与蓝牙串口模块通信

    由于项目的需要的Android与蓝牙模块通信,发了时间学习了下,实现了Android的与蓝牙模块的通信 1.蓝牙串口模块使用SPP-CA模块 蓝牙串口模块就是使用单片机的TX,RX与蓝牙模块通信, ...

  3. Android与物联网设备通信-自定义报文与字节序

    前几节我们把网络通信中的基础都过了一遍,今天真正开始秀操作了.本节主要讲解如何在应用层上去定义报文的结构体.良好的报文设计会让今后的业务扩展变得轻松.顺带会讲解一下字节序. 可以发现最近的章节都把两个 ...

  4. Android与物联网设备通信 - 字节报文组装与解析

    工作调动.暂时停更了一段时间.续上一篇我们学习了如何去自定义一组报文,今天我们接着解析和组装报文. 前面我们讲过在物联网通信中实际上不论我们使用什么方式作为通信介质,其本质就是字节.所以我再一次对本章 ...

  5. Android BLE学习(二): Android与51822蓝牙模块通信流程的实现与分析

    http://www.itkeyword.com/doc/7802444777000507x499/android-BLE 背景 上一节介绍了蓝牙Android搜索BLE模块方法,搜索到蓝牙模块后,我 ...

  6. Android Studio Xposed模块编写(二)

    阅读本文前,假设读者已经看过Android Studio Xposed模块编写(一)  相关环境已经搭建完成.本文演示案例与上文环境一致,不在赘述. 1.概述 Xposed是非常牛叉的一款hook框架 ...

  7. Android Studio Xposed模块编写(一)

    1.环境说明 本文主要参考https://my.oschina.net/wisedream/blog/471292?fromerr=rNPFQidG的内容,自己实现了一遍,侵权请告知 已经安装xpos ...

  8. android:手机与BLE-CC41-A蓝牙模块通信

    原创地址:http://blog.csdn.net/bigtree_mfc/article/details/53783585 手机蓝牙的开启.搜索就不再多说,和手机之间的蓝牙通信一样. 需要注意的安卓 ...

  9. android 与 蓝牙模块 hc06通信app 开发要点

    2016.8.24:这里非常抱歉,做完这个综合训练我个人忙于考研,没能第一时间把这篇博文写完.由于时间已经过了一年,而且我个人正在改行研究NLP,导致我现在对于其中一些要点已经忘记了.之前有些朋友私信 ...

最新文章

  1. 如何将Swift数组转换为字符串?
  2. python三层装饰器-python开发学习day16 (三层装饰器;迭代器)
  3. 仓储模式到底是不是反模式?
  4. new关键字对类成员的阻断
  5. 大数据算法岗位面试题
  6. 蓝桥杯 ADV-237 算法提高 三进制数位和
  7. python困境_学习 Python 编程的三种困境
  8. PHP面向对象学习五 类中接口的应用
  9. 基于python下django框架 实现校园二手书籍交易系统详细设计
  10. RadioButton下划线效果的使用
  11. 从学校,到字节跳动,追忆似水流年
  12. Python笔记 | 角谷猜想
  13. 正则表达式判断手机号码运营商
  14. java 微信公众号之授权登录
  15. android Gradle 教程
  16. nginx 服务器重启命令 关闭
  17. DHCPV4 VS DHCPV6
  18. Makefile的最后一点问题也解决了
  19. lol服务器维护8.21,lol8.21版本更新了什么 lol8.21版本更新内容一览
  20. 纽约州立大学水牛城分校计算机科学专业,纽约州立大学水牛城分校

热门文章

  1. 直播通用测试方法—性能测试
  2. 偷天换日:网络劫持,网页js被伪装替换。
  3. ChatGPT和GPT-4帮你写人物传记
  4. eclipse + pydev 编译中解决中文显示乱码问题
  5. 【财务】FMS财务管理系统---应付结算
  6. 3GPP TS 29244 f50与f60对比差异
  7. Windows 2003 服务器目录安全权限设置
  8. 深扒现今大学计算机专业七宗罪---第一罪“错误的入门指导”
  9. 中外名企招聘条件展示板
  10. Android 与 H5 交互基础普及