9973| 3
|
[uPyCraft IDE] uPyCraft-micropython教程之获取天气 |
忙活了一天,终于有时间玩micropython了,一看时间是下午3点半,哭晕。。。。今天学习了一下http的get和post,用get请求完成了一个获取天气的应用,供大家参考学习一. 注册网站 https://www.seniverse.com 使用它的免费服务,一天可以请求400次,基本天气信息都有了 二. 注册完成后会有API-KEY,请保存下来 三. 准备材料 1. firebeetle-esp32或firebeetle-esp8266主板 2. uPyCraft 0.21版本(7月6日发布) 四 开始实验 1. 将uPy_Lib目录下的urequests.py拖动到板子的lib目录下(注意这个文件我做了更改,官方原版不支持params) 图片 2. 使用下面这个代码,保存成py文件,下载到板子上并运行 [mw_shl_code=python,true]import urequests as requests import time import network import ujson API_KEY = 'mggxhv8zbogqbmqj' UID = "UF239A86CE" LOCATION = 'beijing' URL = 'https://api.seniverse.com/v3/weather/now.json' UNIT = 'c' LANGUAGE = 'en' SSID="DFROBOT_AP" PASSWORD="12345678" wlan=None s=None def connectWifi(ssid,passwd): global wlan wlan=network.WLAN(network.STA_IF) wlan.active(True) wlan.disconnect() wlan.connect(ssid,passwd) while(wlan.ifconfig()[0]=='0.0.0.0'): time.sleep(1) return True def fetchWeather(location): result = requests.get(URL, params={ 'key': API_KEY, 'location': location, 'language': LANGUAGE, 'unit': UNIT }) return result.text if __name__ == '__main__': connectWifi(SSID,PASSWORD) result = fetchWeather(LOCATION) print(result) j=ujson.loads(result) print("\r\n\r\n") print(j['results'][0]['location']['name']) print(j['results'][0]['now']['text']) print(j['results'][0]['now']['temperature'])[/mw_shl_code] 五. 实验效果 看看北京的天气如何,竟然下雨了 将LOCATION改为chengdu,就可以查看我大成都天气了,方法简单,就不再上图了 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed