INTERNET OF THINGS
OLEH :
FEBRIAN HADIATNA
PENTAGO INNOVATECH
BANDUNG
PENGENALAN INTERNET OF THINGS
Daftar Isi
Daftar Isi ........................................ 1
Internet of Things ................................ 2
Cloud Computing ................................... 5
NodeMCU ........................................... 7
Blynk App ......................................... 12
Internet of Things Training Kit ................... 16
Modul 1. Output Digital ........................... 18
Modul 1.1. Display LED ........................... 19
Modul 1.2. Activation Buzzer ..................... 27
Modul 1.3. Activation Relay + Lampu Pijar ........ 29
Modul 1.4. DC Motor .............................. 31
Modul 1.5. Stepper Motor ......................... 34
Modul 2. Input Digital ............................ 39
Modul 2.1. Push Button ........................... 41
Modul 2.2. Line Sensor ........................... 44
Modul 2.3. Scanning Keypad ....................... 47
Modul 3. Analog Input ............................. 52
Modul 3.1. Sliding Potensiometer ................. 53
Modul 3.2. LDR Light Sensor ...................... 55
Modul 3.3. Flame Sensor .......................... 58
Modul 4. Inter Integrated Circuit(I2C) Protocol ... 60
Modul 4.1. Display LCD 1602 ...................... 61
Internet of Things
Cloud Computing
NodeMCU
Langkah Kerja:
Langkah 1:Instalasi Driver CH340
CH340 merupakan IC konverter USB to Serial yang terdapat pada
perangkat NodeMCU yang digunakan. IC ini memerlukan aplikasi
driver untuk menggunakannya. Langkah-langkah proses instalasi
Driver CH340 adalah sebagai berikut:
1. Unduh driver CH340 sesuai dengan sistem operasi yang
digunakan.
2. Setelah selesai proses unduh, kemudian Unzip file tersebut
3. Jalankan installer dari file yang sudah di unzip
4. Pada Arduino IDE saat CH340 terhubung, COM Port dilihat
pada menu Tools> Serial Port
Langkah 2:Instalasi ESP8266 pada Arduino IDE
Langkah-langkah proses instalasi ESP8266 pada arduino IDE
adalah sebagai berikut:
1. Pastikan perangkat komputer terkoneksi pada internet yang
stabil.
2. Buka Arduino IDE>>File>>Preference
3. Tambahkan"http://arduino.esp8266.com/stable/package_esp82
66com_index.json" pada additional URL kemudian klik OK
Blynk App
5. Auth Token
Auth Token dibutuhkan untuk dapat menghubungkan hardware ke
smartphone. Setiap project baru akan mendapatkan Auth Token.
Auth Token dikirim via email.
Modul 1
Output Digital
b. Program
Program LED1 (LED Blinking)
Buatlah program berikut ini dengan menggunakan Arduino IDE,
kemudian upload program tersebut ke dalam perangkat NodeMCU
yang telah terhubung dengan modul Display LED sesuai dengan
tabel 2.
int LED1=16;
int LED2=5;
int LED3=4;
int LED4=0;
int LED5=2;
int LED6=14;
int LED7=12;
int LED8=13;
void setup() {
// put your setup code here, to run once:
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);
pinMode(LED8,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
delay(1000);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,HIGH);
digitalWrite(LED8,HIGH);
delay(1000);
}
void loop() {
// put your main code here, to run repeatedly:
if (x==1)
{
digitalWrite(LED1,HIGH);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
delay(1000);
x=2;
}
PENTAGO INNOVATECH Page 21
PENGENALAN INTERNET OF THINGS
else if (x==2)
{
digitalWrite(LED1,LOW);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
delay(1000);
x=3;
}
else if (x==3)
{
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
delay(1000);
x=4;
}
else if (x==4)
{
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
delay(1000);
x=5;
}
else if (x==5)
{
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,HIGH);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
delay(1000);
x=6;
}
else if (x==6)
{
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
PENTAGO INNOVATECH Page 22
PENGENALAN INTERNET OF THINGS
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,HIGH);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
delay(1000);
x=7;
}
else if (x==7)
{
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,HIGH);
digitalWrite(LED8,LOW);
delay(1000);
x=8;
}
else if (x==8)
{
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,HIGH);
delay(1000);
x=1;
}
}
void setup()
{
// Debug console
Serial.begin(9600);
void loop()
{
Blynk.run();
}
Program Blynk
1. Buat project baru
Setelah melakukan proses login, selanjutnya mulailah
dengan membuat project baru, kemudian beri nama projet
tersebut dengan nama “LED CONTROL”.
2. Pilih hardware
Pilihlah jenis perangkat keras “ESP8266” serta connection
type “WIFI”.
3. Auth Token
Buka Email untuk memperoleh Auth Token, kemudian gunakan
Auth Token yang terdapat pada Email tersebut, pada program
di Arduino IDE.
Aturlah PIN pada setiap button yang telah diberi nama LED.
Pin yang disetting harus sesuai dengan konfigurasi pada
hardware yang digunakan. Pada button LED1 pilih pin Digital
D0, LED2 pilih pin Digital D1, dan seterusnya lakukan hingga
LED 8 dengan memilih pin Digital D7.
5. Run
Jika telah selesai membuat dan mengatur widget yang
digunakan, selanjutnya pilih PLAY.
b. Program
Buatlah program berikut ini dengan menggunakan Arduino IDE,
kemudian upload program tersebut ke dalam perangkat NodeMCU
yang telah terhubung dengan modul Buzzer sesuai dengan tabel
3.
int BUZZER=16;
void setup() {
// put your setup code here, to run once:
pinMode(BUZZER,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(BUZZER,LOW);
delay(1000);
digitalWrite(BUZZER,HIGH);
delay(1000);
}
c. Latihan Program
Buatlah sebuah program untuk mengendalikan modul buzzer
melalui aplikasi Blynk!
c. Program
Buatlah program berikut ini dengan menggunakan Arduino IDE,
kemudian upload program tersebut ke dalam perangkat NodeMCU
yang telah terhubung dengan modul relay dan lampu pijar sesuai
dengan tabel 4.
int RELAY=16;
void setup() {
// put your setup code here, to run once:
pinMode(RELAY,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(RELAY,LOW);
delay(1000);
digitalWrite(RELAY,HIGH);
delay(1000);
}
d. Latihan Program
Buatlah sebuah program untuk mengendalikan aktivasi dari
lampu pijar melalui aplikasi Blynk!
b. Program
Buatlah program berikut ini dengan menggunakan Arduino IDE,
kemudian upload program tersebut ke dalam perangkat NodeMCU
yang telah terhubung dengan modul driver motor DC L293D sesuai
dengan tabel 5.
int A1_MOTOR=16;
int A2_MOTOR=5;
int EN_MOTOR=4;
void setup() {
// put your setup code here, to run once:
pinMode(A1_MOTOR,OUTPUT);
pinMode(A2_MOTOR,OUTPUT);
pinMode(EN_MOTOR,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(EN_MOTOR,HIGH);
digitalWrite(A1_MOTOR,LOW);
digitalWrite(A2_MOTOR,HIGH);
delay(2000);
digitalWrite(EN_MOTOR,LOW);
digitalWrite(A1_MOTOR,LOW);
digitalWrite(A2_MOTOR,HIGH);
delay(2000);
digitalWrite(EN_MOTOR,HIGH);
digitalWrite(A1_MOTOR,HIGH);
digitalWrite(A2_MOTOR,LOW);
delay(2000);
}
c. Latihan Program
Buatlah sebuah program untuk mengendalikan arah putar motor
DC serta kecepatan putar motor melalui aplikasi Blynk!
b. Program
Buatlah program berikut ini dengan menggunakan Arduino IDE,
kemudian upload program tersebut ke dalam perangkat NodeMCU
yang telah terhubung dengan modul driver motor stepper sesuai
dengan tabel 6.
int wire1 = 15;
int wire2 = 13;
int wire3 = 12;
int wire4 = 14;
void setup() {
// put your setup code here, to run once:
/* set four wires as output */
pinMode(wire1, OUTPUT);
pinMode(wire2, OUTPUT);
pinMode(wire3, OUTPUT);
pinMode(wire4, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for(int i = 0; i<100; i++)
{
sequence(LOW, LOW, LOW, HIGH);
sequence(LOW, LOW, HIGH, HIGH);
sequence(LOW, LOW, HIGH, LOW);
sequence(LOW, HIGH, HIGH, LOW);
sequence(LOW, HIGH, LOW, LOW);
sequence(HIGH, HIGH, LOW, LOW);
sequence(HIGH, LOW, LOW, LOW);
sequence(HIGH, LOW, LOW, HIGH);
}
sequence(LOW, LOW, LOW, LOW);
delay(500);
}
c. Latihan Program
Buatlah sebuah program untuk mengendalikan arah putar motor
Stepper dengan arah putar yang berlawanan dengan arah jarum!
Modul 2
Input Digital
b. Program
Buatlah program berikut ini dengan menggunakan Arduino
IDE, kemudian upload program tersebut ke dalam perangkat Node
MCU yang telah terhubung dengan push button pada modul keypad
serta display LED, sesuai dengan tabel 8.
Int LED1= 16;
int LED2= 5;
int LED3=4;
int BUTTON1=0;
int BUTTON2=2;
int BUTTON3=14;
int button1;
int button2;
int button3;
void setup() {
// put your setup code here, to run once:
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(BUTTON1, INPUT_PULLUP);
pinMode(BUTTON2, INPUT_PULLUP);
pinMode(BUTTON3, INPUT_PULLUP);
}
void loop() {
// put your main code here, to run repeatedly:
button1=digitalRead(BUTTON1);
button2=digitalRead(BUTTON2);
button3=digitalRead(BUTTON3);
if (button1==0)
{
digitalWrite(LED1, HIGH);
delay(1);
}
else
{
digitalWrite(LED1, LOW);
delay(1);
};
if (button2==0)
{
digitalWrite(LED2,HIGH);
delay(1);
}
else
{
digitalWrite(LED2, LOW);
delay(1);
};
if (button3==0)
{
digitalWrite(LED3, HIGH);
delay(1);
}
else
{
digitalWrite(LED3,LOW);
delay(1);
};
}
Tekanlah satu persatu button 1, button 2 serta button 3 pada
keypad. Amatilah yang terjadi pada display LED yang digunakan.
b. Program
Buatlah program berikut ini dengan menggunakan Arduino
IDE, kemudian upload program tersebut ke dalam perangkat
NodeMCU yang telah terhubung dengan line sensor modul sesuai
dengan tabel 9.
int SENSOR=16;
int Data_Sensor;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(SENSOR, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Data_Sensor=digitalRead(SENSOR);
if (Data_Sensor==0)
{
Serial.println("Deteksi Objek");
delay(1);
}
else
{
Serial.println("No Objek");
delay(1);
};
}
Setelah program tersebut anda upload, selanjutnya bukalah
serial terminal pada Arduino IDE anda, dengan cara pilih menu
Tool>Serial Monitor. Pilihlah baudrate 115200 pada serial
monitor yang telah dibuka, sesuai dengan baudrate yang
digunakan pada program yang digunakan. Berikut ini gambar 35,
yang menampilkan serial terminal yang akan digunakan untuk
menampilkan output data yang dihasilkan dari sensor yang
digunakan.
c. Latihan Program
Buatlah sebuah program sistem counter antrian, dimana
digunakan line sensor sebagai sensor untuk menghitung
jumlah antriannya, serta motor DC digunakan sebagai gerbang
pintu masuknya, yang akan aktif berputar selama 2 detik,
setiap terdeteksi antrian baru. Jumlah antrian masuk yang
ditampilkan terdapat pada tampulan serial terminal Arduino
IDE.
b. Program
Buatlah program berikut ini dengan menggunakan Arduino
IDE, kemudian upload program tersebut ke dalam perangkat
NodeMCU yang telah terhubung dengan keypad 3x4 sesuai dengan
tabel 10.
int CLM1=16;
int CLM2=5;
int CLM3=4;
int ROW1=0;
int ROW2=2;
int ROW3=14;
int ROW4=12;
int BARIS1,BARIS2,BARIS3,BARIS4;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(CLM1, OUTPUT);
pinMode(CLM2, OUTPUT);
pinMode(CLM3, OUTPUT);
pinMode(ROW1, INPUT);
pinMode(ROW2, INPUT);
pinMode(ROW3, INPUT);
pinMode(ROW4, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(CLM1, LOW);
digitalWrite(CLM2, HIGH);
digitalWrite(CLM3, HIGH);
BARIS1=digitalRead(ROW1);
BARIS2=digitalRead(ROW2);
BARIS3=digitalRead(ROW3);
BARIS4=digitalRead(ROW4);
if (BARIS1==0)
{Serial.println("1");delay(500);};
if (BARIS2==0)
{Serial.println("4");delay(500);};
if (BARIS3==0)
{Serial.println("7");delay(500);};
if (BARIS4==0)
{Serial.println("*");delay(500);};
delay(1);
digitalWrite(CLM1, HIGH);
digitalWrite(CLM2, LOW);
digitalWrite(CLM3, HIGH);
BARIS1=digitalRead(ROW1);
BARIS2=digitalRead(ROW2);
BARIS3=digitalRead(ROW3);
BARIS4=digitalRead(ROW4);
if (BARIS1==0)
{Serial.println("2");delay(500);};
if (BARIS2==0)
{Serial.println("5");delay(500);};
if (BARIS3==0)
{Serial.println("8");delay(500);};
if (BARIS4==0)
{Serial.println("0");delay(500);};
delay(1);
digitalWrite(CLM1, HIGH);
digitalWrite(CLM2, HIGH);
digitalWrite(CLM3, LOW);
BARIS1=digitalRead(ROW1);
BARIS2=digitalRead(ROW2);
BARIS3=digitalRead(ROW3);
BARIS4=digitalRead(ROW4);
if (BARIS1==0)
{Serial.println("3");delay(500);};
if (BARIS2==0)
{Serial.println("6");delay(500);};
if (BARIS3==0)
{Serial.println("9");delay(500);};
if (BARIS4==0)
{Serial.println("#");delay(500);};
delay(1);
}
Setelah program tersebut anda upload, bukalah serial
terminal dan set baudrate yang digunakan sesuai dengan yang
terdapat pada program. Tekanlah salah satu pushbutton,
kemudian perhatikanlah keluaran tampilan pada serial monitor
yang digunakan.
c. Latihan Program
Buatlah sebuah program input username dan password dengan
menggunakan keypad 3x4.
Modul 3
Input Analog
b. Program
Buatlah program berikut ini dengan menggunakan Arduino IDE,
kemudian upload program tersebut ke dalam perangkat NodeMCU
yang telah terhubung dengan sliding potensiometer sesuai
dengan tabel 11.
int Potensiometer=A0;
int Data_Sensor;
void setup() {
// put your setup code here, to run once:
pinMode(Potensiometer, INPUT);
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
Data_Sensor=analogRead(Potensiometer);
Serial.println(Data_Sensor);
}
c. Latihan Program
Buatlah sebuah program pada Arduino Ide dan aplikasi Blynk
yang memungkinkan data analog dari komponen sliding
potensiometer yang digunakan mampu ditampilkan pada
aplikasi Blynk.
b. Program
Buatlah program berikut ini dengan menggunakan Arduino IDE,
kemudian upload program tersebut ke dalam perangkat NodeMCU
yang telah terhubung dengan LDR sensor module sesuai dengan
tabel 12.
int LDR=A0;
int Data_Sensor;
void setup() {
// put your setup code here, to run once:
pinMode(LDR, INPUT);
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
Data_Sensor=analogRead(LDR);
Serial.println(Data_Sensor);
}
c. Latihan Program
Buatlah sebuah program “Lampu Cerdas”, yaitu saat kondisi
ruangan gelap, lampu akan menyala dan jika kondisi ruangan
terang, lampu tidak aktif.
b. Program
Buatlah program berikut ini dengan menggunakan Arduino
IDE, kemudian upload program tersebut ke dalam perangkat
NodeMCU yang telah terhubung dengan flame sensor module sesuai
dengan tabel 13.
int Flame=A0;
int Data_Sensor;
void setup() {
// put your setup code here, to run once:
pinMode(Flame, INPUT);
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
Data_Sensor=analogRead(Flame);
Serial.println(Data_Sensor);
}
c. Latihan Program
Buatlah sebuah program alarm pendeteksi kebakaran dengan
menggunakan aplikasi blynk dan komponen buzzer sebagai
tampilan outputnya
Modul 4
Inter Integrated Circuit(I2C) Protocol
b. Program
Buatlah program berikut ini dengan menggunakan Arduino IDE,
kemudian upload program tersebut ke dalam perangkat NodeMCU
yang telah terhubung dengan display LCD sesuai dengan tabel
14.
#include <LiquidCrystal_I2C.h>
// Ganti 0x3F sesuai dengan alamat I2C modul kalian
// Jika tidak tahu dapat menggunakan LCD I2C Scanner
LiquidCrystal_I2C lcd(0x3F, 16, 2);
void setup() {
// jumlah kolom dan baris sesuai dengan LCD yang digunakan
lcd.begin(16,2);
lcd.init();
// Nyalakan backlight
lcd.backlight();
// Pindahkan kursor ke kolom 0 dan baris 0
lcd.setCursor(0, 0);
lcd.print("HELLO WORLD!");
// Pindahkan kursor ke baris berikutnya dan cetak lagi
lcd.setCursor(0, 1);
lcd.print("TES LCD I2C");
}
void loop() {
//Kode loop silahkan disesuaikan
//...
void setup()
{
Wire.begin();
Serial.begin(115200);
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Memindai...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C terbaca pada alamat 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Ada error yang tidak diketahui pada alamat
0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("Tidak ada satupun alamat I2C yang
ditemukan\n");
else
Serial.println("selesai\n");
delay(5000);
}
Setelah proses upload dilakukan, bukalah serial monitor
yang digunakan. Gantilah alamat I2C yang digunakan pada
program LCD sesuai dengan hasil pengecekan alamat yang telah
dilakukan.
c. Latihan Program
Buatlah sebuah program input username dan password dengan
menggunakan keypad 3x4. Tampilkan data tersebut melalui
display LCD.