Anda di halaman 1dari 7

Bagian I

1. Jelaskan pengertian iOT dalam sebuah arsitektur embedded system ?


IoT didefinisikan sebagai interkoneksi dari perangkat komputasi tertanam (embedded computing devices)
yang teridentifikasi secara unik dalam keberadaan infrastruktur internet. Dapat ditarik kesimpulan
bahwa IoT pada dasarnya menghubungkan Embedded System ke Internet.
2. Sebutkan 6 Key Concept dari iOT ?

 Connected products
 Connected assets
 Connected fleets
 Connected infrastructures
 Connected markets
 Connected people

3. Jelaskan apa yang dimaksud ubidots?


Ubidots adalah sebuah platform Internet of Things yang berasal dari Boston, Amerika Serikat. Platform
ini menawarkan jasa gratis dan berbayar dengan ketentuan Sensor yang bisa dipakai jika memakai jasa
gratis user dibatasi hingga 5 sensor. Ubidots juga memiliki layanan notifikasi SMS dan email jika dengan
trigger yang dibuat berdasarkan data sensor yang user tetapkan sebelumnya.
4. Jelaskan kegunaan dari Firebase Realtime DB ?
Kegunaan firebase realtime db adalah untuk menyimpan data-data ke dalam cloud secara realtime, data
disimpan dalam bentuk json. Juga berguna untuk memberikan informasi terbaru kepada perangkat yang
terhubung setiap kali data perubahan data.
5. Apa itu firebase, layanan - layanan apa saja yang disediakan firebase selain Realtime DB ?
Firebase adalah suatu layanan dari Google yang digunakan untuk mempermudah para pengembang aplikasi
dalam mengembangkan aplikasi. Dengan adanya Firebase, pengembang aplikasi bisa fokus mengembangkan
aplikasi tanpa harus memberikan usaha yang besar. 

Berikut adalah layanan yang disediakan firebase selain Realtime :

 Firebase Cloud Messaging


Firebase Cloud Messaging (FCM) dapat mengirim dan menerima pesan lintas platform
seperti Android, iOS, dan aplikasi web. Dengan Firebase Cloud Messaging kita bisa memberikan
pemberitahuan dan membuat komunikasi dua arah antara perangkat
 Firebase Authentication
Firebase Authentication merupakan layanan sistem otentikasi yang menerapkan kode client-side,
sehingga pengguna dapat mendaftar dan login ke
aplikasi Facebook, GitHub, Twitter dan Google (Google Play Games

 Firebase Remote Config


Firebase Remote Config adalah fitur yang memungkinkan digunakan untuk melakukan perubahan
konfigurasi di dalam aplikasi Android / iOS, tanpa harus melakukan pembaruan aplikasi di Play
Store / App Store.

 Firebase Realtime Database


Firebase menyediakan realtime database dan backend sebagai layanan. Layanan ini menyediakan
pengembang Antarmuka pemrograman aplikasi yang memungkinkan data aplikasi disinkronkan
di seluruh klien dan disimpan di Firebase cloud .

 Firebase Storage
Firebase Storage dirancang untuk pengembang aplikasi yang perlu menyimpan dan menampilkan
konten buatan pengguna, seperti foto atau video dan menambahkan keamanan Google pada
unggah dan unduh berkas untuk aplikasi Firebase, bagaimanapun kualitas jaringannya.

 Firebase Hosting
Firebase Hosting menyediakan hosting yang cepat dan aman untuk aplikasi web serta konten
yang statis dan dinamis.

BAGIAN II

1. Untuk arsitektur pada gambar kiri perangkat akan mempublish data ke broker , kemudian dari broker
akan merute ulang pesan kepada setiap subscriber seperti pada web app, tapi pada kali ini ada
subscriber lain yang terhubung yang merepresentasikan dari sebuah API engine yang akan menerima
data dan kemudian akan mengirimnya ke database web service untuk disimpan.
Untuk arsitektur yang kanan, perangkat pertamanya akan mempublish data ke broker kemudian akan
mengirim permintaan HTTP pada database webservice untuk menyimpan data. Untuk
arsitektur,perangkat ini membutuhkan 2 implementasi client yaitu sebuah MQTT dan sebuah client
HTTP.

2. Buatlah project mengirim data sensor suhu / humadity ke sebuah firebase dengan langkah-
langkah berikut
Buatlah project Firebase
Gambar project Firebase yang telah dibuat dengan nama Interface
Hubungkan embedded system yang anda bangun dengan wifi, sambungkan
arduino dengan esp8266, buatlah code untuk dapat koneksi ke WiFi (anda bisa
menggunakan komponen lain)
Code untuk terhubung dengan wifi :
WiFi.begin(“Nama SSID”, “Pass wifi”);
Serial.print("Menghubungkan");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("IP: ");
Serial.println(WiFi.localIP());
Serial.println();

Tambahkan code untuk firebase auth


Code untuk firebase auth :
Firebase.begin(“isi nama host database realtime”, “Isi dengan secret key”);

Tambahkan code untuk membaca sensor suhu


Code untuk membaca sensor :
humidity = dht.readHumidity();
temperature = dht.readTemperature();

Tambahkan code untuk mengirimkan data dalam bentuk arduinoJSON ke firebase


realtime DB
Code untuk mengirim data dalam bentuk json ‘firebaseData’:
if (Firebase.setFloat(firebaseData, path + "/suhu", + temperature))
{
Serial.println("PATH: " + firebaseData.dataPath());
Serial.println("TYPE: " + firebaseData.dataType());
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C ");
}
if (Firebase.setFloat(firebaseData, path + "/kelembaban", + humidity))
{
Serial.print(" Humidity: ");
Serial.print(humidity);
Serial.println(" %");
}

Gambar

Full Code
#define DHTPIN 2
#define DHTTYPE DHT22
#define FIREBASE_HOST "https://interface-71b37.firebaseio.com/"
#define FIREBASE_AUTH "we2jTfexR4YCDfm1AZhgaLnRKz0oC2UDegXiH4sx"
#define WIFI_SSID "ORLANDO"
#define WIFI_PASSWORD "1NDONESIA"
DHT dht(DHTPIN, DHTTYPE);

FirebaseData firebaseData;
FirebaseJson json;

String path = "/dht22";


uint8_t i =0;
float humidity;
float temperature;

void setup()
{

Serial.begin(115200);
dht.begin();
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Menghubungkan");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("IP: ");
Serial.println(WiFi.localIP());
Serial.println();

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);

Firebase.setReadTimeout(firebaseData, 1000 * 60);

//tiny, small, medium, large and unlimited.


//Size and its write timeout e.g. tiny (1s), small (10s), medium (30s) and large (60s).
Firebase.setwriteSizeLimit(firebaseData, "tiny");
}

void loop()
{
humidity = dht.readHumidity();
temperature = dht.readTemperature();

Serial.println("Kirim data ke firebase...");


if (Firebase.setFloat(firebaseData, path + "/suhu", + temperature))
{
Serial.println("PATH: " + firebaseData.dataPath());
Serial.println("TYPE: " + firebaseData.dataType());
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C ");
}
if (Firebase.setFloat(firebaseData, path + "/kelembaban", + humidity))
{
Serial.print(" Humidity: ");
Serial.print(humidity);
Serial.println(" %");
}
else
{
Serial.println("Gagal");
Serial.println("REASON: " + firebaseData.errorReason());
Serial.println("------------------------------------");
Serial.println();
}
delay(1000);
}

Anda mungkin juga menyukai