micropython oled中文_micropython支持中文啦

这篇博客分享了如何通过MicroPython在ESP32上实现中文支持,包括字符串变量、文件注释、网络资源处理和汉字打印到液晶屏。作者提供了详细的代码示例,演示了从Seniverse API获取天气信息并在LCD上显示的过程。
摘要由CSDN通过智能技术生成

目前micropython官方版本固件是不支持中文的,经过我们2周加班加点的努力,终于可以支持中文啦

中文支持包含一下几个方面

1. string类型的变量直接可用中文

比如

a="中文"

print(a)

2. 文件可以使用中文注释

比如

#这个程序完成了XXXX功能

3. 网络资源获取到中文字符串的时候,可以直接打印

比如

本例程会提供一个天气预报的例子,请看完全部教程

4. 可以通过Framebuf将汉字打印到液晶上

比如

oled.text("愿Micropython越来越强大",0,0)

本帖子转贴自

http://www.dfrobot.com.cn/community/thread-26740-1-1.html

学习了一下http的get和post,用get请求完成了一个获取天气的应用,供大家参考学习一. 注册网站

https://www.seniverse.com

使用它的免费服务,一天可以请求400次,基本天气信息都有了

二. 注册完成后会有API-KEY,请保存下来

thread-48038-1-1.html

三. 准备材料

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]

五. 实验效果

thread-48038-1-1.html

thread-48038-1-1.html

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值