updated

1 parent 99744fd2
#include <Arduino.h> #include <Arduino.h>
#ifndef Oregon_NR_h #ifndef Oregon_NR_h_AIR
#define Oregon_NR_h #define Oregon_NR_h_AIR
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// This Arduino code is for receive and transmit data using Oregon Scientific RF protocol version 2.1 and 3.0. // This Arduino code is for receive and transmit data using Oregon Scientific RF protocol version 2.1 and 3.0.
......
...@@ -39,46 +39,46 @@ ...@@ -39,46 +39,46 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// Oregon Scientific v2.1 v3.0 // Äàííàÿ áèáëèîòåêà Àðäóèíî ïðåäíàçíà÷åíà äëÿ ïðèåìà è ïåðåäà÷è äàííûõ â ôîðìàòå áåñïðîâîäíîãî ïðîòîêîëà Oregon Scientific v2.1 è v3.0
// //
// 14 2019 // Ïîñëåäíåå îáíîâëåíèå 14 Îêòÿáðÿ 2019
// //
// // Ïîääåðæèâàåòñÿ ôîðìàò ñëåäóþùèõ äàò÷èêîâ
// //
// : // Ïðè¸ì è ïåðåäà÷à:
// THGN132N (THGR122N, THGN123N), // THGN132N (THGR122N, THGN123N),
// RTGN318, // RTGN318,
// THGR810. // THGR810.
// : // Òîëüîê ïðè¸ì:
// THN132N, // THN132N,
// WGR800, // WGR800,
// UVN800. // UVN800.
// //
// ( ) // Òàêæå ïîääåðæèâàþòñÿ äàò÷èêè ñîáñòâåííîé ðàçðàáîòêè (çà äîïîëíèòåëüíîé äîêóìåíòàöåé îáðàùàòüñÿ ê àâòîðó)
// //
// - OREGON_NR // Ýòîò ôàéë - ÷àñòü áèáëèîòåêè OREGON_NR
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2019 // Copyright (c) 2019 Ñåðãåé Çàâèñëÿê
// //
// , // Äàííàÿ ëèöåíçèÿ ðàçðåøàåò ëèöàì, ïîëó÷èâøèì êîïèþ äàííîãî ïðîãðàììíîãî îáåñïå÷åíèÿ è ñîïóòñòâóþùåé äîêóìåíòàöèè
// ( ), , // (â äàëüíåéøåì èìåíóåìûìè «Ïðîãðàììíîå Îáåñïå÷åíèå»), áåçâîçìåçäíî èñïîëüçîâàòü Ïðîãðàììíîå Îáåñïå÷åíèå áåç îãðàíè÷åíèé,
// , , , , , , // âêëþ÷àÿ íåîãðàíè÷åííîå ïðàâî íà èñïîëüçîâàíèå, êîïèðîâàíèå, èçìåíåíèå, ñëèÿíèå, ïóáëèêàöèþ, ðàñïðîñòðàíåíèå, ñóáëèöåíçèðîâàíèå
// / , , , : // è/èëè ïðîäàæó êîïèé Ïðîãðàììíîãî Îáåñïå÷åíèÿ, à òàêæå ëèöàì, êîòîðûì ïðåäîñòàâëÿåòñÿ äàííîå Ïðîãðàììíîå Îáåñïå÷åíèå, ïðè ñîáëþäåíèè ñëåäóþùèõ óñëîâèé:
// //
// . // Óêàçàííîå âûøå óâåäîìëåíèå îá àâòîðñêîì ïðàâå è äàííûå óñëîâèÿ äîëæíû áûòü âêëþ÷åíû âî âñå êîïèè èëè çíà÷èìûå ÷àñòè äàííîãî Ïðîãðàììíîãî Îáåñïå÷åíèÿ.
// //
// ܻ, - , , // ÄÀÍÍÎÅ ÏÐÎÃÐÀÌÌÍÎÅ ÎÁÅÑÏÅ×ÅÍÈÅ ÏÐÅÄÎÑÒÀÂËßÅÒÑß «ÊÀÊ ÅÑÒÜ», ÁÅÇ ÊÀÊÈÕ-ËÈÁÎ ÃÀÐÀÍÒÈÉ, ßÂÍÎ ÂÛÐÀÆÅÍÍÛÕ ÈËÈ ÏÎÄÐÀÇÓÌÅÂÀÅÌÛÕ, ÂÊËÞ×Àß ÃÀÐÀÍÒÈÈ ÒÎÂÀÐÍÎÉ
// , , . // ÏÐÈÃÎÄÍÎÑÒÈ, ÑÎÎÒÂÅÒÑÒÂÈß ÏÎ ÅÃÎ ÊÎÍÊÐÅÒÍÎÌÓ ÍÀÇÍÀ×ÅÍÈÞ È ÎÒÑÓÒÑÒÂÈß ÍÀÐÓØÅÍÈÉ, ÍÎ ÍÅ ÎÃÐÀÍÈ×ÈÂÀßÑÜ ÈÌÈ. ÍÈ Â ÊÀÊÎÌ ÑËÓ×ÀÅ ÀÂÒÎÐÛ ÈËÈ ÏÐÀÂÎÎÁËÀÄÀÒÅËÈ
// - , , , , , // ÍÅ ÍÅÑÓÒ ÎÒÂÅÒÑÒÂÅÍÍÎÑÒÈ ÏÎ ÊÀÊÈÌ-ËÈÁÎ ÈÑÊÀÌ, ÇÀ ÓÙÅÐÁ ÈËÈ ÏÎ ÈÍÛÌ ÒÐÅÁÎÂÀÍÈßÌ,  ÒÎÌ ×ÈÑËÅ, ÏÐÈ ÄÅÉÑÒÂÈÈ ÊÎÍÒÐÀÊÒÀ, ÄÅËÈÊÒÅ ÈËÈ ÈÍÎÉ ÑÈÒÓÀÖÈÈ,
// - . // ÂÎÇÍÈÊØÈÌ ÈÇ-ÇÀ ÈÑÏÎËÜÇÎÂÀÍÈß ÏÐÎÃÐÀÌÌÍÎÃÎ ÎÁÅÑÏÅ×ÅÍÈß ÈËÈ ÈÍÛÕ ÄÅÉÑÒÂÈÉ Ñ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //Конструктор
Oregon_TM::Oregon_TM(byte tr_pin) Oregon_TM::Oregon_TM(byte tr_pin)
{ {
TX_PIN = tr_pin; TX_PIN = tr_pin;
...@@ -91,11 +91,13 @@ Oregon_TM::Oregon_TM(void) ...@@ -91,11 +91,13 @@ Oregon_TM::Oregon_TM(void)
{ {
pinMode(TX_PIN, OUTPUT); pinMode(TX_PIN, OUTPUT);
digitalWrite(TX_PIN, LOW); digitalWrite(TX_PIN, LOW);
pinMode(7, OUTPUT); // mr.Tech
digitalWrite(7, HIGH); //mr.Tech
} }
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////// // Функции передатчика////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
void Oregon_TM::sendZero(void) void Oregon_TM::sendZero(void)
{ {
...@@ -209,7 +211,7 @@ void Oregon_TM::sendMSB(byte data) ...@@ -209,7 +211,7 @@ void Oregon_TM::sendMSB(byte data)
(bitRead(data, 5)) ? sendOne() : sendZero(); (bitRead(data, 5)) ? sendOne() : sendZero();
(bitRead(data, 6)) ? sendOne() : sendZero(); (bitRead(data, 6)) ? sendOne() : sendZero();
(bitRead(data, 7)) ? sendOne() : sendZero(); (bitRead(data, 7)) ? sendOne() : sendZero();
if (protocol == 2) time_marker += timing_corrector2; // 1024.07 1024.60 if (protocol == 2) time_marker += timing_corrector2; //Поправка на разницу тактовых частот 1024.07Гц и 1024.60Гц
if (protocol == 3) time_marker += timing_corrector3; if (protocol == 3) time_marker += timing_corrector3;
...@@ -222,7 +224,7 @@ void Oregon_TM::sendLSB(byte data) ...@@ -222,7 +224,7 @@ void Oregon_TM::sendLSB(byte data)
(bitRead(data, 1)) ? sendOne() : sendZero(); (bitRead(data, 1)) ? sendOne() : sendZero();
(bitRead(data, 2)) ? sendOne() : sendZero(); (bitRead(data, 2)) ? sendOne() : sendZero();
(bitRead(data, 3)) ? sendOne() : sendZero(); (bitRead(data, 3)) ? sendOne() : sendZero();
if (protocol == 2) time_marker += timing_corrector2; // 1024.07 1024.60 if (protocol == 2) time_marker += timing_corrector2; //Поправка на разницу тактовых частот 1024.07Гц и 1024.60Гц
if (protocol == 3) time_marker += timing_corrector3; if (protocol == 3) time_marker += timing_corrector3;
} }
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
...@@ -234,9 +236,9 @@ void Oregon_TM::sendData() ...@@ -234,9 +236,9 @@ void Oregon_TM::sendData()
sendMSB(SendBuffer[i]); sendMSB(SendBuffer[i]);
if (i < 9) if (i < 9)
sendLSB(SendBuffer[i]); sendLSB(SendBuffer[i]);
if (protocol == 2) time_marker += 4; // 1024.07 1024.60 if (protocol == 2) time_marker += 4; //Поправка на разницу тактовых частот 1024.07Гц и 1024.60Гц
//if (protocol == 3) time_marker += 4; //if (protocol == 3) time_marker += 4;
// 1024.07 1024 //Поправка на разницу тактовых частот 1024.07Гц и 1024Гц
} }
} }
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
...@@ -409,7 +411,7 @@ void Oregon_TM::SendPacket() ...@@ -409,7 +411,7 @@ void Oregon_TM::SendPacket()
} }
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////// // Функции кодирования данных//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
void Oregon_TM::setType(word type) void Oregon_TM::setType(word type)
{ {
...@@ -626,15 +628,20 @@ void Oregon_TM::setComfort(float temp, byte hum) ...@@ -626,15 +628,20 @@ void Oregon_TM::setComfort(float temp, byte hum)
else SendBuffer[7] = 0x00; else SendBuffer[7] = 0x00;
return; return;
} }
/////////////////////////////////////////////////////////////////////////////////////////////////// // Передача - заметка от mr.Tech //////////////////////////////////////////////////////////////////////
bool Oregon_TM::transmit() bool Oregon_TM::transmit()
{ {
if (millis() >= time_marker_send && send_time) if (millis() >= time_marker_send && send_time)
{ {
digitalWrite(7, LOW);// Включение режима TX на 7-й ноге. Добавлено mr.Tech 09.03.2020
delay(500);
SendPacket(); SendPacket();
time_marker_send = millis() + send_time; time_marker_send = millis() + send_time;
digitalWrite(7, HIGH);// Отключение режима TX на 7-й ноге. Добавлено mr.Tech 09.03.2020
return true; return true;
} }
else return false; else return false;
} }
...@@ -645,7 +652,7 @@ bool Oregon_TM::transmit() ...@@ -645,7 +652,7 @@ bool Oregon_TM::transmit()
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
// THP //Поддержка датчика THP
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
......
...@@ -41,40 +41,40 @@ ...@@ -41,40 +41,40 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// Oregon Scientific v2.1 v3.0 // Данная библиотека Ардуино предназначена для приема и передачи данных в формате беспроводного протокола Oregon Scientific v2.1 и v3.0
// //
// 14 2019 // Последнее обновление 14 Октября 2019
// //
// // Поддерживается формат следующих датчиков
// //
// : // Приём и передача:
// THGN132N (THGR122N, THGN123N), // THGN132N (THGR122N, THGN123N),
// RTGN318, // RTGN318,
// THGR810. // THGR810.
// : // Тольок приём:
// THN132N, // THN132N,
// WGR800, // WGR800,
// UVN800. // UVN800.
// //
// ( ) // Также поддерживаются датчики собственной разработки (за дополнительной документацей обращаться к автору)
// //
// - OREGON_NR // Этот файл - часть библиотеки OREGON_NR
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2019 // Copyright (c) 2019 Ñåðãåé Çàâèñëÿê
// //
// , // Äàííàÿ ëèöåíçèÿ ðàçðåøàåò ëèöàì, ïîëó÷èâøèì êîïèþ äàííîãî ïðîãðàììíîãî îáåñïå÷åíèÿ è ñîïóòñòâóþùåé äîêóìåíòàöèè
// ( ), , // (â äàëüíåéøåì èìåíóåìûìè «Ïðîãðàììíîå Îáåñïå÷åíèå»), áåçâîçìåçäíî èñïîëüçîâàòü Ïðîãðàììíîå Îáåñïå÷åíèå áåç îãðàíè÷åíèé,
// , , , , , , // âêëþ÷àÿ íåîãðàíè÷åííîå ïðàâî íà èñïîëüçîâàíèå, êîïèðîâàíèå, èçìåíåíèå, ñëèÿíèå, ïóáëèêàöèþ, ðàñïðîñòðàíåíèå, ñóáëèöåíçèðîâàíèå
// / , , , : // è/èëè ïðîäàæó êîïèé Ïðîãðàììíîãî Îáåñïå÷åíèÿ, à òàêæå ëèöàì, êîòîðûì ïðåäîñòàâëÿåòñÿ äàííîå Ïðîãðàììíîå Îáåñïå÷åíèå, ïðè ñîáëþäåíèè ñëåäóþùèõ óñëîâèé:
// //
// . // Óêàçàííîå âûøå óâåäîìëåíèå îá àâòîðñêîì ïðàâå è äàííûå óñëîâèÿ äîëæíû áûòü âêëþ÷åíû âî âñå êîïèè èëè çíà÷èìûå ÷àñòè äàííîãî Ïðîãðàììíîãî Îáåñïå÷åíèÿ.
// //
// ܻ, - , , // ÄÀÍÍÎÅ ÏÐÎÃÐÀÌÌÍÎÅ ÎÁÅÑÏÅ×ÅÍÈÅ ÏÐÅÄÎÑÒÀÂËßÅÒÑß «ÊÀÊ ÅÑÒÜ», ÁÅÇ ÊÀÊÈÕ-ËÈÁÎ ÃÀÐÀÍÒÈÉ, ßÂÍÎ ÂÛÐÀÆÅÍÍÛÕ ÈËÈ ÏÎÄÐÀÇÓÌÅÂÀÅÌÛÕ, ÂÊËÞ×Àß ÃÀÐÀÍÒÈÈ ÒÎÂÀÐÍÎÉ
// , , . // ÏÐÈÃÎÄÍÎÑÒÈ, ÑÎÎÒÂÅÒÑÒÂÈß ÏÎ ÅÃÎ ÊÎÍÊÐÅÒÍÎÌÓ ÍÀÇÍÀ×ÅÍÈÞ È ÎÒÑÓÒÑÒÂÈß ÍÀÐÓØÅÍÈÉ, ÍÎ ÍÅ ÎÃÐÀÍÈ×ÈÂÀßÑÜ ÈÌÈ. ÍÈ Â ÊÀÊÎÌ ÑËÓ×ÀÅ ÀÂÒÎÐÛ ÈËÈ ÏÐÀÂÎÎÁËÀÄÀÒÅËÈ
// - , , , , , // ÍÅ ÍÅÑÓÒ ÎÒÂÅÒÑÒÂÅÍÍÎÑÒÈ ÏÎ ÊÀÊÈÌ-ËÈÁÎ ÈÑÊÀÌ, ÇÀ ÓÙÅÐÁ ÈËÈ ÏÎ ÈÍÛÌ ÒÐÅÁÎÂÀÍÈßÌ,  ÒÎÌ ×ÈÑËÅ, ÏÐÈ ÄÅÉÑÒÂÈÈ ÊÎÍÒÐÀÊÒÀ, ÄÅËÈÊÒÅ ÈËÈ ÈÍÎÉ ÑÈÒÓÀÖÈÈ,
// - . // ÂÎÇÍÈÊØÈÌ ÈÇ-ÇÀ ÈÑÏÎËÜÇÎÂÀÍÈß ÏÐÎÃÐÀÌÌÍÎÃÎ ÎÁÅÑÏÅ×ÅÍÈß ÈËÈ ÈÍÛÕ ÄÅÉÑÒÂÈÉ Ñ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
...@@ -149,4 +149,4 @@ class Oregon_TM ...@@ -149,4 +149,4 @@ class Oregon_TM
}; };
#endif #endif
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!