问题标签 [micropython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
207 浏览

sockets - socket.getaddrinfo 不断返回 OSError: -2

我正在尝试在我的 esp8266 上运行一个套接字,但一直在运行OSError: -2
我试过了:

当我在通常的 python 命令行中执行它时,它可以正常工作。
我也试过usocket而不是socket- 没有帮助。

0 投票
0 回答
180 浏览

http - 使用 HTTP 请求操作运行 Micropython 的 WeMos D1 mini (ESP8266) 引脚

我最终要实现的是通过连接到 WeMos D1 Mini 的继电器来控制我的车库开门器,连接到我的家庭 WiFi。我正在使用该openGarageDoor()功能。串行连接一切正常。

我一直在尝试使用此脚本在 WeMos D1 Mini 上运行 HTTP 服务器。

请求被正确接收,GET 变量显示在 print() 上。我能做的最好的就是

我不知道如何正确解析请求。我只是想出了这个肮脏的解决方案。这可能会导致请求系统超时,因为 Postman 等需要等待函数运行完成。

0 投票
1 回答
718 浏览

iot - 如何在 esp8266 的 AP 配置中设置最大连接数?

我想一次只连接一个客户端与 esp8266。尝试连接的第二个客户端应立即断开连接。但我找不到像参数一样的“max_connection”

ap.configuration()

允许的参数是 essid, password, channel, authmode 有没有办法实现这个?

0 投票
1 回答
716 浏览

python - 连接两个 MicroPython 板的套接字错误 ECONNABORTED

我将 MicroPython 与两个 NodeMCU ESP8266 开发板一起使用。我的目标是将一个与另一个连接起来,这样他们就可以交换信息。其中一块板正在运行一个服务器程序,并且它的 AP 已启动。另一个连接到另一个板的AP并尝试连接。

服务器运行良好,我可以使用 Kitty 使用 RAW 连接(将我的 PC 连接到 ESP8266 AP)连接到它。相反,客户端在 socket.connect() 中失败并抛出 ECONNABORTED 异常。我使用了不同的设置,但它们似乎都不起作用。如何连接我的两个板?我是一个有套接字的新手,所以这可能不是 MicroPython 特定的问题,而是 Python 问题。

编辑:使用相同的代码从 PC 连接时没有问题。该问题似乎不包括通过服务器接入点连接到服务器 ESP8266 的客户端 ESP8266。也许是一个 MicroPython 错误?

服务器代码:

客户端代码:

0 投票
2 回答
410 浏览

micropython - 向 micropython 模块添加类

关于在 micropython 中添加模块,我试图创建一个具有本地方法的类。在文档中,给出了如何添加本地方法,并且第一个参数应该mp_obj_t是数据结构本身的类型。但是,我在问如何像其他方法一样传递额外的参数?我尝试使用mp_obj_t * args作为第二个参数,但STATIC MP_DEFINE_CONST_FUN_OBJ_1给出了错误。我尝试了同样的方法,STATIC MP_DEFINE_CONST_FUN_OBJ_VAR但它不支持mp_obt_t作为第一个参数传递,因为STATIC MP_DEFINE_CONST_FUN_OBJ_VAR需要一个int. 我很新,所以我在问如何向可以接受参数的类添加方法?

0 投票
0 回答
144 浏览

python - 嵌入式设备的静态变量与配置文件

因此,我目前正在使用 MicroPython 开发一个嵌入式设备项目,其中 CPU 周期和内存非常宝贵(在这种情况下,我只有 512k 内存可供使用),并且想找出在设置配置参数时内存效率更高的方法我的项目/设备。

通常在我的大多数项目中,我使用一个静态类,其中包含项目的所有区域都将使用的所有全局配置变量。这些变量存储文件位置、超时、缓冲区大小等内容。现在我知道 Python 没有与 Java/C# 中的这种静态/单例类完全相同的结构,但我一直在使用一个行为非常好的单个模块文件相似的。

现在我的问题是这样的;我目前从 JSON 文件加载所有配置值,并使用 ujson 库 ( https://docs.micropython.org/en/latest/pyboard/library/ujson.html ) 加载它。最终结果是我得到了一个 json 对象,我可以使用它来分配我的变量,如下所示:

鉴于我试图尽可能减少内存使用量,不使用“静态”类/变量并在我需要访问配置项时仅引用 json 对象会更简单/更有效吗?

更大项目的可读性和先前的经验让我想要一个更干净的“静态”配置文件/模块/类,但我想知道我是否无缘无故地在这里双重处理,特别是当我想尽可能减少占用空间时。但另一方面,我不知道 JSON 对象是否会占用更多内存,因为它是一个字典字典,并且不确定如何在不花时间实现两种方式的情况下测试差异。

感谢在这种情况下的任何建议或最佳实践。

0 投票
1 回答
1333 浏览

android - ESP8266 带有 AJAX 的 Micropython 网络服务器

我有运行 Micropython 的 ESP8266 12E 的 RC 汽车项目。ESP 处于 AP 模式,它托管的 HTML 页面包含两个滑块(一个用于转向,一个用于驱动速度)。两个滑块的值由 AJAX 请求每 200 毫秒发送一次。使用我的笔记本电脑进行控制时,一切正常,在我的旧 Android 手机(HTC Desire 200、Android 4.0)上运行也很好。但是,当我想用​​我现在的手机(华为 P8 lite,Android 6.0)控制汽车时,它运行了大约 2 分钟,然后它停止工作并在一段时间后重新连接。

有谁知道,什么或哪里可能是问题?

感谢您的任何回复。

这是python代码:

和html:

0 投票
1 回答
1333 浏览

python-import - ImportError:没有名为“umqtt.MQTTClient”的模块,但存在类文件

我在我的 ESP8266 板上安装了 MicroPython v1.9.3-8。这是我的 main.py 文件的开头:

当我重置模块时,来自 umqtt import MQTTClient 的行会引发错误:

<module> 中的文件“main.py”,第 11 行

ImportError:没有名为“umqtt.MQTTClient”的模块

这是我的 umqtt.py 文件

我已使用 webrepl 将 umqtt.py 文件上传到我的 esp8266。当我运行时:

我得到这个输出:

由于在第 8 行的 umqtt.py 文件中定义了 MQTTClient 类,我不知道我做错了什么才能让这段代码正常工作。

0 投票
2 回答
576 浏览

c - c 只有前 8 个字节传递给函数

我正在使用 micropython 中的 C 模块...如果我将字节数组传递给函数,则只有前 8 个字节会成功(根据 sizeof)。我还必须发送长度,然后复制它以访问函数中的所有内容。

我在做什么错/有没有更好的方法将指向字节数组的指针发送到函数?

0 投票
1 回答
184 浏览

module - micropython的pyboard模块是如何从C实现生成的

micropython可以使用很多pyboard模块。目前我只知道这些模块的真正实现是用C完成的。我的问题是:Python模块和C实现之间的关系是如何映射的?比如我们可以使用import pyb,pyb Python文件在哪里呢?比如我们可以使用from pyb import LED和调用强度函数,Python LED 类定义在哪里?它的强度函数的定义在哪里?