ESP12F.ino 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. #include "ESP12F.h"
  2. #include <WidgetRTC.h>
  3. /* **************************************************************
  4. Fonction Perso
  5. ***************************************************************/
  6. uint8_t transmit(uint8_t *in, uint8_t nbTr, uint8_t *out) {
  7. int i;
  8. for (i = 0; i < nbTr; i++)
  9. Serial.write(in[i]);
  10. i = 0;
  11. return i;
  12. }
  13. void SyncRTC() {
  14. rtc.begin();
  15. uint8_t nbTr = 8;
  16. uint8_t in[nbTr];
  17. uint8_t out[nbTr];
  18. in[0] = 0x90;
  19. in[1] = year() - 2000;
  20. in[2] = month();
  21. in[3] = day();
  22. uint8_t weekd = weekday() - 1;
  23. if (weekday() == 1) weekd = 0;
  24. in[4] = weekd;
  25. in[5] = hour();
  26. in[6] = minute();
  27. in[7] = second();
  28. if (transmit(in, nbTr, out) == 0) {
  29. //erreur transmit
  30. }
  31. }
  32. /* **************************************************************
  33. Fonction Blynk
  34. ***************************************************************/
  35. BLYNK_CONNECTED() {
  36. rtc.begin();
  37. }
  38. //MAX
  39. BLYNK_WRITE(V8) {
  40. Blanc.Max = param.asInt();
  41. uint8_t in[2] = {0x10, Blanc.Max};
  42. uint8_t nbTr = 2;
  43. uint8_t out[2];
  44. if (transmit(in, nbTr, out) == 0) {
  45. //erreur transmit
  46. }
  47. }
  48. BLYNK_WRITE(V12) {
  49. Chaud.Max = param.asInt();
  50. uint8_t in[2] = {0x11, Chaud.Max};
  51. uint8_t nbTr = 2;
  52. uint8_t out[2];
  53. if (transmit(in, nbTr, out) == 0) {
  54. //erreur transmit
  55. }
  56. }
  57. BLYNK_WRITE(V16)
  58. {
  59. Bleu.Max = param.asInt();
  60. uint8_t in[2] = {0x12, Bleu.Max};
  61. uint8_t nbTr = 2;
  62. uint8_t out[2];
  63. if (transmit(in, nbTr, out) == 0) {
  64. //erreur transmit
  65. }
  66. }
  67. BLYNK_WRITE(V20)
  68. {
  69. Uv.Max = param.asInt();
  70. uint8_t in[2] = {0x13, Uv.Max};
  71. uint8_t nbTr = 2;
  72. uint8_t out[2];
  73. if (transmit(in, nbTr, out) == 0) {
  74. //erreur transmit
  75. }
  76. }
  77. //Pente
  78. BLYNK_WRITE(V9)
  79. {
  80. Blanc.Pente = param.asInt();
  81. uint8_t in[2] = {0x18, Blanc.Pente};
  82. uint8_t nbTr = 2;
  83. uint8_t out[2];
  84. if (transmit(in, nbTr, out) == 0) {
  85. //erreur transmit
  86. }
  87. }
  88. BLYNK_WRITE(V13)
  89. {
  90. Chaud.Pente = param.asInt();
  91. uint8_t in[2] = {0x19, Chaud.Pente};
  92. uint8_t nbTr = 2;
  93. uint8_t out[2];
  94. if (transmit(in, nbTr, out) == 0) {
  95. //erreur transmit
  96. }
  97. }
  98. BLYNK_WRITE(V17)
  99. {
  100. Bleu.Pente = param.asInt();
  101. uint8_t in[2] = {0x1A, Bleu.Pente};
  102. uint8_t nbTr = 2;
  103. uint8_t out[2];
  104. if (transmit(in, nbTr, out) == 0) {
  105. //erreur transmit
  106. }
  107. }
  108. BLYNK_WRITE(V21)
  109. {
  110. Uv.Pente = param.asInt();
  111. uint8_t in[2] = {0x1B, Uv.Pente};
  112. uint8_t nbTr = 2;
  113. uint8_t out[2];
  114. if (transmit(in, nbTr, out) == 0) {
  115. //erreur transmit
  116. }
  117. }
  118. //HeureDem
  119. BLYNK_WRITE(V10)
  120. {
  121. Blanc.HeureDem = param.asLong() / 60;
  122. uint8_t in[3] = {0x00, Blanc.HeureDem / 60, Blanc.HeureDem % 60};
  123. uint8_t nbTr = 3;
  124. uint8_t out[3];
  125. if (transmit(in, nbTr, out) == 0) {
  126. //erreur transmit
  127. }
  128. }
  129. BLYNK_WRITE(V14)
  130. {
  131. Chaud.HeureDem = param.asLong() / 60;
  132. uint8_t in[3] = {0x01, Chaud.HeureDem / 60, Chaud.HeureDem % 60};
  133. uint8_t nbTr = 3;
  134. uint8_t out[3];
  135. if (transmit(in, nbTr, out) == 0) {
  136. //erreur transmit
  137. }
  138. }
  139. BLYNK_WRITE(V18)
  140. {
  141. Bleu.HeureDem = param.asLong() / 60;
  142. uint8_t in[3] = {0x02, Bleu.HeureDem / 60, Bleu.HeureDem % 60};
  143. uint8_t nbTr = 3;
  144. uint8_t out[3];
  145. if (transmit(in, nbTr, out) == 0) {
  146. //erreur transmit
  147. }
  148. }
  149. BLYNK_WRITE(V22)
  150. {
  151. Uv.HeureDem = param.asLong() / 60;
  152. uint8_t in[3] = {0x03, Uv.HeureDem / 60, Uv.HeureDem % 60};
  153. uint8_t nbTr = 3;
  154. uint8_t out[3];
  155. if (transmit(in, nbTr, out) == 0) {
  156. //erreur transmit
  157. }
  158. }
  159. //HeureArret
  160. BLYNK_WRITE(V11)
  161. {
  162. Blanc.HeureArret = param.asLong() / 60;
  163. uint8_t in[3] = {0x08, Blanc.HeureArret / 60, Blanc.HeureArret % 60};
  164. uint8_t nbTr = 3;
  165. uint8_t out[3];
  166. if (transmit(in, nbTr, out) == 0) {
  167. //erreur transmit
  168. }
  169. }
  170. BLYNK_WRITE(V15)
  171. {
  172. Chaud.HeureArret = param.asLong() / 60;
  173. uint8_t in[3] = {0x09, Chaud.HeureArret / 60, Chaud.HeureArret % 60};
  174. uint8_t nbTr = 3;
  175. uint8_t out[3];
  176. if (transmit(in, nbTr, out) == 0) {
  177. //erreur transmit
  178. }
  179. }
  180. BLYNK_WRITE(V19)
  181. {
  182. Bleu.HeureArret = param.asLong() / 60;
  183. uint8_t in[3] = {0x0A, Bleu.HeureArret / 60, Bleu.HeureArret % 60};
  184. uint8_t nbTr = 3;
  185. uint8_t out[3];
  186. if (transmit(in, nbTr, out) == 0) {
  187. //erreur transmit
  188. }
  189. }
  190. BLYNK_WRITE(V23)
  191. {
  192. Uv.HeureArret = param.asLong() / 60;
  193. uint8_t in[3] = {0x0B, Uv.HeureArret / 60, Uv.HeureArret % 60};
  194. uint8_t nbTr = 3;
  195. uint8_t out[3];
  196. if (transmit(in, nbTr, out) == 0) {
  197. //erreur transmit
  198. }
  199. }
  200. BLYNK_WRITE(V1) {
  201. Blanc.Essai = param.asInt();
  202. uint8_t in[2] = {0x60, Blanc.Essai};
  203. uint8_t nbTr = 2;
  204. uint8_t out[2];
  205. if (transmit(in, nbTr, out) == 0) {
  206. //erreur transmit
  207. }
  208. }
  209. BLYNK_WRITE(V2) {
  210. Chaud.Essai = param.asInt();
  211. uint8_t in[2] = {0x61, Blanc.Essai};
  212. uint8_t nbTr = 2;
  213. uint8_t out[2];
  214. if (transmit(in, nbTr, out) == 0) {
  215. //erreur transmit
  216. }
  217. }
  218. BLYNK_WRITE(V3) {
  219. Bleu.Essai = param.asInt();
  220. uint8_t in[2] = {0x62, Blanc.Essai};
  221. uint8_t nbTr = 2;
  222. uint8_t out[2];
  223. if (transmit(in, nbTr, out) == 0) {
  224. //erreur transmit
  225. }
  226. }
  227. BLYNK_WRITE(V4) {
  228. Uv.Essai = param.asInt();
  229. uint8_t in[2] = {0x63, Blanc.Essai};
  230. uint8_t nbTr = 2;
  231. uint8_t out[2];
  232. if (transmit(in, nbTr, out) == 0) {
  233. //erreur transmit
  234. }
  235. }
  236. BLYNK_WRITE(V6) {
  237. uint8_t in[1];
  238. if (param.asInt() == 0) in[0] = 0x71;
  239. else in[0] = 0x70;
  240. uint8_t nbTr = 1;
  241. uint8_t out[1];
  242. if (transmit(in, nbTr, out) == 0) {
  243. //erreur transmit
  244. }
  245. }
  246. BLYNK_WRITE(V7) {
  247. uint8_t in[1];
  248. if (param.asInt() == 0) in[0] = 0x80;
  249. else in[0] = 0x81;
  250. uint8_t nbTr = 1;
  251. uint8_t out[1];
  252. if (transmit(in, nbTr, out) == 0) {
  253. //erreur transmit
  254. }
  255. }
  256. /* **************************************************************
  257. Fonction Arduino
  258. ***************************************************************/
  259. void setup() {
  260. Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 18), 8081);
  261. timer.setInterval(1000L * 3600, SyncRTC); // une synchro de la RTC par heure
  262. Serial.begin(115200);
  263. }
  264. void loop() {
  265. Blynk.run();
  266. timer.run();
  267. if (Serial.available() > 0) {
  268. int out = Serial.read();
  269. if (out = 0xF0) {
  270. Blynk.syncAll();
  271. SyncRTC();
  272. }
  273. }
  274. delay(500);
  275. }