37585浏览
查看: 37585|回复: 58

[uPyCraft IDE] micropython支持中文啦!

[复制链接]
中文支持包含一下几个方面
1. string类型的变量直接可用中文
  比如
   a="中文"
   print(a)
2. 文件可以使用中文注释
  比如
    #这个程序完成了XXXX功能
3. 网络资源获取到中文字符串的时候,可以直接打印
  比如
    本例程会提供一个天气预报的例子,请看完全部教程
4. 可以通过Framebuf将汉字打印到液晶上
  比如
    oled.text("愿Micropython越来越强大",0,0)



参考了 @秦皇岛岛主  的例子,学习了一下http的get和post,用get请求完成了一个获取天气的应用,供大家参考学习一.  注册网站
https://www.seniverse.com
使用它的免费服务,一天可以请求400次,基本天气信息都有了


二. 注册完成后会有API-KEY,请保存下来
micropython支持中文啦!图1

三. 准备材料
   1. firebeetle-esp32或firebeetle-esp8266主板
   2. uPyCraft 0.24版
四 开始实验
1.  将uPy_Lib目录下的urequests.py拖动到板子的lib目录下(注意这个文件岛主做了更改,官方原版不支持params)
2.  将uPy_Lib目录下的ssd1306.py拖动到板子的lib目录下
3. 使用下面这个代码,保存成py文件,下载到板子上并运行
[mw_shl_code=python,true]import urequests as requests
from machine import Pin,I2C,SPI
import time
import network
import ujson
import ssd1306
import HZK

