esp8266设置sta失败_ESP8266 STA模式网页显示不在线

本文档描述了一个使用ESP8266进行温度监测的项目,遇到的问题是ESP8266在STA模式下无法在网页上显示在线状态,尽管LCD显示正常。代码中包含了设备ID、设备密码、接口ID等关键参数,以及连接服务器、数据上报和处理JSON响应的函数。作者请求帮助解决ESP8266在整合LCD和ESP8266后显示不在线的问题。
摘要由CSDN通过智能技术生成

回复

代码:

#include

#include

#include

//============= 此处必须修改============

String DEVICEID="4016"; // 你的设备ID=======

String APIKEY="76b604c5d"; // 设备密码==

String INPUTID="3616";//接口ID==============

//=======================================

LiquidCrystal lcd(12,11,5,4,3,2);

const int LM35 = 0;// LM35 Vout 接 A0

unsigned long lastCheckInTime = 0; //记录上次报到时间

unsigned long lastUpdateTime = 0;//记录上次上传数据时间

const unsigned long postingInterval = 40000; // 每隔40秒向服务器报到一次

const unsigned long updateInterval = 5000; // 数据上传间隔时间5秒

String inputString = "";//串口读取到的内容

boolean stringComplete = false;//串口是否读取完毕

boolean CONNECT = true; //连接状态

boolean isCheckIn = false; //是否已经登录服务器

char* parseJson(char *jsonString);//定义aJson字符串

void setup() {

Serial.begin(115200);

lcd.begin(16,2);

lcd.print("Temperature:");

delay(10000);

}

void loop() {

if(millis() - lastCheckInTime > postingInterval || lastCheckInTime==0) {

checkIn();

}

if(millis() - lastUpdateTime > updateInterval) {

float val;//定义变量

int dat;//定义变量

dat=analogRead( LM35 );// 读取传感器的模拟值并赋值给dat

//val=(125*dat)>>8;//温度计算公式

val = dat * (4.76 / 1023.0*100);

update1(DEVICEID,INPUTID,val);

lcd.setCursor(0,1);

lcd.print(val);

}

serialEvent();

if (stringComplete) {

inputString.trim();

//Serial.println(inputString);

if(inputString=="CLOSED"){

Serial.println("connect closed!");

CONNECT=false;

isCheckIn=false;

}else{

int len = inputString.length()+1;

if(inputString.startsWith("{") && inputString.endsWith("}")){

char jsonString[len];

inputString.toCharArray(jsonString,len);

aJsonObject *msg = aJson.parse(jsonString);

processMessage(msg);//处理接收到的Json数据

aJson.deleteItem(msg);

}

}

inputString = "";

stringComplete = false;

}

}

void checkIn() {

if (!CONNECT) {

Serial.print("+++");

delay(500);

Serial.print("\r\n");

delay(1000);

Serial.print("AT+RST\r\n");

delay(6000);

CONNECT=true;

lastCheckInTime==0;

}

else{

Serial.print("{\"M\":\"checkin\",\"ID\":\"");

Serial.print(DEVICEID);

Serial.print("\",\"K\":\"");

Serial.print(APIKEY);

Serial.print("\"}\r\n");

lastCheckInTime = millis();

}

}

void processMessage(aJsonObject *msg){

aJsonObject* method = aJson.getObjectItem(msg, "M");

aJsonObject* content = aJson.getObjectItem(msg, "C");

aJsonObject* client_id = aJson.getObjectItem(msg, "ID");

//char* st = aJson.print(msg);

if (!method) {

return;

}

//Serial.println(st);

//free(st);

String M=method->valuestring;

if(M=="checkinok"){

isCheckIn = true;

}

}

void update1(String did, String inputid, float value){

Serial.print("{\"M\":\"update\",\"ID\":\"");

Serial.print(did);

Serial.print("\",\"V\":{\"");

Serial.print(inputid);

Serial.print("\":\"");

Serial.print(value);

Serial.println("\"}}");

lastCheckInTime = millis();

lastUpdateTime= millis();

}

void serialEvent() {

while (Serial.available()) {

char inChar = (char)Serial.read();

inputString += inChar;

if (inChar == '\n') {

stringComplete = true;

}

}

}

//同时上传两个接口数据调用此函数

void update2(String did, String inputid1, float value1, String inputid2, float value2){

Serial.print("{\"M\":\"update\",\"ID\":\"");

Serial.print(did);

Serial.print("\",\"V\":{\"");

Serial.print(inputid1);

Serial.print("\":\"");

Serial.print(value1);

Serial.print("\",\"");

Serial.print(inputid2);

Serial.print("\":\"");

Serial.print(value2);

Serial.println("\"}}");

lastCheckInTime = millis();

lastUpdateTime= millis();

}

调试的时候是能连上网页的,整合LCD和ESP8266后在网页上就显示不在线了。LCD显示也都正常...

懂的大神帮个忙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值