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版本)学习笔记-配置远程访问和管理lfs系统
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 要实现远程管理和配置lfs系统需要配置以下软件包: 前几页章节脚本的配置:https://www.cnblogs.com/ren ...
- jQuery:SP.NET Autocomplete Textbox Using jQuery, JSON and AJAX
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="jQueryAutocomp ...
- 【读书笔记】iOS-对iOS应用进行模糊测试
一,模糊测试,是指通过反复向待测应用发送畸形的数据,对应用进行动态测试的过程. 二,模糊测试,也称动态分析,是一种构造非法输入并将其提供给应用,以期让应用暴露出某些安全问题的艺术和科学. 参考资料:& ...
- Java抽象类和接口的比较
一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体 ...
- SD从零开始66 数据仓库的概念
[原创] SD从零开始66 数据仓库的概念 数据仓库概念:预览Data Warehouse Concepts:Overview 本单元解释LIS中的数据仓库概念: 详细的解释了该概念的各个层次-介绍了 ...
- MinGW编译Mongo-CXX-Driver
8. mongo-cxx-driver pacman -S mingw-w64-x86_64-cyrus-sasl pacman -S mingw-w64-x86_64-extra-cmake-mod ...
- Git应用—05Git文件冲突合并的几种情况(转载)
git文件冲突合并的几种情况 https://xieye.iteye.com/blog/2433229 本文描述了git冲突的几种常见情况和解决方案,老鸟请直接忽略本文.假设冲突文件是 test/Te ...
- Android studio 在一个项目上添加另一个项目,引用其内部参数
Setting.gradle 里面 添加 include ':app',‘imagePicker’ 其中 imagePicker 为要引入的项目名 build.gradle(Module: app) ...
- 自定义控件详解(一):Paint类与Canvas类
前言: 自定义控件必需的两个类:Paint与Canvas Paint --- 相当于绘图的"笔" Canvas --- 相当于绘图的"纸" 一.Pain ...
- TypeError: __init__() missing 1 required positional argument: 'on_delete'
报错的原因呢,就是在设计model时我弄了个外键,然后就报错了... 不难看出,它是想让我们在表与表关联时添加一个on_delete参数 解决办法: 如其所愿,加上on_delete=models.C ...