i2c = I2C(scl=Pin(22), sda=Pin(21), freq=100000)
spi = SPI(baudrate=100000, polarity=1, phase=0, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
cs = Pin(25,Pin.OUT)
HZK.init(spi,cs)
lcd=ssd1306.SSD1306_I2C(128,64,i2c)

API_KEY = 'mggxhv8zbogqbmqj'
UID = "UF239A86CE"

LOCATION = 'chengdu'
URL = 'https://api.seniverse.com/v3/weather/now.json'
UNIT = 'c'
LANGUAGE = 'zh-Hans'

SSID="YOURSSID"
PASSWORD="YOURPASSWORD"
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'])
    addr=j['results'][0]['location']['name']
    weather=j['results'][0]['now']['text']
    temperature=j['results'][0]['now']['temperature']
    lcd.text("地点:%s"%addr,5,0)
    lcd.text("天气:%s"%weather,5,16)
    lcd.text("温度:%s"%temperature,5,32)
    lcd.show()
[/mw_shl_code]



五.  实验效果
micropython支持中文啦!图2



micropython支持中文啦!图3



这样就能看到大成都的天气啦!


特此公告:
凡是在此帖后面跟帖的小伙伴,都有机会免费领取FireBeetle系列新产品一套(这些都是还没有上架的新产品哦),活动规则如下:
1、赠送产品包括:
   FireBeetle Covers-OLED12864 Display
     FireBeetle Covers-Camera&Audio Media Board
     FireBeetle Board-ESP8266
     FireBeetle Board-328P with BLE4.1
     FireBeetle Covers-DC Motor&Stepper Drivers
2、活动时间:     从发帖日时间起,截止8月25日止,8月25日下午5点公布领取名单
3、在哪里可以看到公布名单?
     请您加入microPython交流群:619558168,我们将在群里进行公布名单,如果没有联系到您,将自动视为放弃领取。
4、哪些小伙伴可以免费领取了?
     此次采用随机方式,如有100人回帖,那么就从0到100随机抽取5名,随机抽取方式由uPyCraft软件生成,如下图所示:
micropython支持中文啦!图4

     注:为了体现公正性,随机抽取时将以视频的方式录制,大家可以在后面进行查询观看

   

luyuhao  见习技师

发表于 2017-8-8 17:45:41

哇,好惊喜!好厉害哦!
回复

使用道具 举报

imliubo  见习技师

发表于 2017-8-9 11:43:36

:lol 想被僵大爷临幸   先看看这个random函数是怎么生成随机数的!
一般是用一个真随机数种子通过各种算法不停地迭代生成的一个新的随机数,主要通过什么算法呢?哈哈  这就多了去了
随机正太分布,帕累托分布,高斯分布,β分布,γ分布,三角分布,威布尔分布等等等。。。。。
而且算法具体执行的顺序还不一样。。。  都是随机的,哪怕你用相同的种子数去生成随机数,都会出现不同的结果
所以 祝大家幸运   啊哈哈哈  
回复

使用道具 举报

0574water  学徒

发表于 2017-12-6 10:35:48

exec(open('./esp8266 oled from net .py').read(),globals())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 7, in <module>
ImportError: no module named 'HZK'
>>>

import urequests as requests
import HZK
导入这二个库出错 !
回复

使用道具 举报

秦皇岛岛主  初级技师

发表于 2017-8-8 17:55:01

厉害了,我的僵
回复

使用道具 举报

super-power  中级技师

发表于 2017-8-9 10:28:55

厉害了,我要学!
回复

使用道具 举报

Zeyo_Pendragon  高级技师

发表于 2017-8-9 10:35:05

厉害了,僵大佬,求临幸啊
回复

使用道具 举报

fyc123123  学徒

发表于 2017-8-9 10:57:49

厉害厉害   顶一个
回复

使用道具 举报

sanliang  见习技师

发表于 2017-8-9 10:58:58

僵大师,我是饭太稀,你写的这个帖子真是前无古人后无来者,让人拍手叫绝,大快人心啊。
回复

使用道具 举报

cheche  见习技师

发表于 2017-8-9 11:00:17

本帖最后由 cheche 于 2017-8-9 11:01 编辑

楼主威武!在下这厢有礼了!
回复

使用道具 举报

wanju  初级技师

发表于 2017-8-9 11:04:16

算我一个 嘿嘿
回复

使用道具 举报

Forgotten  版主

发表于 2017-8-9 11:10:58

前排求中奖
回复

使用道具 举报

沧海笑  高级技师

发表于 2017-8-9 13:20:51

跟着僵师兄学mpy:handshake。好运自然来:hug:
回复

使用道具 举报

僵大懒  见习技师
 楼主|

发表于 2017-8-9 13:25:25

sanliang 发表于 2017-8-9 10:58
僵大师,我是饭太稀,你写的这个帖子真是前无古人后无来者,让人拍手叫绝,大快人心啊。 ...

饭饭大佬。:lol吓死个神啊
回复

使用道具 举报

僵大懒  见习技师
 楼主|

发表于 2017-8-9 13:29:51

Zeyo_Pendragon 发表于 2017-8-9 10:35
厉害了,僵大佬,求临幸啊

且看imliubo的算法解析大法
回复

使用道具 举报

僵大懒  见习技师
 楼主|

发表于 2017-8-9 13:31:56

imliubo 发表于 2017-8-9 11:43
想被僵大爷临幸   先看看这个random函数是怎么生成随机数的!
一般是用一个真随机数种子通过各种算法 ...

大佬,跪求算法一套:lol
回复

使用道具 举报

dexin  中级技师 来自手机

发表于 2017-8-9 14:30:57

厉害了 python真的是越来越全面了!
回复

使用道具 举报

jszsj  见习技师

发表于 2017-8-9 17:08:48

啊哈,中文也阔以,这个可以有,可以把我的串口TFT屏用起来了
回复

使用道具 举报

see01995  学徒

发表于 2017-8-10 10:17:55

看半天没说怎么实现中文支持?刷固件?
回复

使用道具 举报

僵大懒  见习技师
 楼主|

发表于 2017-8-10 11:05:55

see01995 发表于 2017-8-10 10:17
看半天没说怎么实现中文支持?刷固件?

目前中文支持只有esp32,需要用upy0.24刷固件,8266,pyboard等后面会支持
回复

使用道具 举报

pythonboy  学徒

发表于 2017-8-10 18:41:33

不知道,博主是不是在外部flash烧写了字库,通过SPI接口获取字模,如果是这样,对字体的取模方式上有限制吗?
回复

使用道具 举报

hnyzcj  版主

发表于 2017-8-11 10:42:36

顶起来好活动
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail