http://www.cnblogs.com/yangfengwu/p/8798512.html

补充:今天答应了一个朋友写一下如果单片机发过的是字符串应该怎么解析,答应了今天写,哦哦哦是明天了,闲话少说,赶紧写

列如   DATA;T=25;H=33

len = inputStream.read(buf);//服务器断开会返回-1
byte[] ReadBuffer0 = new byte[len];//存储接收到的数据
for (int i = ; i < len; i++)
{
ReadBuffer0[i] = buf[i];
} 要想处理字符串的当然要把数据变为字符串 String DataString = new String(ReadBuffer0) String temp[] = DataString.split(";");
现在 temp[] = "DATA"
temp[] = "T=25"
temp[] = "H=33" 要想再分离
String temp1[] = temp[]..split("=");
数据就出来了temp1[] =""
有人会说这还是字符串哈...
记住高级语言几乎提供了所有可能用到的方法
不知道用哪个方法,但是你要知道你要干什么
我就是想
十进制字符串 转 10进制数
那就百度

有人会问,明明是android,为什么搜索的时候写的java.......................................

android开发用的语言就是java,,,,,,一般方法类的问题我都是搜java   界面相关类的问题我都是搜android

所以

int t = Integer.valueOf(temp1[], );

如果不对,怎么办   再百度去

说一下,问自己问题的人一直很多,我更多的是告诉方法,而不直接告诉结论,因为怕把自己身边的人惯坏了,有什么问题直接问我,然后我分分钟解决了,没什么意义,真正思考的是我而不是你了,这样的话,学习能力很难得到提升.很多人佩服自己的学习能力,和实际解决问题的能力,是因为自己走的弯路比较多,沉淀的比较多,你必须对你所做的工作充满热爱,它才会让你走的更远....

先把源码和资料链接放到这里

链接: https://pan.baidu.com/s/1jpHZjW_7pQKNfN9G4B6ZjA     密码:nhn3

先说一下那天的bug

所有的任务在启动时都是新建

否则就会有问题

但是每次新建可能会产生有好几个同样的任务

列如上面的连接任务

咱们用一个全局的变量去记录咱的连接任务

销毁的时候

try {
mthreadConnectService.interrupt();
} catch (Exception e) { }

发送数据的任务也是用一个全局变亮记录

出现问题需要销毁的时候

因为有好几个地方要添加这几句话,本来想.....算了,后期再说

现在做显示部分,先给自己说一下,,,,下一篇一定要用Handle,如果还是这样写..都感觉无人子弟....唉......写的有点害怕了,,,,应该先介绍

通常怎么操作控件的....这样操作控件懂行的人不知道会不会....唉

现在界面再拖一个TextView用来显示温湿度数据

再看一下规定的

然后其实就是在接收数据里面

/**
* 接收数据的任务
* @author yang
*
*/
class ThreadReadData extends Thread
{
public void run()
{
while (threadReadDataFlage)
{
try
{
ReadBufferLengh = inputStream.read(ReadBuffer);//服务器断开会返回-1
if (ReadBufferLengh == -)
{
threadSendDataFlage = false;//关掉发送任务,预防产生多的任务
threadReadDataFlage = false;//关掉接收任务,预防产生多的任务
try {mthreadReadData.interrupt();} catch (Exception e) {}
try {mthreadSendData.interrupt();} catch (Exception e) {}
SendDataCnt = ;//清零发送的个数
ConnectFlage = true; buttonConnect.post(new Runnable() {
@Override
public void run() {
buttonConnect.setText("连接");
Toast.makeText(getApplicationContext(), "与服务器断开连接", ).show();
}
});
} try //防止数据有其它错误
{
if ((ReadBuffer[]&0xff) == 0xaa && (ReadBuffer[]&0xff) == 0x55)
{
if ((ReadBuffer[]&0xff) == 0x01) {
textViewShowData.post(new Runnable() {//稍微写一个靠谱点的操作UI控件
public void run() {
textViewShowData.setText("温度:"+(ReadBuffer[]&0xff)+"湿度"+(ReadBuffer[]&0xff));
}
});
}
}
} catch (Exception e) {
// TODO: handle exception
} }
catch (Exception e)
{
// TODO Auto-generated catch block
Log.e("error", ReadBufferLengh+"");
e.printStackTrace();
runOnUiThread(new Runnable() {//修改界面的UI最好用Handle,这里力求简单,下几节再用
public void run() {
buttonConnect.setText("连接");
Toast.makeText(getApplicationContext(), "与服务器断开连接", ).show();
}
});
ConnectFlage = true;
threadSendDataFlage = false;//关掉发送任务,预防产生多的任务
threadReadDataFlage = false;//关掉接收任务,预防产生多的任务
try {mthreadReadData.interrupt();} catch (Exception e1) {}
try {mthreadSendData.interrupt();} catch (Exception e2) {}
SendDataCnt = ;//清零发送的个数
}
}
}
}

