Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.79 KB | None | 0 0
  1. // Enable debug prints to serial monitor
  2. #define MY_DEBUG
  3.  
  4. // Enable and select radio type attached
  5. //#define MY_RADIO_NRF24
  6. //#define MY_RADIO_RFM69
  7.  
  8. // Enable serial gateway
  9. #define MY_GATEWAY_SERIAL
  10.  
  11. // Enable inclusion mode
  12. #define MY_INCLUSION_MODE_FEATURE
  13. // Enable Inclusion mode button on gateway
  14. #define MY_INCLUSION_BUTTON_FEATURE
  15.  
  16. // Inverses behavior of inclusion button (if using external pullup)
  17. //#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP
  18.  
  19. // Set inclusion mode duration (in seconds)
  20. #define MY_INCLUSION_MODE_DURATION 60
  21. // Digital pin used for inclusion mode button
  22.  
  23. //#define MY_RF24_CE_PIN 3
  24. //#define MY_RF24_CS_PIN 2
  25. #include <SPI.h>
  26. #include <MySensors.h>
  27. #include <Bounce2.h>
  28. #include <RCSwitch.h>
  29.  
  30. #define NUMBER_OF_PLUGS 3 // Total number of attached plugs
  31.  
  32. #define CODE_60On 5330227
  33. #define CODE_60Off 5330236
  34. #define CODE_61On 5330371
  35. #define CODE_61Off 5330380
  36. #define CODE_62On 5330691
  37. #define CODE_62Off 5330700
  38.  
  39. RCSwitch mySwitch = RCSwitch();
  40.  
  41. // Enable repeater functionality for this node
  42. #define MY_REPEATER_FEATURE
  43. //PRZEKAZNIKI ################################################################ PRZEKAŹNIKI
  44. #define RELAY_1 4 //przekaznik sypialnia
  45. #define RELAY_2 5 //przekaznik kotłownia
  46. #define RELAY_3 6 //przekaznik łazienka góra
  47. #define RELAY_4 7 //przekaznik pok Mai
  48. #define RELAY_5 8 //przekaznik pok Jasia
  49. #define RELAY_6 9 //przekaznik p n garazem
  50. #define RELAY_7 10 //przekaznik strych
  51. #define RELAY_8 11 //przekaźnik przedsionek
  52. #define RELAY_10 13 //przekaźnik kuchnia
  53. #define RELAY_19 22 //przekaźnik salonTV
  54. #define RELAY_20 23 //przekaźnik salon cegła
  55. #define RELAY_21 24 //przekaźnik salon jadalnia
  56. #define RELAY_22 25 //przekaźnik pokój mały
  57. #define RELAY_25 28 //przekaxnik przed garażem
  58. #define RELAY_26 29 //przekaźnik garaż
  59. #define RELAY_27 30 //garaż tablica
  60. #define RELAY_29 32 //przekaźnik za kotłownią
  61. #define RELAY_24 27 //przekaźnik przed domem
  62. #define RELAY_30 33 //przekaźnik tars
  63.  
  64. // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
  65. //#define NUMBER_OF_RELAYS 3 // Total number of attached relays
  66. #define RELAY_ON 0 // GPIO value to write to turn on attached relay
  67. #define RELAY_OFF 1 // GPIO value to write to turn off attached relay
  68.  
  69. //PRZYCISKI ################################################################### PRZYCISKI
  70. #define BUTTON1_PIN A0 //sypialnia
  71. #define BUTTON2_PIN A1 //kotłownia
  72. #define BUTTON3_PIN A2 //łazienka góra
  73. #define BUTTON4_PIN A3 //pok Mai
  74. #define BUTTON5_PIN A4 //pok Jaśka
  75. #define BUTTON6_PIN A5 //pok nad garażem
  76. #define BUTTON7_PIN A6 //strych
  77. #define BUTTON8_PIN A7 //przedsionek
  78. #define BUTTON10_PIN A9 //kuchnia
  79. #define BUTTON19_PIN A10 //salonTV
  80. #define BUTTON20_PIN A11 //salon cegła
  81. #define BUTTON21_PIN A12 //salon jadalnia
  82. #define BUTTON22_PIN A13 //pokój mały
  83. #define BUTTON24_PIN A15 //przed domem
  84. #define BUTTON25_PIN 34 //światło przed garażem
  85. #define BUTTON26_PIN 35 //światło garaż
  86. #define BUTTON27_PIN 36 //światło garaż tablica
  87. #define BUTTON29_PIN 38 //światło za kotłownią
  88. #define BUTTON30_PIN 39 //światło taras
  89.  
  90. //PIRy
  91. #define PIR1_PIN 44
  92. #define PIR2_PIN 45
  93. #define PIR3_PIN 46
  94. #define PIR4_PIN 47
  95. #define PIR5_PIN 48
  96. #define PIR6_PIN 49
  97. #define PIR7_PIN 50
  98. //pir przed domem #define PIR8_PIN 51
  99.  
  100. //alarm
  101. #define UZBROJONY 52
  102. #define ALARM 53
  103.  
  104.  
  105. void before() {
  106.  
  107. //pierwszy przycisk sypialnia pinMode(4 - pin przekaźnika loadstate(1) - numer przekaźnika czyli Lp.
  108. pinMode(4, OUTPUT); // ustawianie output pinów
  109. digitalWrite(4, loadState(1)?RELAY_ON:RELAY_OFF); //ustawia ostatni stan z EPROM
  110. pinMode(5, OUTPUT); //drugi przycisk - kotłownia
  111. digitalWrite(5, loadState(2)?RELAY_ON:RELAY_OFF);
  112. pinMode(6, OUTPUT);//trzeci przycisk - łazienka góra
  113. digitalWrite(6, loadState(3)?RELAY_ON:RELAY_OFF);
  114. pinMode(7, OUTPUT);//czwarty przycisk - pok Mai
  115. digitalWrite(7, loadState(4)?RELAY_ON:RELAY_OFF);
  116. pinMode(8, OUTPUT); //piąty przycisk - pok Jasia
  117. digitalWrite(8, loadState(5)?RELAY_ON:RELAY_OFF);
  118. pinMode(9, OUTPUT); //szósty przycisk - pok nad garażem
  119. digitalWrite(9, loadState(6)?RELAY_ON:RELAY_OFF);
  120. pinMode(10, OUTPUT); //siódmy przycisk - strych
  121. digitalWrite(10, loadState(7)?RELAY_ON:RELAY_OFF);
  122. pinMode(11, OUTPUT);//ósmy przycisk - przedsionek
  123. digitalWrite(11, loadState(8)?RELAY_ON:RELAY_OFF);
  124. pinMode(13, OUTPUT);//dziesiąty przycisk - kuchnia
  125. digitalWrite(13, loadState(10)?RELAY_ON:RELAY_OFF);
  126. pinMode(22, OUTPUT);//19 przycisk salonTV
  127. digitalWrite(22, loadState(19)?RELAY_ON:RELAY_OFF);
  128. pinMode(23, OUTPUT);//20 przycisk - salon cegła
  129. digitalWrite(23, loadState(20)?RELAY_ON:RELAY_OFF);
  130. pinMode(24, OUTPUT);//21 przycisk salon jadalnia
  131. digitalWrite(24, loadState(21)?RELAY_ON:RELAY_OFF);
  132. pinMode(25, OUTPUT);//22 przycisk pok mały
  133. digitalWrite(25, loadState(22)?RELAY_ON:RELAY_OFF);
  134. pinMode(27, OUTPUT);//dwudziesty czwarty przycisk przed domem
  135. digitalWrite(27, loadState(24)?RELAY_ON:RELAY_OFF);
  136. pinMode(28, OUTPUT);//25 przycisk przed garażem
  137. digitalWrite(28, loadState(25)?RELAY_ON:RELAY_OFF);
  138. pinMode(29, OUTPUT);//26 przycisk - garaż
  139. digitalWrite(29, loadState(26)?RELAY_ON:RELAY_OFF);
  140. pinMode(30, OUTPUT);//27 przycisk garaż tablica
  141. digitalWrite(30, loadState(27)?RELAY_ON:RELAY_OFF);
  142. pinMode(32, OUTPUT);//29 przycisk za kotłownią
  143. digitalWrite(32, loadState(29)?RELAY_ON:RELAY_OFF);
  144. pinMode(33, OUTPUT);//30 przycisk za taras
  145. digitalWrite(33, loadState(30)?RELAY_ON:RELAY_OFF);
  146.  
  147. }
  148. // przycisków - debouncer zgodny z numerem przycisku
  149. Bounce debouncer = Bounce();
  150. Bounce debouncer2 = Bounce();
  151. Bounce debouncer3 = Bounce();
  152. Bounce debouncer4 = Bounce();
  153. Bounce debouncer5 = Bounce();
  154. Bounce debouncer6 = Bounce();
  155. Bounce debouncer7 = Bounce();
  156. Bounce debouncer8 = Bounce();
  157. Bounce debouncer10 = Bounce();
  158. Bounce debouncer19 = Bounce();
  159. Bounce debouncer20 = Bounce();
  160. Bounce debouncer21 = Bounce();
  161. Bounce debouncer22 = Bounce();
  162. Bounce debouncer24 = Bounce();
  163. Bounce debouncer25 = Bounce();
  164. Bounce debouncer26 = Bounce();
  165. Bounce debouncer27 = Bounce();
  166. Bounce debouncer29 = Bounce();
  167. Bounce debouncer30 = Bounce();
  168.  
  169. // pirów
  170. Bounce debouncer44 = Bounce();
  171. Bounce debouncer45 = Bounce();
  172. Bounce debouncer46 = Bounce();
  173. Bounce debouncer47 = Bounce();
  174. Bounce debouncer48 = Bounce();
  175. Bounce debouncer49 = Bounce();
  176. Bounce debouncer50 = Bounce();
  177. // pir8 Bounce debouncer51= Bounce();
  178. Bounce debouncer52 = Bounce();
  179. Bounce debouncer53 = Bounce();
  180. //tylko dla pirów
  181. int oldValue44=-1;
  182. int oldValue45=-1;
  183. int oldValue46=-1;
  184. int oldValue47=-1;
  185. int oldValue48=-1;
  186. int oldValue49=-1;
  187. int oldValue50=-1;
  188. // int oldValue51=-1;
  189. int oldValue52=-1;
  190. int oldValue53=-1;
  191.  
  192. MyMessage msg(1, V_LIGHT);//Swiatło sypialnia
  193. MyMessage msg2(2, V_LIGHT);//swiatło kotłownia
  194. MyMessage msg3(3, V_LIGHT);//swiatło łazienak góra
  195. MyMessage msg4(4, V_LIGHT);//swiatło pok Mai
  196. MyMessage msg5(5, V_LIGHT);//swiatło pok Jasia
  197. MyMessage msg6(6, V_LIGHT);//swiatło pok nad garażem
  198. MyMessage msg7(7, V_LIGHT);//swiatło strych
  199. MyMessage msg8(8, V_LIGHT);//swiatło przedsionek
  200. MyMessage msg10(10, V_LIGHT);//swiatło kuchnia
  201. MyMessage msg19(19, V_LIGHT);//salonTV
  202. MyMessage msg20(20, V_LIGHT);//salon cegła
  203. MyMessage msg21(21, V_LIGHT);//salon jadalnia
  204. MyMessage msg22(22, V_LIGHT);//pok mały
  205. MyMessage msg24(24, V_LIGHT);//swiatło przed domem
  206. MyMessage msg25(25, V_LIGHT);//przed garażem
  207. MyMessage msg26(26, V_LIGHT);//garaż
  208. MyMessage msg27(27, V_LIGHT);//garaż tablica
  209. MyMessage msg29(29, V_LIGHT);//za kotłownią
  210. MyMessage msg30(30, V_LIGHT);//taras
  211.  
  212.  
  213. //PIRY
  214. MyMessage msg44(44, V_TRIPPED);
  215. MyMessage msg45(45, V_TRIPPED);
  216. MyMessage msg46(46, V_TRIPPED);
  217. MyMessage msg47(47, V_TRIPPED);
  218. MyMessage msg48(48, V_TRIPPED);
  219. MyMessage msg49(49, V_TRIPPED);
  220. MyMessage msg50(50, V_TRIPPED);
  221. // tu bedzie PIR przed domem MyMessage msg51(51, V_TRIPPED);
  222. MyMessage msg52(52, V_LIGHT); //uzbrojony
  223. MyMessage msg53(53, V_LIGHT); //alarm
  224.  
  225.  
  226. void setup() {
  227.  
  228. // Setup locally attached sensors
  229. mySwitch.enableTransmit(42);
  230. mySwitch.setRepeatTransmit(15);
  231. mySwitch.setPulseLength(206);
  232.  
  233. // Setup locally attached sensors
  234. delay(10000);
  235. // ustawienia przycisków
  236. pinMode(BUTTON1_PIN, INPUT_PULLUP);
  237. pinMode(BUTTON2_PIN, INPUT_PULLUP);
  238. pinMode(BUTTON3_PIN, INPUT_PULLUP);
  239. pinMode(BUTTON4_PIN, INPUT_PULLUP);
  240. pinMode(BUTTON5_PIN, INPUT_PULLUP);
  241. pinMode(BUTTON6_PIN, INPUT_PULLUP);
  242. pinMode(BUTTON7_PIN, INPUT_PULLUP);
  243. pinMode(BUTTON8_PIN, INPUT_PULLUP);
  244. pinMode(BUTTON10_PIN, INPUT_PULLUP);
  245. pinMode(BUTTON19_PIN, INPUT_PULLUP);
  246. pinMode(BUTTON20_PIN, INPUT_PULLUP);
  247. pinMode(BUTTON21_PIN, INPUT_PULLUP);
  248. pinMode(BUTTON22_PIN, INPUT_PULLUP);
  249. pinMode(BUTTON24_PIN, INPUT_PULLUP);
  250. pinMode(BUTTON25_PIN, INPUT_PULLUP);
  251. pinMode(BUTTON26_PIN, INPUT_PULLUP);
  252. pinMode(BUTTON27_PIN, INPUT_PULLUP);
  253. pinMode(BUTTON29_PIN, INPUT_PULLUP);
  254. pinMode(BUTTON30_PIN, INPUT_PULLUP);
  255.  
  256.  
  257. //ustawienia pirów
  258. pinMode(PIR1_PIN, INPUT_PULLUP);
  259. pinMode(PIR2_PIN, INPUT_PULLUP);
  260. pinMode(PIR3_PIN, INPUT_PULLUP);
  261. pinMode(PIR4_PIN, INPUT_PULLUP);
  262. pinMode(PIR5_PIN, INPUT_PULLUP);
  263. pinMode(PIR6_PIN, INPUT_PULLUP);
  264. pinMode(PIR7_PIN, INPUT_PULLUP);
  265. // PIR8 pinMode(PIR8_PIN, INPUT_PULLUP);
  266. pinMode(UZBROJONY, INPUT_PULLUP);
  267. pinMode(ALARM, INPUT_PULLUP);
  268.  
  269. // DEBOUNCERY ########################################################################## DEBOUNCERY
  270. // przyciski
  271. debouncer.attach(BUTTON1_PIN);
  272. debouncer.interval(5);
  273. debouncer2.attach(BUTTON2_PIN);
  274. debouncer2.interval(5);
  275. debouncer3.attach(BUTTON3_PIN);
  276. debouncer3.interval(5);
  277. debouncer4.attach(BUTTON4_PIN);
  278. debouncer4.interval(5);
  279. debouncer5.attach(BUTTON5_PIN);
  280. debouncer5.interval(5);
  281. debouncer6.attach(BUTTON6_PIN);
  282. debouncer6.interval(5);
  283. debouncer7.attach(BUTTON7_PIN);
  284. debouncer7.interval(5);
  285. debouncer8.attach(BUTTON8_PIN);
  286. debouncer8.interval(5);
  287. debouncer10.attach(BUTTON10_PIN);
  288. debouncer10.interval(5);
  289. debouncer19.attach(BUTTON19_PIN);
  290. debouncer19.interval(5);
  291. debouncer20.attach(BUTTON20_PIN);
  292. debouncer20.interval(5);
  293. debouncer21.attach(BUTTON21_PIN);
  294. debouncer21.interval(5);
  295. debouncer22.attach(BUTTON22_PIN);
  296. debouncer22.interval(5);
  297. debouncer24.attach(BUTTON24_PIN);
  298. debouncer24.interval(5);
  299. debouncer25.attach(BUTTON25_PIN);
  300. debouncer25.interval(5);
  301. debouncer26.attach(BUTTON26_PIN);
  302. debouncer26.interval(5);
  303. debouncer27.attach(BUTTON27_PIN);
  304. debouncer27.interval(5);
  305. debouncer29.attach(BUTTON29_PIN);
  306. debouncer29.interval(5);
  307. debouncer30.attach(BUTTON30_PIN);
  308. debouncer30.interval(5);
  309.  
  310. //piry
  311. debouncer44.attach(PIR1_PIN);
  312. debouncer44.interval(5);
  313. debouncer45.attach(PIR2_PIN);
  314. debouncer45.interval(5);
  315. debouncer46.attach(PIR3_PIN);
  316. debouncer46.interval(5);
  317. debouncer47.attach(PIR4_PIN);
  318. debouncer47.interval(5);
  319. debouncer48.attach(PIR5_PIN);
  320. debouncer48.interval(5);
  321. debouncer49.attach(PIR6_PIN);
  322. debouncer49.interval(5);
  323. debouncer50.attach(PIR7_PIN);
  324. debouncer50.interval(5);
  325. // debouncer51.attach(PIR7_PIN);
  326. // debouncer51.interval(5);
  327.  
  328. debouncer52.attach(UZBROJONY);
  329. debouncer52.interval(5);
  330. debouncer53.attach(ALARM);
  331. debouncer53.interval(5);
  332.  
  333. //presentation();
  334. }
  335. void presentation()
  336. {
  337. //############################################################################################### PRESENT
  338. // wysyła wersję skrecha do kontrolera
  339. sendSketchInfo("Arduino-Mega-Kuba", "v5");
  340.  
  341. present(1, S_LIGHT);
  342. present(2, S_LIGHT);
  343. present(3, S_LIGHT);
  344. present(4, S_LIGHT);
  345. present(5, S_LIGHT);
  346. present(6, S_LIGHT);
  347. present(7, S_LIGHT);
  348. present(8, S_LIGHT);
  349. present(10, S_LIGHT);
  350. present(19, S_LIGHT);
  351. present(20, S_LIGHT);
  352. present(21, S_LIGHT);
  353. present(22, S_LIGHT);
  354. present(24, S_LIGHT);
  355. present(25, S_LIGHT);
  356. present(26, S_LIGHT);
  357. present(27, S_LIGHT);
  358. present(29, S_LIGHT);
  359. present(30, S_LIGHT);
  360.  
  361. present(44, S_MOTION);
  362. present(45, S_MOTION);
  363. present(46, S_MOTION);
  364. present(47, S_MOTION);
  365. present(48, S_MOTION);
  366. present(49, S_MOTION);
  367. present(50, S_MOTION);
  368. // bedzie pokazywalo pir8 present(51, S_MOTION);
  369. present(52, S_LIGHT);
  370. present(53, S_LIGHT);
  371.  
  372. present(60, S_LIGHT);
  373. present(61, S_LIGHT);
  374. present(62, S_LIGHT);
  375. }
  376.  
  377.  
  378. //################################################################################################## LOOP
  379. void loop() {
  380. // Send locally attached sensor data here
  381.  
  382. //przekaźnik1 - sypialnia debouncer
  383. if (debouncer.update()) {
  384. // Get the update value.
  385. int value = debouncer.read();
  386. // Send in the new value.
  387. if(value == LOW){
  388. saveState(1, !loadState(1));
  389. digitalWrite(RELAY_1, loadState(1)?RELAY_ON:RELAY_OFF);
  390. send(msg.set(loadState(1)));
  391. }}
  392.  
  393. //przekaznik kotłownia debouncer2
  394. if (debouncer2.update()) {
  395. // Get the update value.
  396. int value2 = debouncer2.read();
  397. // Send in the new value.
  398. if(value2 == LOW){
  399. saveState(2, !loadState(2));
  400. digitalWrite(RELAY_2, loadState(2)?RELAY_ON:RELAY_OFF);
  401. send(msg2.set(loadState(2)));
  402. }}
  403.  
  404. //przekaznik łazienka góra debouncer3
  405. if (debouncer3.update()) {
  406. // Get the update value.
  407. int value3 = debouncer3.read();
  408. // Send in the new value.
  409. if(value3 == LOW){
  410. saveState(3, !loadState(3));
  411. digitalWrite(RELAY_3, loadState(3)?RELAY_ON:RELAY_OFF);
  412. send(msg3.set(loadState(3)));
  413. }}
  414.  
  415. //przekaznik pok Mai debouncer4
  416. if (debouncer4.update()) {
  417. // Get the update value.
  418. int value4 = debouncer4.read();
  419. // Send in the new value.
  420. if(value4 == LOW){
  421. saveState(4, !loadState(4));
  422. digitalWrite(RELAY_4, loadState(4)?RELAY_ON:RELAY_OFF);
  423. send(msg4.set(loadState(4)));
  424. }}
  425.  
  426. //przekaznik pok Jasia debouncer5
  427. if (debouncer5.update()) {
  428. // Get the update value.
  429. int value5 = debouncer5.read();
  430. // Send in the new value.
  431. if(value5 == LOW){
  432. saveState(5, !loadState(5));
  433. digitalWrite(RELAY_5, loadState(5)?RELAY_ON:RELAY_OFF);
  434. send(msg5.set(loadState(5)));
  435. }}
  436.  
  437. //przekaznik pok nad garażem debouncer6
  438. if (debouncer6.update()) {
  439. // Get the update value.
  440. int value6 = debouncer6.read();
  441. // Send in the new value.
  442. if(value6 == LOW){
  443. saveState(6, !loadState(6));
  444. digitalWrite(RELAY_6, loadState(6)?RELAY_ON:RELAY_OFF);
  445. send(msg6.set(loadState(6)));
  446. }}
  447.  
  448. //przekaznik strych debouncer7
  449. if (debouncer7.update()) {
  450. // Get the update value.
  451. int value7 = debouncer7.read();
  452. // Send in the new value.
  453. if(value7 == LOW){
  454. saveState(7, !loadState(7));
  455. digitalWrite(RELAY_7, loadState(7)?RELAY_ON:RELAY_OFF);
  456. send(msg7.set(loadState(7)));
  457. }}
  458.  
  459. //przekaznik przedsionek debouncer8, relay state i msg zgodne z debouncerem
  460. if (debouncer8.update()) {
  461. // Get the update value.
  462. int value8 = debouncer8.read();
  463. // Send in the new value.
  464. if(value8 == LOW){
  465. saveState(8, !loadState(8));
  466. digitalWrite(RELAY_8, loadState(8)?RELAY_ON:RELAY_OFF);
  467. send(msg8.set(loadState(8)));
  468. }}
  469.  
  470. //przekaznik kuchnia debouncer10, relay state i msg zgodne z debouncerem
  471. if (debouncer10.update()) {
  472. // Get the update value.
  473. int value10 = debouncer10.read();
  474. // Send in the new value.
  475. if(value10 == LOW){
  476. saveState(10, !loadState(10));
  477. digitalWrite(RELAY_10, loadState(10)?RELAY_ON:RELAY_OFF);
  478. send(msg10.set(loadState(10)));
  479. }}
  480.  
  481. //przekaznik salonTV debouncer19, relay state i msg zgodne z debouncerem
  482. if (debouncer19.update()) {
  483. // Get the update value.
  484. int value19 = debouncer19.read();
  485. // Send in the new value.
  486. if(value19 == LOW){
  487. saveState(19, !loadState(19));
  488. digitalWrite(RELAY_19, loadState(19)?RELAY_ON:RELAY_OFF);
  489. send(msg19.set(loadState(19)));
  490. }}
  491.  
  492. //przekaznik salon cegła debouncer20, value relay state i msg zgodne z debouncerem
  493. if (debouncer20.update()) {
  494. // Get the update value.
  495. int value20 = debouncer20.read();
  496. // Send in the new value.
  497. if(value20 == LOW){
  498. saveState(20, !loadState(20));
  499. digitalWrite(RELAY_20, loadState(20)?RELAY_ON:RELAY_OFF);
  500. send(msg20.set(loadState(20)));
  501. }}
  502.  
  503. //przekaznik salon jadalnia debouncer21, value relay state i msg zgodne z debouncerem
  504. if (debouncer21.update()) {
  505. // Get the update value.
  506. int value21 = debouncer21.read();
  507. // Send in the new value.
  508. if(value21 == LOW){
  509. saveState(21, !loadState(21));
  510. digitalWrite(RELAY_21, loadState(21)?RELAY_ON:RELAY_OFF);
  511. send(msg21.set(loadState(21)));
  512. }}
  513.  
  514. //przekaznik mały pokój debouncer22, value relay state i msg zgodne z debouncerem
  515. if (debouncer22.update()) {
  516. // Get the update value.
  517. int value22 = debouncer22.read();
  518. // Send in the new value.
  519. if(value22 == LOW){
  520. saveState(22, !loadState(22));
  521. digitalWrite(RELAY_22, loadState(22)?RELAY_ON:RELAY_OFF);
  522. send(msg22.set(loadState(22)));
  523. }}
  524.  
  525. //przekaznik przed domem debouncer24, value relay state i msg zgodne z debouncerem
  526. if (debouncer24.update()) {
  527. // Get the update value.
  528. int value24 = debouncer24.read();
  529. // Send in the new value.
  530. if(value24 == LOW){
  531. saveState(24, !loadState(24));
  532. digitalWrite(RELAY_24, loadState(24)?RELAY_ON:RELAY_OFF);
  533. send(msg24.set(loadState(24)));
  534. }}
  535.  
  536. //przekaznik przed garażem debouncer25, value relay state i msg zgodne z debouncerem
  537. if (debouncer25.update()) {
  538. // Get the update value.
  539. int value25 = debouncer25.read();
  540. // Send in the new value.
  541. if(value25 == LOW){
  542. saveState(25, !loadState(25));
  543. digitalWrite(RELAY_25, loadState(25)?RELAY_ON:RELAY_OFF);
  544. send(msg25.set(loadState(25)));
  545. }}
  546.  
  547. //przekaznik garaż debouncer26, value relay state i msg zgodne z debouncerem
  548. if (debouncer26.update()) {
  549. // Get the update value.
  550. int value26 = debouncer26.read();
  551. // Send in the new value.
  552. if(value26 == LOW){
  553. saveState(26, !loadState(26));
  554. digitalWrite(RELAY_26, loadState(26)?RELAY_ON:RELAY_OFF);
  555. send(msg26.set(loadState(26)));
  556. }}
  557.  
  558. //przekaznik garaż tablica debouncer27, value relay state i msg zgodne z debouncerem
  559. if (debouncer27.update()) {
  560. // Get the update value.
  561. int value27 = debouncer27.read();
  562. // Send in the new value.
  563. if(value27 == LOW){
  564. saveState(27, !loadState(27));
  565. digitalWrite(RELAY_27, loadState(27)?RELAY_ON:RELAY_OFF);
  566. send(msg27.set(loadState(27)));
  567. }}
  568.  
  569. //przekaznik za kotłownią debouncer29, value relay state i msg zgodne z debouncerem
  570. if (debouncer29.update()) {
  571. // Get the update value.
  572. int value29 = debouncer29.read();
  573. // Send in the new value.
  574. if(value29 == LOW){
  575. saveState(29, !loadState(29));
  576. digitalWrite(RELAY_29, loadState(29)?RELAY_ON:RELAY_OFF);
  577. send(msg29.set(loadState(29)));
  578. }}
  579.  
  580. //przekaznik taras debouncer30, value relay state i msg zgodne z debouncerem
  581. if (debouncer30.update()) {
  582. // Get the update value.
  583. int value30 = debouncer30.read();
  584. // Send in the new value.
  585. if(value30 == LOW){
  586. saveState(30, !loadState(30));
  587. digitalWrite(RELAY_30, loadState(30)?RELAY_ON:RELAY_OFF);
  588. send(msg30.set(loadState(30)));
  589. }}
  590.  
  591. //1pir przedsionek
  592. if (debouncer44.update());{
  593. // Get the update value
  594. int value44 = debouncer44.read();
  595. if (value44 != oldValue44) {
  596. // Send in the new value
  597. send(msg44.set(value44==LOW ? 1 : 0));
  598. oldValue44 = value44;
  599. }}
  600.  
  601. //2pir góra
  602. if (debouncer45.update());{
  603. // Get the update value
  604. int value45 = debouncer45.read();
  605. if (value45 != oldValue45) {
  606. // Send in the new value
  607. send(msg45.set(value45==LOW ? 1 : 0));
  608. oldValue45 = value45;
  609. }}
  610.  
  611. //3pir kuchnia
  612. if (debouncer46.update());{
  613. // Get the update value
  614. int value46 = debouncer46.read();
  615. if (value46 != oldValue46) {
  616. // Send in the new value
  617. send(msg46.set(value46==LOW ? 1 : 0));
  618. oldValue46 = value46;
  619. }}
  620.  
  621. //4pir salon
  622. if (debouncer47.update());{
  623. // Get the update value
  624. int value47 = debouncer47.read();
  625. if (value47 != oldValue47) {
  626. // Send in the new value
  627. send(msg47.set(value47==LOW ? 1 : 0));
  628. oldValue47 = value47;
  629. }
  630. }
  631. //5pir garaż
  632. if (debouncer48.update());{
  633. // Get the update value
  634. int value48 = debouncer48.read();
  635. if (value48 != oldValue48) {
  636. // Send in the new value
  637. send(msg48.set(value48==LOW ? 1 : 0));
  638. oldValue48 = value48;
  639. }}
  640.  
  641. //6pir pokój mały
  642. if (debouncer49.update());{
  643. // Get the update value
  644. int value49 = debouncer49.read();
  645. if (value49 != oldValue49) {
  646. // Send in the new value
  647. send(msg49.set(value49==LOW ? 1 : 0));
  648. oldValue49 = value49;
  649. }}
  650.  
  651. //7pir kotłownia
  652. if (debouncer50.update());{
  653. // Get the update value
  654. int value50 = debouncer50.read();
  655. if (value50 != oldValue50) {
  656. // Send in the new value
  657. send(msg50.set(value50==LOW ? 1 : 0));
  658. oldValue50 = value50;
  659. }}
  660.  
  661. //8pir przed domem
  662. // if (debouncer51.update());{
  663. // Get the update value
  664. // int value51 = debouncer51.read();
  665. // if (value51 != oldValue51) {
  666. // Send in the new value
  667. // send(msg51.set(value51==LOW ? 1 : 0));
  668. // oldValue51 = value51;
  669. // }}
  670.  
  671. //alarm uzbrojony
  672. if (debouncer52.update());{
  673. // Get the update value
  674. int value52 = debouncer52.read();
  675. if (value52 != oldValue52) {
  676. // Send in the new value
  677. send(msg52.set(value52==LOW ? 1 : 0));
  678. oldValue52 = value52;
  679. }}
  680.  
  681. //alarm!!!
  682. if (debouncer53.update());{
  683. // Get the update value
  684. int value53 = debouncer53.read();
  685. if (value53 != oldValue53) {
  686. // Send in the new value
  687. send(msg53.set(value53==LOW ? 1 : 0));
  688. oldValue53 = value53;
  689. }}
  690.  
  691.  
  692. }
  693.  
  694. void receive(const MyMessage &message) {
  695. // We only expect one type of message from controller. But we better check anyway.
  696. if (message.type==V_LIGHT) {
  697. // Change relay state
  698. digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
  699. // Store state in eeprom
  700. saveState(message.sensor, message.getBool());
  701. // Write some debug info
  702. Serial.print("Incoming change for sensor:");
  703. Serial.print(message.sensor);
  704. Serial.print(", New status: ");
  705. Serial.println(message.getBool());
  706.  
  707. int incomingLightState = message.getBool();
  708. int incomingOutlet = message.sensor;
  709. if (incomingOutlet==60) {
  710. if (incomingLightState==1) {
  711. // Turn on socket 1
  712. Serial.println("Turn on Socket 1");
  713. mySwitch.send(CODE_60On, 24); // These codes are unique to each outlet
  714. delay(50);
  715. }
  716. if (incomingLightState==0) {
  717. // Turn off socket 1
  718. Serial.println("Turn off Socket 1");
  719. mySwitch.send(CODE_60Off, 24);
  720. delay(50);
  721. }
  722. }
  723. if (incomingOutlet==61) {
  724. if (incomingLightState==1) {
  725. // Turn on socket 2
  726. Serial.println("Turn on Socket 2");
  727. mySwitch.send(CODE_61On, 24);
  728. delay(50);
  729. }
  730. if (incomingLightState==0) {
  731. // Turn off socket 2
  732. Serial.println("Turn off Socket 2");
  733. mySwitch.send(CODE_61Off, 24);
  734. delay(50);
  735. }
  736. }
  737. if (incomingOutlet==62) {
  738. if (incomingLightState==1) {
  739. // Turn on socket 3
  740. Serial.println("Turn on Socket 3");
  741. mySwitch.send(CODE_62On, 24);
  742. delay(50);
  743. }
  744. if (incomingLightState==0) {
  745. // Turn off socket 3
  746. Serial.println("Turn off Socket 3");
  747. mySwitch.send(CODE_62Off, 24);
  748. delay(50);
  749. }
  750. }
  751. }
  752. delay(50);
  753. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement