问题标签 [nodemcu]

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 投票
2 回答
1917 浏览

lua - MQTT / ESP8266 / NodeMCU / Lua 代码未发布

我对 ESP8266 上的以下 Lua 代码有疑问...

使用以下代码成功调用了代码...

使用 ESPlorer 我看到以下内容...

所以它基本上进入sendData(...)了,我看到了线路的输出......

...但我从来没有看到m:connect(...)块中的日志记录,例如...

...似乎它只是立即返回。

MQTT 代理是一个运行 Mosquitto 的 Raspberry Pi,我已经在我的 Android 手机和平板电脑上使用应用程序对其进行了测试。我在手机和平​​板电脑之间双向成功发布/订阅。

我是 Lua 新手,只了解 MQTT 的基础知识,m:connect(...)如果有人可以提供帮助,我不知道该块有什么问题。

更新:问题已解决- 很抱歉没有尽快回到这个线程。问题只是因为我在我的 RPi 上运行的 Mosquitto 版本(它符合 MQTT v3.1)。NodeMCU MQTT 库支持 MQTT v3.1.1 并且不向后兼容。从本质上讲,我的代码并没有太大的问题,尽管我确实做了一些更改——这只是因为 MQTT 版本不兼容。

0 投票
2 回答
3534 浏览

esp8266 - 网络 I/O 期间中断 == 崩溃?

似乎在执行网络 I/O 时发生 I/O 引脚中断时,系统会重置——即使中断函数只声明一个局部变量并分配它(本质上是一个无操作例程。)所以我我相当肯定这与在中断函数中花费太多时间无关。(我的实际工作中断函数非常简陋,严格递增和分配,甚至没有任何条件逻辑。)

这是一个已知的约束吗?我的解决方法是在使用网络时断开中断,但这当然会带来数据丢失的可能性。

分支:大师

构建于:2016-03-15 10:39

由 SDK 1.4.0 上的 Lua 5.1.4 提供支持

模块:adc,bit,file,gpio,i2c,net,node,pwm,rtcfifo,rtcmem,rtctime,sntp,tmr,uart,wifi

0 投票
0 回答
103 浏览

esp8266 - 软件重置后,来自构建网站的固件挂起

我注意到在调用node.restart()它之后挂起,直到看门狗定时器启动并再次重置它。我什至观察到这种情况连续发生两次,即它在调用重新启动后挂起,然后在看门狗重置后再次挂起。我文件的第一行init.lua是打印语句;当它挂起时,我看不到该输出,因此我认为这不是我的代码的功能。

有没有其他人观察到这一点?有办法解决吗?

0 投票
1 回答
221 浏览

esp8266 - NodeMCU 外部回调函数产生错误

我正在使用带有 Adafruit HUZZAH ESP8266 的 NodeMCU 0.9.6。

以下代码在http.get语句中定义了回调函数,它可以工作:

以下代码将回调函数定义从http.get语句中移动为独立函数:

第二种格式不起作用,它会产生错误:

我做错了什么(NodeMCU noobie)?或者这是一个设计特性还是一个错误?

如果能够拥有一个可以从多个 http.get 调用中引用的回调函数,那就太好了。

注意:我也尝试过这个net.socket:on("receive",...)模块,并在尝试使用在调用语句之外定义的函数时得到相同的错误结果。

0 投票
1 回答
1885 浏览

url - 如何在 NodeMCU (ESP8266) 中通过 URL 获取页面

我想从我自己的页面获得 NodeMCU 模块的价值,该页面由免费托管托管。最终 URL 是:boiler.atwebpages.com/boi.php。首先,我执行连接到服务器: client.connect(boiler.atwebpages.com, 80)

并发送请求

这就是问题所在。首先微芯片从boiler.atwebpages.com(即83.125.22.211)获取IP,并尝试获取文件boi.php。实际上,它尝试访问不存在的 83.125.22.211/boi.php,因此出现 404 错误。是否可以从直接 URL 获取信息或从 IP 地址获取直接路径?

0 投票
2 回答
3274 浏览

esp8266 - 使用 uart.alt(1) 时出现 UART 数据错误

我正在尝试从连接到 ESP8266 的设备获取 rs232 数据(然后数据将通过 http/wifi 发送给我们)。

我正在使用 max3232 IC 为 ESP8266 提供必要的 3.3v TTL。

我已将 ESP8266 上的 max3232(引脚 12)连接到 GPIO 引脚 13(rx)(我只接收数据不发送数据,因此只连接了 rx 引脚)。

我正在使用的代码:

连接到ESP8266的rs232设备每3秒输出一个字母字符,但是写入文件(data.tmp)的数据如下

问题:

1- rs232 设备未发出任何 newln 或 cr 字符,但这些字符出现在数据文件中。

