RX DS18B20 RF433:
#include <GyverOneWire.h>
#include <Gyver433.h>
#include <GyverDS18.h>
#define G433_SPEED 1000
#define RADIO_BUF_SIZE 5
#define RADIO_DATA 8
#define RADIO_VCC 9
GyverDS18Single ds(10); // пин
Gyver433_TX <RADIO_DATA, G433_XOR> tx;
void setup() {
pinMode(RADIO_VCC, OUTPUT); // Пины
Serial.begin(9600);
ds.setResolution(9);
ds.requestTemp(); // первый запрос на измерение
}
void loop() {
if (ds.ready()) {
if (ds.readTemp()) {
Serial.print("temp: ");
Serial.print(ds.getTemp());
Serial.println("C*");
} else {
Serial.println("error");
}
uint16_t result = ds.getTemp();
uint8_t data[3]; // Формируем и отсылаем пакет
data[0] = 0xA1;
data[1] = highByte(result);
data[2] = lowByte(result);
digitalWrite(RADIO_VCC, HIGH);
_delay_ms(1);
tx.sendData(data);
tx.sendData(data);
tx.sendData(data);
tx.sendData(data);
tx.sendData(data);
digitalWrite(RADIO_VCC, LOW);
delay(30000);
ds.requestTemp();
}
}
Приёмник не могу даже скомпилировать, ругается Compilation error: no matching function for call to 'GyverDS18::getTemp(int)'
что я делаю не так? Верно ли выставил RADIO_BUF_SIZE 5 и ds.setResolution(9); одинаковыми на передатчике и на приёмнике?
Код приёмника на NodeMCU 1.0 ESP-12
TX RF433 (SYN480r) NodeMCU 1.0 ESP-12 LOL1n:
#define RADIO_DATA 0
#define RADIO_BUF_SIZE 5
#define G433_SPEED 1000
#include <Gyver433.h>
#include <GyverDS18.h>
Gyver433_RX <RADIO_DATA, G433_XOR> rx;
GyverDS18 ds(0);
void setup() {
Serial.begin(9600);
ds.setResolution(9);
}
void loop() {
if (rx.tickWait()) {
switch (rx.buffer[0]) {
case 0xA1:
Serial.print("DS18B20: ");
Serial.print(ds.getTemp(rx.buffer[1] << 8 | rx.buffer[2]));
Serial.println(" *C");
break;
}
}
}
Заранее благодарен за ответы.