rf433demo/lib/Oregon_TM/examples/send_oregon.ino

70 lines
3.0 KiB
Arduino
Raw Normal View History

2025-02-22 22:32:03 +00:00
#include <Oregon_TM.h>
//Имитатор датчиков температуры и влажности Oregon Scientific
//В данном примере иммитируются пакеты следующих типов датчиков:
//THGN132N (тип 1D20h, протокол v2, 3 канала)
//RTGN318 (тип ХСС3h, протокол v2, 5 каналов)
//THGR810 (тип F824h, протокол v3, 10 каналов)
//BTHR968 (тип 5D60h, протокол v2, 1 канал)
//BTHGN129 (тип 5D53h, протокол v2, 5 каналов)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Вывод передатчика один. Указывается только при создании первого объекта. В данном примере передатчик подключен к D4
Oregon_TM transmitter(4);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
//Serial.begin(9600);
//THGN132
//transmitter.setType(THGN132);
transmitter.setType(THGR810);
//transmitter.setType(RTGN318);
//transmitter.setType(BTHGN129);
//transmitter.setType(BTHR968);
transmitter.setChannel(3); // Номер канала для THGN132 - 1...3
transmitter.setBatteryFlag(1); // Флаг разряженной батарейки
//transmitter.setComfort(24.2, 30); // Расчёт передаваемого индекса комфорта
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop()
{
//передача осуществляется по таймеру, который определяется типом датчика и номером канала
//Serial.println("TX");
// Displays temperatures from -10 degrees Celsius to +20,
// and humidity from 10% REL to 40% REL, with increments of 2
for (int i = -10; i<=20; i+=2) {
// Temperatures are passed at 10 times the real value,
// to avoid using floating point math.
transmitter.setTemperature((float) i); // -49.9C...+69.9C
transmitter.setHumidity(i+20); // 2...98%
transmitter.SendPacket();
// Wait two seconds before sending next.
delay(2000);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*void PrintSentData(byte* buf, int buf_size)
{
Serial.print(millis() / 1000);
Serial.print("s \t\t");
for (byte i = 0; i < buf_size; i++)
{
byte trmbuf = *buf;
Serial.print(trmbuf >> 4, HEX);
i++;
if (i >= buf_size) break;
Serial.print(trmbuf & 0x0F, HEX);
buf++;
}
Serial.println();
delay(1000);
}*/