BLYNK
HOME       📲 GETTING STARTED       📗 DOCS       ❓HELP CENTER       👉 SKETCH BUILDER

Esp32+ds18b20x4+dht22 проблемы

Имеется четыре ds18и20 и один dht22
ds18b20 прекрасно работают но хочется еще мониторить и влажность
но мой код выдает ошибку

Arduino: 1.8.13 (Mac OS X), Плата:"ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

Traceback (most recent call last):
  File "esptool.py", line 57, in <module>
  File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
  File "serial/tools/list_ports.py", line 29, in <module>
  File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
  File "serial/tools/list_ports_posix.py", line 31, in <module>
  File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
  File "serial/tools/list_ports_osx.py", line 32, in <module>
ValueError: dlsym(RTLD_DEFAULT, kIOMasterPortDefault): symbol not found
Failed to execute script esptool
Несколько библиотек найдено для "WiFi.h"
 Используется: /Users/dmitryfilippovich/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/libraries/WiFi
Не используется: /Applications/Arduino.app/Contents/Java/libraries/WiFi
exit status 255
/Applications/Arduino.app/Contents/Java/arduino-builder возвратил 255
Ошибка компиляции для платы ESP32 Dev Module.



#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <OneWire.h>
#include <DallasTemperature.h> 
#include <DHT.h>


char auth[] = "xxxx";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "LOG_DOG";
char pass[] = "notforall";
BlynkTimer timer;

#define ONE_WIRE_BUS 15          // Your ESP32 pin 15
#define DHTPIN 14          // What digital pin we're connected to 14

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11     // DHT 11
#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301
DHT dht(DHTPIN, DHTTYPE);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float roomTemperature0;            // Room temperature in C
float roomTemperature1;            // Room temperature in C
float roomTemperature2;            // Room temperature in C
float roomTemperature3;            // Room temperature in C


void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
  dht.begin();
  sensors.begin();                        // Starts the DS18B20 sensor(s).
  //sensors.setResolution(11);              // More on resolution: http://www.homautomation.org/2015/11/17/ds18b20-how-to-change-resolution-9101112-bits/

  timer.setInterval(1000L, sendTemps);    
  timer.setInterval(1000L, sendSensor);
}

void loop()
{
  Blynk.run();
  timer.run();
  // You can inject your own code or combine it with other sketches.
  // Check other examples on how to communicate with Blynk. Remember
  // to avoid delay() function!
}
void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V4, h);
  Blynk.virtualWrite(V5, t);
  Serial.print(" Humidity = ");
Serial.print(h, 3);
Serial.print(" Temperature_dht = ");
Serial.println(t, 3);
}
void sendTemps()
{
  
  sensors.requestTemperatures();                  // Polls the sensors.
  roomTemperature0 = sensors.getTempCByIndex(0);   // Stores temperature. Change to getTempCByIndex(0) for celcius.
  roomTemperature1 = sensors.getTempCByIndex(1);
  roomTemperature2 = sensors.getTempCByIndex(2);
  roomTemperature3 = sensors.getTempCByIndex(3);
  Blynk.virtualWrite(0, roomTemperature0);         // Send temperature to Blynk app virtual pin 0.
  Blynk.virtualWrite(1, roomTemperature1);         // Send temperature to Blynk app virtual pin 1.
  Blynk.virtualWrite(2, roomTemperature2);         // Send temperature to Blynk app virtual pin 2.
  Blynk.virtualWrite(3, roomTemperature3);         // Send temperature to Blynk app virtual pin 3.



Serial.print(" Temperature_1 = ");
Serial.print(roomTemperature0, 3);
Serial.print(" Temperature_2 = ");
Serial.print(roomTemperature1, 3);
Serial.print(" Temperature_3 = ");
Serial.print(roomTemperature2, 3);
Serial.print(" Temperature_1 = ");
Serial.println(roomTemperature3, 3);

}

Добро пожаловать!

Я плохо говорю по русски!

Это прискорбно:

“timer.setInterval(1000L, sendTemps);
timer.setInterval(1000L, sendSensor);”

Измените его на другое значение или измерьте датчик ds18B20 и DHT в процессе измерения.

Вы можете попробовать удалить этот файл:

“/Users/dmitryfilippovich/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/libraries/WiFi”
Затем переустановите ядро ​​ESP32.

Я надеюсь, что смогу помочь.

Attila

Еще одна важная вещь заключается в том, что датчик DHT слишком медленный для запроса в течение 1 секунды. Если вы хотите запросить данные в отдельной процедуре, вы можете ремонтировать датчики ds18b20 каждые 3 секунды и запрашивать головку датчика DHT каждые 11 секунд.

Attila

решено, на другом компьютере у все заработало, проблема была в обновлении macos