标签: micropython

如何在 MicroPython 中格式化时间?

我正在尝试使用 Raspberry Pi Pico 和 MicroPython 转换time.localtime()为字符串。我尝试过.join(),但 Raspberry Pi Pico 运行 MicroPython:

from machine import Pin, I2C
from ssd1306 import SSD1306_I2C

now = time.localtime()
print("Current date and time: ")
print(now)

w = 128
h = 32

i2c = I2C(0, scl=Pin(17), sda=Pin(16), freq=200000)
addr = i2c.scan()[0]
oled = SSD1306_I2C(w, h, i2c, addr)

oled.fill(0)
oled.text("Raspberry Pi ", 5, 5)
olex.text("Hi Leo", 5, 15)

oled.show()
Run Code Online (Sandbox Code Playgroud)

format time micropython raspberry-pi-pico

1
推荐指数
1
解决办法
3878
查看次数

Micropython paho 模块丢失?

我正在尝试使用 nodemcu v3 和 dht11 构建一个基本的 MQTT 发布器来发送温度数据。我正在使用 ESPlorer,当我尝试上传代码时,它告诉我该paho模块不存在。我的代码如下:

import time
import network
import paho.mqtt.client as mqtt

sta_if = network.WLAN(network.STA_IF)
ap_if = network.WLAN(network.AP_IF)
sta_if.connect('<MySSID>', '<MyPW>')

mqtt = mqtt.Client()
mqtt.connect("randomIPaddress")

pin = machine.Pin(4)
temp_instance = dht11.DHT11(pin)
result = temp_instance.read()

print("Temperature is: %d C" % result.temperature)
print("Humidity is: %d %%" % result.humidity)
message = result.temperature 
mqtt.publish("base/dht11/temp", message)  
mqtt.loop_forever()
Run Code Online (Sandbox Code Playgroud)

我仍然对 MQTT 发布的工作原理感到非常困惑,而且我似乎找不到任何在这一点上相互同意的来源。我所看到的每个地方都有不同的解决方案来解决我的问题。

有谁知道为什么 ESPLorer 一直告诉我该paho模块不存在?我已经尝试按照文档中所示安装模块,但这让我无处可去。

编辑: https: //pypi.python.org/pypi/paho-mqtt/1.1 这些是我安装 paho 所遵循的说明。

python paho nodemcu esp8266 micropython

0
推荐指数
1
解决办法
1848
查看次数

ESP8266 上的 MicroPython - RTC 没有 init 方法?

文档说可以使用 RTC.init 调用初始化 RTC 时钟。

https://docs.micropython.org/en/latest/esp8266/library/machine.RTC.html

但它不会那样工作:

>>>import machine
>>>rtc = machine.RTC()
>>>rtc.init((2018,4,10,17,30))
Traceback (most recent call last):
  File "<stdin>", line 1 in <module>:
AttributeError: 'RTC' object has no attribute 'init'
Run Code Online (Sandbox Code Playgroud)

所以文档与现实相矛盾。固件版本是 v1.9.3 - 几天前下载了最新的。

最有趣的是,dir(rtc)给出['datetime','memory','alarm','alarm_left','irq','ALARM0']. 它缺少其他几种方法:now、deinit、cancel

那么RTC init方法在哪里,它怎么会消失呢?

UPDATE:我已经想通了,该文件是错误的,我需要使用RTC.datetime代替RTC.init。但它仍然是错误的:

>>>from machine import RTC
>>>rtc=RTC()
>>>rtc.datetime((2000,1,1,23,59,59,0,0))
>>>rtc.datetime()
(2000, 1, 3, 0, 11, 59, 3, 705)
Run Code Online (Sandbox Code Playgroud)

换句话说:2000-01-01T23:59:59 突然变成了 2000-01-03T00:11:59。如何?

我在 RTC.datetime 方法的 tzinfo 参数上也找不到任何有用的东西。它应该是一个数字,这很清楚。但是这是什么意思?

我也试过午夜:

>>>rtc.datetime((2000,1,1,0,0,0,0,0))
>>>rtc.datetime()
(2000,1,1,5,0,0,1,155)
Run Code Online (Sandbox Code Playgroud)

因此,在 tzinfo=0 时,午夜变为 05:00:00。我首先认为这意味着 …

esp8266 micropython

0
推荐指数
1
解决办法
1715
查看次数

16MB 版本的 Micropython ESP32 内存错误

我有一个问题:

">OKMemoryError: 内存分配失败,正在分配 13759 字节"

我已经尝试过 ESP32 4MB 和 16MB 闪存,所以没有办法,它无法处理这段代码。我相信这是因为“零”、“一个”、“两个”变量,因为当我将它们注释掉并只保留“零”时,例如,它工作正常。但是..我的意思是来吧,整个文件是38kb,ESP32的内存是16MB,它必须处理它......

有什么问题?

from machine import Pin, I2C
import ssd1306
from time import sleep

# ESP32 Pin assignment
i2c = I2C(-1, scl=Pin(22), sda=Pin(21))
i2c2 = I2C(-1, scl=Pin(4), sda=Pin(2))
i2c3 = I2C(-1, scl=Pin(19), sda=Pin(18))
i2c4 = I2C(-1, scl=Pin(5), sda=Pin(15))
i2c5 = I2C(-1, scl=Pin(32), sda=Pin(33))

ZERO = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
Run Code Online (Sandbox Code Playgroud)

python micropython esp32

0
推荐指数
1
解决办法
72
查看次数

标签 统计

micropython ×4

esp8266 ×2

python ×2

esp32 ×1

format ×1

nodemcu ×1

paho ×1

raspberry-pi-pico ×1

time ×1