楼主: 驴友花雕
|
[MP动手做] MicroPython动手做(33)——物联网之天气预报 |
11、六位触摸按键选择城市天气预报 P 上海 Y 福州 T 北京 H 重庆 O 深圳 N 济南 [mw_shl_code=python,false]#MicroPython动手做(33)——物联网之天气预报 #六位触摸按键选择城市天气预报 from machine import Timer from mpython import * import urequests import network import ntptime import music import json touch_threshold = {'P': 400, 'Y': 400, 'T': 400, 'H': 400, 'O': 400, 'N': 400} tim12 = Timer(12) _status_p = _status_y = _status_t = _status_h = _status_o = _status_n = 0 def on_touchpad_P_pressed():pass def on_touchpad_P_unpressed():pass def on_touchpad_Y_pressed():pass def on_touchpad_Y_unpressed():pass def on_touchpad_T_pressed():pass def on_touchpad_T_unpressed():pass def on_touchpad_H_pressed():pass def on_touchpad_H_unpressed():pass def on_touchpad_O_pressed():pass def on_touchpad_O_unpressed():pass def on_touchpad_N_pressed():pass def on_touchpad_N_unpressed():pass def timer12_tick(_): global _status_p, _status_y, _status_t, _status_h, _status_o, _status_n try: touchPad_P.read();pass except: return if touchPad_P.read() < touch_threshold['P']: if 1 != _status_p:_status_p = 1;on_touchpad_P_pressed() elif 0 != _status_p:_status_p = 0;on_touchpad_P_unpressed() if touchPad_Y.read() < touch_threshold['Y']: if 1 != _status_y:_status_y = 1;on_touchpad_Y_pressed() elif 0 != _status_y:_status_y = 0;on_touchpad_Y_unpressed() if touchPad_T.read() < touch_threshold['T']: if 1 != _status_t:_status_t = 1;on_touchpad_T_pressed() elif 0 != _status_t:_status_t = 0;on_touchpad_T_unpressed() if touchPad_H.read() < touch_threshold['H']: if 1 != _status_h:_status_h = 1;on_touchpad_H_pressed() elif 0 != _status_h:_status_h = 0;on_touchpad_H_unpressed() if touchPad_O.read() < touch_threshold['O']: if 1 != _status_o:_status_o = 1;on_touchpad_O_pressed() elif 0 != _status_o:_status_o = 0;on_touchpad_O_unpressed() if touchPad_N.read() < touch_threshold['N']: if 1 != _status_n:_status_n = 1;on_touchpad_N_pressed() elif 0 != _status_n:_status_n = 0;on_touchpad_N_unpressed() def weather_getWeather(_weather, _city): if weather_serveraddr=="http://www.tianqiapi.com": nowResult = urequests.get(weather_serveraddr+"/api/?appid="+weather_appid+"&appsecret="+weather_appsecret+"&version=v6&cityid="+_city) json=nowResult.json() nowResult.close() return json[_weather] else: nowResult = urequests.get(weather_serveraddr+"/api/weather/?appid="+weather_appid+"&appsecret="+weather_appsecret+"&version=v6&cityid="+_city) json=nowResult.json() nowResult.close() return json[_weather] brightness=9 weather_serveraddr = "http://www.tianqiapi.com" weather_appid = "85215611" weather_appsecret = "Kx8r5ZCY " # 事件回调函数 def on_touchpad_P_pressed(): global g_my_variable music.pitch(147, 500) oled.fill(0) oled.DispChar("上海", 0, (1-1)*16, 1) oled.DispChar(weather_getWeather("wea", "101020100"), 0, (2-1)*16, 1) oled.DispChar((str("最低温度:") + str(weather_getWeather("tem2", "101020100"))), 0, (3-1)*16, 1) oled.DispChar((str("最高温度:") + str(weather_getWeather("tem1", "101020100"))), 0, (4-1)*16, 1) oled.show() def on_touchpad_H_pressed(): global g_my_variable music.pitch(175, 500) oled.fill(0) oled.DispChar("重庆", 0, (1-1)*16, 1) oled.DispChar(weather_getWeather("wea", "101040100"), 0, (2-1)*16, 1) oled.DispChar((str("最低温度:") + str(weather_getWeather("tem2", "101040100"))), 0, (3-1)*16, 1) oled.DispChar((str("最高温度:") + str(weather_getWeather("tem1", "101040100"))), 0, (4-1)*16, 1) oled.show() def on_touchpad_Y_pressed(): global g_my_variable music.pitch(247, 500) oled.fill(0) oled.DispChar("福州", 0, (1-1)*16, 1) oled.DispChar((str("天气情况:") + str(weather_getWeather("wea", "101230101"))), 0, (2-1)*16, 1) oled.DispChar((str("最低温度:") + str(weather_getWeather("tem2", "101230101"))), 0, (3-1)*16, 1) oled.DispChar((str("最高温度:") + str(weather_getWeather("tem1", "101230101"))), 0, (4-1)*16, 1) oled.show() def on_touchpad_O_pressed(): global g_my_variable music.pitch(196, 500) oled.fill(0) oled.DispChar("深圳", 0, (1-1)*16, 1) oled.DispChar(weather_getWeather("wea", "101280601"), 0, (2-1)*16, 1) oled.DispChar((str("最低温度:") + str(weather_getWeather("tem2", "101280601"))), 0, (3-1)*16, 1) oled.DispChar((str("最高温度:") + str(weather_getWeather("tem1", "101280601"))), 0, (4-1)*16, 1) oled.show() def on_touchpad_T_pressed(): global g_my_variable music.pitch(165, 500) oled.fill(0) oled.DispChar("北京", 0, (1-1)*16, 1) oled.DispChar(weather_getWeather("wea", "101010100"), 0, (2-1)*16, 1) oled.DispChar((str("最低温度:") + str(weather_getWeather("tem2", "101010100"))), 0, (3-1)*16, 1) oled.DispChar((str("最高温度:") + str(weather_getWeather("tem1", "101010100"))), 0, (4-1)*16, 1) oled.show() def on_touchpad_N_pressed(): global g_my_variable music.pitch(220, 500) oled.fill(0) oled.DispChar("济南", 0, (1-1)*16, 1) oled.DispChar(weather_getWeather("wea", "101120101"), 0, (2-1)*16, 1) oled.DispChar((str("最低温度:") + str(weather_getWeather("tem2", "101120101"))), 0, (3-1)*16, 1) oled.DispChar((str("最高温度:") + str(weather_getWeather("tem1", "101120101"))), 0, (4-1)*16, 1) oled.show() tim12.init(period=100, mode=Timer.PERIODIC, callback=timer12_tick) my_wifi = wifi() my_wifi.connectWiFi("zh","zy1567") while not (my_wifi.sta.isconnected()): pass rgb[1] = (0*brightness//9, 102*brightness//9, 0*brightness//9) rgb.write() music.pitch(131, 50) ntptime.settime(8, "ntp.ntsc.ac.cn") oled.fill(0) oled.DispChar("触摸按键选城市", 0, (1-1)*16, 1) oled.DispChar("P 上海 Y 福州", 0, (2-1)*16, 1) oled.DispChar("T 北京 H 重庆", 0, (3-1)*16, 1) oled.DispChar("O 深圳 N 济南", 0, (4-1)*16, 1) oled.show()[/mw_shl_code] |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed