70 lines
3.0 KiB
Arduino
70 lines
3.0 KiB
Arduino
|
#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);
|
|||
|
}*/
|