-1

我正在尝试用我的 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 {;}
 }

我究竟做错了什么?

4

2 回答 2

0

Lua 解释器不理解 C++。

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

或者在 Lua 中编写代码。

https://github.com/esp8266/Arduino

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

于 2020-01-27T07:10:17.073 回答
0

我究竟做错了什么?

使用错误的编程语言。

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)
于 2020-01-27T12:23:52.657 回答