rf433demo/lib/Oregon_TM/examples/send_oregon.ino

70 lines
3.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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);
}*/