电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
esp8266无法将数据传到APP上
已解决
73482
个问题
已帮助
5993
位优秀工程师
esp8266无法将数据传到APP上
魂牵梦萦
2020-04-13
浏览量:1033
希望通过esp8266令APP显示数据,现在的情况是WIFI能与APP建立连接,通过电脑也能收到串口的数据,但是无法将数据通过wifi发送到手机上,请问如何解决呢? (电脑的传输线和esp8266使用的是一个串口)
相关程序如下:
单片机主函数:
#include<reg52.h>
#include"dht11.h"
#include "string.h"
#define uchar unsigned char
#define uint unsigned int
unsigned char idata Rxbuff[50]Rxnum;
extern unsigned char F16TF16RH; //温湿度数据
sbit LED1=P2^2;
sbit LED2=P2^4;
unsigned char getflag;//获取标志
void InitUART(void);
void delayms(unsigned int x);
void UART_send_byte(char dat);
void ESP8266_SERVER(void);
void Send_Str(unsigned char *buf);
void main()
{
unsigned char Tx_Buf[10];
delayms(500);
delayms(1000); //延时一段时间,让WIFI模块稳定
InitUART(); //初始化串口
ESP8266_SERVER(); //初始化ESP8266
LED1=0;
while(1)
{
getDHT11(); //获取温湿度值
Tx_Buf[0]=F16T/10%10+0x30; //帧头
Tx_Buf[1]=F16T%10+0x30; //将温湿度数据送往发送数组送给模块让手机APP显示
Tx_Buf[2]= ';';
Tx_Buf[3]=F16RH/10%10+0x30;
Tx_Buf[4]=F16RH%10+0x30;
Send_Str("AT+CIPSEND=05\r\n");
delayms(300);
Send_Str(Tx_Buf);//发送数据
LED2=0;
}
}
void InitUART(void) //这是串口的基本配置,配置他的波特率是9600.这些参数都是标准的。
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void delayms(unsigned int x)
{
unsigned int i;
while(x--)
for(i=125;i>0;i--);
}
//UART 发送一字节
void UART_send_byte(char dat)
{
SBUF = dat; //发送
while (TI == 0); //等待发送完毕
TI = 0; //清发送完毕中断请求标志位
}
//UART 发送字符串
void Send_Str(unsigned char *buf)
{
while (*buf != '\0')
{
UART_send_byte(*buf++);
}
}
void ESP8266_SERVER(void)//建立服务器
{
ES = 0;
TI = 1;
Send_Str("AT\r\n");
delayms(500);
Send_Str("AT\r\n");
delayms(500);
Send_Str("AT+CWMODE=2\r\n"); //服务器搭建在WIFI模块上
delayms(500);
Send_Str("AT+CWSAP=\"WiFi_mushu\"\"12345678\"53\r\n"); //设置显示名称:wifi密码:12345678
delayms(500);
Send_Str("AT+CIPMUX=1\r\n");//启动多连接,建立服务器都需要配置
delayms(500);
Send_Str("AT+CIPSERVER=15000\r\n");//建立服务器
delayms(500);
Send_Str("AT+CIPSTO=0\r\n");
TI = 0;
ES = 1;
}
APP相关程序
package
com.example.wifi_mushu;
import
androidx.appcompat.app.AppCompatActivity;
import
android.annotation.
SuppressLint
;
import
android.os.Bundle;
import
android.os.Handler;
import
android.os.Message;
import
android.view.View;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.TextView;
import
android.widget.Toast;
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStream;
import
java.io.InputStreamReader;
import
java.io.OutputStream;
import
java.net.InetAddress;
import
java.net.Socket;
import
java.net.UnknownHostException;
public class
MainActivity
extends
AppCompatActivity {
//
定义控件
EditText
edGateIp
edGateSn
;
Button
btnSearch
btnLogin
;
//
消息机制
private
Handler
messageHandler
;
//
开辟一个
socket
Socket
socket
=
null
;
OutputStream
OutputStream
=
null
;
//
定义数据输出流,用于发送数据
BufferedReader
bufferedReader
;
//
声明输入流对象
InputStream
InputStream
=
null
;
//
定义数据输入流,用于接收数据
//
定义逻辑变量,用于判断服务器连接状态
boolean
isConnected
=
false
;
//
用于控制读数据线程是否执行
boolean
RD
=
false
;
//
测试区域
Button
fs
;
EditText
sjfs
sjjs
;
@SuppressLint
(
"HandlerLeak"
)
@Override
protected void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.
activity_main
);
//
控件绑定
edGateIp
= findViewById(R.id.
edGateIP
);
edGateSn
= findViewById(R.id.
edGateSn
);
btnSearch
= findViewById(R.id.
btnSearch
);
btnLogin
= findViewById(R.id.
btnLogin
);
//
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答
数量:
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
esp8266无法将数据传到APP上
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: