Anda di halaman 1dari 39

MATERI PEMBELAJARAN MIKROKONTROLLER

SILABUS TOHAZEN

DISUSUN OLEH :
TOHAZEN ST,Mtr

i
DAFTAR ISI

ii
DAFTAR GAMBAR

iii
DAFTAR GAMBAR

Hal

iv
BAB 1 SOFT
WARE

1 Pengenalan Bahasa C

7
BAB 2 PEN
GENALAN MIKROKONTROLLER ESP8266

Arduino IDE (Integrated Development Environment) adalah software


yang di gunakan untuk memprogram chip ESP8266 menggunakan bahasa C. 
IDE ini berguna sebagai text editor  untuk membuat,  mengedit, dan juga
mevalidasi kode program. bisa juga digunakan untuk meng-upload ke board
Arduino.  Kode program yang digunakan pada Arduino disebut dengan istilah
Arduino “sketch”  atau disebut juga source code arduino, dengan ekstensi file
source code .ino

2 Mikrokontroller NodeMCU ESP8266


Merupakan sebuah modul mikrokontroller bertegangan 3v3 berbasis wifi
yang dilengkapi usb uart sebagai sarana pemograman melalui komputer. Modul
ini dapat terhubung ke internet melalui jaringan wifi layaknya seperti pc atau
laptop berkomuniksi dengan wifi. Sampai saat ini ada 3 generasi yang sudah
dibuat, yaitu:
 Generasi Pertama Board v0.9 (NodeMCU v1)
Modul generasi pertama ini menggunakan ESP12 sebagai chip
mikrokontrollernya, untuk IC usb ke uartnya menggunakan tipe CHG340 dan
memiliki IO yang cukup banyak.

Gambar 2.1.1.1 Generasi Pertama NodeMCU v1

 Generasi ke dua Board V1.0 (NodeMCU v2)

8
Generarsi ke dua ini memiliki ciri khas dengan warna hitam, sedangkan modul
wifi nya diganti dengan tipe 12E dan ic usb ke uartnya adalah CP2102.

Gambar 2.1.1.2 Generasi ke dua NodeMCU v2

 Generasi Ketiga Board v1.0 (NodeMCU v3 Unofficial)

Gambar 2.1.1.3 Generasi Ketiga NodMCU v3


