{"id":1808,"date":"2018-09-24T21:32:06","date_gmt":"2018-09-24T19:32:06","guid":{"rendered":"http:\/\/yarogniew.net\/arduino\/?p=1808"},"modified":"2019-06-17T23:35:01","modified_gmt":"2019-06-17T21:35:01","slug":"ds3231-real-time-clock-nrf24l01","status":"publish","type":"post","link":"https:\/\/arduino.net.pl\/index.php\/ds3231-real-time-clock-nrf24l01\/","title":{"rendered":"DS3231 Real Time Clock i wysy\u0142anie czasu za pomoc\u0105 modu\u0142u nRF24L01"},"content":{"rendered":"<p>Dzi\u015b na tapecie wyj\u0105tkowo precyzyjny modu\u0142 zegara. Chc\u0119 go wykorzysta\u0107 w moim inteligentnym domu jako podstawowy zegar, kt\u00f3ry b\u0119dzie sterowa\u0142 wszystkimi urz\u0105dzeniami w\u0142\u0105czanymi lub wy\u0142\u0105czanymi w okre\u015blonym czasie. Na razie robimy prosty uk\u0142ad steruj\u0105cy lampk\u0105 w czasie.<\/p>\n<p>\u0179r\u00f3d\u0142o to:\u00a0<a href=\"https:\/\/www.youtube.com\/watch?v=whVrT8PdYG4\">Viral Science &#8211; DS3231 jako trigger<\/a><\/p>\n<h5>\u0141\u0105czenie modu\u0142u z nano:<\/h5>\n<p><a href=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-09-27-o-22.50.42.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1825\" src=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-09-27-o-22.50.42.png\" alt=\"\" width=\"1002\" height=\"669\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-09-27-o-22.50.42.png 1002w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-09-27-o-22.50.42-300x200.png 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-09-27-o-22.50.42-768x513.png 768w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-09-27-o-22.50.42-440x294.png 440w\" sizes=\"auto, (max-width: 1002px) 100vw, 1002px\" \/><\/a><\/p>\n<p>\u015awietna biblioteka z porz\u0105dn\u0105 dokumentacj\u0105: <a href=\"http:\/\/www.rinkydinkelectronics.com\/library.php?id=73\">http:\/\/www.rinkydinkelectronics.com\/library.php?id=73<\/a><\/p>\n<p>Kod programu dla Nano:<\/p>\n<blockquote><p>Uwaga, w czasie \u0142adowania programu do p\u0142ytki Nano, wybra\u0107 musia\u0142em opcj\u0119 (<strong>Old Bootloader<\/strong>). Tylko wtedy transmisja przebiega\u0142a prawid\u0142owo. Modu\u0142 mam sprzed kilku lat. Arduino IDE 1.8.x<\/p><\/blockquote>\n<p><a href=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-10-03-o-18.33.18.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1860\" src=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-10-03-o-18.33.18.png\" alt=\"\" width=\"649\" height=\"148\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-10-03-o-18.33.18.png 649w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-10-03-o-18.33.18-300x68.png 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/Zrzut-ekranu-2018-10-03-o-18.33.18-440x100.png 440w\" sizes=\"auto, (max-width: 649px) 100vw, 649px\" \/><\/a><\/p>\n<pre><pre class=\"brush: plain; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">\n\/\/VIRAL SCIENCE\n\/\/SPECIFIC TIME TRIGGER RELAY\n#include &amp;lt;DS3231.h&amp;gt;\n\nint Relay = 2;\n\n\/\/DS3231  rtc(SDA, SCL); \/\/Arduino UNO\nDS3231  rtc(A5, A4); \/\/ Nano\nTime t;\n\nconst int OnHour = 0; \/\/SET TIME TO ON RELAY (24 HOUR FORMAT)\nconst int OnMin = 1;\nconst int OffHour = 0; \/\/SET TIME TO OFF RELAY\nconst int OffMin = 2;\n\nvoid setup() {\n  Serial.begin(115200);\n  rtc.begin();\n  pinMode(Relay, OUTPUT);\n  digitalWrite(Relay, LOW);\n}\n\nvoid loop() {\n  t = rtc.getTime();\n  Serial.print(t.hour);\n  Serial.print(\" hour(s), \");\n  Serial.print(t.min);\n  Serial.print(\" minute(s)\");\n  Serial.println(\" \");\n  delay (1000);\n\n  if(t.hour == OnHour &amp;amp;amp;amp;&amp;amp;amp;amp; t.min == OnMin){\n    digitalWrite(Relay,HIGH);\n    Serial.println(\"LIGHT ON\");\n    }\n\n    else if(t.hour == OffHour &amp;amp;amp;amp;&amp;amp;amp;amp; t.min == OffMin){\n      digitalWrite(Relay,LOW);\n      Serial.println(\"LIGHT OFF\");\n    }\n}\n<\/pre>\n<h5>Przesy\u0142anie czasu modu\u0142em radiowym:<\/h5>\n<p>Teraz ma\u0142y test jak daleko da si\u0119 przesy\u0142a\u0107 aktualny czas pobrany z DS3231\u00a0za pomoc\u0105 modu\u0142u radiowego nRF24L01. Ot\u00f3\u017c w obr\u0119bi\u0119 mieszkania (10m + \u015bciany) nie by\u0142o \u017cadnego problemu, transmisja przebiega bez zak\u0142\u00f3ce\u0144. Ustawi\u0142em <em>radio.setPALevel(RF24_PA_HIGH)<\/em>. Przy <em>RF24_PA_LOW<\/em> w obr\u0119bie pokoju dzia\u0142a\u0142o dobrze, poza transmisja si\u0119 rwa\u0142a.<\/p>\n<p><strong>\u0141\u0105czenia:<\/strong><\/p>\n<p><a href=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/09\/nRF24_DS3231_Nano_2018-10-03-o-14.23.10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1849 size-large\" src=\"http:\/\/yarogniew.net\/arduino\/wp-content\/uploads\/2018\/09\/nRF24_DS3231_Nano_2018-10-03-o-14.23.10-1024x469.png\" alt=\"\" width=\"1024\" height=\"469\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/nRF24_DS3231_Nano_2018-10-03-o-14.23.10-1024x469.png 1024w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/nRF24_DS3231_Nano_2018-10-03-o-14.23.10-300x137.png 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/nRF24_DS3231_Nano_2018-10-03-o-14.23.10-768x352.png 768w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/nRF24_DS3231_Nano_2018-10-03-o-14.23.10-440x202.png 440w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2018\/09\/nRF24_DS3231_Nano_2018-10-03-o-14.23.10.png 1061w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p><strong>Kod dla TX i RX:<\/strong><\/p>\n<p>TX &#8211; nadajnik, modu\u0142 z zegarem<\/p>\n<pre><pre class=\"brush: plain; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">\n\/*\n* Arduino Wireless Communication Tutorial\n*     Example 1 - Transmitter Code\n*\n* by Dejan Nedelkovski, www.HowToMechatronics.com\n*\n* Library: TMRh20\/RF24, https:\/\/github.com\/tmrh20\/RF24\/\n*\/\n\n#include &amp;amp;amp;lt;SPI.h&amp;amp;amp;gt;\n#include &amp;amp;amp;lt;nRF24L01.h&amp;amp;amp;gt;\n#include &amp;amp;amp;lt;RF24.h&amp;amp;amp;gt;\n\n#include &amp;amp;amp;lt;DS3231.h&amp;amp;amp;gt;;\n\nRF24 radio(7, 8); \/\/ CE, CSN\n\n#define SDA_PIN A5  \/\/ SDA for Nano\n#define SCL_PIN A4  \/\/ SCL for Nano\n\nDS3231  rtc(SDA_PIN, SCL_PIN);\nTime t;\nint dataTransmitted&#x5B;3];\n\nconst byte address&#x5B;5] = \"00001\";\n\nvoid setup() {\n  Serial.begin(9600);\n  rtc.begin();\n  radio.begin();\n  radio.openWritingPipe(address);\n  radio.setPALevel(RF24_PA_HIGH);\n  radio.stopListening();\n}\n\nvoid loop() {\n  t = rtc.getTime();\n  dataTransmitted&#x5B;0] = t.hour;\n  dataTransmitted&#x5B;1] = t.min;\n  dataTransmitted&#x5B;2] = t.sec;\n\n  radio.write(&amp;amp;amp;amp;amp;dataTransmitted, sizeof(dataTransmitted));\n\/\/  Serial.print(t.hour);\n\/\/  Serial.print(\" hour(s), \");\n\/\/  Serial.print(t.min);\n\/\/  Serial.println(\" minute(s)\");\n\n  Serial.println(\" \");\n\n  delay(1000);\n}\n<\/pre>\n<p>RX &#8211; odbiornik<\/p>\n<pre><pre class=\"brush: plain; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">\n\/*\n* Arduino Wireless Communication Tutorial\n*       Example 1 - Receiver Code\n*\n* by Dejan Nedelkovski, www.HowToMechatronics.com\n*\n* Library: TMRh20\/RF24, https:\/\/github.com\/tmrh20\/RF24\/\n*\n* Odbiornik Arduino UNO\n*\/\n\n#include &amp;amp;amp;lt;SPI.h&amp;amp;amp;gt;\n#include &amp;amp;amp;lt;nRF24L01.h&amp;amp;amp;gt;\n#include &amp;amp;amp;lt;RF24.h&amp;amp;amp;gt;\n\nRF24 radio(7, 8); \/\/ CE, CSN\n\nconst byte address&#x5B;5] = \"00001\";\n\nvoid setup() {\n  Serial.begin(9600);\n  radio.begin();\n  radio.openReadingPipe(0, address);\n  radio.setPALevel(RF24_PA_HIGH);\n  radio.startListening();\n}\n\nvoid loop() {\n  if (radio.available()) {\n    int dataReceived&#x5B;3];\n    radio.read(&amp;amp;amp;amp;amp;dataReceived, sizeof(dataReceived));\n    Serial.print(\"Czas: \");\n    Serial.print(dataReceived&#x5B;0]);\n    Serial.print(\" : \");\n    Serial.print(dataReceived&#x5B;1]);\n    Serial.print(\" : \");\n    Serial.println(dataReceived&#x5B;2]);\n\n  }\n}\n<\/pre>\n<p>kod oryginalny: <a href=\"https:\/\/drive.google.com\/open?id=1s3We_v7Plbq7HlEwKliaqWgKhNDqsBpG\">https:\/\/drive.google.com\/open?id=1s3We_v7Plbq7HlEwKliaqWgKhNDqsBpG<\/a><br \/>\npo\u0142\u0105czenie:<a href=\"https:\/\/drive.google.com\/file\/d\/1lifntAlxlamBx739VILh2TYvS0xDM-a_\"> https:\/\/drive.google.com\/file\/d\/1lifntAlxlamBx739VILh2TYvS0xDM-a_<\/a><\/p>\n<h5>LINKI:<\/h5>\n<p><a href=\"https:\/\/www.elec-cafe.com\/arduino-wireless-temperature-lcd-display-nrf24l01-dht11\/\">https:\/\/www.elec-cafe.com\/arduino-wireless-temperature-lcd-display-nrf24l01-dht11\/<\/a><br \/>\n<a href=\"https:\/\/github.com\/SodaqMoja\/Sodaq_DS3231\">Biblioteka Sodaq_DS3231 <\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=aSy2HB4pHJg\">DS3231 Real Time Clock + Temperature Sensing using Arduino<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=teIRizvk4ss\"> David Watts<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=whVrT8PdYG4\">How to Electronics<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dzi\u015b na tapecie wyj\u0105tkowo precyzyjny modu\u0142 zegara. Chc\u0119 go wykorzysta\u0107 w moim inteligentnym domu jako podstawowy zegar, kt\u00f3ry b\u0119dzie sterowa\u0142 wszystkimi urz\u0105dzeniami w\u0142\u0105czanymi lub wy\u0142\u0105czanymi w okre\u015blonym czasie. Na razie&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[74,72],"class_list":["post-1808","post","type-post","status-publish","format-standard","hentry","category-arduino","tag-ds3231","tag-nrf24l01"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/1808","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/comments?post=1808"}],"version-history":[{"count":25,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/1808\/revisions"}],"predecessor-version":[{"id":2802,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/1808\/revisions\/2802"}],"wp:attachment":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/media?parent=1808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/categories?post=1808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/tags?post=1808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}