YFROBOT创客社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

123
返回列表 发新帖
楼主: AllBlue
打印 上一主题 下一主题

ESP8266 wifi 获取天气数据情况 心知天气API 中国气象局开放平台 arduino

  [复制链接]

签到天数: 866 天

[LV.10]以坛为家III

21#
 楼主| 发表于 2018-4-5 18:15:23 | 只看该作者
bg8cg 发表于 2018-4-4 22:53
就改了个wifi和密码输出了一大串,什么意思

WiFi connected

应该是解析错误
回复 支持 1 反对 0

使用道具 举报

签到天数: 3 天

[LV.2]偶尔看看I

22#
发表于 2018-11-9 16:47:22 | 只看该作者
谢谢楼主分享,目前在做毕业设计,准备加入获取天气预报的功能。
回复 支持 反对

使用道具 举报

签到天数: 3 天

[LV.2]偶尔看看I

23#
发表于 2018-11-9 18:05:02 | 只看该作者
本帖最后由 GeekPower 于 2018-11-10 11:43 编辑

你好,楼主,我的环境是arduino1.6.13,烧写例程代码出错,出错位置第98行, DynamicJsonBuffer jsonBuffer,请问一下怎么回事呢,谢谢解答

[C] 纯文本查看 复制代码
D:\Graduation Project\WeatherESP8266\WeatherESP8266.ino: In function 'bool parseUserData(char*, UserData*)':

WeatherESP8266:98: error: 'DynamicJsonBuffer' was not declared in this scope

WeatherESP8266:98: error: expected ';' before 'jsonBuffer'

WeatherESP8266:100: error: 'JsonObject' was not declared in this scope

WeatherESP8266:100: error: 'root' was not declared in this scope

WeatherESP8266:100: error: 'jsonBuffer' was not declared in this scope

exit status 1
'DynamicJsonBuffer' was not declared in this scope

2018.11.10 问题已解决,解决方案:
https://arduinojson.org/v5/faq/error-jsonbuffer-was-not-declared-in-this-scope/
回复 支持 1 反对 0

使用道具 举报

签到天数: 22 天

[LV.4]偶尔看看III

24#
发表于 2019-5-6 17:27:12 | 只看该作者
非常感谢!非常实用!!
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

25#
发表于 2020-3-11 16:26:01 | 只看该作者
楼主您好,复制了楼主的代码只改了wifi内容和地区,我在获取回复内容时,串口打印显示context中的内容到一半就结束了。
应该是context内容的不完整,导致了json解析错误,请问该如何解决这个问题。

connecting to TP-LINK_kong
.......
WiFi connected
Get the data from Internet!
{"results":[{"location":{"id":"WTMKQ069CCJ7","name":"Hangzhou","country":"CN","path":"Hangzhou,Hangzhou,Zhejiang,China","timezone":"Asia/Shan
Read Over!
JSON parsing failed!
Disconnect
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

26#
发表于 2020-3-11 17:53:15 | 只看该作者
HeyPandaJun 发表于 2020-3-11 16:26
楼主您好,复制了楼主的代码只改了wifi内容和地区,我在获取回复内容时,串口打印显示context中的内容到一 ...

我把楼主给的代码content[length]=0注释了,结果显示conttext内容的确不完整。
代码部分:
// Read the body of the response from the HTTP server -- 从HTTP服务器响应中读取正文
void readReponseContent(char* content, size_t maxSize) {
  size_t length = client.peekBytes(content, maxSize);
  delay(100);
  Serial.println("Get the data from Internet!");
  //content[length] = 0;
  Serial.println(content);
  Serial.println("Read Over!");
}

串口显示:
connecting to TP-LINK_kong
.......
WiFi connected
Get the data from Internet!
{"results":[{"location":{"id":"WTMKQ069CCJ7","name":"Hangzhou","country":"CN","path":"Hangzhou,Hangzhou,Zhejiang,China","timezone":"Asia/Sha⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮(省略无数个反问号)
Read Over!
JSON parsing failed!
Disconnect

疑惑,还是不清楚怎么解决这个问题。
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

27#
发表于 2020-3-11 20:47:28 | 只看该作者
HeyPandaJun 发表于 2020-3-11 17:53
我把楼主给的代码content[length]=0注释了,结果显示conttext内容的确不完整。
代码部分:
// Read the ...

目前我找不到原因,但是问题解决了,我按照链接下载了2.3版本的,之前版本较高,可能readReponseContent()这个函数不一样,更换了ESP8266的包之后,就可以正常获取json数据了。
链接:http://www.yfrobot.com.cn/thread-11797-1-1.html
回复 支持 1 反对 0

使用道具 举报

签到天数: 866 天

[LV.10]以坛为家III

28#
 楼主| 发表于 2020-3-12 08:36:12 | 只看该作者
本帖最后由 AllBlue 于 2020-3-12 08:39 编辑
HeyPandaJun 发表于 2020-3-11 20:47
目前我找不到原因,但是问题解决了,我按照链接下载了2.3版本的,之前版本较高,可能readReponseContent ...

有可能,我这边没试过其他版本的,当时都是可以正常获取的;我刚刚搜索了下确实有人遇到此问题,有人回复说改 “peekBytes 改成 readBytes” 就可以了。你可以再试试。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

29#
发表于 2020-5-8 18:20:32 | 只看该作者
不错!学习中!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|联系我们|YFROBOT ( 苏ICP备20009901号-2  

GMT+8, 2024-5-3 19:08 , Processed in 0.047457 second(s), 19 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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