arduino+esp8026上传数据到yeeklink(上传不了)
2017-05-28 20:42
726 查看
最近在做arduino+esp8026,想把超声波测得的距离上传到yeelink上面,但总是上传不了,所以让大家帮我看看。
下面是我的设备api
代码如下:
代码烧入arduino后,串口出现以下内容:
但是数据线一点波动都没有
我怀疑是不是WiFi没配好,所以试了下在yeelink平台上控制LED开关的实验,结果发现没有问题。搞了好久还是没能解决,希望有人能指导一下。
问题已经解决了:改变ESP的连接方式
方法一:原来我连的是手机的WIFI,之后改成连接电脑的wifi,并且添加代码
//-------------------------------------------
delay(6000); //注意延时的时间
Serial.println("");
Serial.println("AT+CIPMODE=1"); //打开透传模式
delay(1000); //注意延时的时间
Serial.println("AT+CIPSTART=\"TCP\",\"118.190.25.51\",80");
//yeelink 118.190.25.51 : 80
delay(1000);
Serial.println("AT+CIPSEND");
delay(3000);
//------------------------------------------------
就可以了
方法二:直接连接路由
虽说是解决了,但不清楚原因是什么
下面是我的设备api
代码如下:
// 设定SR04连接的Arduino引脚 const int TrigPin1 = 4; const int EchoPin1 = 5; unsigned long distance,distance1; char open='0'; void setup() { Serial.begin(115200); pinMode(TrigPin1, OUTPUT); // 要检测引脚上输入的脉冲宽度,需要先设置为输入状态 pinMode(EchoPin1, INPUT); Serial.println("Ultrasonic sensor:"); } void loop() { // 产生一个10us的高脉冲去触发TrigPin digitalWrite(TrigPin1, LOW); delayMicroseconds(2); digitalWrite(TrigPin1, HIGH); delayMicroseconds(10); digitalWrite(TrigPin1, LOW); // 检测脉冲宽度,并计算出距离 distance1 = pulseIn(EchoPin1, HIGH) / 58.00; Serial.print("length:"); Serial.println(distance1); Serial.println("POST /v1.1/device/358319/sensor/407515/datapoints HTTP/1.1"); Serial.println("Host: api.yeelink.net"); Serial.print("Accept: *"); Serial.print("/"); Serial.println("*"); Serial.print("U-ApiKey: "); Serial.println("e913eda05c973e8132b2c512113227ed"); // 此处用你的APIKEY替代 Serial.print("Content-Length: "); int thisLength = 10 + getLength(distance1); Serial.println(thisLength); Serial.println("Content-Type: application/x-www-form-urlencoded"); Serial.println("Connection: close"); Serial.println(); Serial.print("{\"value\":"); Serial.print(distance1); Serial.println("}"); delay(10001); } int getLength(int someValue) { int digits = 1; int dividend = someValue /10; while (dividend > 0) { dividend = dividend /10; digits++; } return digits; }
代码烧入arduino后,串口出现以下内容:
但是数据线一点波动都没有
我怀疑是不是WiFi没配好,所以试了下在yeelink平台上控制LED开关的实验,结果发现没有问题。搞了好久还是没能解决,希望有人能指导一下。
问题已经解决了:改变ESP的连接方式
方法一:原来我连的是手机的WIFI,之后改成连接电脑的wifi,并且添加代码
//-------------------------------------------
delay(6000); //注意延时的时间
Serial.println("");
Serial.println("AT+CIPMODE=1"); //打开透传模式
delay(1000); //注意延时的时间
Serial.println("AT+CIPSTART=\"TCP\",\"118.190.25.51\",80");
//yeelink 118.190.25.51 : 80
delay(1000);
Serial.println("AT+CIPSEND");
delay(3000);
//------------------------------------------------
就可以了
方法二:直接连接路由
虽说是解决了,但不清楚原因是什么
相关文章推荐
- Arduino+SIM900A 通过http协议实现上传数据到云服务器
- Arduino+ESP8266WIFI(2)——DHT11温湿度数据自动上传
- Arduino通过HTTP上传Json数据,树莓派再GET回数据
- Arduino上传数据至贝壳物联并与FPGA进行交互
- Arduino UNO +ESP8266采集数据上传到贝壳网
- ARDUINO MEGA2560 经过ESP8266 WIFI模块上传温湿度数据到 OneNet 服务器
- 网上下载和上传数据(转)
- 用SecureCRT来上传和下载数据
- 使用HttpWebRequest向网站模拟上传数据
- ASP.NET中上传并读取Excel文件数据
- 网上下载和上传数据(一)
- 在开发BS系统中,遇到了上传服务器数据的问题
- ASP.NET中上传并读取Excel文件数据
- 用xmlhttp将html的数据打包成multipart/form-data格式,实现异步上传文件功能
- 将上传文件以二进制形式存入数据库中,并下载数据库中的二进制数据生成对应的文件
- ASP.NET中上传并读取Excel文件数据
- 使用HttpWebRequest向网站模拟上传数据
- [原创]批量数据上传(access到sql server。sql server到sql server)
- 利用servlet来上传文件,并且将文件中数据倒入oracle数据库
- 请问上传到服务器的数据增氧保存好一些?