#include //Имитатор датчиков температуры и влажности 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); }*/