Kamis, 05 Desember 2019

INTERNET OF THINGS SMART HOME “MY HOME ON MY HAND”

Mata Kuliah : Sistem Digital dan Pengantar Teknologi Informasi
Dosen Pengampu : Aditya Prapanca, S.T., M.Kom.

Disusun oleh :
1.      Thomi Aditya Alhakim                                (057)
2.      Siti Halimatus Sadiyah                                (065)
3.      Mochamad Abhiegail Argo Pangestu          (066)
4.      Rama Anggoro Sakti                                   (081)
5.      Rizka Ayuningtyas                                      (097)
6.      Roy Saiful Annaz                                        (100)
    

ABSTRAK
Dengan perkembangan teknologi semakin pesat pada saat ini memungkinkan bagi kita sebagai manusia untuk memanfaatkan dengan bijak. Salah satunya memungkinkan bagi kita untuk membuat sebuah alat sebagai asisten untuk mengerjakan suatu pekerjaan manusia. IoT kepanjangan dari Internet of Thing merupakan salah satu bentuk perkembangan teknologi yang begitu pesat. Bagaimana tidak, IoT menyediakan suatu gebrakan yang hebat bagi kehidupan. Dengan adanya IoT berbagai permasalahan hidup mulai dari bangun tidur hingga tidur kembali sudah mulai terampunkan.
Salah satunya seperti project Smart Home ini. Project Smart Home ini merupakan suatu alat IoT yang sangat berguna dalam rangka menghemat energi khususnya energi listrik. Project Smart Home bisa disebut juga dengan pengendali rumah jarak jauh. Pengguna dapat mengendalikan seisi rumah hanya dengan memberikan perintah ke bot (Telegram bot) dan secara otomatis alat akan merespon dan menjalankan perintah yang diberikan.


BAB I PENDAHULUAN
1.1  Latar Belakang
Listrik merupakan energi yang penting bagi kehidupan saat ini. Semua kegiatan manusia saat ini rata-rata dibantu oleh adanya energi listrik. Contohnya di dalam rumah kita menggunakan lampu untuk menerangi saat gelap. Kemudahan untuk menggunakan yang membuat kita sebagai manusia menjadi tergiur akan hadirnya listrik ini. Bagaimana tidak, kita ditawarkan kemudahan menggunakan sesuatu dengan sekali tekan. Tidak seperti zaman dahulu yang menerangi kegelapan dengan menggunakan api yang disalurkan melalui sumbu. Dengan kemudahan seperti ini, manusia tidak lagi pusing memikirkan bagaimana cara menerangi kegelapan, bagaimana cara mencuci dengan benar, dan bagaimana cara mengeraskan suara. Hal-hal seperti itu tidak lagi menjadi sebuah tanggungan bagi generasi manusia saat ini.
Namun, dalam penggunaannya, listrik juga mengalami banyak kendala yang merugikan masyarakat. Seperti halnya, ketika lupa untuk mematikan atau mencabut alat elektronik ketika selesai digunakan. Sehingga jika dibiarkan, akan berakibat fatal untuk pemakai. Energi listrik jika digunakan terus menerus, maka biaya yang perlu untuk dibayarkan akan lebih besar, mengingat listrik merupakan energi yang berbayar. Juga banyak dampak yang dihasilkan akibat terlupa untuk mematikan alat elektronik ketika sudah digunakan.
Oleh karena itu, dibutuhkannya pengingat atau sebagai rambu jika memang kita terlupa untuk mematikan alat elektronik. IoT (Internet of Things) merupakan suatu inovasi yang menggunakan internet sebagai media komunikasi dengan suatu alat. Yang dalam arti lain bahwa IoT merupakan teknologi dimana suatu alat dengan alat lainnya dapat berkomunikasi melalui jaringan internet. Pada saat ini IoT banyak digunakan untuk tata kelola sistem keamanan.
Salah satu bentuk pengembangan dari teknologi IoT ini adalah sistem keamanan rumah atau secure home. Alat ini berfungsi sebagai pemantau kondisi rumah dan proteksi rumah secara otomatis jika terjadi suatu hal yang tidak diinginkan seperti terlupa untuk mematikan kompor atau terlupa untuk mematikan listrik di rumah. Dengan alat ini kemungkinan terburuk akan dapat terminimalisir.
1.2  Hasil yang Diharapkan
1. Project IoT ini diharapkan dapat mengantisipasi dan meminimalisir suatu keadaan yang tidak diinginkan saat kita meninggalkan rumah.
     1.3  Tujuan
