yeelink实在太水了,经常登不上去,完全是个鸡肋,以前用ardunio的时候还是很好用的。其实核心代码并不多,就是几行而已,但我发现在其中运行的时候,每行数据必须间隔一定时间才可以,yeelink官网说是20ms,但我是用100ms延时发送,还是有些啃的呀。
//下面是我写的3个网站连续登录发数据的代码,比较简单。
void esp8266_station_lewei_cmd()
{
UART1_sendstr("{"method": "update","gatewayNo": "01","userkey": "e84c3784af864fb0bb70fd33cb434a45"}&^!");
}
void esp8266_station_lewei_data()
{
UART1_sendstr("{"method": "upload","data":[{"Name":"shidu","Value":"");
esp8266_uint_to_string(shidu);
UART1_sendstr(""},{"Name":"wendu","Value":"");
esp8266_uint_to_string(wendu);
UART1_sendstr(""},{"Name":"zhiliang","Value":"");
esp8266_uint_to_string(zhiliang);
UART1_sendstr(""}]}&^!");
}
void esp8266_station_chuanganyun_post(uchar id)
{
UART1_sendstr("POST /data/v1/numerical/insert?ak=e7423287d47587b404e98bd5055ecae2&id=");
switch(id)
{
case 1:UART1_sendstr("56545e3ce4b00415c4381dc4");break;
case 2:UART1_sendstr("56545dafe4b00415c4381dc3");break;
case 3:UART1_sendstr("56545d37e4b00415c4381dba");break;
default:break;
}
UART1_sendstr("&value=");
switch(id)
{
case 1:esp8266_uint_to_string(zhiliang);break;
case 2:esp8266_uint_to_string(wendu);break;
case 3:esp8266_uint_to_string(shidu);break;
default:break;
}
UART1_sendstr(" HTTP/1.1rn");
}
void esp8266_station_chuanganyun_host()
{
UART1_sendstr("Host: api.wsncloud.comrnrn");
}
void esp8266_init_station(void)
{
switch(t2)//十五秒内启动入网程序
{
case 1 C_DDR|=0x04 C_CR1|=0x04 C_CR2|=0x04 C_ODR|=0X04;break;
case 2 C_ODR&=~0x04;break;
case 3 C_ODR|=0X04;break;
case 50:UART1_sendstr("AT+CWMODE=1rn");break; //发送工作模式
case 80:UART1_sendstr("AT+CWJAP="dadangjia","39203806"rn");break; //发送连接密码
case 120:UART1_sendstr("AT+CIPMODE=1rn");break; //开启服务器模式
default:break;
}
}
void esp8266_station_post()
{
if(t2>150)
{
switch(t3)
{
case 0:UART1_sendstr("AT+CIPSTART="TCP","tcp.lewei50.com",9960rn");break;
case 30:UART1_sendstr("AT+CIPSENDrn");break;
case 48:dh11_read(0);break;
case 49:dh11_read(1);break;
case 50:esp8266_station_lewei_cmd();
zhiliang=adc_scan()+1;
break;
case 70:esp8266_station_lewei_data();
break;
case 178:dh11_read(0);zhiliang=1+adc_scan();break;
case 179:dh11_read(1);break;
case 180:esp8266_station_lewei_data();
break;
case 288:dh11_read(0);zhiliang=1+adc_scan();break;
case 289:dh11_read(1);break;
case 290:esp8266_station_lewei_data();
break;
case 398:dh11_read(0);zhiliang=1+adc_scan();break;
case 399:dh11_read(1);break;
case 400:esp8266_station_lewei_data();
break;
case 508:dh11_read(0);zhiliang=1+adc_scan();break;
case 509:dh11_read(1);break;
case 510:esp8266_station_lewei_data();
break;
case 520 C_ODR&=~0x04;break;
case 521 C_ODR|=0X04;break;
case 570:UART1_sendstr("AT+CIPMODE=1rn");break;
case 600:UART1_sendstr("AT+CIPSTART="TCP","api.wsncloud.com",80rn");break;
case 630:UART1_sendstr("AT+CIPSENDrn");break;
case 648:dh11_read(0);zhiliang=1+adc_scan();break;
case 649:dh11_read(1);break;
case 650:esp8266_station_chuanganyun_post(1);
break;
case 660:esp8266_station_chuanganyun_host();
break;
case 750:esp8266_station_chuanganyun_post(2);
break;
case 760:esp8266_station_chuanganyun_host();
break;
case 850:esp8266_station_chuanganyun_post(3);
break;
case 860:esp8266_station_chuanganyun_host();
break;
case 870 C_ODR&=~0x04;break;
case 871 C_ODR|=0X04;break;
case 920:UART1_sendstr("AT+CIPMODE=1rn");break;
case 950:UART1_sendstr("AT+CIPSTART="TCP","api.yeelink.net",80rn");break;
case 980:UART1_sendstr("AT+CIPSENDrn");break;
case 1000:UART1_sendstr("POST /v1.0/device/19119/sensor/33294/datapoints HTTP/1.1rn");break; //温度传感器
case 1001:UART1_sendstr("Host: api.yeelink.netrn");break;
case 1002:UART1_sendstr("Accept: */*rn");break;
case 1003:UART1_sendstr("U-ApiKey: 20314f31cb6934a5187f43b676be2886rn");break;
case 1004:UART1_sendstr("Content-Length: ");esp8266_uint_to_string(10+getLength(wendu));UART1_sendstr("rn");break;
case 1005:UART1_sendstr("Content-Type: application/x-www-form-urlencodedrnrn");break;
case 1006:UART1_sendstr("{"value":");esp8266_uint_to_string(wendu);UART1_sendstr("}rn");break;
case 1010 C_ODR&=~0x04;break;
case 1011 C_ODR|=0X04;break;
case 1060:UART1_sendstr("AT+CIPMODE=1rn");break;
case 1080:UART1_sendstr("AT+CIPSTART="TCP","api.yeelink.net",80rn");break;
case 1110:UART1_sendstr("AT+CIPSENDrn");break;
case 1120:UART1_sendstr("POST /v1.0/device/19119/sensor/33705/datapoints HTTP/1.1rn");break; //温度传感器
case 1121:UART1_sendstr("Host: api.yeelink.netrn");break;
case 1122:UART1_sendstr("Accept: */*rn");break;
case 1123:UART1_sendstr("U-ApiKey: 20314f31cb6934a5187f43b676be2886rn");break;
case 1124:UART1_sendstr("Content-Length: ");esp8266_uint_to_string(10+getLength(shidu));UART1_sendstr("rn");break;
case 1125:UART1_sendstr("Content-Type: application/x-www-form-urlencodedrnrn");break;
case 1126:UART1_sendstr("{"value":");esp8266_uint_to_string(shidu);UART1_sendstr("}rn");break;
case 1130 C_ODR&=~0x04;break;
case 1131 C_ODR|=0X04;break;
case 1170:UART1_sendstr("AT+CIPMODE=1rn");break;
default:break;
}
if(++t3>=1200)
t3=0;
}
}
|