查看: 884|回复: 16
打印 上一主题 下一主题

stm8裸奔物联网

[复制链接] qrcode

0

主题

70

帖子

8

积分

新手上路

Rank: 1

积分
8
楼主
发表于 2015-12-4 10:12 AM | 显示全部楼层

            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 1C_DDR|=0x04C_CR1|=0x04C_CR2|=0x04C_ODR|=0X04;break;
  case 2C_ODR&=~0x04;break;
  case 3C_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 520C_ODR&=~0x04;break;
    case 521C_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 870C_ODR&=~0x04;break;
    case 871C_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 1010C_ODR&=~0x04;break;
    case 1011C_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 1130C_ODR&=~0x04;break;
    case 1131C_ODR|=0X04;break;
    
    case 1170:UART1_sendstr("AT+CIPMODE=1rn");break;
   
    default:break;
    }
    if(++t3>=1200)
      t3=0;
  }
}


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表