1. Sebagai pemahaman praktek  dari mata kuliah sistem digital dan pengantar teknologi informasi.
2. Mempelajari dan mengimplementasikan bagaimana cara kerja suatu perangkat dan hubunganya tentang sistem digital serta pemahaman tentang sistem IoT.
3. Memberikan pengetahuan manfaat dari Internet of Things yang dapat diterapkan dan mendukung Smart Home.

BAB II KAJIAN PUSTAKA
2.1 Deskripsi  Karya
Project ini merupakan project dengan memanfaatkan IoT sebagai otaknya. Seperti nama dari project ini “My Home on My Hand”, project ini menyediakan berbagai fitur yang dapat digunakan untuk mengontrol atau memantau seisi rumah. Mulai dari nyala lampu sampai nyala kompor.
Project ini juga menyediakan security untuk mengamankan rumah. Jika pengguna mengaktifkan mode aman atau safe mode maka secara otomatis alat akan mendeteksi dan berada di mode siaga (Safe Mode). Jika terdeteksi pergerakan mencurigakan, maka alat akan segera menyalakan alarm dan mengirimkan pesan kepada pengguna selagi pengguna terkoneksi internet.
Salah satu keunggulan dari project ini adalah pada saat memasuki chatroom dari bot, maka pengguna dipersilahkan untuk memasukkan password terlebih dahulu sebelum menggunakan bot, sehingga bot aman dari orang-orang yang tidak bertanggung jawab.
2.2 Penelitian Eksperimental ( Alat dan Bahan)
            a. Bahan :
                        1. Node MCU                                                             Rp.40.000
                        2. Relay 5V                                                                 Rp.10.000
                        3. Sensor Motion                                                         Rp.12.000
                        4. Flame Sensor                                                           Rp.9.000
                        5. Buzzer                                                                     Rp.7.000
                        6. Kabel Jumper                                                          Rp.10.000
                        7. Lampu LED                                                            Rp.500
                        8. Breadboard                                                             Rp.20.000
                        9. Arduino UNO                                                         -
                        10. Timah                                                                    -
                        Total :                                                                          Rp.108.500                                
            b. Alat :
                        1. Gunting                                                                   -
                        2. Solder                                                                      -
                        3. Handphone                                                             -
                        4. Kabel USB                                                              -
                        5. Obeng                                                                     -
                        Total :                                                                          -          
Untuk tempat pembelian kami membeli di Akhi Electro Shop yang berada di Jl. Keputih Surabaya.

 BAB III HASIL DAN PEMBAHASAN
3.1 Analisis Bahan
1. Node MCU
Node MCU merupakan open source platform IoT, yang di dalamnya sudah terdapat firmware dengan modul wifi ESP 8266 Wi-Fi SoC dari Espressif System, dengan mikrokontroller ESP-12 . Firmware menggunakan bahasa pemrograman Lua. Orang awam sering keliru bahwa Nodemcu merupakan Arduino,karena Node MCU dapat menggunakan bahasa pemrograman C Arduino. Secara fungsional memang terlihat sama karena pada dasarnya baik Nodemcu maupun Arduino merupakan mikrokontroler development board. Namun penggunaan Node MCU lebih powerfull jika digunakan untuk kontrol berbasis IoT.
NodeMCU
2. Relay
Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi. Sebagai contoh, dengan Relay yang menggunakan Elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang berfungsi sebagai saklarnya) untuk menghantarkan listrik 220V 2A.
Relay 5V
3. Sensor motion
Sensor motion sebagai alarm, perangkat ini dapat mendeteksi ketika ada objek yang bergerak, seperti orang yang berjalan. Biasanya perangkat ini terintegrasi dengan perangkat lain untuk membunyikan alarm atau memberikan notifikasi melalui smartphone saat mendeteksi gerakan pada wilayah yang menjadi pantauannya.
Motion Sensor
4. Flame sensor
Alat yang sensitif terhadap radiasi sinar ultraviolet yang ditimbulkan oleh nyala api, tetapi detector ini tidak bereaksi pada lampu ruangan, infra merah atau sumber cahaya lain yang tidak ada hubungannya dengan nyala api (flame).
Flame Sensor
5. Buzzer
Sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara.
Buzzer
6. Kabel jumper
Suatu perangkat penghubung komponen satu dengan yang lainnya.
Kabel Jumper
7. Lampu LED
     Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya.
Lampu LED 5mm
8. Breadboard
Board yang digunakan untuk membuat rangkaian elektronik sementara dengan tujuan uji coba atau prototipe tanpa harus menyolder.
Breadboard
9. Arduino UNO
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital  dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.
Uno berbeda dengan semua board sebelumnya dalam hal koneksi USB-to-serial yaitu menggunakan fitur Atmega8U2 yang diprogram sebagai konverter USB-to-serial berbeda dengan board sebelumnya yang menggunakan chip FTDI driver USB-to-serial.
Arduino UNO
10. Timah
Timah yang terbuat dari pencampuran bahan perak dan timah, timah solder untuk keperluan mematri komponen elektronika sering juga dikenal dengan istilah Alloy.
Kawat Timah
3.2 Analisis Karya
Berdasarkan pembuatan project IoT “My Home on My Hand” ini kita dapatkan 2 Fungsi Utama, yakni:
  1. Dapat digunakan untuk mengecek kondisi listrik di rumah
Iot ini dibuat memang dikhususkan untuk orang yang sering lupa ketika keluar rumah dan listrik tidak dimatikan. Dengan Project Iot ini masalah seperti itu sudah terselesaikan dengan mudah. Pengguna cukup mengecek melalui telegram dan bot akan membalas listrik apa saja yang menyala dan listrik mana saja yang mati.
  1. Dapat digunakan untuk pengaman rumah
Seperti yang dituliskan pada bab-bab sebelumnya bahwa project ini dapat digunakan untuk mode aman atau safe mode. Dengan aktifnya mode tersebut, maka alat akan otomatis menjadi mode siaga.
3.3 Metode Pembuatan
Metode yang kami gunakan dalam membuat project IoT ini adalah metode kualitatif. Dengan metode kualitatif, fokus pemahaman yang kami ambil adalah fenomena sosial yang sering terjadi di masyarakat.
Selama pembuatan, terjadi beberapa tahapan yaitu,
  1. Melakukan survei
Sebelum membuat project ini, kami melakukan survei terlebih dahulu dengan melihat kondisi sekitar apa yang perlu dipermudah dengan teknologi IoT ini dan apa yang tidak perlu.
  1. Mencari referensi
Setelah survei dan mendapatkan masalah, maka kami mencari referensi yang tepat sesuai project apa yang ingin kami kembangkan. Referensi dari berbagai sumber kami kumpulkan dan kami membuat kesimpulan untuk menyelesaikan masalah yang ada.
  1. Membuat alat
Setelah melakukan survei dan mendapatkan referensi yang tepat mengenai masalah yang ada, maka proses pembuatan project dapat dilaksanakan. Adapun tahapan dalam pembuatan project ini sebagai berikut.
a.       Mengumpulkan alat dan bahan yang dibutuhkan untuk membuat project IoT ini.
b.      Memprogram Nodemcu dengan Arduino IDE, untuk program yang kami buat sebagai berikut.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
#include <ESP8266WiFi.h>

#include <ESP8266HTTPClient.h>

#include <ESP8266WebServer.h>

#include <CTBot.h>

#include <CTBotDataStructures.h>

#include <CTBotInlineKeyboard.h>

#include <CTBotReplyKeyboard.h>

#include <Utilities.h>

#include <EEPROM.h>

 

 

/*

   PENJELASAN PIN

   D0 = Buzzer

   A0 = Sensor Flame

*/

 

int i = 0;

int sumConnection;

int statusCode;

String pass;

String ssid_;

int ssid;

String BotToken = "882232600:AAFZJ1qLdzNPxp40Csc5YtGDYB4LrICVWE4";

const int id = 787077279;

 

String st;

String content;

 

CTBot botTL;

 

bool testConnectWifi();

void createAP();

void createWebServer();

void launchWeb();

 

ESP8266WebServer server(80);

 

//=========================================================== SETUP ==================================================================== //

 

 

void setup() {

  Serial.begin(115200);

 

  while (!Serial) {

    ;

  }

  delay(3000);

 

  WiFi.mode(WIFI_STA);

  Serial.println("Disconnecting");

  WiFi.disconnect();

  delay(100);

 

  EEPROM.begin(512);

 

  //  ========================================= READ EEPROM FROM CURRENT SSID AND PASS

  Serial.print("Reading SSID");

 

  String essid;

  String espass = "";

 

  for (int i = 0; i < 32; i++) {

    essid += char(EEPROM.read(i));

    Serial.print(".");

    delay(100);

  }

  Serial.println("");

  if (essid != NULL) {

    Serial.print("SSID: ");

    Serial.println(essid);

  } else {

    Serial.println("No such of SSID saved before!");

  }

 

  Serial.print("Reading PASS");

  for (int i = 32; i < 96; i++) {

    espass += char(EEPROM.read(i));

    Serial.print(".");

    delay(100);

  }

Serial.println("");

  if (espass != NULL) {

    Serial.print("PASS: ");

    Serial.println(espass);

  } else {

    Serial.println("No such of Pass saved before!");

  }

    WiFi.begin(essid.c_str(), espass.c_str());

 

    if (testConnectWifi())

    {

      Serial.println("Successfully Connected!!!");

    }

    else

    {

      Serial.println("Turning the HotSpot On");

      launchWeb();

      createAP();

 

      Serial.println();

      Serial.println("Waiting.");

 

      while ((WiFi.status() != WL_CONNECTED)) {

        Serial.print(".");

        delay(100);

        server.handleClient();

      }

    }

 

 

  botTL.setTelegramToken(BotToken);

  botTL.sendMessage(id, "Alat telah menyala!");

  Serial.println("Pesan Terkirim");

 

  botTL.sendMessage(id, "Password : ");

 

  bool benar = false;

  while (!benar) {

    TBMessage msg;

    if (botTL.getNewMessage(msg)) {

      if (!(msg.text.equalsIgnoreCase("thomiaditya"))) {

        botTL.sendMessage(id, "Password Salah!");

      } else {

 

        botTL.sendMessage(id, "Password Benar!");

        benar = true;

      }

    }

  }

  pinMode(D1, OUTPUT);

  pinMode(D2, OUTPUT);

  pinMode(D5, INPUT);

  Serial.println("Setup selesai");

 

}

 

//=================================================================== END SETUP ==============================================================

 

/*

   searchWifi() method

   Berguna untuk mencari wifi yang tersedia

*/

void createAP() {

 

  WiFi.mode(WIFI_STA);

  Serial.println("Disconnecting");

  WiFi.disconnect();

  delay(100);

 

  Serial.println("Scan start!");

  int n = WiFi.scanNetworks();

  sumConnection = n;

  Serial.println("Scan done!");

 

  if (n == 0) {

    Serial.println("No networks found!");

  } else {

    Serial.print(n);

    Serial.println(" Networks found!");

 

    for (int i = 0; i < n; ++i) {

      Serial.print(i + 1);

      Serial.print(": ");

      Serial.print(WiFi.SSID(i));

      Serial.print(" (");

      Serial.print(WiFi.RSSI(i));

      Serial.print(")");

      Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*");

      delay(10);

    }

  }

 

  Serial.println("");

  st = "<ol>";

  for (int i = 0; i < n; ++i)

  {

    // Print SSID and RSSI for each network found

    st += "<li>";

    st += WiFi.SSID(i);

    st += " (";

    st += WiFi.RSSI(i);

 

    st += ")";

    st += (WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*";

    st += "</li>";

  }

  st += "</ol>";

  delay(100);

  WiFi.softAP("iothotspot");

  Serial.println("softap");

  launchWeb();

  Serial.println("over");

}

 

/*

   Menjalankan Website

*/

 

void launchWeb()

{

  Serial.println("");

  if (WiFi.status() == WL_CONNECTED)

    Serial.println("WiFi connected");

  Serial.print("Local IP: ");

  Serial.println(WiFi.localIP());

  Serial.print("SoftAP IP: ");

  Serial.println(WiFi.softAPIP());

  createWebServer();

  server.begin();

  Serial.println("Server started");

}

 

/*

   testConnectWifi() Method

   Mendeteksi apakah wifi terkoneksi

 

   Return bool;

 

*/

bool testConnectWifi() {

  Serial.print("Connecting please wait ");

  for (int i = 0; i < 35; i++) {

    if (WiFi.status() == WL_CONNECTED) {

      return 1;

    }

    delay(200);

    Serial.print(".");

  }

 

  Serial.println("");

  Serial.println("Connection failed! (Gagal)");

  return 0;

 

}

 

/*

   Membuat Web Server

 

*/

 

void createWebServer() {

  {

    server.on("/", []() {

 

      IPAddress ip = WiFi.softAPIP();

      String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]);

      content = "<!DOCTYPE HTML>\r\n<html>Hello from ESP8266 at ";

      content += "<form action=\"/scan\" method=\"POST\"><input type=\"submit\" value=\"scan\"></form>";

      content += ipStr;

      content += "<p>";

      content += st;

      content += "</p><form method='get' action='setting'><label>SSID: </label><input name='ssid' placeholder='Masukkan ID' length=32><br><label>PASS: </label><input name='pass' length=64><br><input type='submit'></form>";

      content += "</html>";

      server.send(200, "text/html", content);

    });

    server.on("/scan", []() {

      //setupAP();

      IPAddress ip = WiFi.softAPIP();

      String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]);

 

      content = "<!DOCTYPE HTML>\r\n<html>go back";

      server.send(200, "text/html", content);

    });

 

    server.on("/setting", []() {

      String qsid = WiFi.SSID(server.arg("ssid").toInt() - 1);

      String qpass = server.arg("pass");

      if (qsid.length() > 0 && qpass.length() > 0) {

        Serial.println("clearing eeprom");

        for (int i = 0; i < 96; ++i) {

          EEPROM.write(i, 0);

        }

        Serial.println(qsid);

        Serial.println("");

        Serial.println(qpass);

        Serial.println("");

 

        Serial.println("writing eeprom ssid:");

        for (int i = 0; i < qsid.length(); ++i)

        {

          EEPROM.write(i, qsid[i]);

          Serial.print("Wrote: ");

          Serial.println(qsid[i]);

        }

        Serial.println("writing eeprom pass:");

        for (int i = 0; i < qpass.length(); ++i)

        {

          EEPROM.write(32 + i, qpass[i]);

          Serial.print("Wrote: ");

          Serial.println(qpass[i]);

        }

        EEPROM.commit();

 

        content = "{\"Success\":\"saved to eeprom... reset to boot into new wifi\"}";

        statusCode = 200;

        ESP.reset();

      } else {

        content = "{\"Error\":\"404 not found\"}";

        statusCode = 404;

        Serial.println("Sending 404");

      }

      server.sendHeader("Access-Control-Allow-Origin", "*");

      server.send(statusCode, "application/json", content);

 

    });

  }

}

 

 

//================================== GERAK SENSOR DLL ==================================

 

String checking(int read) {

  if (read == 1) return "Menyala";

  else if (read == 0) return "Mati";

}

 

int sensorMotion (int read) {

  if (read > 100) return 1;

  else return 0;

}

 

void safeMode(int sensorMotion, TBMessage msg, CTBot botTL) {

  if (sensorMotion == 1) {

    digitalWrite(D1, HIGH);

    botTL.sendMessage(msg.sender.id, "Ada penyusup!!!");

    delay(1);

  } else digitalWrite(D1, LOW);

}

bool safeModeOn = false;

void loop() {

 

  TBMessage msg;

 

  if (botTL.getNewMessage(msg)) {

 

    if (msg.text.equalsIgnoreCase("BUZZER ON")) {

      digitalWrite(D1, HIGH);

      botTL.sendMessage(msg.sender.id, "Buzzer Menyala");

    } else if (msg.text.equalsIgnoreCase("BUZZER OFF")) {

      digitalWrite(D1, LOW);

      botTL.sendMessage(msg.sender.id, "Buzzer Mati");

    } else if (msg.text.equalsIgnoreCase("LAMPU ON")) {

      digitalWrite(D2, HIGH);

      botTL.sendMessage(msg.sender.id, "Lamp Menyala");

    } else if (msg.text.equalsIgnoreCase("LAMPU OFF")) {

      digitalWrite(D2, LOW);

      botTL.sendMessage(msg.sender.id, "Lamp Mati");

    } else if (msg.text.equalsIgnoreCase("CHECK")) {

      int sensorFlameAnalog = digitalRead(D5);

      String sensorApi = sensorFlameAnalog == 1 ? "Menyala" : "Mati";

 

      botTL.sendMessage(msg.sender.id, "Lampu " + checking(digitalRead(D2)) + "\nBuzzer " + checking(digitalRead(D1)) + "\nKompor " + sensorApi );

 

    } else if (msg.text.equalsIgnoreCase("SAFE MODE ON")) {

      safeModeOn = true;

      Serial.println("Safe Mode Online");

      botTL.sendMessage(msg.sender.id, "Safe Mode Online");

    } else if (msg.text.equalsIgnoreCase("SAFE MODE OFF")) {

      safeModeOn = false;

      Serial.println("Safe Mode Offline");

      botTL.sendMessage(msg.sender.id, "Safe Mode Offline");

    }

    else {

      String reply;

      reply = (String)"Aku tidak mengerti " + msg.sender.username + (String)".";

      botTL.sendMessage(msg.sender.id, reply);

    }

 

  }

 

  if (safeModeOn) {

    safeMode(sensorMotion(analogRead(A0)), msg, botTL);

    Serial.println("Hai!!");

  }

 

 

  //

  //

  //

  //    Serial.println(analogRead(A0));

  //

  //    if (sensorFlameAnalog < 70) {

  //      Serial.println("Danger, there's Fire around!");

  //      digitalWrite(D1, HIGH);

  //      botTL.sendMessage(msg.sender.id, "Ada api!!");

  //    } else {

  //      digitalWrite(D1, LOW);

  //    }

  //Serial.println(sensorMotion(analogRead(A0)));

 

}

c.       Setelah memasukkan program pada Nodemcu, kami memasangkan alat serta sensor yang dibutuhkan ke pin yang tersedia sesuai program yang dibuat. Kami menggunakan Nodemcu sebagai sumber tegangan 3.3V dan Arduino UNO sebagai sumber tegangan 5V.
  1. Tahapan uji coba
Untuk tahapan terakhir yaitu tahapan uji coba alat. Tahapan ini adalah tahapan paling penting dari tahapan sebelumnya. Karena pada tahapan ini terjadi pendapat-pendapat atau asumsi untuk sebuah alat agar alat dapat mendekati sempurna. Dengan melakukan uji coba kami menjadi tahu mana yang perlu dikembangkan dan mana yang sudah benar.

BAB IV PENUTUP
4.1 Kesimpulan
IoT ini merupakan suatu alat yang terdiri dari modul WiFi atau Modul SIM Card yang berfungsi untuk berkomunikasi antara sistem dan manusia dengan menggunakan jaringan internet atau dengan menggunakan jaringan seluler. Dengan adanya IoT, pekerjaan kita lebih mudah untuk diselesaikan.
Untuk projek kami yaitu Smart Home, kami menggunakan modul Nodemcu sebagai konektor dengan jaringan wifi dan sebagai otak dari program melalui Arduino IDE.
4.2 Saran
Untuk kedepannya kemungkinan alat ini akan dikembangkan dengan menambah relay yang tersambung supaya dapat digunakan untuk banyak alat elektronik di rumah.

  LAMPIRAN

Gambar 1.1 Foto Kelompok

Gambar 1.2 Rangkaian IoT
         
Gambar 1.3 Bot Telegram

Tidak ada komentar:

Posting Komentar