Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.22 KB | None | 0 0
  1. #include <SPI.h>
  2. #include "SdFat.h"
  3. #include <LiquidCrystal_I2C.h>
  4. LiquidCrystal_I2C lcd(0x27, 20, 4);
  5. const uint8_t chipSelect = SS;
  6. String b = "";
  7. int counter = 0;
  8. int usedcounter = 0;
  9. int wrtcounter = 0;
  10. int coincounter = 0;
  11. int coinwrtcounter = 0;
  12. int coinusedcounter = 0;
  13. String inString;
  14. String b2 = "";
  15. int counter2 = 0;
  16. //int usedcounter2=usedcounter;
  17. //int wrtcounter2=0;
  18. String inString2;
  19. int screensaver = 0;
  20. SdFat SD;
  21. File myFile;
  22. ArduinoOutStream cout(Serial);
  23. int a = 0;
  24. int c = 0;
  25. //int e = 6;
  26. int r = 3;
  27. int i = 2;
  28. int o = 0;
  29. int o1 = 0;
  30. int led1hr = 4;
  31. int led2hr = 5;
  32. int led3hr = 6;
  33. int led5hr = 7;
  34. int led1d = 8;
  35. int buttoncounter = 0;
  36. //unsigned longs
  37. unsigned long currentTime;
  38. unsigned long loopTime;
  39.  
  40. #define error(s) SD.errorHalt(F(s))
  41. void coinInterrupt() {
  42. //Do some stuf when coin is inserted
  43. a = a + 1;
  44. }
  45. void r1hr_get_code() {
  46. char line[25];
  47. int n;
  48. SdFile rdfile("code1hr.txt", O_READ);
  49. if (!rdfile.isOpen()) {
  50. error("error reading code1hr.txt file");
  51. }
  52. Serial.println(F("Selecting Specific Voucher For 1hr"));
  53. while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  54. if (line[n - 1] == '\n') {
  55. counter++;
  56. if (counter == usedcounter) {
  57. b = line;
  58. }
  59. }
  60. }
  61. counter = 0;
  62. Serial.println(b);
  63. rdfile.close();
  64. }
  65. void r1hr_get_counter() {
  66. char line[25];
  67. int n;
  68. Serial.println(F("Getting Counter For 1hr"));
  69. SdFile rdfile("ctr1hr.txt", O_READ);
  70. if (!rdfile.isOpen()) {
  71. error("error reading ctr1hr.txt");
  72. }
  73. while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  74. if (line[n - 1] == '\n') {
  75. usedcounter = 0;
  76. inString = line;
  77. usedcounter = (inString.toInt());
  78. }
  79. }
  80. counter = 0;
  81. rdfile.close();
  82. }
  83. void r1hr_write_counter() {
  84. Serial.println(F("Writing Counter For 1hr"));
  85. myFile = SD.open("ctr1hr.txt", FILE_WRITE);
  86. if (myFile) {
  87. wrtcounter = usedcounter + 1;
  88. myFile.println(wrtcounter);
  89. myFile.close();
  90. }
  91. }
  92. void r3hr_get_code() {
  93. char line[25];
  94. int n;
  95. SdFile rdfile("code2hr.txt", O_READ);
  96. if (!rdfile.isOpen()) {
  97. error("error reading code2hr.txt file");
  98. }
  99. Serial.println(F("Selecting Specific Voucher For 2hr"));
  100. while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  101. if (line[n - 1] == '\n') {
  102. counter++;
  103. if (counter == usedcounter) {
  104. b = line;
  105. }
  106. }
  107. }
  108. counter = 0;
  109. Serial.println(b);
  110. rdfile.close();
  111. }
  112. void r3hr_get_counter() {
  113. char line[25];
  114. int n;
  115. Serial.println(F("Getting Counter For 2hr"));
  116. SdFile rdfile("ctr2hr.txt", O_READ);
  117. if (!rdfile.isOpen()) {
  118. error("error reading ctr2hr.txt");
  119. }
  120. while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  121. if (line[n - 1] == '\n') {
  122. usedcounter = 0;
  123. inString = line;
  124. usedcounter = (inString.toInt());
  125. }
  126. }
  127. counter = 0;
  128. Serial.println(usedcounter);
  129. rdfile.close();
  130. }
  131. void r3hr_write_counter() {
  132. Serial.println(F("Writing Counter For 2hr"));
  133. myFile = SD.open("ctr2hr.txt", FILE_WRITE);
  134. if (myFile) {
  135. wrtcounter = usedcounter + 1;
  136. myFile.println(wrtcounter);
  137. myFile.close();
  138. }
  139. Serial.println(wrtcounter);
  140. }
  141. void r12hr_get_code() {
  142. char line[25];
  143. int n;
  144. SdFile rdfile("code5hr.txt", O_READ);
  145. if (!rdfile.isOpen()) {
  146. error("error reading code5hr.txt file");
  147. }
  148. Serial.println(F("Selecting Specific Voucher For 5hr"));
  149. while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  150. if (line[n - 1] == '\n') {
  151. counter++;
  152. if (counter == usedcounter) {
  153. b = line;
  154. }
  155. }
  156. }
  157. counter = 0;
  158. Serial.println(b);
  159. rdfile.close();
  160. }
  161. void r12hr_get_counter() {
  162. char line[25];
  163. int n;
  164. Serial.println(F("Getting Counter For 5hr"));
  165. SdFile rdfile("ctr5hr.txt", O_READ);
  166. if (!rdfile.isOpen()) {
  167. error("error reading ctr5hr.txt");
  168. }
  169. while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  170. if (line[n - 1] == '\n') {
  171. usedcounter = 0;
  172. inString = line;
  173. usedcounter = (inString.toInt());
  174. }
  175. }
  176. counter = 0;
  177. Serial.println(usedcounter);
  178. rdfile.close();
  179. }
  180. void r12hr_write_counter() {
  181. Serial.println(F("Writing Counter For 5hr"));
  182. myFile = SD.open("ctr5hr.txt", FILE_WRITE);
  183. if (myFile) {
  184. wrtcounter = usedcounter + 1;
  185. myFile.println(wrtcounter);
  186. myFile.close();
  187. }
  188. Serial.println(wrtcounter);
  189. }
  190. void r1day_get_code() {
  191. char line[25];
  192. int n;
  193. SdFile rdfile("code1d.txt", O_READ);
  194. if (!rdfile.isOpen()) {
  195. error("error reading code1d.txt file");
  196. }
  197. Serial.println(F("Selecting Specific Voucher For 1day"));
  198. while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  199. if (line[n - 1] == '\n') {
  200. counter++;
  201. if (counter == usedcounter) {
  202. b = line;
  203. }
  204. }
  205. }
  206. counter = 0;
  207. Serial.println(b);
  208. rdfile.close();
  209. }
  210. void r1day_get_counter() {
  211. char line[25];
  212. int n;
  213. Serial.println(F("Getting Counter For 1day"));
  214. SdFile rdfile("ctr1d.txt", O_READ);
  215. if (!rdfile.isOpen()) {
  216. error("error reading ctr1d.txt");
  217. }
  218. while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  219. if (line[n - 1] == '\n') {
  220. usedcounter = 0;
  221. inString = line;
  222. usedcounter = (inString.toInt());
  223. }
  224. }
  225. counter = 0;
  226. Serial.println(usedcounter);
  227. rdfile.close();
  228. }
  229. void r1day_write_counter() {
  230. Serial.println(F("Writing Counter For 1day"));
  231. myFile = SD.open("ctr1d.txt", FILE_WRITE);
  232. if (myFile) {
  233. wrtcounter = usedcounter + 1;
  234. myFile.println(wrtcounter);
  235. myFile.close();
  236. }
  237. Serial.println(wrtcounter);
  238. }
  239. void coin_get_counter() {
  240. char line[25];
  241. int n;
  242. Serial.println(F("Getting Counter for insertedcoin.txt"));
  243. SdFile rdfile("insertedcoin.txt", O_READ);
  244. if (!rdfile.isOpen()) {
  245. error("error reading insertedcoin.txt");
  246. }
  247. while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  248. if (line[n - 1] == '\n') {
  249. coinusedcounter = 0;
  250. inString = line;
  251. coinusedcounter = (inString.toInt());
  252. }
  253. }
  254. coincounter = 0;
  255. Serial.println(usedcounter);
  256. rdfile.close();
  257. }
  258. void coin_write_counter() {
  259. Serial.println(F("Writing Counter For insertedcoin.txt"));
  260. myFile = SD.open("insertedcoin.txt", FILE_WRITE);
  261. if (myFile) {
  262. coinwrtcounter = coinusedcounter + 1;
  263. Serial.println(F("TOTAL COIN"));
  264. Serial.println(coinwrtcounter);
  265. myFile.println(coinwrtcounter);
  266. myFile.close();
  267. }
  268. }
  269. void setup(void) {
  270. Serial.begin(9600);
  271. attachInterrupt(digitalPinToInterrupt(r), coinInterrupt, RISING);
  272. pinMode(r, INPUT_PULLUP);
  273. pinMode(i, INPUT_PULLUP);
  274. pinMode(led1hr, OUTPUT);
  275. while (!Serial) {
  276. SysCall::yield();
  277. }
  278. if (!SD.begin(chipSelect, SD_SCK_MHZ(50))) {
  279. SD.initErrorHalt();
  280. }
  281. lcd.init();
  282. lcd.backlight();
  283. lcd.begin(20, 4);
  284. lcd.setCursor(0, 0);
  285. lcd.print(F(" Welcome to "));
  286. lcd.setCursor(0, 1);
  287. lcd.print(F("<<<PISO WIFI>>>"));
  288. delay (5000);
  289. lcd.clear();
  290. lcd.setCursor(0, 0);
  291. lcd.print(F("Pls Insert Coins"));
  292. lcd.setCursor(2, 1);
  293. lcd.print(F("To Get Codes"));
  294. }
  295. void loop() {
  296. int button = digitalRead(r);
  297. int button3 = digitalRead(i);
  298. if (button == LOW) {
  299. coin_get_counter();
  300. coin_write_counter();
  301. Serial.println(F("Coin Detected"));
  302. a = a++;
  303. lcd.clear();
  304. lcd.setCursor(0, 0);
  305. lcd.print(F("CODE FOR 1hr"));
  306. lcd.setCursor(0, 1);
  307. lcd.print(F("Coin = Php"));
  308. lcd.setCursor(12, 1);
  309. lcd.print(a);
  310. if (a >= 10 and a <= 19 ) {
  311. lcd.setCursor(0, 0);
  312. lcd.print(F("CODE FOR 2hrs"));
  313. lcd.setCursor(0, 1);
  314. lcd.print(F("Coins = Php"));
  315. lcd.setCursor(12, 1);
  316. lcd.print(a);
  317. }
  318. if (a >= 20 and a <= 34 ) {
  319. lcd.setCursor(0, 0);
  320. lcd.print(F("CODE FOR 5hrs"));
  321. lcd.setCursor(0, 1);
  322. lcd.print(F("Coins = Php"));
  323. lcd.setCursor(12, 1);
  324. lcd.print(a);
  325. }
  326. if (a >= 35 and a <= 200 ) {
  327. lcd.setCursor(0, 0);
  328. lcd.print(F("CODE FOR 1day"));
  329. lcd.setCursor(0, 1);
  330. lcd.print(F("Coins = Php"));
  331. lcd.setCursor(12, 1);
  332. lcd.print(a);
  333. }
  334. }
  335. if (buttoncounter == 0) {
  336. if (button3 == LOW) {
  337. Serial.println(F("show code button pressed"));
  338. lcd.clear();
  339. if (a == 0) {
  340. lcd.setCursor(0, 0);
  341. lcd.print(F(" Please Insert "));
  342. lcd.setCursor(0, 1);
  343. lcd.print(F("1/5/10Pphp Coins"));
  344. }
  345. if (a >= 5 and a <= 9) {
  346. r1hr_get_counter();
  347. r1hr_write_counter();
  348. r1hr_get_code();
  349. c = a - 5;
  350. lcd.setCursor(0, 0);
  351. lcd.print(F("CODE :"));
  352. lcd.setCursor(8, 0);
  353. lcd.print(b);
  354. lcd.setCursor(0, 1);
  355. lcd.print(F("Copy and Sign-in"));
  356. delay(5000);
  357. buttoncounter = 2;
  358. lcd.setCursor(0, 1);
  359. lcd.print(F("Press CLR Button"));
  360. }
  361. if (a >= 10 and a <= 19) {
  362. r3hr_get_counter();
  363. r3hr_write_counter();
  364. r3hr_get_code();
  365. c = a - 10;
  366. lcd.setCursor(0, 0);
  367. lcd.print(F("CODE :"));
  368. lcd.setCursor(8, 0);
  369. lcd.print(b);
  370. lcd.setCursor(0, 1);
  371. lcd.print(F("Copy and Sign-in"));
  372. delay(5000);
  373. buttoncounter = 2;
  374. lcd.setCursor(0, 1);
  375. lcd.print(F("Press CLR Button"));
  376. }
  377. if (a >= 20 and a <= 34 ) {
  378. r12hr_get_counter();
  379. r12hr_write_counter();
  380. r12hr_get_code();
  381. c = a - 20;
  382. lcd.setCursor(0, 0);
  383. lcd.print(F("CODE :"));
  384. lcd.setCursor(8, 0);
  385. lcd.print(b);
  386. lcd.setCursor(0, 1);
  387. lcd.print(F("Copy and Sign-in"));
  388. delay(5000);
  389. buttoncounter = 2;
  390. lcd.setCursor(0, 1);
  391. lcd.print(F("Press CLR Button"));
  392. }
  393. if (a >= 35 and a <= 200 ) {
  394. r1day_get_counter();
  395. r1day_write_counter();
  396. r1day_get_code();
  397. c = a - 35;
  398. lcd.setCursor(0, 0);
  399. lcd.print(F("Code :"));
  400. lcd.setCursor(8, 0);
  401. lcd.print(b);
  402. lcd.setCursor(0, 1);
  403. lcd.print(F("Copy and Sign-in"));
  404. delay(5000);
  405. buttoncounter = 2;
  406. lcd.setCursor(0, 1);
  407. lcd.print(F("Press CLR Button"));
  408. }
  409.  
  410. a = c;
  411. b = "";
  412. }
  413. }
  414. else if (buttoncounter == 2) {
  415. if (button3 == LOW) {
  416. buttoncounter = 0;
  417. lcd.setCursor(0, 1);
  418. lcd.print(F(" CODE CLEARED"));
  419. Serial.println(F("clear button pressed"));
  420. delay(1000);
  421. lcd.clear();
  422. lcd.setCursor(0, 0);
  423. lcd.print(F(" Please Wait..."));
  424. lcd.setCursor(0, 1);
  425. lcd.print(F("<<<AGI Portal>>>"));
  426. delay(700);
  427. if (c >= 5 ) {
  428. ;
  429. lcd.clear();
  430. lcd.setCursor(0, 0);
  431. lcd.print(F("You Have"));
  432. lcd.setCursor(0, 1);
  433. lcd.print(F("Coin = Php"));
  434. lcd.setCursor(12, 1);
  435. lcd.print(a);
  436. delay(3000);
  437. };
  438. lcd.clear();
  439. lcd.setCursor(0, 0);
  440. lcd.print(F("Pls Insert Coin"));
  441. lcd.setCursor(0, 1);
  442. lcd.print(F("1/5/10Pphp Coins"));
  443. delay(2000);
  444. lcd.clear();
  445. lcd.print(F(" P5=1hr P10=2hr"));
  446. lcd.setCursor(0, 1);
  447. lcd.print(F(" P20=5hr P35=1D"));
  448. }
  449. }
  450. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement