Опрос цифрового датчика температуры тормозит вывод данных с других датчиков на esp8266, стоит закомментировать строку s.requestTemperatures(); как всё работает отлично.
#include <OneWire.h>
#include <DallasTemperature.h>
// Setup a oneWire instance to communicate with a OneWire device
OneWire oneWire(PIN_D1);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature s(&oneWire);
DeviceAddress THERMOMETER = { 0x4, 0x3C, 0x3, 0x57, 0x28, 0xE1, 0x96, 0x3F };
void setup(void) {
Serial.begin(115200);
s.begin();
}
void loop() {
s.requestTemperatures();
Serial.println(s.getTempC(THERMOMETER));
}
Попробовал сделать по прерыванию:
#include <OneWire.h>
#include <DallasTemperature.h>
const int motionSensor = 10;
// Setup a oneWire instance to communicate with a OneWire device
OneWire oneWire(PIN_D1);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature s(&oneWire);
DeviceAddress THERMOMETER = { 0x4, 0x3C, 0x3, 0x57, 0x28, 0xE1, 0x96, 0x3F };
void setup(void) {
Serial.begin(115200);
// PIR Motion Sensor mode INPUT_PULLUP
pinMode(motionSensor, INPUT_PULLUP);
// Set motionSensor pin as interrupt, assign interrupt function and set RISING mode
attachInterrupt(digitalPinToInterrupt(motionSensor), detectsMovement, RISING);
s.begin();
}
ICACHE_RAM_ATTR void detectsMovement() {
s.requestTemperatures();
Serial.println(s.getTempC(THERMOMETER));
}
void loop() {}
Не помогло, при срабатывании прерывания всё равно подтормаживает вывод данных с других датчиков.
Есть ли на esp8266 возможность запустить опрос датчика температуры параллельно функции loop?