3476| 2
|
[入门教程] 掌控板独立显示天气信息(二)--mPython X |
前几天写了一个帖子,《掌控配虚谷显示天气信息》,经虚谷群里獬独的指正,原来获取天气的原始数据经过了GZIP的压缩,但是micropython固件中并没有GZIP模块,獬独大大在他的帖子中《掌控独立显示天气信息》给出了一个解压方式,这样就无需用虚谷号处理数据,掌控自行处理天气数据并进行显示。 奈何本人萌新一枚,接触 python 没多久,着实读不懂帖子里数据处理的那段代码,大写的尴尬。。。。 那有没有其他方式,不需要密匙,不需要外再的设备,不需要重新编写解压代码,利用掌控固件中现有的模块,处理数据,显示天气信息呢? 还真有。此处再次感谢獬独大大,他在虚谷群里给出了另一个获取天气信息的网址:http://t.weather.sojson.com/api/weather/city/101110101 程序的大致流程: 1. 连接WIFI 2. 利用 urequests 模块,请求网址的天气数据: urequests.get(url) 3. 利用 urequests 内置的 json() ,把获取的数据转换成字典类型(dirct) 4. 对字典类型数据进行信息提取,提起所需要的天气信息,通过掌控的 OLED 屏予以显示 先贴一段利用虚谷号的 jupyter 显示天气信息具体数据的截图 可以看出这个字典类数据的具体天气信息 接下来是 mPython X 中的图形化积木块程序: 利用到分栏中的 WIFI、网络、字典、列表、变量(确实看着蛮繁琐的,层层嵌套。。。) 老规矩,上代码: [mw_shl_code=python,true]from mpython import * import network import urequests import json my_wifi = wifi() my_wifi.connectWiFi("WIFI名称", "WIFI密码") _response = urequests.get("http://t.weather.sojson.com/api/weather/city/101110101") data = _response.json() oled.DispChar(data["cityInfo"]["city"], 0, 0, 1) oled.DispChar(data["data"]["forecast"][0]["ymd"], 60, 0, 1) oled.DispChar(data["data"]["forecast"][0]["low"], 0, 16, 1) oled.DispChar(data["data"]["forecast"][0]["high"], 0, 32, 1) oled.DispChar(data["data"]["forecast"][0]["type"], 60, 16, 1) oled.DispChar(data["data"]["forecast"][0]["fx"], 0, 48, 1) oled.DispChar(data["data"]["forecast"][0]["fl"], 60, 48, 1) oled.show()[/mw_shl_code] 显示效果: |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed