带有 arduino ide 的 Nodemcu 1.0,合作者无法编译草图,但我可以

Nodemcu 1.0 with arduino ide, collaborator cannot compile sketch but i can

我们正在和我的队友一起在我们学校做一个气象站项目,他们都使用 windows pc:s 和 arduino ide 来编程 Nodemcu 1.0。

这个草图在我的电脑上编译没有问题,安装了库(adafruit dht 库 1.3.0 和 adafruit 统一传感器库 1.0.2)。

编译时队友报错:

\Documents\Arduino\libraries\Adafruit_Sensor-1.0.1\Adafruit_Sensor.cpp:2:26: fatal error: avr/pgmspace.h: No such file or directory
 #include <avr/pgmspace.h>
                          ^
compilation terminated.
exit status 1
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

我们比较了库,两者应该安装了相同的库。

#include "DHT.h"


#define DS18B20pin 4 //määritetään DS18B20 -sensorin datapin. Nodemcu pin D2 = GPIO 04
#define DHTPIN 5 //määritetään DHT11-sensorin datapin. Nodemcu pin D1 = GPIO 05.
#define LDRpin A0  //määritetään LDR-vastukselle A0 -pinni.
#define DHTTYPE DHT11 //määrittää DHT-sensorisarjasta että on DHT11 käytössä. 

int DHTvalue;   //DHT11   - Suhteellinen ilmankosteus prosentteina
float DSvalue;  //DS18B20 - Lämpötila celciusasteina 
int LDRvalue;   //LDR     - Valon määrä prosentteina

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  pinMode(DS18B20pin, INPUT);

  Serial.begin(115200);    //alustetaan sarjaportti ja nopeus.
  dht.begin();             //alustetaan dht-kirjastosta sensori.
}

void loop() {
  delay(2000); //DHT11 vaatii vähintään 2 sekunnin delayn lukujen välillä.

  //luetaan valon määrä LDR-vastukselta ja tulostetaan se sarjaportille.

  int ldr_lukema = analogRead(LDRpin);
  LDRvalue = ldr_lukema * (100 / 1023.0); //muutetaan 0-1023 arvoinen analogiarvo prosenteiksi 0-100.

  Serial.print("Valon määrä(%): ");
  Serial.println(LDRvalue);



  //Tarkistetaan että DHT11 lukemat ovat ok.
  Serial.print("Ilmankosteusanturin tila: ");

  int dht11_tila = dht.readHumidity();
  if(isnan(dht11_tila)){
    Serial.println("virhe");
   }else{
    Serial.println("OK");
   }



  Serial.print("Ilman suhteellinen kosteus(%): ");
  Serial.println((float)dht.readHumidity());
  Serial.println("-----------------------------------------------");
}

问题是您的队友使用的是不同版本的 Adafruit 统一传感器驱动程序库。从报错信息可以看出:

\Documents\Arduino\libraries\Adafruit_Sensor-1.0.1\Adafruit_Sensor.cpp:2:26: fatal error: avr/pgmspace.h: No such file or directory

他们使用的是 1.0.1 版,而您使用的是 1.0.2 版。 avr/pgmspace.h 的不必要包含在这两个版本之间是 removed