Исправляем ошибку чтения температуры для Dallas на ESP32 и добавляем возможность указать для каждого датчика Dallas Ds18b20 свой адрес на шине.

This commit is contained in:
2021-12-14 17:02:42 +03:00
parent 9c1604e9cc
commit 4a946ff3eb
7 changed files with 88 additions and 13 deletions

View File

@@ -2,6 +2,10 @@
#include <Arduino.h>
void hex2string(byte array[], unsigned int len, char buffer[]);
int string2hex(const char* str, unsigned char* bytes );
uint8_t hexStringToUint8(String hex);
uint16_t hexStringToUint16(String hex);

View File

@@ -5,17 +5,19 @@
#include <DallasTemperature.h>
#include "Global.h"
//ИНТЕГРИРУЮ: Объявляем глагольные переменные необходимые интегрируемой библиотеке
extern DallasTemperature sensors;
extern OneWire* oneWire;
//ИНТЕГРИРУЮ: следим за наименованиями далее
class SensorDallas;
typedef std::vector<SensorDallas> MySensorDallasVector;
class SensorDallas {
public:
SensorDallas(unsigned long interval, unsigned int pin, unsigned int index, String key);
//ИНТЕГРИРУЮ: обращаем внимание на параметры, берутся из таблицы настроек
SensorDallas(unsigned long interval, unsigned int pin, unsigned int index, String addr, String key);
~SensorDallas();
void loop();
@@ -27,6 +29,7 @@ class SensorDallas {
unsigned long difference;
unsigned long _interval;
String _key;
String _addr;
unsigned int _pin;
unsigned int _index;
};