Lua ESP8266 脚本期待额外 =

Posted

技术标签:

【中文标题】Lua ESP8266 脚本期待额外 =【英文标题】:Lua ESP8266 script expecting extra = 【发布时间】:2020-05-12 09:32:57 【问题描述】:

我正在尝试使用我的 ESP8266 测试接近传感器,但是我使用的测试代码一直失败。 每当我运行代码时,都会出现错误:motion sensor.lua:1: '=' expected near 'int'

我还应该提到我正在使用 ESPlorer v0.2.0

const int PIRSensorOutPin = 2;    //PIR Sensor OUT Pin
void setup() 
   Serial.begin(9600);
  pinMode(PIRSensorOutPin, INPUT);

void loop()

    if (digitalRead(PIRSensorOutPin) == LOW)
    
       Serial.println("Person detected!");    //Print to serial monitor
    
    else ;
 

我做错了什么?

【问题讨论】:

您包含的代码是 C++ Arduino 代码,而不是 LUA。 如果您提供遇到错误的代码会很有帮助。 else ; 只会让我无所适从。 【参考方案1】:

Lua 解释器不理解 C++。

您正在运行运行 Lua 文件的 NodeMCU 固件。但是您正在尝试运行 Arduino C++ 代码。那是行不通的。要运行此代码,您必须将 ESP8266 支持添加到您的 Arduino IDE,编译您的代码并将其闪存到 ESP。

也可以在 Lua 中编写代码。

https://github.com/esp8266/Arduino

https://www.nodemcu.com/index_en.html

【讨论】:

【参考方案2】:

我做错了什么?

使用错误的编程语言。

NodeMCU 想要运行 Lua 代码,而你却给它 C 代码,这根本行不通。

我该如何解决? (暗示)

您可以使用 arduino IDE 为 ESP8266 编写 C++ 代码,但由于您似乎已经准备好运行 Lua 代码的所有设置,我建议您改用它。

您提供的 C 代码可以使用 NodeMCU api 重写为 Lua,如下所示:

local pin = 2 -- The number of the I/O Pin
local type = "down" -- Trigger on falling edge

-- https://nodemcu.readthedocs.io/en/master/modules/gpio/#gpiotrig
gpio.trig(pin, type, function()
   print("Movement detected, proceding to exterminate!")
end)

【讨论】:

以上是关于Lua ESP8266 脚本期待额外 =的主要内容,如果未能解决你的问题,请参考以下文章

ESP8266 NodeMCU Lua 如何清除堆?

ESP8266 LUA脚本语言开发: 准备工作-LUA开发说明

ESP8266 LUA脚本语言开发: 准备工作-LUA文件加载与变量调用

ESP8266 LUA脚本语言开发: 外设篇-GPIO中断检测

ESP8266 LUA脚本语言开发: 外设篇-GPIO输出高低电平

ESP8266 LUA脚本语言开发: 外设篇-GPIO输入检测