带有 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。
我们正在和我的队友一起在我们学校做一个气象站项目,他们都使用 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。