Тот же код работает на Arduino IDE, но не в PlatformIO IDE
Я столкнулся с этой странной проблемой. Мой код работает просто отлично, когда я загружаю его в ESP32 из Arduino IDE. Тот же самый код не работает, когда я загружаю его с помощью PlatformIO IDE. В обеих средах используются одни и те же версии библиотек.
Я читал, что в PlatformIO вам, возможно, придется использовать прямое объявление (то, что Arduino IDE решает из коробки). Я не знаю, так ли это на самом деле. И если это так... Я не знаю, как это применить.
Может ли кто-нибудь помочь мне с этим?
#include <Arduino.h>
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 23
#define DHTTYPE DHT11
LiquidCrystal_I2C lcd(0x27,16,2);
DHT dht(DHTPIN, DHTTYPE);
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(115200);
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Humedad: "));
Serial.print(h);
Serial.print(F("% Temperatura: "));
Serial.print(t);
Serial.println(F("°C "));
lcd.setCursor(0,0);
lcd.print("Humedad: ");
lcd.println(String(h));
lcd.setCursor(0,1);
lcd.print("Temp.: ");
lcd.print(String(t));
}
РЕДАКТИРОВАТЬ:
platformio.ini
[env:fm-devkit]
platform = espressif32
board = fm-devkit
framework = arduino
monitor_speed = 115200
upload_port = COM9
lib_deps =
adafruit/DHT sensor library@^1.4.3
adafruit/Adafruit Unified Sensor@^1.1.5
marcoschwartz/[email protected]
@NicoRiff, 👍2
Обсуждение0
Смотрите также:
- esp32 Stack canary watchpoint срабатывает
- Увеличить частоту дискретизации на плате ESP32
- Использование лямбд в качестве функций обратного вызова
- Преобразование строки C в строку C++
- Считывание данных нескольких датчиков из текстового файла, расположенного на SD-карте в Arduino/ESP32
- Не могу скомпилировать .ino с помощью библиотеки ArduinoJson
- ESP32-WROOM-32 Wifisecureclient read() приводит к тарабарщине данных
- C++ против языка Arduino?
Что именно здесь означает "не работает"? Получаете ли вы ошибки компиляции? Или ошибки при загрузке? Или поведение кода отличается от ожидаемого после успешной компиляции и загрузки?, @chrisl
можете ли вы опубликовать свой файл platformio.ini? Проблема может заключаться в том, что вы используете другую версию ESP-IDF, которая предварительно скомпилирована в среде arduino (что необязательно при работе с platformio)., @Sim Son
@chrisl Код просто компилируется и запускается... но он ничего не выводит на дисплей, @NicoRiff
@SimSon Я добавил файл plaformio.ini, @NicoRiff
хм, файл .ini выглядит так, как я и ожидал, за исключением того, что я не знаю эту плату (я предполагаю, что вы выбрали бы точно такую же плату в Arduino IDE). Возможно, вы могли бы попробовать использовать
board = esp32dev
на случай, если сопоставление выводов каким-то образом испорчено для этой платы (сопоставление выводов не должно сильно зависеть от фактической платы, если она основана на ESP32. Но это моя единственная идея здесь, и я на самом деле не уверен, имеет ли это большой смысл..., @Sim Sonтоже не работает... в любом случае, спасибо, @NicoRiff
Печатается ли код на последовательном мониторе, как ожидалось? Не могли бы вы попробовать удалить символ “°” в "F ("° C ")
? Не могли бы вы попробовать удалить приведения к
String(
lcd.println (h);вместо
lcd.println(String (h));, то же самое для
t`)?, @Edgar BonetА что находится на последовательном интерфейсе? (Вы всегда можете добавить дополнительные сообщения трассировки, чтобы выяснить, как далеко это продвинется), @KIIV
да, он печатает на последовательный монитор, как и ожидалось, @NicoRiff
Подробный вывод компиляции и компоновки для обеих сред может оказаться полезным., @timemage