Perangkat NodeMCU generasi ketiga ini sebenarnya bukan official dari
ESP8266, hanya versi modifikasi yang dikembangnkan oleh produsen LoLin
dengan beberapa perbaikan yang membuat perangkat ini di claim lebih cepat
dari versi sebelumnya. Saat ini banyak pengguna menggunakan modul tipe
ini , mengingat versi sebelumnya sudah jarang digunakan.
Modul nodeMCU ini sebenarnya memiliki default pemograman yaitu Lua,
tetapi karena kebanyakan orang sudah familier dengan pemograman arduino
maka modul ini pada waktu itu belum banyak dikenal orang, setelah beberapa
tahun baru support ke pemograman arduino maka sampai saat ini modul ini
berkembang dengan pesat [https://www.warriornux.com/mengenal-nodemcu-
esp8266-iot/
Untuk memahami lebih lanjut perlu diketahui fungsi dari pin-pin IO sebagai
terlampir pada gambar berikut :

9
Gambar 2.1.1.4 Pin Out NodeMCU

3 Instalasi Program Arduino IDE ( Tugas 1 )


4 Instalasi Mikrokontroller ESP8266 ( Tugas 1 )
5 Membuat Proyek baru

10
Gambar 2.1.1.5 Membuat Projek Baru

6 Pemograman NodeMCU ESP8266 untuk PORT IO


Sebelum membuat program untuk mikrokontroller nodemcu harus di ubah
setting dari tools arduino ide :
1. Pilih board NodeMCU

11
Gambar 2.1.1.6 Memilih Board NodeMCU
2. Memilih PORT / Com yang tersedia pada PC /Laptop

12
Gambar 2.1.1.7 Memilih Port untuk Download Program
3. Selanjutnya arduino IDE sudah siap untuk pemograman NodeMCU
Contoh Program membuat GPIO16 menjadi OUTPUT:

13
Gambar 2.1.1.8 Code Program membuat OUTPUT

7 Delay

Gambar 2.1.1.9 Program output LED dan delay

8 Timer ( PLC lanjut )


9 Komunikasi Serial

Gambar 2.1.1.10 Program Komunikasi Serial


Untuk membuktikan bahwa mikrokontroller sudah mengirimkan data ke
pc melalu usb port maka dapat diilihat pada terminal monitor :

14
10 Analog Digital Converter ( ADC )

Gambar 2.1.1.11 Instalasi Analog dengan potensio


1. Tugas gambarkan wiring diagram potensio sebagai input analog ?
2. Pada pin Berapa terdapat input analog pada nodemcu esp8266 ?
3. Berapa nilai Vout pada potensio bila nila resistansinya RA = 1K dan
RB = 1K ?

15
Gambar 2.1.1.12 Program Analog ditampilkan pada serial monitor
Tampilan serial dapat dilihat pada serial monitor ide arduino:

Gambar 2.1.1.13 Tampilan Serial Monitor pada Arduinio IDE


Yang perlu diperhatikan adalah baudrate pada program di void setup(),
yaitu serial.begin(9600) itu artinya kecepatan transfer data 9600 bit per second,
dimana pada serial monitor juga harus di set sama 9600 baud, hal ini merupakan
standar komunikasi serial (kecepatan kedua perangkat yang akan berkomunikasi
secara serial harus sama ).

11 Pemograman Motor DC ( PLC Lanjut )


12 Pemograman LCD ( PLC Lanjut )

16
BAB 3
IoT ( Internet Of Things )
3.1 Pengenalan IoT BLYNK
Blynk adalah sebuah layanan server yang digunakan untuk mendukung
project Internet of Things. Layanan server ini memiliki lingkungan mobile user
baik Android maupun iOS. Blynk Aplikasi sebagai pendukung IoT dapat diunduh
melalui Google play. Blynk mendukung berbagai macam hardware yang dapat
digunakan untuk project Internet of Things. Blynk adalah dashborad digital
dengan fasilitas antarmuka grafis dalam pembuatan projectnya. Penambahan
komponen pada Blynk Apps dengan cara Drag and Drop sehingga memudahkan
dalam penambahan komponen Input/output tanpa perlu kemampuan
pemrograman Android maupun iOS.
Fitur pada Aplikasi Blynk
Blynk diciptakan dengan tujuan untuk kontrol dan monitoring hardware
secara jarak jauh menggunakan komunikasi data internet ataupun intranet
(jaringan LAN). Kemampuann untuk menyimpan data dan menampilkan data
secara visual baik menggunakan angka, warna ataupun grafis semakin
memudahkan dalam pembuatan project dibidang Internet of Things. Terdapat 3
komponen utama Blynk
a. Blynk Apps

Blynk Apps memungkinkan untuk membuat project interface dengan


berbagai macam komponen input output yang terdiri dari banyak Widget yang
mendukung untuk pengiriman maupun penerimaan data serta merepresentasikan
data sesuai dengan komponen yang dipilih. Representasi data dapat berbentuk
visual angka maupun grafik.
Terdapat 4 jenis kategory komponen yang berdapat pada Aplikasi Blynk
 Controller digunakan untuk mengirimkan data atau perintah ke
Hardware

 Display digunakan untuk menampilkan data yang berasal dari


hardware ke smartphone

 Notification digunakan untuk mengirim pesan dan notifikasi.

6
 Interface Pengaturan tampilan pada aplikasi Blynk dapat berupa menu
ataupun tab

 Others beberapa komponen yang tidak masuk dalam 3 kategori


sebelumnya diantaranya Bridge, RTC, Bluetooth
Dari banyaknya widget yang tersedia pada Blynk, pada tugas ini akan
dibahas beberapa diantaranya yaitu LCD, Text Input, dan Numeric Input.
b. Blynk Server
Blynk server merupakan fasilitas Backend Service berbasis cloud yang
bertanggung jawab untuk mengatur komunikasi antara aplikasi smart
phone dengan lingkungan hardware. Kemampun untuk menangani
puluhan hardware pada saat yang bersamaan semakin memudahkan bagi
para pengembang sistem IoT. Blynk server juga tersedia dalam bentuk
local server apabila digunakan pada lingkungan tanpa internet. Blynk
server local bersifat open source dan dapat diimplementasikan pada
Hardware Arduino, NodeMCU, Raspberry Pi.
c. Blynk Library
Blynk Library dapat digunakan untuk membantu pengembangan code.
Blynk library tersedia pada banyak platform perangkat keras sehingga
semakin memudahkan para pengembang IoT dengan fleksibilitas hardware
yang didukung oleh lingkungan Blynk

Gambar 3.1.1.14 Fitur Blynk

7
Cara Menggunakan Aplikasi Blynk
Aplikasi Blynk untuk android dapat diunduh di
https://play.google.com/store/apps/details?id=cc.blynk. Setelah selesi intalasi
langkah berikutnya adalah mendaftar akun di server Blynk melalui Aplikasi
Blynk Apps. Register akun dapat menggunakan akun
Facebook maupun menggunakan email. Apabila membuat
akun melalui Email username pada saat login adalah email
yang sebelumnya didaftarkan pada server Blynk.
Setelah selesai membuat akun dan verifikasi email, langkah berikutnya
adalah login pada aplikasi Blynk kemudian membuat sebuah project melalui
menu pilihan New Project. Masukan isian nama project dan juga nama device
yang akan digunakan pada sistem IoT.

8
Gambar 3.2 Membuat akun dan Project di Aplikasi Blynk

Untuk menghubungkan device IoT dengan server Blynk dibutuhkan kode


keamanan Authentication yang dikirimkan dari server blynk ke email melalui
Project Setting pada menu AUTH TOKEN. Menu Project Setting terdapat pada
icon nomor 3 dari kanan . Menu yang lainya adalah segitiga digunakan
untuk Play Aplikasi Project dan menu Plus digunakan untuk menambah
komponen atau Widget dalam project Aplikasi Blyk. Kode AUTH TOKEN dapat
didapatkan melalui pengiriman email ataupun langsung dicopy melalui Aplikasi

9
Blynk. Auth Token yang dikirimkan melalui email atau langsung copy dari
aplikasi nanti akan dimasukkan kode program yang dimasukkan dalam hardware.

Gambar 3. 3 Auth Token dan Widget di Blynk

Untuk menambah Widget atau komponen input output project dapat


menggunakan menu plus yang ada didalam lingkaran. Terdapat berbagai macam
komponen diantaranya Button , Slider, Vertical Slider, Value Display dan juga
komponen graphic. Berbagai macam komponen yang tersedia disesuaikan dengan
credit power yang masih tersisa. Credit power pada saat registrasi diberikan
sejumlah 2000. Untuk topup credit power dapat menggunakan google play credit.

10
13 3.2 Widget pada Aplikasi Blynk
Beberapa Widget yang tersedia pada aplikasi Blynk yaitu LCD,
Text Input, dan Numeric Input. Berikut ini bagaimana pengertian dan cara dari
dari masing-masing Widget tersebut.

1.1 Widget LED


Widget LED adalah salah satu widget dalam Blynk yang berfungsi sebagai
output berupa cahaya . Salah satu pemanfaatannya sebagai lampu tanda.
Tampilannya berupa :

Gambar 3.4 Tampilan Widget LED di Aplikasi


Untuk mengatur LED akan muncul tampilannya seperti :

Gambar 3.5 Tampilan Pengaturan LED pada Aplikasi

11
Program LED

#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.


// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken";

// Your WiFi credentials.


// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";

WidgetLED led1(V1);

BlynkTimer timer;

// V1 LED Widget is blinking


void blinkLedWidget()
{
if (led1.getValue()) {
led1.off();
Serial.println("LED on V1: off");
} else {
led1.on();
Serial.println("LED on V1: on");
}
}

void setup()
{
// Debug console
Serial.begin(9600);

Blynk.begin(auth, ssid, pass);


// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);

Gambar 3.6 Program LED BLYNK

12
Widget Slider
Widget Slider mirip dengan potensiometer. Mengizinkan mengirim
nilai di antara rentang MIN / MAX yang diberikan.
. Tampilannya berupa:

Gambar 3.7 Tampilan Widget Slider

Gambar3.8 Tampilan Pengaturan Slider

13
Program Slider

//BlynK{ // program2 monisture sensorrelay soilMoistureValue = analogRead(soilsens);


#define//put Sensor insert Serial
BLYNK_PRINT into soil
if(soilMoistureValue
#include <SPI.h> < moistset) { Serial.println("Wet");
digitalWrite(water,
#include <Ethernet.h> LOW);

#includeBlynk.virtualWrite(V7, "Wet");
<BlynkSimpleEthernet.h> char auth[] = "xxxxxxxxxxxxxxxx";
#define} W5100_CS 10 #define SDCARD_CS 4
//temp Else
sensor
{ <DHT.h>
#include
#defineSerial.println("Dry");
DHTPIN 8
#defineBlynk.virtualWrite(V7,
DHTTYPE DHT11 "Dry");
If (dht.readTemperature()>=
DHT dht(DHTPIN, DHTTYPE); hotday) {digitalWrite(water, HIGH);
}
BlynkTimer timer;
else digitalWrite(water,
int soilMoistureValue = 0; LOW); }
}
int soilsens = A0;
BLYNK_WRITE(V1)
int water = 7;
{ int=pinValue
int hotday 20; = param.asInt();
// assigning
int moistset = 350;incoming value from pin V1 to a variable
int moistset = pinValue;
void sendSensor()
{ Serial.println(moistset); }

float hvoid setup() { Serial.begin(9600);


= dht.readHumidity();
float t //
= open serial port, set the baud rate to 9600 bps
dht.readTemperature();
Blynk.begin(auth);
// or dht.readTemperature(true) for Fahrenheit
pinMode(SDCARD_CS,
if (isnan(h) || isnan(t)) OUTPUT);
digitalWrite(SDCARD_CS,
{ Serial.println("Failed to read fromHIGH);
DHT sensor!");
return;// }Deselect the SD card dht.begin();
pinMode(water,
// You can OUTPUT);
send any value at any time. // Please don't send more that 10 values per
second. timer.setInterval(1000L, sendSensor);
timer.setInterval(1000L,
Blynk.virtualWrite(V5, h); soilsensor); } void loop() { {Blynk.run(); timer.run(); } }

Blynk.virtualWrite(V6, t);
}
void
soilsensor()

14
Styled button

Gambar 3.9 Tampilan Widget Styled Button

Styled button adalah salah satu widget dalam Blynk yang berfungsi
sebagai input. Tampilan dari Styled button dapat di ubah sesuai
keinginan/kebutuhan si pengguna. Tulisan dan warna dari Styled Button dapat di
ubah sesuai keinginan/kebutuhan si pengguna.

Gambar 3.0.150 Tampilan Pengaturan Styled Button pada Aplikasi

15
LCD

Pengertian
LCD adalah Widget dari komponen Display pada aplikasi Blynk yang
digunakan untuk menampilkan data yang berasal dari hardware ke smartphone.
LCD memiliki fungsi yaitu menampilkan angka atau huruf pada layar dengan
panjang karakter maksimal 16 ke samping dan 2 ke bawah. Data yang digunakan
untuk menampilkan di lcd adalah data pada analog pin atau virtual pin yang
diperoleh dari hardware.

Gambar 3.11 Tampilan LCD


LCD dapat bekerja dalam 2 kondisi atau mode yaitu, mode Simple dan
Advanced Setting. Simple setting dirancang agar tampilan pada layar selalu
muncul dari bagian kiri. Sedangkan untuk tampilan pada layar dari Advanced
setting dapat diatur sesuai keinginan akan muncul dari bagian mana.

Simbol

Gambar 3.12 Tampilan LCD pada widget box

16
Gambar 3.10.16 Tampilan LCD

17
Contoh Program simple

Gambar 0.17 Contoh program simpel

18
Contoh program advanced

Gambar 0.18 Contoh program advanced

Cara Penggunaan dan Cara Kerja


a. Cara Penggunaan Widget LCD pada aplikasi Blynk

19
 Tambahkan lcd dari widget box (+)
 Klik lcd untuk masuk ke menu setting

Gambar 3. 1 Tampilan LCD pada widget box

Gambar 3. 2 Tampilan LCD

20
BARIS 1

BARIS 2

(Simple Setting)
 Simple setting hanya perlu mensetting pin input untuk ditampilkan pada
baris 1 dan baris 2
 Pin yang digunakan bisa berupa analog pin ataupun virtual pin

(Advanced Setting)
 Ubah pin sesuai dengan yang di inginkan
 Pin yang digunakan adalah pin virtual
Gambar 3. 3 Setting simpel

Gambar 3. 4 Setting advanced


b. Cara Kerja Widget LCD pada aplikasi Blynk

21
LCD akan menampilkan karakter yang ada pada pin analog atau pin virtual
yang digunakan. Ketika ada perubahan yang terjadi pada pin yang digunakan,
maka LCD akan menampilkan data terbaru yang ada di pin tersebut.
Pada mode simple, LCD hanya akan menampilkan karakter dari posisi
paling kiri. Pada mode advanced, LCD bisa menampilkan karakter dari posisi
manapun sesuai dengan keinginan pengguna.

Text Input

Pengertian
Text Input adalah Widget dari komponen Interface pada aplikasi Blynk
yang digunakan untuk input berupa string kepada mikrokontroller.

Gambar 3. 5 Tampilan text input pada widget


box

Gambar 3. 6 Tampilan text input


Simbol

22
Contoh Program

Gambar 3. 7 Contoh program


Cara Penggunaan dan Cara Kerja

a. Cara Penggunaan

Gambar 3. 8 Tampilan text input pada Widget box


 Tambahkan Text Input dari widget box (+)
 Klik Text Input untuk masuk ke menu setting

23
Gambar 3. 9 Tampilan text input

 Ubah PIN sesuai dengan yang di inginkan


 Ubah CHARACTER LIMIT untuk membatasi jumlah

Gambar 3. 10 Setting text input

b. Cara Kerja

24
Ketika pengguna menekan dan memasukan input berupa text
melalui keypad pada hp dan menekan pilihan kirim pada keypad, maka
text input akan menigrimkan text tersebut ke mikrokontroller dan
kemudian mikrokontroller tersebut akan memproses sesuai dengan
program yang di buat

Numeric Input

Pengertian
Numeric Input adalah Widget dari komponen Interface pada aplikasi
Blynk yang digunakan untuk input berupa string kepada mikrokontroller.

Simbol

Gambar Simbol Text Input pada Widget Box

Gambar Text Input pada layar tampilan

25
Contoh Program

Cara Penggunaan dan Cara Kerja


 Tambahkan numeric Input dari widget box (+)

 Klik Numeric Input untuk masuk ke menu setting

26
 Ubah PIN sesuai dengan yang di inginkan
 Ubah step agar ketika tanda – atau + di tekan makan akan berkurang
atau bertambah sesuai dengan jumlah step yang di isi

a. Cara Kerja

Ketika pengguna menekan dan memasukan input berupa angka


melalui keypad pada hp dan menekan pilihan kirim pada keypad, maka
text input akan menigrimkan angka tersebut ke mikrokontroller dan
kemudian mikrokontroller tersebut akan memproses sesuai dengan
program yang di buat

27
3.2 Instalasi BLYNK pada Arduino IDE
Tugas 2

3.3 Instalasi BLYNK pada aplikasi Android


Tugas 2

28
BAB 4 P
RAKTIKUM

14 Input dan Output


14.1 Tombol dan LED
15 Input dan Serial
15.1 Tombol dan Serial pada Terminal Monitor Arduino IDE
15.2 Counter Produksi pada Conveyor
15.3 Tombol dan LCD ( PLC Lanjut )
16 IoT
16.1 Button dan LED pada BLYNK
16.2 Alarm Pintu dan Jendela dengan notifikasi
16.3 Counter Produksi dengan HMI
16.4 Maintenance Check pada sensor Level Banjir
16.5 Weather Station
16.6 Sensor Suhu dan Kelembaban
16.7 Sensor Daya ( Arus dan Teg DC ) pada Panel Surya ( PLC Lanjut )
16.8 Kwh Meter Digital berbasis IoT ( PLC Lanjut )
16.9 Kwh Meter Digital dengan Komunikasi Modbus RTU ( PLC Lanjut )
16.10 Aplikasi Komunkiasi Modbus TCP ( PLC Lanjut )

29
30

Anda mungkin juga menyukai