Arduino
IoT Development Board
Naro Smart
Smart Choice
2| Arif Sy aripudin
IoT Development Board 2017
Kata Pengantar
Segala puji kehadirat Allah SWT. yang telah memberikan kesempatan dan
kemudahan kepada penulis untuk menyelesaikan module IoT Development
Board ini. Shalawat serta salam tercurahkan atas Nabi Muhammad SAW, serta
keluarganya, sahabat-sahabatnya dan para pelanjut risalahnya yang setia
sampai akhir zaman.
Penulis mengharapkan kritik dan saran yang dapat digunakan untuk perbaikan
dan pengembangan module pembelajaran ini pada edisi berikutnya.
Wassalamualaikum
Hal
4| Arif Sy aripudin
IoT Development Board 2017
Pengenalan IoT Development Board
5| Arif Sy aripudin
IoT Development Board 2017
control relay terdapat 3 channel yang setiap channel memiliki kapasitas
kontak dengan daya hingga 10A.
Keterangan :
Relay Aktif : Jika pin R1 atau R2 atau R3 terberi tegangan +5VDC (HIGH)
Relay Off : Jika pin R1 atau R2 atau R3 terberi tegangan 0VDC (LOW)
6| Arif Sy aripudin
IoT Development Board 2017
dengan microcontroller dan dapat langsung di program kedalam chip
8266 yang terdapat didalm wemos wifi ini sendiri melalui USB Micro.
Keterangan :
C. Aplikasi Bluetooth
7| Arif Sy aripudin
IoT Development Board 2017
EN
5V
G
TX
RX
ST
Keterangan :
D. Aplikasi Buzzer
Keterangan :
8| Arif Sy aripudin
IoT Development Board 2017
Buzzer aktif : Jika pin ‘S’ diberi tegangan 5VDC (HIGH)
Buzzer Off : Jika pin ‘S’ diberi tegangan 0VDC (LOW)
E. Aplikasi Radio
1
2
Konfigurasi Pin :
9| Arif Sy aripudin
IoT Development Board 2017
F. Aplikasi Sensor Kelembaban Tanah
Aplikasi ini berfungsi sebagai pendeteksi kadar air yang terdapat didalam
tanah. Sinyal yang dikeluarkan oleh sensor ini berupa nilai tegangan
analog. Semakin tinggi kadar air yang terdapat dalam tanah maka
semakin besar nilai tegangan yang diberikan oleh sensor pada
mikrokontroller dan semakin rendah kadar air yang terdapat dalam tanah
maka semakin kecil nilai tegangan yang diberikan oleh sensor pada
mikrokontroller.
A0
D0
GND
VCC
Sensor Tranducer
Keterangan :
10 | A r i f S y a r i p u d i n
IoT Development Board 2017
Keterangan :
Pengukuran Temperature :
Karakteristik Elektrikal :
H. Aplikasi RF ID Card
3v3
RST
GND
RQ
MISO
MOSI
SCK
SDA
Keterangan :
12 | A r i f S y a r i p u d i n
IoT Development Board 2017
Keterangan :
Karakteristik :
Area kerja motor servo MG90S dapat dilihat pada gambar diatas, ketika
servo diperintahkan untuk berada pada posisi 0° maka gear akan berada
pada arah paling sebelah kanan, pada posisi 90° maka gear akan berada
pada posisi center dan pada posisi 180° maka gear akan berada pada
posisi paling sebelah kiri.
13 | A r i f S y a r i p u d i n
IoT Development Board 2017
Arduino IDE adalah software yang disediakan di situs web Arduino.cc yang
ditujukan sebagai perangkat pengembangan sketch yang digunakan sebagai
program di papan Arduino. IDE (Integrated Development Environment) berarti
bentuk alat pengembangan program yang terintegrasi sehingga berbagai
keperluan disediakan dan dinyatakan dalam bentuk antarmuka berbasis
menu. Dengan menggunakan Arduino IDE dengan langkah-langkah, yaitu :
menulis sketch, memeriksa ada kesalahan atau tidak di sketch (compile), dan
kemudian mengunggah sketch yang sudah terkompilasi ke papan Arduino.
Adapun cara instalasi software Arduino yaitu :
14 | A r i f S y a r i p u d i n
IoT Development Board 2017
file non admin install” dan disesuaikan dengan jenis OS yang digunakan pada
PC.
Setelah pemilihan jenis instalasi dengan klik ganda pada konten yang di pilih,
maka akan tampil menu untuk memulai pengunduhan seperti yang terlihat
pada Gambar di bawah ini.
Pada tampilan menu tersebut di beri pilihan “Just Download” atau “Contribute
& Download”, untuk pemilihan free download klik “Just Download” dan jika
ingin memberikan kontribusi berupa uang maka klik “Contribute & Download”.
Jenis file yang di dapat dari keduanya sama persis. Setelah instruksi download
di pilih kemudian proses download akan berjalan, file yang di download kurang
lebih berukuran 147MB dengan nama file “arduino-1.6.6-windows.zip” (versi
yang lama).
15 | A r i f S y a r i p u d i n
IoT Development Board 2017
- Instalasi IDE Arduino pada PC
Setelah proses download selesai kemudian file akan terunduh dengan format
.zip, file ini tidak membutuhkan proses instalasi untuk dapat digunakan,
dengan kata lain, ini merupakan file IDE Arduino yang bersifat portable.
Sebelum IDE Arduino ini di gunakan maka lakukan extract terlebih dahulu pada
file .zip Arduino yang telah di unduh tadi. Untuk lokasi penyimpanan dapat di
tempatkan secara bebas.
Proses extract akan menghasilkan folder baru seperti yang terlihat pada
Gambar 1.7 di atas. Untuk membuka aplikasi Arduino dapat di lakukan dengan
16 | A r i f S y a r i p u d i n
IoT Development Board 2017
membuka folder “arduino-1.6.6” terlebih dahulu dan akan tampil di dalamnya
berupa file seperti pada Gambar di bawah ini.
Kemudian klik ganda pada file “arduino” maka tampilan aplikasi Arduino
akan terbuka pada layar PC seperti pada Gambar di bawah ini.
17 | A r i f S y a r i p u d i n
IoT Development Board 2017
- Instalasi USB Driver Arduino
Tahap terakhir yaitu dengan instalasi USB Driver Arduino agar program yang
telah di buat pada aplikasi dapat di pindahkan ke papan arduino melalui kabel
USB. Pada langkah pertama yaitu download terlebih dahulu file CH341SER.zip
dan di dalamnya terdapat 2 folder seperti pada Gambar di bawah ini.
Pada Gambar diatas terdapat file setup, untuk memulai instalasi USB Driver
klik ganda pada file tersebut dan akan muncul tampilan seperti pada Gambar
di bawah ini.
18 | A r i f S y a r i p u d i n
IoT Development Board 2017
Kemudian langkah terakhir yaitu dengan klik pada button “INSTALL” dan
proses instalasi akan berjalan, tunggu sampai proses instalasi driver selesai.
Setelah instalasi USB Driver selesai maka koneksifitas antara Arduino dan PC
melalui USB sudah dapat berjalan dengan baik.
19 | A r i f S y a r i p u d i n
IoT Development Board 2017
Pemrograman Dasar Arduino
20 | A r i f S y a r i p u d i n
IoT Development Board 2017
ketika di panggil. Nilai yang di berikan tersebut dinamakan nilai balik.
Fungsi yang tidak memiliki nilai balik di definisikan dengan “void”. Dengan
kata lain fungsi dari setup() dan loop() di sini tidak memiliki nilai balik.
Fungsi setup() adalah fungsi yang di jalankan secara otomatis pertama kali
oleh papan Arduino. Karena sifatnya demikian, kode yang di simpan pada
fungsi ini adalah kode yang perlu di jalankan dengan pembacaan sekali
saja pada awal pemrograman di mulai.
Fungsi loop() adalah fungsi yang di jalankan secara berulang. Lebih
tepatnya lagi untuk penyimpanan kode pemrograman yang berupa aksi
dengan fungsi yang harus di jalankan secara terus menerus.
21 | A r i f S y a r i p u d i n
IoT Development Board 2017
Gambar 2.2. menunjukan proses pembacaan program yang di lakukan
oleh Arduino. Pada saat pertaman kali program di jalankan maka fungsi
“setup” akan terbaca lebih dahulu kemudian di lanjutkan dengan
pembacaan fungsi-fungsi yang ada pada fungsi “loop”. Program akan
terus melakukan pembacaan secara berulang pada fungsi “loop”
sedangkan fungsi “setup” hanya di baca sekali saja pada awal pembacaan
di mulai.
- delay(parameter1)
merupakan instruksi yang berfungsi untuk melakukan penjedaan dalam
suatu program dengan satuan nilai parameter1 adalah mili detik.
Contoh penulisan :
…............
delay(1000); //penjedaan program selama 1000mS (1S).
…………
22 | A r i f S y a r i p u d i n
IoT Development Board 2017
- delayMicroseconds(parameter1)
merupakan instruksi yang berfungsi untuk melakukan penjedaan dalam
suatu program dengan satuan nilai parameter1 adalah mikro detik.
Contoh penulisan :
…............
delayMicroseconds(1000); //penjedaan program selama
………… 1000uS (1mS).
- pinMode(parameter1, parameter2)
Merupakan instruksi yang berfungsi untuk menentukan mode suatu pin
pada Arduino sebagai input maupun output. Pada Arduino untuk mode
pin sebagai input secara default jika tidak ada instruksi yang di berikan
akan membaca dengan keadaan LOW. Jika input aktif yang diberikan
pada kondisi LOW maka pada instruksi ini perlu di tambahkan kode
“INPUT_PULLUP” sebagai modenya. Jika input aktif yang di berikan
pada kondisi HIGH maka cukup dengan kode “INPUT” sebagai modenya.
Parameter1 : Alamat pin yang akan digunakan
Parameter2 : Mode pin yang akan digunakan
Contoh penulisan :
- digitalWrite(parameter1,parameter2)
Merupakan instruksi yang berfungsi sebagai pemberi nilai kondisi suatu
pin digital (parameter1) output Arduino dengan keadaan (parameter2)
yaitu “HIGH” atau “LOW” disesuaikan dengan perintah yang di berikan.
Parameter1 : Alamat pin Arduino
Parameter2 : Nilai yang di berikan (HIGH atau LOW)
Contoh penulisan :
- digitalRead(parameter1)
Merupakan instruksi yang berfungsi untuk membaca nilai input digital
yang masuk sesuai dengan pin yang di baca (parameter1).
Parameter1 : Alamat pin Arduino
Contoh penulisan :
𝑉𝑟𝑒𝑓𝑓
𝑅𝑒𝑠𝑜𝑙𝑢𝑠𝑖 =
𝑏𝑖𝑡
Signal = (sample/max_value)*reference_voltage
= (614/1024)*5
= 2.998 Volts
Contoh penulisan :
………..
int data_analog0; //variable penyimpanan untuk nilai analog
………..
data_analog0=analogRead(A0); //hasil pembacaan analog A0
- Variable
Variable adalah perintah untuk menyimpan data untuk dibaca datanya
dengan diwakilkan memori pada mikrokontroller. Namun sebelumnya
harus dideklarasikan dengan “tipe data” dan “nama variable” yang akan
digunakan. Untuk nama varible dan fungsi dapat berupa huruf (A...Z,
a...z) dan angka (0...9), juga karakter underscore(_). Cara penulisan
hanya bisa diawali dengan huruf atau underscore.
Varible global adalah variable yang nilainya dapat diakses dan ditulis
dari seluruh fungsi program yang ada. Sedangkan varible lokal hanya
dapat diakses dan ditulis sesuai dimana letak dari variable tersebut.
28 | A r i f S y a r i p u d i n
IoT Development Board 2017
Jenis-jenis type data
Khusus untuk tipe data bit hanya dapat dideklarasikan sebagai variable
global. Adapun cara penulisan konstanta :
29 | A r i f S y a r i p u d i n
IoT Development Board 2017
Karakter konstanta harus diikuti dengan tanda kutip (‘a’) sedangkan
konstanta string (“saya arif”). Contoh penulisan program seperti pada
listing di bawah ini.
void loop(){
a=digitalRead(12); //keadaan input pin 12 disimpan ke var “a”
lampu(a); }
- Operator
Operator adalah karakter – karakter khusus untuk manipulasi variable.
Operator terdiri dari operator aritmatika, penugasan, logika dan bit.
Operator Aritmatika
Binary Operator Keterangan Contohnya
+ Penambahan Z=c+a
- Pengurangan Z=c-a
30 | A r i f S y a r i p u d i n
IoT Development Board 2017
* Perkalian Z=c*a
/ Pembagian Z=c/a
% Modulo Z=c%a
Operator Penugasan
31 | A r i f S y a r i p u d i n
IoT Development Board 2017
Untuk menguji benar atau tidaknya variable terhadap nilai yang akan
diuji, operator ini biasanya digunakan pada perintah yang terdapat
kondisinya.
Operastor Relasional
Operator Bit
Operator Operation
& Perintah kogika and
| Perintah logika or
^ Perintah lohika ex-or
32 | A r i f S y a r i p u d i n
IoT Development Board 2017
~ Perintah logika not
>> Perintah untuk menggeser tiap bit ke kanan
<< Perintah untuk menggeser tiap bit ke kiri
Operator Logika
Operator Operation
&& Operator untuk memeriksa dua data yang nilai
keduanya harus benar (and) baru kondisi tersebut
dinyatakan benar
|| Operator untuk memeriksa dua data yang salah
satu nilai harus benar (or) baru kondisi tersebut
dinyatakan benar
! Operator ini untuk pemeriksaan nilai yang salah
dianggap benar (kebalikannya /not)
- Pengulangan (while)
Merupakan suatu perulangan yang dimana alur programnya yaitu, jika
suatu kondisi bernilai true atau benar maka pernyataan-pernyataan
dibawahnya (while) akan diteruskan hingga selesai kemudian akan
menguji kembali kondisi diatas.
33 | A r i f S y a r i p u d i n
IoT Development Board 2017
34 | A r i f S y a r i p u d i n
IoT Development Board 2017
- Percabangann (if)
- Percabangan (if-else)
39 | A r i f S y a r i p u d i n
IoT Development Board 2017
Control Buzzer
Pengkabelan
Program
void setup() {
pinMode(3,OUTPUT);
}
void loop() {
digitalWrite(3,HIGH);
delay(100);
digitalWrite(3,LOW);
delay(100);
}
40 | A r i f S y a r i p u d i n
IoT Development Board 2017
Penjelasan
Setup :
Loop :
41 | A r i f S y a r i p u d i n
IoT Development Board 2017
Servo dan Buzzer
Alat dan Bahan
Pengkabelan
Program
#include <Servo.h>
Servo servo1;
void setup() {
servo1.attach(5);
pinMode(3,OUTPUT);
}
42 | A r i f S y a r i p u d i n
IoT Development Board 2017
void loop() {
digitalWrite(3,HIGH);
delay(500); A
digitalWrite(3,LOW);
for(int sweep=0;sweep<=180;sweep++){
servo1.write(sweep); B
delay(20);
}
digitalWrite(3,HIGH);
delay(500); C
digitalWrite(3,LOW);
for(int sweep=180;sweep>=0;sweep--){
servo1.write(sweep); D
delay(20);
}
}
Penjelasan
Setup :
Loop :
43 | A r i f S y a r i p u d i n
IoT Development Board 2017
Relay Dan Bluetooth
Alat dan Bahan
Pengkabelan
44 | A r i f S y a r i p u d i n
IoT Development Board 2017
Program
#include <SoftwareSerial.h>
A
SoftwareSerial bluetooth(2,3);
int data_b; B
void setup() {
// put your setup code here, to run once:
bluetooth.begin(9600); C
pinMode(4,OUTPUT);
pinMode(5,OUTPUT); D
pinMode(6,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if(bluetooth.available()){ E
data_b=bluetooth.read(); F
if(data_b=='A') { digitalWrite(4,HIGH); }
else if(data_b=='a') { digitalWrite(4,LOW); }
if(data_b=='B') { digitalWrite(5,HIGH); }
else if(data_b=='b') { digitalWrite(5,LOW); } G
if(data_b=='C') { digitalWrite(6,HIGH); }
else if(data_b=='c') { digitalWrite(6,LOW); }
}
}
Penjelasan
Setup :
A, merupakan library untuk fungsi software serial serta deklarasi pin untuk
penggunaan software serial tersebut. B, variable yang berfungsi untuk
menyimpan hasil pembacaan dari komunikasi serial melalui fungsi
“Software Serial”. C, Penentuan bitrate komunikasi software serial yang
digunakan yaitu 9600. D, Penetapan pin digital 4 s.d 6 sebagai output untuk
kendali R2, R2 dan R3.
45 | A r i f S y a r i p u d i n
IoT Development Board 2017
Loop :
Note :
Instal pada smart phone aplikasi “S2 Terminal for Bluetooth” agar dapat
melakukan percobaan sesuai dengan listing program di atas.
46 | A r i f S y a r i p u d i n
IoT Development Board 2017
Relay Dan Wifi
Installasi Library Wemos Wifi D1 Mini
47 | A r i f S y a r i p u d i n
IoT Development Board 2017
- Tambahkan alamat URl ini
http://arduino.esp8266.com/stable/package_esp8266com_index.json
pada addational board manager dan klik “OK”.
48 | A r i f S y a r i p u d i n
IoT Development Board 2017
- Cari direktori “esp8266” (biasa berada paling bawah), kemudian klik
“Instal” dan pastikan computer anda sedang terhubung dengan
internet. Tunggu hingga proses installasi selesai.
- Jika sudah selesai Klik “OK” dan library ESP8266 sudah dapat
digunakan.
49 | A r i f S y a r i p u d i n
IoT Development Board 2017
Pengkabelan
Program
#include <ESP8266WiFi.h>
void setup() {
Serial.begin(115200);
B
delay(10);
//setting pin output
pinMode(LED_BUILTIN, OUTPUT);
pinMode(D5,OUTPUT);
pinMode(D6,OUTPUT);
C
pinMode(D7,OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
//terhubung ke network wifi
Serial.println();
Serial.println();
Serial.print("Connecting to ");
50 | A r i f S y a r i p u d i n
IoT Development Board 2017
Serial.println(ssid);
void loop() {
//periksa konektifitas client
WiFiClient client = server.available();
if (!client) {
G
return;
}
if (request.indexOf("/R1=ON") != -1) {
digitalWrite(D5, HIGH);
Relay1 = "ON";
}
if (request.indexOf("/R1=OFF") != -1) {
digitalWrite(D5, LOW);
Relay1 = "OFF";
}
if (request.indexOf("/R2=ON") != -1) {
digitalWrite(D6, HIGH);
Relay2 = "ON";
}
if (request.indexOf("/R2=OFF") != -1) {
digitalWrite(D6, LOW);
Relay2 = "OFF";
}
if (request.indexOf("/R3=ON") != -1) {
digitalWrite(D7, HIGH);
J
Relay3 = "ON";
}
if (request.indexOf("/R3=OFF") != -1) {
digitalWrite(D7, LOW);
Relay3 = "OFF";
}
if (request.indexOf("/ALL=ON") != -1) {
digitalWrite(D7, HIGH);
digitalWrite(D6, HIGH);
digitalWrite(D5, HIGH);
Relay3 = "ON";
Relay2 = "ON";
Relay1 = "ON";
}
if (request.indexOf("/ALL=OFF") != -1) {
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
52 | A r i f S y a r i p u d i n
IoT Development Board 2017
digitalWrite(D5, LOW);
Relay3 = "OFF";
Relay2 = "OFF";
Relay1 = "OFF";
}
53 | A r i f S y a r i p u d i n
IoT Development Board 2017
client.println("<a href=\"/R3=ON\"\"><button>R3 On</button></a>");
client.println(" ");
client.println("<a href=\"/R3=OFF\"\"><button>R3 Off</button></a>");
client.println(" ");
client.println("Relay3 is ");
O
client.println(String(Relay3));
client.println("<br><br>");
client.println("</html>");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
Penjelasan
Setup :
54 | A r i f S y a r i p u d i n
IoT Development Board 2017
Loop :
55 | A r i f S y a r i p u d i n
IoT Development Board 2017
Kendali Servo Dengan Sensor Kelembaban Tanah
Alat dan Bahan
- Module Sensor Kelembaban Tanah (1unit)
- IoT Development Board (1unit)
- Motor Servo MG905 (1uit)
- Toples yang berisi tanah berair dan kering / berisi air saja
- Adaptor / PSU 7-12VDC (min 1A)
Pengkabelan
Sensor Tranducer Board / Arduino Servo
Kelembaban
Pin Out 1,2 Conector 2pin - -
- VCC 5V-A -
- GND G -
- A0 A0 -
Motor Servo
- - G Coklat
- - V Merah
- - S (D5) Orange
Program
#include <Servo.h>
Servo servo1; A
int kadar_air;
int sweep;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
B
servo1.attach(5);
}
void loop() {
56 | A r i f S y a r i p u d i n
IoT Development Board 2017
// put your main code here, to run repeatedly:
kadar_air=analogRead(A0);
C
kadar_air=map(kadar_air,1024,0,0,100);
Serial.print("Kadar Air : ");
Serial.print(kadar_air);
D
Serial.println(" %");
delay(100);
if(kadar_air<30){
sweep=map(kadar_air,0,29,180,0);
E
servo1.write(sweep);
}
else if(kadar_air>=30){
servo1.write(0); F
}
}
Penjelasan
Setup :
Loop :
57 | A r i f S y a r i p u d i n
IoT Development Board 2017
RF ID
Alat dan Bahan
- Module RFID (1unit)
- IoT Development Board (1unit)
- Kabel Jumper Female to Female (10pcs)
- Library RFID
Pengkabelan
Module RFID Board / Arduino Relay Control
SDA D10 -
SCK D13 -
MOSI D11 -
MISO D12 -
GND G -
RST D9 -
3V3 3V3 -
- G G
- 5V-A 5V
- D3 R1
Program
#include <SPI.h>
#include <RFID.h>
A
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN,RST_PIN);
int serNum[5];
int cards[][5] = { B
{37,116,194,17,130},
{70,131,61,217,33} };
58 | A r i f S y a r i p u d i n
IoT Development Board 2017
bool access = false;
void setup(){
Serial.begin(9600);
SPI.begin();
rfid.init(); C
pinMode(3,OUTPUT);
}
void loop(){
if(rfid.isCard()){
if(rfid.readCardSerial()){
Serial.print(rfid.serNum[0]); Serial.print('\t');
Serial.print(rfid.serNum[1]); Serial.print('\t');
Serial.print(rfid.serNum[2]); Serial.print('\t');
D
Serial.print(rfid.serNum[3]); Serial.print('\t');
Serial.print(rfid.serNum[4]); Serial.print('\t');
Serial.print('\n');
for(int x = 0; x < sizeof(cards); x++)
{
for(int i = 0; i < sizeof(rfid.serNum); i++ )
{
if(rfid.serNum[i] != cards[x][i])
{
access = false;
E
break;
}
else
{
access = true;
}
}
if(access)
{
digitalWrite(3,HIGH); delay(2000);
F
digitalWrite(3,LOW);
break;
}
59 | A r i f S y a r i p u d i n
IoT Development Board 2017
}
}
}
delay(500);
}
Penjelasan
Setup :
Loop :
60 | A r i f S y a r i p u d i n
IoT Development Board 2017
Sensor DHT11
Alat dan Bahan
- Module DHT11 (1unit)
- IoT Development Board (1unit)
- Kabel Jumper Female to Female (7pcs)
- Library DHT11
Pengkabelan
DHT11 Board / Arduino Buzzer Control Relay
(+) 5V-A - 5V
Out D5 - -
(-) G G G
- D6 S -
- D2 - R1
- D3 - R2
- D4 - R3
Program
#include <dht.h>
dht DHT; A
#define DHT11_PIN 5
int dht_;
void setup()
{
Serial.begin(9600);
pinMode(2,OUTPUT);
B
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(6,OUTPUT);
}
61 | A r i f S y a r i p u d i n
IoT Development Board 2017
void loop()
{
dht_= DHT.read11(DHT11_PIN);
Serial.print("Humidity : ");
Serial.print(DHT.humidity, 1); C
Serial.print(",\t");
Serial.print("Temperature : ");
Serial.println(DHT.temperature, 1);
if(DHT.temperature>=27&&DHT.temperature<=30){
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(6,LOW);
}
if(DHT.temperature>=31&&DHT.temperature<=35){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,LOW); D
digitalWrite(6,LOW);
}
if(DHT.temperature>=36){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(6,HIGH);
}
}
Penjelasan
Setup :
A, Pemanggilan library DHT11, deklarasi class “dht” dan variable untuk
penyimpanan hasil pembacaan sensor DHT11. B, Konfigurasi baud rate
untuk serial monitor dengan bit rate 9600 dan pengalamatan pin 2 s.d 4
62 | A r i f S y a r i p u d i n
IoT Development Board 2017
sebagai Output yang terhubung dengan R1-3 pada Control Relay. Dan pin
6 sebagai output yang terhubung dengan pin “S” pada Buzzer.
Loop :
C, Pembacaan sensor DHT11 yang nilainya disimpan pada variable dht_ dan
hasilnya berupa humidity serta temperature ditampilkan pada serial
monitor. D, Event jika temperature yang terbaca diantara range 27 – 30
derajat Celcius maka relay 1 akan ON, jika range 31 – 35 derajat celcius
maka relay 1 dan 2 akan ON, jika temperature terbaca lebih besar dari 36
maka relai 1,2,3 dan buzzer akan On.
63 | A r i f S y a r i p u d i n
IoT Development Board 2017
Monitoring Sensor DHT11
Alat dan Bahan
- Module DHT11 (1unit)
- IoT Development Board (1unit)
- Kabel Jumper Female to Female (7pcs)
- Libarary DHT11 dan Wemos Wifi ESP8266
- Library Software Serial
Pengkabelan
DHT11 Board / Arduino Wemos Wifi Buzzer
(+) 5V-A 5V -
Out D5 - -
(-) G G G
- - D4 S
- D2 D3 -
- D3 D2 -
Program
1. Arduino Nano
#include <SoftwareSerial.h>
#include <dht.h>
dht DHT; A
SoftwareSerial rxtx(2,3);
#define DHT11_PIN 5
int dht_;
void setup()
{
Serial.begin(9600);
rxtx.begin(115200);
64 | A r i f S y a r i p u d i n
IoT Development Board 2017
}
void loop()
{
dht_= DHT.read11(DHT11_PIN);
Serial.print("Humidity : ");
Serial.print(DHT.humidity, 1);
Serial.print(",\t");
Serial.print("Temperature : ");
Serial.println(DHT.temperature, 1);
rxtx.println(DHT.humidity, 1);
rxtx.println(DHT.temperature, 1); B
delay(1000);
SoftwareSerial rxtx(D2,D3);
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
rxtx.begin(115200);
pinMode(D4, OUTPUT);
D
digitalWrite(D4, LOW);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
65 | A r i f S y a r i p u d i n
IoT Development Board 2017
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
if(rxtx.available()){
suhu1=rxtx.readString();
suhu=suhu1.substring(5,9);
suhu_alarm=suhu.toInt(); E
lembab=suhu1.substring(0,4);
suhu1="";
}
if(suhu_alarm>32){ digitalWrite(D4,HIGH); alarm="ON"; }
else if(suhu_alarm<32) { digitalWrite(D4,LOW); alarm="OFF"; } F
client.flush();
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
66 | A r i f S y a r i p u d i n
IoT Development Board 2017
client.println(""); // do not forget this one
//=====================================================================
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("<title>Monitoring DHT11</title>");
client.println("<meta http-equiv=\"refresh\"content=\"5\">"); //set refresh time \"1\"
rubah angka (detik)
client.println("</head>");
client.println("<body>");
client.println("<h2 align=\"left\">Monitoring Sensor DHT11</h2>");
client.println("<tr>");
client.println("<td align=\"left\">Suhu : "+String(suhu)+" C</td>");
client.println("<br></br>");
client.println("<td align=\"left\">Humidity : "+String(lembab)+"</td>");
client.println("<br></br>");
client.println("<td align=\"left\">Alarm : "+String(alarm)+"</td>"); G
client.println("</tr>");
client.println("</table>");
client.println("</body>");
client.println("</html>");
delay(1);
//Serial.println("Client disonnected");
//Serial.println("");
67 | A r i f S y a r i p u d i n
IoT Development Board 2017
Penjelasan
1. Arduino Nano
A, merupakan pemanggilan library software serial beserta deklarasi
pin D2 = RX dan D3 = TX pada Arduino nano. B, pengiriman data dari
hasil pembacaan sensor berupa nilai temperature dan humidity ke
wemos wifi melalui port software serial D2 dan D3.
2. Wemos Wifi
C, Setting yang sama dengan penggunaan wemos wifi pada percobaan
sebelumnya, namun disini ditambahkan fungsi dari library software
serial dimana D2=RX dan D3=TX pada module wemos wifi. D, setting
bau rate komunikasi software serial (D2, D3) dan pengalamatan
Output D4 yang terhubung ke Buzzer. E, Pembacaan data yang dikirim
oleh Arduino Nano untuk disimpan pada masing-masing variable
sesuai dengan fungsinya. F, Pengkondisi output jika suhu mencapai
lebih dari 32 derajat Celcius maka alarm akan berbunyi dan
sebaliknya. G, Fungsi untuk menampilkan nilai suhu pada halaman
browser.
68 | A r i f S y a r i p u d i n
IoT Development Board 2017
NRF24L01
Alat dan Bahan
- Module DHT11 (1unit)
- IoT Development Board (2unit)
- Linrary NRF24L01 dan DHT11
- IoT Development Board 1 (Node)
- IoT Development Board 2 (Server)
Pengkabelan
DHT11 Board / Arduino 1 Board / Arduino 2
(+) 5V-A -
Out D5 -
(-) G -
NRF24L01 (Board1) - -
CE 9 -
CSN 10 -
NRF24L01 (Board2) - -
CE - 9
CSN - 10
Program
1. IoT Development Board 1 (Node)
#include <SPI.h>
#include <nRF24L01.h>
A
#include <RF24.h>
#include <dht.h>
69 | A r i f S y a r i p u d i n
IoT Development Board 2017
dht DHT;
#define DHT11_PIN 5
RF24 radio(9,10); B
const uint64_t rxAddr=0xE8E8F0F0E1LL;
char text[30]={0};
String RadioSend;
//---------Variable DHT
int dht_sens, dht_hum, dht_temp;
String sens_temp, sens_hum; C
void setup() {
Serial.begin(9600); D
radio.begin();
}
void loop() {
dht_sens=DHT.read11(DHT11_PIN);
dht_hum=DHT.humidity; E
dht_temp=DHT.temperature;
sens_hum=String(dht_hum)+"A";
//------------------------------------temperature
F
sens_temp=String(dht_temp)+"B";
//------------------------------------
radio.setRetries(15,15);
radio.openWritingPipe(rxAddr);
radio.stopListening();
RadioSend=sens_hum+sens_temp; G
Serial.println(RadioSend);
RadioSend.toCharArray(text,100);
radio.write(&text,sizeof(text));
delay(1000);
}
70 | A r i f S y a r i p u d i n
IoT Development Board 2017
2. IoT Development Board 2 (Server)
#include <SPI.h>
#include <nRF24L01.h>
A
#include <RF24.h>
RF24 radio(9,10);
const uint64_t rxAddr=0xE8E8F0F0E1LL; B
char text[100]={0};
String baca1;
//-------Untuk Humidity
String sens_hum;
int hum_sens;
//-------Untuk Temperature
C
String sens_temp;
int temp_sens;
void setup() {
Serial.begin(9600);
radio.begin();
D
}
void loop() {
radio.openReadingPipe(1,rxAddr);
radio.startListening(); E
if(radio.available())
{
radio.read(&text,sizeof(text));
if(text){
baca1+=text;
if(baca1.indexOf("B")>-1){
sens_hum=baca1.substring(0,2); //A F
sens_temp=baca1.substring(3,5); //B
hum_sens=sens_hum.toInt();
temp_sens=sens_temp.toInt();
//------------------
baca1="";
text[100]={0};
71 | A r i f S y a r i p u d i n
IoT Development Board 2017
}
}
baca1="";
}
Serial.print("Suhu : ");
Serial.print(temp_sens); Serial.print("`C");
Serial.print('\t');
Serial.print("Humidity : "); G
Serial.print(hum_sens); Serial.println("%");
delay(1000);
}
Penjelasan
1. IoT Development Board 1 (Node)
Setup :
A, pustaka library SPI, NRF24L01 dan NRF serta sensor DHT11. B,
Deklarasi class dari DHT, Pengalamatan Pin CE dan CSN radio ke pin
9 dan 10, pengalamatan untuk komunikasi NRF24L01
(“0xE8E8F0F0E1LL”), buffer untuk pengiriman data dari Node ke
Server, penyimpanan data sensor keseluruhan yang akan di kirim
ke Server. C, Variable penyimpanan data hasil pembacaan sensor
DHT11. D, Setting baudrate untuk serial monitor dan inisialisasi
fungsi radio NRF24L01.
Loop :
E, Fungsi pembacaan nilai sensor DHT11 berupa temperature dan
humidity. F, Peubah nilai temperature dan humidity yang
72 | A r i f S y a r i p u d i n
IoT Development Board 2017
tersimpan menjadi sebuah String. G, Pengiriman data berupa
String (Sensor DHT11) melalui NRF24L01.
Loop :
E, memulai untuk penerimaan data yang dikirim oleh NRF24L01
(Node). F, Jika komunikasi radio terdeteksi maka pembacaan data
Radio Node (Sensor DHT11) akan segera dimulai. G, Menampilkan
data yang diterima pada serial monitor.
73 | A r i f S y a r i p u d i n
IoT Development Board 2017
Daftar Pustaka
74 | A r i f S y a r i p u d i n