欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 【行空板K10】获得当前所在城市及JSON库的移植:

【行空板K10】获得当前所在城市及JSON库的移植:

2025/4/29 14:33:56 来源:https://blog.csdn.net/bit_mike/article/details/144938830  浏览:    关键词:【行空板K10】获得当前所在城市及JSON库的移植:

目录

引言

通过IP地址获得所在城市

JSON库的移植

JSON库的导入

​编辑Mind+程序编写

测试结果


 

本文首发于:【行空板K10】获得当前所在城市及JSON库的移植 DF创客社区引言以前没有接触过Mind+编程,这次因为参加“义教信息科技教学活动实践案例征集”活动,上手了行空板K10。分享自己的一个测试项目。项目的目标是上网后,通过ip-api.com的在线服务获得当前IP所在城市。通过IP地址获得所在城市有很多这样的服务,我使用的是ip-api.com。在Windows上使用...https://mc.dfrobot.com.cn/thread-323610-1-1.html

引言

以前没有接触过Mind+编程,这次因为参加“义教信息科技教学活动实践案例征集”活动,上手了行空板K10。分享自己的一个测试项目。项目的目标是上网后,通过ip-api.com的在线服务获得当前IP所在城市。

通过IP地址获得所在城市

有很多这样的服务,我使用的是ip-api.com。在Windows上使用下面的命令就可以获得相关信息:

curl http://ip-api.com/json/?lang=zh-CN

返回的结果如下:

465f419ea98b4c7eb7c6024e335c047e.png

可以看出,结果是一个JSON字符串,其中的city字段就是我想要的结果。

JSON库的移植

我本来想用云天的Mind+扩展库,不过这个库在我的Mind+中报错,所以做了一些修改。在config.json中添加了version字段,否则会报错。同时在board字段添加了esp32s3bit。修改后的文件:

{"name": {"zh-cn": "json解析","en": "json"},"description": {"zh-cn": "json是一种轻量级的数据交换格式","en": "json"},"author": "yuntian","email": "68215552@qq.com","license": "MIT","isBoard": false,"id": "json","platform": ["win"],"version":"0.0.2","asset": {"ArduinoC": {"dir": "arduinoC/","version": "0.0.1","board": ["arduino","esp32","esp32s3bit"],"main": "main.ts"}}
}

main.ts文件中只修改了getjson函数,另外一个没有用到。

    //% block="get the json[STR] params[params]" blockType="reporter"//% STR.shadow="string" STR.defl="MQTT消息"export function getjson(parameter: any, block: any) {let str = parameter.STR.codelet params_val = parameter.params.code// Generator.addInclude('json', '#include "ArduinoJson.h"');Generator.addObject(`jsonBuffer`, `DynamicJsonBuffer`, `jsonBuffer;`);Generator.addCode(`jsonBuffer.parseObject(${str})[${params_val}].asString()`);}

这里面注释掉了ArduinoJson.h,这个文件会导致无法生成代码。不过去掉了这个头文件之后,JSON组件必须和WiFi组件一起用,因为WiFi组件会包括这个头文件。好在这个问题不大。
另外一句修改是:Generator.addCode(`jsonBuffer.parseObject(${str})[${params_val}].asString()`);。不加asString会编译错误。删掉掉了阿里云的[params]字段,我用不到。

修改后的JSON库:https://gitee.com/zealsoft/json

JSON库的导入

点击“扩展”按钮,在其中选择用户库,导入用户库,选择json组件所在目录。如果不需要修改,直接选择mepxt文件。如果需要修改,就删除掉mepxt文件,选择config.json文件即可。然后就可以看到json组件了。

470f80b03f184d6d9c1537f2a165a457.png
Mind+程序编写

Mind+程序如下:逻辑比较简单,就是调用http组件获得网站的响应,然后调用JSON组件提取city字段。
7768d9700c1544f8b376b5fa3aebdb37.png

测试结果

程序烧写成功后,运行结果如图所示。
8dcef96b8a2b448690481e5e070fd431.png

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词