2-字符串“file.close()”被写入数据文件,看起来它是最终file.writeline命令之后的实际lua命令。

3- 字母数据未出现在数据文件中。

4- 通过 uart.alt(0) 切换回标准 uart 引脚不起作用(ESP8266 必须重新启动 - 这不是主要问题,因为标准 uart 引脚仅在调试期间使用)。

我正在将 rs232 数据写入文件,而不是简单地在屏幕上打印出来(我使用的是 ESPlorer v0.2.0),因为 uart.alt(1) 命令将串行端口重定向到备用 ESP8266 gpio 引脚。

我认为我在设置 uart 时做错了什么,但我不知道它是什么。

0 投票
2 回答
3432 浏览

lua - ESP8266, NodeMCU, soft AP - UDP server-like soft AP, 独立接入点

我正在使用带有升级固件的 NodeMCU(带有 ESP8266-E)。所有基本命令都能完美运行,但有一个问题。

我想创建一个独立的接入点,它可以具有类似于 UDP 服务器的行为。这意味着无需直接连接到任何其他接入点。一个简单的 UDP 服务器,如软 AP。

我按照以下步骤操作:

  1. 我已将新固件上传到 NodeMCU。
  2. 我已经下载了 ESPlorer 以便更好地使用 NodeMCU。
  3. 我已经上传了下面的源代码。
  4. 我已连接到桌面上的 NodeMCU 接入点。
  5. 我已经使用 Java UDP 客户端程序向 NodeMCU 发送了一些字符串。
  6. 我看过 ESPlorer 上的消息。
  7. NodeMCU 没有收到任何此类字符串。

--

当我尝试使用 Java 应用程序发送消息时,ESPlorer 没有任何变化。甚至当我尝试使用 Hercules 程序(用于 TCP、UDP 通信的好程序)发送消息时也没有。

我想这可能是错误的IP地址。我使用的是 AP 的 IP 地址,而不是工作站的 IP 地址。

换句话说,我使用的是这个地址:wifi.ap.getip()而不是这个地址wifi.sta.getip()来连接到 UDP 服务器。但sta.getip()返回一个 nil 对象。真的我不知道。

我会很高兴得到任何建议。

非常感谢你。

0 投票
1 回答
1698 浏览

esp8266 - NodeMCU中的DNS问题

我试图从 ESP8266 和像 www.httpbin.org 这样的测试服务器建立连接以获取一些数据。我一直在连接中遇到问题。我正在使用一个非常简单的代码(不包括与本地 WiFi 的明显连接),如下所示:

我得到 print(server_ip) 返回的结果

并且连接挂起(我从来没有打印任何消息)。我究竟做错了什么?谢谢。

0 投票
1 回答
2222 浏览

lua - 在带有 Lua 的 ESP8266 上使用软件串行

我需要独立使用 ESP8266。我想将 HM-10 蓝牙模块连接到它并触发它的 AT 命令并读取附近设备的 UUID。

我可以通过从 Arduino 和 FT232RL 在 HM-10 上发射 AT 命令来做到这一点。但是我如何在 Lua 中做到这一点?

0 投票
0 回答
200 浏览

esp8266 - 如果安装在面包板上,ESP-201 会不时重启

我正在试验这个设备,当我把它安装到面包板上时遇到了麻烦。它工作了一段时间,然后偶尔重新启动。有时是几分钟,有时是几个小时。

我正在使用使用默认模块 + 单线模块构建的当前整数主 NodeMCU 固件。

我正在使用的部分:

  • ESP-201
  • 一个 170 点的面包板
  • CP2102 USB转TTL转换器
  • LM1117T稳压器
  • 1000 µF 16V 电容器

我弯曲了前销,以便 ESP-201 适合面包板(https://flic.kr/p/GzCp4k

接线:

  • CP2102 5v ---- LM1117T 5v
  • ESP-201 中文 ---- 3V3
  • ESP-201 IO15 ---- 接地
  • GND和3V3之间的电容

加上所有连接的 GND 和 3V3。为了上传程序,我将前面的 4 个引脚分别连接到 GND、3V3、RX 和 TX 到 GND、3V3、TX 和 RX。后来我把这些电线拆掉了。

我的配置图片:https ://flic.kr/p/GbiPBE 。

再生产

您需要一个 ThingSpeak 频道来检查重启。创建一个并记下写入密钥。

您可以使用以下简单程序进行测试(只需填写WIFI SSID、PASSWORD和WRITE_KEY):

它只是记录设备何时启动(或重新启动),并启动一个计时器,以便设备无法睡眠。将其保存为init.lua,以便在设备重启时启动。

给设备加电,让它运行一段时间。您应该会时不时地看到重新启动:

ThingSpeak 图表

如果设备不在面包板上,则无需重新启动即可工作。

PS:我也把这个问题发到了Reddit