Assignment
INTERNET OF THINGS
Individual
2402225944 – Muhammad Mushlikh
Session 06
Muhammad Mushlikh – Internet Of Things Assignment
(Adopted from slide [Link])
Praktek MPU6050 dengan NodeMCU dengan sensor suhu LM-35.
Access
Point
Lakukan langkah-langkah Percobaan
• Merangkai IoT device sederhana menggunakan ESP8266 atau ESP32.
• Perangkat diprogram dengan Arduino IDE.
• Sensor yang digunakan adalah sensor suhu dengan keluaran tegangan analog, LM-35.
Sebagai proof-of-concept bahwa IoT device kita dapat terhubung ke jaringan TCP/IP, skenario yang
diambil adalah skenario sederhana menjadikan ESP8266 atau ESP32 sebagai webserver di dalam jaringan
adhoc lokal
Dokumentasikan (screenshot /pdf atau videokan ) setiap langkah yang anda buat. Dan buat keterangan
secukupnya.
Muhammad Mushlikh – Internet Of Things Assignment
Tujuan Assignment :
- Mempraktekan kemampuan microcontroller sebagai web server yang mampu terhubungan ke
jaringan berbasis TCP/IP
- Membuat code arduino yang mampu membuat microcontroller dapat meng-invoke API
- Membuat API berbasis PHP yang dapat melakukan query terhadap data-data yang dihasilkan oleh
sensor
Muhammad Mushlikh – Internet Of Things Assignment
Step by step assignment :
1. Menyiapkan sirkuit (micro controller dan sensor) yang diperlukan untuk dapat menghasilkan
informasi suhu udara
2. Menyiapkan web server di local adhoc yang akan digunakan sebagai web server dan database
3. Menyiapkan database dan table yang nanti akan digunakan oleh micro controller untuk
menyimpan data suhu yang dihasilkan oleh sensor
4. Membuat code PHP sebagai API yang nantinya akan di invoke oleh channel(laptop atau HP)
maupun microcontroller
5. Membuat code Arduino agar dapat mengirimkan informasi suhu yang diperoleh sensor ke dalam
API yang nantinya akan tersimpan ke dalam database yang sudah disiapkan
6. Melakukan test dari channel (laptop/HP)
Muhammad Mushlikh – Internet Of Things Assignment
Step by step details :
1. Menyiapkan sirkuit (micro controller dan sensor) yang diperlukan untuk dapat menghasilkan
informasi suhu udara.
- Menyusun sirkuit micro controller
Muhammad Mushlikh – Internet Of Things Assignment
- Menghubungkan sirkuti ke laptop
2. Menyiapkan web server di local adhoc yang akan digunakan sebagai web server dan database
- Menginstal XAMPP
Download XAMPP pada link berikut : Download XAMPP ([Link])
Muhammad Mushlikh – Internet Of Things Assignment
Lakukan proses instalasi hingga XAMPP Control Panel dapat terbuka
- Menginisiasi Apache server sebagai web server
Muhammad Mushlikh – Internet Of Things Assignment
- Menginisiasi MySql sebagai database
3. Menyiapkan database dan table yang nanti akan digunakan oleh micro controller untuk
menyimpan data suhu yang dihasilkan oleh sensor
- Membuat database
Ketika Apache dan MySql sudah di inisiasi, maka kita dapat membuat database baru melalui
browser menggunakan url [Link] (port yang digunakan
menyesuaikan configurasi masing masing).
Klik tomol New yang terdapat paga menu bagian kiri. Dan isi nama database yang akan dibuat.
Muhammad Mushlikh – Internet Of Things Assignment
Pastikan database sudah terbuat dengan melihat list database.
- Membuat table
Untuk membuat table, pilih dan expand database dimana table akan dibuat kemudian klik tombol
New yang ada di dalam database yang kita pilih.
Muhammad Mushlikh – Internet Of Things Assignment
Isi informasi yang dibutuhkan seperti nama table dan struktur serta data type dari tiap field yang
ingin ditambahkan ke dalam table yang akan kita buat.
Berikut struktur table yang saya gunakan.
Muhammad Mushlikh – Internet Of Things Assignment
4. Membuat code PHP sebagai API yang nantinya akan di invoke oleh channel(laptop atau HP)
maupun microcontroller
- Membuat folder API pada directory xampp kita, di bawah folder htdocs
- Membuat API insert data
Membuat file berekstensi php di dalam folder API yang sudah kita siapkan. Dan isikan file tersebut
dengan code yang berisi logic yang dibutuhkan dari proses inisiasi koneksi ke database, menyusun
query untuk penambahan data, serta penyusunan response API.
Muhammad Mushlikh – Internet Of Things Assignment
- Membuat API get data
Membuat file berekstensi php di dalam folder API yang sudah kita siapkan. Dan isikan file tersebut
dengan code yang berisi logic yang dibutuhkan dari proses inisiasi koneksi ke database, menyusun
query untuk menampikan data yang diinginkan sesuai kondisi yang diinginkan, serta penyusunan
response API.
Muhammad Mushlikh – Internet Of Things Assignment
5. Membuat code Arduino agar dapat mengirimkan informasi suhu yang diperoleh sensor ke dalam
API yang nantinya akan tersimpan ke dalam database yang sudah disiapkan
- Membuat code Arduino
Muhammad Mushlikh – Internet Of Things Assignment
#include <ESP8266WiFi.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
#define accelRange MPU6050_RANGE_8_G
#define gyroRange MPU6050_RANGE_500_DEG
#define bandwith MPU6050_BAND_21_HZ
Adafruit_MPU6050 mpuObj; //Instantiate class Adafruit_MPU6050 as mpuObj object
const char* ssid = "6!u2dWB9s8y@";
const char* password = "littlemice19";
const char* host = "[Link]";
const int port = 808;
void setup(void) {
[Link](9600); //Setup baudrate on 9600
// while (!Serial)
delay(3000); // will pause Zero, Leonardo, etc until serial console opens
[Link]("==============================================");
[Link]("Start of initialization step");
// Try to initialize!
if (![Link]()) { //Start mpuObj by running method begin, and check if it
failed or succeed
[Link]("Failed to find MPU6050 chip"); //Print information about the
connecting process to MPU6050 device is failed
}else{
[Link]("MPU6050 Found!"); //Print information about the connecting
process to MPU6050 device is succeed
}
[Link](accelRange); //Setup accelerometer range
[Link]("Accelerometer range set to: ");
[Link](accelRange);
[Link](gyroRange); //Setup gyrometer range
[Link]("Gyro range set to: ");
[Link](gyroRange);
[Link](bandwith); //Setup bandwidh filter value
[Link]("Filter bandwidth set to: ");
[Link](bandwith);
Muhammad Mushlikh – Internet Of Things Assignment
[Link]("End initialization step");
[Link]("==============================================");
[Link](WIFI_STA);
[Link](ssid, password); //Menginisiasi koneksi ke jaringan WiFi
while ([Link]() != WL_CONNECTED){ //Pengecekan status koneksi WiFi
delay(500);
[Link](".");
}
[Link]("Connected to WiFi using IP : ");
[Link]([Link]());
void loop() {
delay(2000);
/* Get new sensor events with the readings */
sensors_event_t accelerometerV, gyrometerV, temperatureV; //Define
temporary variable that contain information about sensor information value
[Link](&accelerometerV, &gyrometerV, &temperatureV); //Get data
from sensor and put it into temporary variable that defined earlier
[Link]("Temperature (in Celcius degree) : ");
[Link]([Link]);
WiFiClient client; //Define variable WiFiClient yang diperuntukan sebagai
client terhadap webserver API yang akan di invoke
if () { //Inisiasi koneksi terhadap webserver
API
[Link]("connection failed");
}
// Menyusun url beserta payload dari API yang akan kita invoke
[Link](String("GET
[Link]
+ ("&temperature=") + [Link] + "\r\n"
+ "HTTP/1.1\r\n"
+ "Host: " + host + "\r\n"
+ "Connection: close\r\n\r\n");
Muhammad Mushlikh – Internet Of Things Assignment
unsigned long timeout = millis();
while([Link]() == 0){ //Pengecekan response dari webserver API
if(millis() - timeout >1000){
[Link](">> No response from client");
[Link]();
return;
}
}
// Membaca response yang dikirimkan oleh webserver API
while([Link]()){
String line = [Link]('\r');
[Link](line);
}
[Link]("-----------------------------------------------------------
---");
6. Melakukan test dari channel (laptop/HP)
- Melakukan pengecekan data yang dikirim microcontroller
Muhammad Mushlikh – Internet Of Things Assignment
- Melakukan test dari 3rd party application untuk API
Muhammad Mushlikh – Internet Of Things Assignment
Kesimpulan :
1. ESP8266 terkoneksi ke jaringan WiFi.
2. ESP8266 dapat berfungsi sebagai webserver client yang dapat meng-invoke API webserver
lain
3. Data yang dihasilkan oleh sensor suhu MPU6050 melalui ESP8266 dapat terintegrasi dan
tersimpan ke dalam database yang sudah disiapkan
4. Data yang tersimpan di dalam database dapat diolah untuk dapat digunakan oleh channel
(Laptop / HP) melalui API yang sudah dibuat
Muhammad Mushlikh – Internet Of Things Assignment