8-51单片机ESP8266学习-AT指令(单片机采集温湿度数据通过8266发送给C#TCP客户端显示)
http://www.cnblogs.com/yangfengwu/p/8785516.html

先写单片机端的程序
先把源码和资料链接放到这里
链接: https://pan.baidu.com/s/1jpHZjW_7pQKNfN9G4B6ZjA 密码:nhn3
咱先用TCP调试助手给单片机发指令,然后看一下回传的数据
先做单片机程序,就在上一篇的基础上增加功能

/**
* @brief WIFI模块发送数据的命令
* @param id--发给哪一个连接的设备
* @param Length--数据的长度
* @param *SendData--数据
* @retval Overtime--接收命令的超时时间ms
* @example
**/
void ESPSendData(unsigned char id,unsigned char Length,unsigned char *SendData,int Overtime)
{
unsigned char Send [20];
int SendLength = 0;
sprintf (Send, "AT+CIPSEND=%d,%d\r\n",(int)id, (int)Length); SendLength = 16;
if(Length>=10){ SendLength = 17;}
if(Length>=100){ SendLength = 18;} UartSendTI(Send,SendLength);//发送发送数据的命令
while(Overtime--)
{
if(UsartFlage == 1)
{
UsartFlage = 0;
if(strstr(UsartReceive, ">"))//收到回复
{
DelayMs(50);
break;
}
}
DelayMs(1);
} if(Overtime>0)//没有超时
{
UartSendTI(SendData,Length);
}
}
这地方
SendLength = 16;
if(Length>=10){ SendLength = 17;}
if(Length>=100){ SendLength = 18;}
是因为
AT+CIPSEND=0,8\r\n 数据少于10个 16个字符
AT+CIPSEND=0,12\r\n 数据少于10个 17个字符
AT+CIPSEND=0,103\r\n 数据少于10个 18个字符
主函数里面



也就增加了这一点内容..........
哦哦哦忘了,上次说的时候忘了....自己先用串口助手配置了

现在用手机连接模块的无线--先用调试助手测试,即使是做项目也是先用调试助手测试...


还记得咱规定的命令不
启动服务器成功以后就进入while(1) 循环,
接收到数据 0xaa,0x55,0x01,0x01 则发送自己的温湿度数据 0xaa,0x55,温度(16进制表示),湿度(16进制表示)
假设 接收到 0xaa,0x55,0x01,0x01 温度10度,湿度50% 0xaa,0x55,,0x01,0x0a,0x32
这一节不加任何的校验位,后期再加
接收到数据 0xaa,0x55,0x02,0x00 控制小灯熄灭
接收到数据 0xaa,0x55,0x02,0xff 控制小灯点亮

现在试一下

数据是 返回的数据是 aa 55 01 15 1C 15化成十进制是21度 1C是28% 温度21度 相对湿度28%
说明可以采集了也能返回数据了,咱现在做C#采集端
说一下,自己想了想就不用委托和回调了,因为想起了自己以前学C#,感觉对于初学者而言怎样简单就怎样做,不要去太追究规则和约束,等真正入门了再去考虑那些东西.
其实这节是看着高大上但是却最是最简单的....
咱前些日子写到

现在增加几句话

收到aa5501回复aa5501,对于为什么说不直接接收数据显示,因为你要先确定好确实可以接收,用串口调试助手先测试,
可能有人直接就接收显示了,也可以,不过以经验来说,最好还是先这样做,因为自己这样上过当,反正C#的串口接收就必须用空闲中断类似
的函数接收才行,因为每次接收到的不一定是一条数据..........
我就先连接我的手机的TCP服务器调试一下,关于软件的使用可以看使用说明



现在自己的APP还是有点问题

会产生多余的发送任务,所以点击了一下发送,发送了好几次....................
上一版本的没有这种情况,但是测试发现上一版本在5.1版本上任务却不让那样用,,,,郁闷,后期再找解决方法
先不管它,先做现在的上位机
现在添加一个定时器,每隔1S发送一次命令





private void timer1_Tick(object sender, EventArgs e)
{
SendBuffer[] = 0xaa;
SendBuffer[] = 0x55;
SendBuffer[] = 0x01;
SendCnt = ;
}
现在测试一下是不是每隔1S发送一次数据
连接手机测试


好现在显示温湿度


自己用调试助手发的数据

现在可以连接模块了

模块初始化默认的网关是192.168.4.1,当然是可以修改的,后期再说

我吹口气

也可以控制点灯


看了看我的单片机程序
采集温湿度的命令是aa 55 01



http://www.cnblogs.com/yangfengwu/p/8871464.html
8-51单片机ESP8266学习-AT指令(单片机采集温湿度数据通过8266发送给C#TCP客户端显示)的更多相关文章
- 9-51单片机ESP8266学习-AT指令(单片机采集温湿度数据通过8266发送给AndroidTCP客户端显示)
http://www.cnblogs.com/yangfengwu/p/8798512.html 补充:今天答应了一个朋友写一下如果单片机发过的是字符串应该怎么解析,答应了今天写,哦哦哦是明天了,闲话 ...
- 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)
前言:了解就行,不必深究 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8720148.html 源码链接:https://pan.baidu.com/s/1wT ...
- 10-51单片机ESP8266学习-AT指令(ESP8266连接路由器,建立TCP服务器,分别和C#TCP客户端和AndroidTCP客户端通信+花生壳远程通信)
http://www.cnblogs.com/yangfengwu/p/8871464.html 先把源码和资料链接放到这里 源码链接:https://pan.baidu.com/s/1wT8KAOI ...
- 1-51单片机ESP8266学习-AT指令(开发板介绍)
51单片机+ESP8266开发教程(AT指令篇) 开发板资源分布: 开发板部分原理图: 1--通信下载 2--51单片机 3--ESP8266(WIFI模块) 4--DHT11(温湿度传感器) 5-- ...
- 5-51单片机ESP8266学习-AT指令(8266TCP服务器--用手机TCP调试助手发信息给单片机控制小灯的亮灭)
http://www.cnblogs.com/yangfengwu/p/8759294.html 源码链接:https://pan.baidu.com/s/1wT8KAOIzvkOXXNpkDI7E8 ...
- 11-51单片机ESP8266学习-AT指令(ESP8266作为TCP客户端,连接TCP服务器,用串口调试助手和手机TCP调试助手测试)
写完题目刚想起来一件事情,如果手机作为客户端(不连接路由器的情况下),手机连接模块的无线会分配一个IP地址,,,这个IP地址事先我也不知道....我先看看AT指令里面有没有一个指令可以打印一下连接自己 ...
- 12,13,14节-51单片机ESP8266学习-AT指令(暂停更新)需要整理
从这一节开始,以视频加源码的形式,后期视频和程序将放在链接中 资料链接 链接: https://pan.baidu.com/s/1jpHZjW_7pQKNfN9G4B6ZjA 密码:nhn3 ...
- 3-51单片机ESP8266学习-AT指令(学会刷固件)
前言:体验一下刷固件(给单片机更新程序) 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8757036.html 源码链接:https://pan.baidu. ...
- 4-51单片机ESP8266学习-AT指令(测试TCP服务器--使用串口调试助手--不连接路由器)
上一篇连接 http://www.cnblogs.com/yangfengwu/p/8757513.html 源码链接:https://pan.baidu.com/s/1wT8KAOIzvkOXXN ...
随机推荐
- 关于html5中的 网页图标问题
在html5 中 设置网页图标的语句<link rel="icon" type="image/x-icon" href="favicon.ico ...
- The server quit without updating PID file (data mysql.pid)
(1)mysql的安装路径和运行路径 # whereis mysqld (2)PATH变量指定的路径中,搜索mysql的信息 # which mysqld (3)查看配置文件 # ...
- Apex的对象共享
Apex的对象共享 在Apex中,每个对象都有一个"共享"对象,其中存储了该对象的共享设定. 这种共享对象以"share"结尾.比如Account的共享对象是A ...
- RNN,LSTM中如何使用TimeDistributed包装层,代码示例
本文介绍了LSTM网络中的TimeDistributed包装层,代码演示了具有TimeDistributed层的LSTM网络配置方法. 演示了一对一,多对一,多对多,三种不同的预测方法如何配置. 在对 ...
- loadrunner Vugen-Tools General-Options-Replay设置
Vugen-Tools General-Options-Replay设置 by:授客 QQ:1033553122 可以以动画模式或非动画模式(animated mode or non-animated ...
- 使用反射修改final属性
情型1:static final属性,无法修改其值. package m5.d7; import java.lang.reflect.Field; public class FieldTest { p ...
- mac下载的excel如果带有超链接,url被转义问题
注释的代码是file开头的,这种链接在mac系统进行跳转url会转义 hyperlink 还有一种就是http这种就可以正常跳转了. String sLink = basePath + "/ ...
- Centos7安装搭建Bugzilla 5.0
1.安装准备: Centos7保证网络连通,如果网络不能连通,可通过配置yum源使用代理服务. vim /etc/yum.conf # The proxy server - proxy server: ...
- 洗礼灵魂,修炼python(18)--温故加知新
类型转换: 1.str(),repr(),format():将非字符串数据转换为字符串 str():对象序列化的结果,相当于print输出 repr():程序中某个对象精确值 format():利用特 ...
- EaseType 缓动函数
EaseType(动画曲线) EaseType 缓动函数或者我习惯叫它动画曲线,在很多的软件或动画中都有涉及到,下面是摘取的一些资料: 缓函数图例 Tween效果 每一幅图像当鼠标移上去,会有路径效果 ...