问题标签 [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.
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 版本不兼容。
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
esp8266 - 软件重置后,来自构建网站的固件挂起
我注意到在调用node.restart()
它之后挂起,直到看门狗定时器启动并再次重置它。我什至观察到这种情况连续发生两次,即它在调用重新启动后挂起,然后在看门狗重置后再次挂起。我文件的第一行init.lua
是打印语句;当它挂起时,我看不到该输出,因此我认为这不是我的代码的功能。
有没有其他人观察到这一点?有办法解决吗?
esp8266 - NodeMCU 外部回调函数产生错误
我正在使用带有 Adafruit HUZZAH ESP8266 的 NodeMCU 0.9.6。
以下代码在http.get
语句中定义了回调函数,它可以工作:
以下代码将回调函数定义从http.get
语句中移动为独立函数:
第二种格式不起作用,它会产生错误:
我做错了什么(NodeMCU noobie)?或者这是一个设计特性还是一个错误?
如果能够拥有一个可以从多个 http.get 调用中引用的回调函数,那就太好了。
注意:我也尝试过这个net.socket:on("receive",...)
模块,并在尝试使用在调用语句之外定义的函数时得到相同的错误结果。
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 地址获取直接路径?
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 时做错了什么,但我不知道它是什么。
lua - ESP8266, NodeMCU, soft AP - UDP server-like soft AP, 独立接入点
我正在使用带有升级固件的 NodeMCU(带有 ESP8266-E)。所有基本命令都能完美运行,但有一个问题。
我想创建一个独立的接入点,它可以具有类似于 UDP 服务器的行为。这意味着无需直接连接到任何其他接入点。一个简单的 UDP 服务器,如软 AP。
我按照以下步骤操作:
- 我已将新固件上传到 NodeMCU。
- 我已经下载了 ESPlorer 以便更好地使用 NodeMCU。
- 我已经上传了下面的源代码。
- 我已连接到桌面上的 NodeMCU 接入点。
- 我已经使用 Java UDP 客户端程序向 NodeMCU 发送了一些字符串。
- 我看过 ESPlorer 上的消息。
- NodeMCU 没有收到任何此类字符串。
--
当我尝试使用 Java 应用程序发送消息时,ESPlorer 没有任何变化。甚至当我尝试使用 Hercules 程序(用于 TCP、UDP 通信的好程序)发送消息时也没有。
我想这可能是错误的IP地址。我使用的是 AP 的 IP 地址,而不是工作站的 IP 地址。
换句话说,我使用的是这个地址:wifi.ap.getip()
而不是这个地址wifi.sta.getip()
来连接到 UDP 服务器。但sta.getip()
返回一个 nil 对象。真的我不知道。
我会很高兴得到任何建议。
非常感谢你。
esp8266 - NodeMCU中的DNS问题
我试图从 ESP8266 和像 www.httpbin.org 这样的测试服务器建立连接以获取一些数据。我一直在连接中遇到问题。我正在使用一个非常简单的代码(不包括与本地 WiFi 的明显连接),如下所示:
我得到 print(server_ip) 返回的结果
并且连接挂起(我从来没有打印任何消息)。我究竟做错了什么?谢谢。
lua - 在带有 Lua 的 ESP8266 上使用软件串行
我需要独立使用 ESP8266。我想将 HM-10 蓝牙模块连接到它并触发它的 AT 命令并读取附近设备的 UUID。
我可以通过从 Arduino 和 FT232RL 在 HM-10 上发射 AT 命令来做到这一点。但是我如何在 Lua 中做到这一点?
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,以便在设备重启时启动。
给设备加电,让它运行一段时间。您应该会时不时地看到重新启动:
如果设备不在面包板上,则无需重新启动即可工作。
PS:我也把这个问题发到了Reddit