其实就一点有用的,其余的大多数是重复的程序,下一篇优化一下....

可以用这个调试助手,老版的小五物联有一些调试的功能

我是用的两个手机哈,因为我做的那个调试助手,一关闭就会全都关闭了,,后期再优化下哈,,,,

亲们可以用电脑的调试助手,资料里面有

好现在咱们用板子试一下

不对不对...咱是做的先发给板子指令然后板子收到命令再回复.....忘了,现在做每隔1S发送一次0xaa,0x55,0x01

这样板子收到信息就回咱

实现定时器呢有多种实现方法,说一种最简单的

/**
* 每间隔1S发送一次采集数据的命令
*/
private CountDownTimer editDeleteTimer = new CountDownTimer(,) {
@Override
public void onTick(long millisUntilFinished) { } @Override
public void onFinish()
{
SendBuffer[] = (byte) 0xaa;
SendBuffer[] = 0x55;
SendBuffer[] = 0x01;
SendDataCnt = ;//控制发送数据的个数
editDeleteTimer.start();
}
};

启动和停止呢

现在试一下

板子上电正常运行哈...

刚才板子放在了我电脑的散热口附近,所以才会30度哈,我没有在非洲和赤道哈....,,电脑两天没有关机了,,有点小热.....

现在控制一下灯

下一篇一定要优化程序,不能这样子了,,,,,,额嗯,做TCP服务的时候再优化也行,重新写一切按照常规写

单片机程序还是上一篇的...

对了

数据&0xff

参考链接

https://blog.csdn.net/wwzuizz/article/details/77649358

亲们自己百度哈

下一篇链接

http://www.cnblogs.com/yangfengwu/p/8887909.html

