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 ...
随机推荐
- blfs(systemv版本)学习笔记-编译安装ligtdm显示管理器
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! ligtdm带有显示管理器和登录器,参照我的笔记安装xorg和i3后安装lightdm,就可以组成一个简易的桌面环境了 下面是l ...
- vue.js 键盘enter事件的使用
在监听键盘事件时,我们经常需要检查常见的键值.Vue 允许为 v-on 在监听键盘事件时添加按键修饰符: <!-- 只有在 `keyCode` 是 13 时调用 `vm.submit()` -- ...
- Android学习笔记----天地图API开发之UnsatisfiedLinkError
由于在jniLibs目录下移除了x86的相关so文件,后来又因为需要在PC模拟器上调试,将该文件夹恢复后,增加了天地图的sdk,却忘记将libMapEngine.so文件同时拷贝至x86目录下,导致如 ...
- enum类使用
状态常量类使用enum public class TestEnums{ public enum STATUS{ NOMAL("01","正常"), DELETE ...
- 【redis专题(6)】命令语法介绍之hash
可以把hash看做一个数组hset array key1 value2;,该数据类型特别适用于存储 增 hset key field value 作用: 把key中filed域的值设为value 注: ...
- BootStrap DateTimePicker的使用
使用方法 1. 添加资源 2. 编写代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Conte ...
- 【PAT】B1043 输出PATest(20 分)
/* */ #include<stdio.h> #include<algorithm> #include<string.h> #include<ctype.h ...
- ccf--20151203--画图
本题思路如下: 题目和代码如下: 问题描述 试题编号: 201512-3 试题名称: 画图 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 用 ASCII 字符来画图是一件有趣 ...
- banner图片全屏显示
<script> $(function () { function reinitSize() { var window_h = $(window).height(); var window ...
- January 17th, 2018 Week 03rd Wednesday
Don't let go too soon, but don't hold on too long. 不要太快放手,也别紧握太久. It is inevitalbe to encounter with ...