Embedded System (IF3122) : Laporan Praktikum
Embedded System (IF3122) : Laporan Praktikum
Pernyataan Orisinalitas
Dengan ini penulis bertanggung jawab sepenuhnya atas isi dari dokumen
ini dan menyatakan bahwa seluruh isi dokumen ini adalah hasil karya penulis
sendiri, dan setiap karya orang lain yang digunakan dalam dokumen ini telah
diparafrase dan sudah disitasi sesuai dengan ketentuan yang ada.
Daftar Isi
1. Pendahuluan 3
1.2. Dasar Teori 3
Internet of Things 3
Cloud Computing 3
Firebase 3
Telegram 3
2. Percobaan Pertama : Penggunaan Firebase 4
2.1. Tujuan Percobaan 4
2.2. Alat dan Bahan Percobaan 4
Perangkat Lunak 4
Perangkat Keras 4
Kode / Script 4
2.3. Langkah Pengerjaan 6
2.4. Analisa Percobaan 7
2.5. Pertanyaan Praktikum 7
3. Percobaan Kedua : Penggunaan Telegram 7
3.1. Tujuan Percobaan 7
3.3. Alat dan Bahan Percobaan 8
Perangkat Lunak 8
Perangkat Keras 8
Kode / Script 8
3.4. Langkah Pengerjaan 10
3.5. Analisa Percobaan 11
3.6. Pertanyaan Praktikum 11
4. Challenge 1 : Percobaan menggunakan Firebase 11
4.1. Tujuan Percobaan 11
4.2. Alat dan Bahan Percobaan 12
Perangkat Lunak 12
Perangkat Keras 12
Kode / Script 12
4.3. Langkah Pengerjaan 13
4.4. Analisa Percobaan 14
5. Challenge 2 : Percobaan dengan Telegram 14
5.1. Tujuan Percobaan 14
5.2. Alat dan Bahan Percobaan 14
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 1
IoT and Cloud 1
Perangkat Lunak 14
Perangkat Keras 14
Kode / Script 14
5.3. Langkah Pengerjaan 16
5.4. Analisa Percobaan 17
Referensi 19
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 2
IoT and Cloud 1
1. Pendahuluan
Internet of Things
Menurut Casagras (Coordination and support action for global RFID-related
activities and standardisation) Internet Of Things (IoT) adalah sebuah infrastruktur
jaringan global, yang dapat menghubungkan perangkat keras dan virtual melalui
eksploitasi data capture serta kemampuan komunikasi. Dalam Infrastruktur terdiri
dari jaringan yang sudah ada dan internet serta pengembangan jaringannya.
Sehingga, IoT ini menawarkan objek, sensor dan kemampuan koneksi agar dapat
menyediakan layanan dan aplikasi kooperatif yang independen.
Cloud Computing
Komputasi awan atau Cloud computing adalah pengiriman layanan komputasi
termasuk server, penyimpanan, database, jaringan, perangkat lunak, analitik, dan
kecerdasan melalui Internet (“cloud”) untuk menawarkan inovasi yang lebih cepat,
sumber daya yang fleksibel, dan skala ekonomi. Anda biasanya hanya membayar
untuk layanan cloud yang Anda gunakan, membantu Anda menurunkan biaya
pengoperasian, menjalankan infrastruktur dengan lebih efisien, dan menskalakan
seiring dengan perubahan kebutuhan bisnis Anda. Beberapa Cloud provider saat
ini adalah Google Cloud, Microsoft Azure, Amazon, dan lainnya.
Firebase
Firebase adalah platform yang dikembangkan oleh Google yang berguna
mempermudah pengembangan aplikasi berbasis mobile maupun web. Beberapa
layanan Firebase yang dapat sering digunakan antara lain Firebase Cloudstore,
Authentication, Realtime Database dsb. Firebase Realtime Database merupakan
database No-SQL yang tergolong database terhost di cloud, data disimpan dalam
bentuk JSON dan disinkronkan secara realtime.
Telegram
Telegram adalah sistem pesan instan (IM) lintas platform berbasis cloud. Layanan
ini juga menyediakan panggilan video terenkripsi end-to-end, VoIP, berbagi file, dan
beberapa fitur lainnya. Ini diluncurkan untuk iOS pada 14 Agustus 2013 dan Android
pada Oktober 2013. Server Telegram didistribusikan di seluruh dunia untuk
mengurangi beban data dengan lima pusat data di berbagai wilayah, sedangkan
pusat operasional berbasis di Dubai di Uni Emirat Arab. Berbagai aplikasi klien
tersedia untuk platform desktop dan seluler termasuk aplikasi resmi untuk Android,
iOS, Windows, macOS, dan Linux (walaupun pendaftaran memerlukan perangkat
iOS atau Android dan nomor telepon yang berfungsi). Ada juga dua aplikasi kembar
web Telegram resmi WebK dan WebZ dan banyak klien tidak resmi yang
menggunakan protokol Telegram. Semua komponen resmi Telegram adalah open
source, kecuali server yang bersifat closed-source dan proprietary.
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 3
IoT and Cloud 1
Perangkat Lunak
Pada percobaan pertama, kami menggunakan Arduino IDE dan Firebase sebagai
perangkat lunak.
Perangkat Keras
Perangkat keras yang digunakan antara lain, ESP8266, DHT 11, breadboard, kabel
jumper, dan kabel USB.
Kode / Script
Pada eksperimen ini juga telah disediakan script yang akan dijalankan pada
Arduino IDE sebagai berikut:
#include <FirebaseESP8266.h>
#include <ESP8266WiFi.h>
#include "DHT.h"
#define DHTPIN 14
FirebaseData firebaseData;
FirebaseJson json;
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin (WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting...");
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(300);
}
Serial.println();
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 4
IoT and Cloud 1
Firebase.begin(FIREBASE_HOST,FIREBASE_Authorization_k
ey);
}
void loop() {
if (isnan(hum) || isnan(temp)){
Serial.println(F("Failed to read from DHT
sensor!"));
return;
}
Serial.print("Temperature: ");
Serial.print(temp);
Serial.print("°C");
Serial.print(" Humidity: ");
Serial.print(hum);
Serial.print("%");
Serial.println();
Firebase.setFloat(firebaseData,
"/ESP32_APP/TEMPERATURE", temp);
Firebase.setFloat(firebaseData,
"/ESP32_APP/HUMIDITY", hum);
delay(200);
}
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 5
IoT and Cloud 1
1. Siapkan perangkat lunak dan perangkat keras yang akan digunakan dalam
percobaan ini.
2. Melakukan konfigurasi pada firebase pada link berikut
https://console.firebase.google.com
3. Dan lakukan beberapa langkah untuk membuat project.
4. Setelah melakukan konfigurasi pada firebase, masuk ke realtime database
melalui bagian navigasi. Lalu buat database.
5. Langkah selanjutnya kita buat rangkaian menggunakan DHT 11 dan
ESP8266 seperti gambar dibawah ini.
Gambar 1 Rangkaian
6. Pada Aerduino IDE, kita ketik kode/script. Lalu lakukan verify dan upload.
7. Tunggu sampai proses upload selesai.
8. Lalu buka serial monitor dan realtime database yang telah dibuat
sebelumnya untuk menampilkan hasil.
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 6
IoT and Cloud 1
Dalam percobaan pertama ini firebase dan serial monitor akan menampilkan
informasi yang dihasilkan dari sensor DHT 11. Hal ini disebabkan ESP8266 telah
dikonfigurasi ke firebase sehingga hasil yang didapat secara realtime akan
ditampilkan pada firebase.
Pada percobaan ini, menurut anda mengapa harus menggunakan pin analog?
Pada percobaan modul ini menggunakan pin analog yang menerima input sinyal
analog dan dapat mengubah sinyal analog yang masuk menjadi output digital
dengan menggunakan perintah analogRead() sebagai penghubung pada pin
ESP8266.
Apa fungsi dari String path = "/Flame"?
String path = /Flame berfungsi sebagai penyimpan data kelembaban pada sensor
DHT 11.
Pada percobaan ini, mengapa harus menggunakan Realtime database?
Pada dasarnya data yang dikirim akan berubah terus menerus, dan realtime
database digunakan untuk menyimpan data serta melakukan sinkronisasi ke user.
Apa yang dimaksud dengan NoSQL dan apa perbedaannya dengan SQL?
Database NoSQL merupakan singkatan dari Not Only SQL dengan skema yang
fleksibel sehingga data dapat spesifik dan membuat aplikasi modern mempunyai
skema yang fleksibel.
Pada percobaan kedua ini akan menggunakan media chat bot telegram untuk
melakukan kontrol terhadap led flash ESP8266 melalui pesan yang dikirimkan
kedalam chat bot telegram.
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 7
IoT and Cloud 1
Perangkat Lunak
Pada percobaan kedua ini menggunakan Arduino IDE dan Telegram sebagai
perangkat lunak.
Perangkat Keras
Adapun perangkat keras yang digunakan ESP8266 dan kabel USB.
Kode / Script
#ifdef ESP32
#include <WiFi.h>
#else
#include <ESP8266WiFi.h>
#endif
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#ifdef ESP8266
X509List cert(TELEGRAM_CERTIFICATE_ROOT);
#endif
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
if(text == "/start"){
String welcome = "welcome, " + from_name +
".\n";
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 8
IoT and Cloud 1
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
#ifdef ESP8266
configTime(0, 0, "pool.ntp.org");
client.setTrustAnchors(&cert);
#endif
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, ledState);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid,password);
#ifdef ESP32
client.setCACert(TELEGRAM_CERTIFICATE_ROOT);
#endif
while(WiFi.status() != WL_CONNECTED){
delay(1000);
Serial.println("Connecting to WiFi..");
}
Serial.println(WiFi.localIP());
}
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 9
IoT and Cloud 1
void loop() {
// put your main code here, to run repeatedly:
if(millis()>lastTimeBotRan + botRequestDelay){
int numNewMessages =
bot.getUpdates(bot.last_message_received + 1);
while(numNewMessages){
Serial.println("got response");
handleNewMessages(numNewMessages);
numNewMessages =
bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
}
1. Siapkan perangkat lunak dan perangkat keras yang akan digunakan dalam
percobaan ini.
2. Hubungkan ESP8266 pada laptop menggunakan kabel USB.
3. Setelah terhubung, masukkan kode/script kedalam lembar kerja Arduino
IDE, lalu lakukan verify dan Upload.
4. Siapkan bot telegram yang ingin kita hubungkan ke perangkat keras.
5. Pada kolom pencarian ketik botfather
6. Ketik /start, dan buat bot baru menyesuaikan intsruksi yang disediakan oleh
botfather.
7. Setelah selesai, simpan token untuk mengakses API. Token akan
digunakan untuk melengkapi pada program yang kita buat. Klik link yang
diberikan botfather untuk mengarahkan ke bot yang baru kita buat.
8. Lakukan konfigurasi pada ESP8266 melalui kode/script yang telah
dibuatkan untuk menghubungkan.
9. Buka serial monitor pada Arduino IDE untuk melihat hasil.
10. Berikan beberapa intstruksi ke dalam bot telegram seperti /state untuk
mengetahui kondisi saat itu dan berikan instruksi lainnya.
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 10
IoT and Cloud 1
Dalam percobaan ini kami mencoba memberikan instruksi untuk melakukan kontrol
pada led flash ESP8266 melalui bot telegram. Yang kami lakukan pertama kali
melakukan konfigurasi untuk menghubungkan ESP8266 melaui SSID dan
password wifi, setelah kedua media terhubung melalui kode/script kita dapat
memerintahkan bot telegram untuk menghidupkan dan mematikan led flash yang
ada pada ESP8266 melalui pesan yang kita kirimkan pada bot telegram.
Pada challenge pertama ini bertujuan membuatan rangkaian buzzer yang dapat
menyala saat kondisi dari sensor terpenuhi, dan sebaliknya jika kondisi tidak
terpenuhi maka buzzer akan mati.
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 11
IoT and Cloud 1
Perangkat Lunak
Pada challenge ini menggunakan Arduino IDE dan Firebase.
Perangkat Keras
Adapun perangkat keras yang digunakan antara lain, breadboard, ESP8266,
buzzer, sensor ultrasonic, kabel jumper, dan kabel USB.
Kode / Script
#include <FirebaseESP8266.h>
#include <ESP8266WiFi.h>
FirebaseData firebaseData;
FirebaseJson json;
void setup() {
Serial.begin(115200);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
pinMode(buzzer,OUTPUT);
WiFi.begin (WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting...");
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST,FIREBASE_Authorization_key
);
}
void loop() {
digitalWrite(trig,LOW);
delay(10);
digitalWrite(trig,HIGH);
delay(10);
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 12
IoT and Cloud 1
digitalWrite(trig,LOW);
long durasi;
float jarak;
durasi = pulseIn(echo,HIGH);
jarak = durasi * 0.034/2;
Serial.print("Jarak (cm) : ");
Serial.println(jarak);
Firebase.setFloat(firebaseData, "/ESP32_APP/Jarak",
jarak);
if(jarak>5){
digitalWrite(buzzer,LOW);
Serial.println(F("buzzer tidak bersuara"));
delay(1000);
}else if(jarak<=5){
digitalWrite(buzzer,HIGH);
Serial.println(F("buzzer bersuara"));
delay(1000);
}
delay(1000);
}
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 13
IoT and Cloud 1
Pada challenge pertama ini, akan mengirimkan data yang akan dibaca sensor
ultrasonik ke firebase. Yang harus kita lakukan pertamakali yaitu membuat
database real-time pada firebase. Sambungkan echo pin, trig pin ke pin 12, buzzer
pin 18, lalu tentukan SSID dan password pada salah satu praktisi, dan tidak lupa
juga untuk menentukan API key yang digunakan serta URL database sambungkan
pada firebase lalu ubah echo menjadi INPUT, buzzer menjadi output. Program akan
melakukan perintah untuk memancarkan ultrasonik pada pemicu selama 10ms dan
dimatikan 10ms.
Tujuan pada challenge kedua ini yaitu membuat rangkaian lampu lalu lintas
sederhana menggunakan ESP8266 yang dikendalikan melalui bot telegram.
Perangkat Lunak
Pada challenge kedua ini akan menggunakan Arduino IDE dan Telegram sebagai
kontrol nyala lampu pada rangkaian.
Perangkat Keras
ESP8266, lampu led (merah, kuning, dan hijau), resistor, breadboard, kabel jumper,
dan kabel USB digunakan sebagi perangkat keras dalam percobaan ini.
Kode / Script
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ArduinoJson.h>
#define BOTtoken
"2124461382:AAFRbYsM4h67sLPAy78_fCohzgmcS_UnOlU" //bot-
telegram_token
#ifdef ESP8266
X509List cert(TELEGRAM_CERTIFICATE_ROOT);
#endif
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 14
IoT and Cloud 1
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 15
IoT and Cloud 1
}else{
bot.sendMessage(chat_id, "LED hijau menyala",
"");
}
}
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
#ifdef ESP8266
configTime(0, 0, "pool.ntp.org");
client.setTrustAnchors(&cert);
#endif
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(hijau, OUTPUT);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid,password);
while(WiFi.status() != WL_CONNECTED){
delay(1000);
Serial.println("Connecting to WiFi..");
}
Serial.println(WiFi.localIP());
}
void loop() {
// put your main code here, to run repeatedly:
if(millis()>lastTimeBotRan + botRequestDelay){
int numNewMessages =
bot.getUpdates(bot.last_message_received + 1);
while(numNewMessages){
Serial.println("got response");
handleNewMessages(numNewMessages);
numNewMessages =
bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
}
1. Siapkan perangkat lunak dan perangkat keras yang akan digunakan dalam
percobaan ini.
2. Hubungkan ESP8266 pada laptop menggunakan kabel USB.
3. Setelah terhubung, masukkan kode/script kedalam lembar kerja Arduino
IDE, lalu lakukan verify dan Upload.
4. Siapkan bot telegram yang ingin kita hubungkan ke perangkat keras.
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 16
IoT and Cloud 1
Pada challenge kedua ini kita dapat melakukan perintah untuk mengontrol lampu
pada rangkaian menggunakan telegram. BotRequestDelay dan LastTimeBotRan
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 17
IoT and Cloud 1
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 18
IoT and Cloud 1
Referensi
[1] A. Manullang, Martin Clinton Tosima Saputra, D. Sipangkar, and A. M. Bangun,
Alexander Diva Grael Ardhi, “IoT and Cloud 1,” vol. 0,
IF 3122 - 2021, Program Studi Teknik Informatika, Institut Teknologi Sumatera - Halaman 19