9-51单片机ESP8266学习-AT指令(单片机采集温湿度数据通过8266发送给AndroidTCP客户端显示)的更多相关文章

  1. 8-51单片机ESP8266学习-AT指令(单片机采集温湿度数据通过8266发送给C#TCP客户端显示)

    http://www.cnblogs.com/yangfengwu/p/8785516.html 先写单片机端的程序 先把源码和资料链接放到这里 链接: https://pan.baidu.com/s ...

  2. 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)

    前言:了解就行,不必深究 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8720148.html 源码链接:https://pan.baidu.com/s/1wT ...

  3. 10-51单片机ESP8266学习-AT指令(ESP8266连接路由器,建立TCP服务器,分别和C#TCP客户端和AndroidTCP客户端通信+花生壳远程通信)

    http://www.cnblogs.com/yangfengwu/p/8871464.html 先把源码和资料链接放到这里 源码链接:https://pan.baidu.com/s/1wT8KAOI ...

  4. 1-51单片机ESP8266学习-AT指令(开发板介绍)

    51单片机+ESP8266开发教程(AT指令篇) 开发板资源分布: 开发板部分原理图: 1--通信下载 2--51单片机 3--ESP8266(WIFI模块) 4--DHT11(温湿度传感器) 5-- ...

  5. 5-51单片机ESP8266学习-AT指令(8266TCP服务器--用手机TCP调试助手发信息给单片机控制小灯的亮灭)

    http://www.cnblogs.com/yangfengwu/p/8759294.html 源码链接:https://pan.baidu.com/s/1wT8KAOIzvkOXXNpkDI7E8 ...

  6. 11-51单片机ESP8266学习-AT指令(ESP8266作为TCP客户端,连接TCP服务器,用串口调试助手和手机TCP调试助手测试)

    写完题目刚想起来一件事情,如果手机作为客户端(不连接路由器的情况下),手机连接模块的无线会分配一个IP地址,,,这个IP地址事先我也不知道....我先看看AT指令里面有没有一个指令可以打印一下连接自己 ...

  7. 12,13,14节-51单片机ESP8266学习-AT指令(暂停更新)需要整理

    从这一节开始,以视频加源码的形式,后期视频和程序将放在链接中 资料链接 链接: https://pan.baidu.com/s/1jpHZjW_7pQKNfN9G4B6ZjA     密码:nhn3  ...

  8. 3-51单片机ESP8266学习-AT指令(学会刷固件)

    前言:体验一下刷固件(给单片机更新程序) 上一篇链接  http://www.cnblogs.com/yangfengwu/p/8757036.html 源码链接:https://pan.baidu. ...

  9. 4-51单片机ESP8266学习-AT指令(测试TCP服务器--使用串口调试助手--不连接路由器)

    上一篇连接  http://www.cnblogs.com/yangfengwu/p/8757513.html 源码链接:https://pan.baidu.com/s/1wT8KAOIzvkOXXN ...

随机推荐

  1. 前端面试题整理——javaScript部分

    (1)typeof 和 instanceof 1.typeof 对于基本数据类型(boolean.null.undefined.number.string.symbol)来说,除了 null 都可以显 ...

  2. css制作表格

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. spring 开发 Tars

    和不使用 Spring 的 tars HelloWord 项目相比,客户端完全一样,服务端两个地方不一样 创建不使用 Spring 的 tars HelloWord 步骤: https://www.c ...

  4. Linux 操作系统主机名变成bogon怎么解决?

    主机名变成bogon怎么解决? by:授客 QQ:1033553122   一:使用hostname命令 [laiyu@localhost ~]$ hostname localhost.localdo ...

  5. Android Studio 点击两次返回键,退出APP

    该功能的实现没有特别复杂,主要在onKeyDown()事件中实现,直接上代码,如下: //第一次点击事件发生的时间 private long mExitTime; /** * 点击两次返回退出app ...

  6. linux(乌班图)修改apt下载源

    有时候会出现乌班图系统刚安装,无法使用apt下载安装软件工具,此时需要修改apt下载源. 1.进入/etc/apt/目录下  2.备份sources.list文件(如果不在root用户下,需在前面加s ...

  7. OneAPM大讲堂 | Java 异常日志记录最佳实践

    [编者按]本文作者是 Casey Dunham.Casey 是一位具有 10 多年经验的专业软件开发人员,以其独特的方式应对应用安全问题而闻名.本文系国内 ITOM 管理平台 OneAPM 工程师编译 ...

  8. 实验吧web解题记录

    自以为sql注入掌握的还是比较系统的,然而,做了这些题之后才发现,大千世界无奇不有,真是各种猥琐的思路...还是要多学习学习姿势跟上节奏 登录一下好吗?? http://ctf5.shiyanbar. ...

  9. 开启远程Windows系统3389端口

    1.Win7.Win2003.XP系统REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDen ...

  10. Orcale新增、修改、删除字段

    一.新增字段 alert table user add( userName VARCHAR2(255 CHAR) ) ; 设置字段不为空, 给出默认值 alert table user add( us ...