大多数 Micropython 端口都包含一个“ micropython”模块,该模块具有名为“ ”的特定函数const()。我相信它的行为很像#defineC 中的“”,但是,它只接受整数。有人知道为什么吗?你可以在 C 中声明浮点常量,那么为什么在 micropython 中不可用呢?
我想有效地存储用于在单位之间转换的值,但其中许多是浮点值...(我考虑将它们乘以 10^x,然后在运行时除以该值,但这可能需要像只要将浮点数存储在变量中并让代码使用查找表即可)。
为什么我们只能用 声明整数micropython.const()?
干杯:)
我有一块带有运行Micropython固件v1.8.7的ESP8266芯片的电路板。我的要求是通过大学Wi-Fi使用WebREPL,后者使用WPA2 Enterprise EAP-MSCHAPv2身份验证。到目前为止,我的Google-fu告诉我Arduino用户已经可以连接到WPA2 Enterprise EAP-TLS(基于证书的身份验证)(链接),但不能连接(SSID,用户名,密码)网络。
到目前为止,我所看到的关于该主题的所有线索似乎都是最迟于2016年中开始的,所以我想知道自那时以来是否有人能够弄清楚该怎么做。我以前从未涉足网络相关的东西(我也不是一个出色的程序员),所以上面所有的大词对我来说都是很新的。因此,我有以下问题:
感谢您提供的任何帮助。如果我没有提供任何相关信息,请告诉我,我将对其进行编辑。
编辑:@MaximilianGerhardt这是在WPA2 Personal上对我有效的方法:
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('ssid','pwd')
wlan.ifconfig()
import webrepl
webrepl.start()
Run Code Online (Sandbox Code Playgroud)
在WPA2 Enterprise上,我曾希望更改此行是可行的,但没有任何乐趣:
wlan.connect('ssid',auth=WPA2_ENT,'user','pwd')
Run Code Online (Sandbox Code Playgroud)
谢谢,我将研究Espressif Non-OS SDK V2.0.0,看看是否可以使它工作。
我有一个运行MicroPython的NodeMCU ESP8266开发板。我在ESP8266上运行Web服务器。这是我基于这些板之一的第一个物联网项目。
下面是代码片段。
这是在中执行的main.py。时不时地,由于某种原因导致代码崩溃(可能基于计时和请求)。当main.py退出时,不管出于什么原因,我在蟒蛇CLI回落。
我希望这种情况发生时(如果没有更好的方法)重置主板。
重新启动/重置ESP8266的最佳方法是什么?
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr)
s.listen(5)
print('listening on', addr)
while True:
cl, addr = s.accept()
print('client connected from', addr)
cl_file = cl.makefile('rwb', 0)
print("Request:")
while True:
line = cl_file.readline()
print("Line:" , line)
if not line or line == b'\r\n':
print("breaking")
break
if line == b'GET /active HTTP/1.1\r\n':
Run Code Online (Sandbox Code Playgroud) 我正在尝试在unix上实现micropython,这需要libffi-dev.我安装这种方式brew install libffi-dev.但似乎没有找到libffi-dev.
有没有办法libffi-dev在Mac OS 上安装.谢谢.
我想在失败时将 MQTT 客户端重新连接到服务器。
我用于uqmtt.robust重新连接:它可以解决某些故障,但不能处理互联网断开连接。我正在考虑这样做:
while True:
if c.isConnected():# how to check this?
c.wait_msg()
else:
c=MQTTClient(params)
c.connect() #reconnect trial
Run Code Online (Sandbox Code Playgroud)
我尝试通过读取 PINGRESP 来解决,但 ping 是有间隔的,所以我无法确定连接是否有效。
我正在使用 Adafruit 的 Circuit Playground Express,并使用 Circuit Python 对其进行编程。
我想读取通过 USB 连接 Circuit Playground Express 的计算机传输的数据。使用input()工作正常,但我宁愿获取串行缓冲区,以便在没有输入时循环继续进行。就像是serial.read()。
import serial不适用于 Circuit Python,或者也许我必须安装一些东西。我还能做些什么来使用 Circuit Python 读取串行缓冲区吗?
我已将 ESP32 注册为 AWS IoT 上的一个事物,并下载了其各自的证书以及公钥和私钥。还通过我的终端中的以下命令验证了这些连接是否正确:
openssl s_client -connect host.iot.region.amazonaws.com:8443 -CAfile AmazonRootCA1.pem -cert certificate.pem.crt -key private.pem.key
Run Code Online (Sandbox Code Playgroud)
这是我的 (main.py) 使用 MicroPython 连接到 AWS IoT 的简单代码
import machine
from network import WLAN
import network
from umqtt.simple import MQTTClient
# AWS endpoint parameters.
HOST = b'HOST' # ex: b'abcdefg1234567'
REGION = b'REGION' # ex: b'us-east-1'
CLIENT_ID = "CLIENT_ID" # Should be unique for each device connected.
AWS_ENDPOINT = b'%s.iot.%s.amazonaws.com' % (HOST, REGION)
keyfile = '/certs/private.pem.key'
with open(keyfile, 'r') as f:
key = f.read() …Run Code Online (Sandbox Code Playgroud) 我正在使用 micro python 在 esp8266 上执行此操作,并且有一种方法可以在 Arduino 中清除 OLED 显示,但我不知道如何在 micropython 中清除显示,我使用ssd1306库来控制我的 OLED
这是我的错误,我编写了一个从列表循环在 OLED 上打印的代码,但 OLED 将其打印在之前打印的文本上(将一个打印在另一个不清晰的顶部并打印)7
display = [ip, request_uri, country, region, city]
for real_time in display:
oled.text(real_time, 0, 20)
oled.show()
time.sleep(2)
print(real_time)
Run Code Online (Sandbox Code Playgroud) 我在 ESP32 上运行以下 MicroPython 代码:
import network
wlan_sta = network.WLAN(network.STA_IF)
wlan_sta.active(True)
wlan_mac = wlan_sta.config('mac')
print("MAC Address:", wlan_mac) # Show MAC for peering
Run Code Online (Sandbox Code Playgroud)
输出如下所示:
MAC Address: b'0\xae\xa4z\xa7$'
Run Code Online (Sandbox Code Playgroud)
我想以更熟悉的六对十六进制数字的格式显示它,如下所示:
MAC Address: AABBCC112233
Run Code Online (Sandbox Code Playgroud)
在网上搜索解决方案后,我尝试过:
print("MAC Address:", str(wlan_mac))但它的显示与不使用 str() 时相同
print("MAC Address:", hex(wlan_mac))但它会导致 TypeError: can't conversion bytes to int
print("MAC Address:", wlan_mac.hex())但它说 AttributeError: 'bytes' 对象没有属性 'hex'
我也对从 检索到的字节有点怀疑wlan_sta.config('mac')。我本来希望看到一些看起来更像的东西,b'\xaa\xbb\xcc\x11\x22\x33'而不是b'0\xae\xa4z\xa7$'。z 和 $ 对于应该是十六进制的东西来说似乎非常不合适,并且对于应该是六对数字的东西来说似乎太短了。
所以我的问题有两个:
我正在使用 microPython 2 对 EV3 进行编程。我有另一个 python 3 程序在笔记本电脑上运行,该程序应该以无线方式将数据发送到 EV3。可以通过蓝牙吗?如果不可能的话我该怎么做?
python bluetooth visual-studio-code micropython lego-mindstorms-ev3