Anda di halaman 1dari 18

Assignment

INTERNET OF THINGS

Individual

2402225944 – Muhammad Mushlikh

Session 06

Muhammad Mushlikh – Internet Of Things Assignment


(Adopted from slide Digitalent.kominfo.go.id)

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 (apachefriends.org)

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 http://localhost:808/phpmyadmin/ (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 = "192.168.100.5";
const int port = 808;

void setup(void) {
Serial.begin(9600); //Setup baudrate on 9600
// while (!Serial)
delay(3000); // will pause Zero, Leonardo, etc until serial console opens
Serial.println("==============================================");
Serial.println("Start of initialization step");

// Try to initialize!
if (!mpuObj.begin()) { //Start mpuObj by running method begin, and check if it
failed or succeed
Serial.println("Failed to find MPU6050 chip"); //Print information about the
connecting process to MPU6050 device is failed
}else{
Serial.println("MPU6050 Found!"); //Print information about the connecting
process to MPU6050 device is succeed
}

mpuObj.setAccelerometerRange(accelRange); //Setup accelerometer range


Serial.print("Accelerometer range set to: ");
Serial.println(accelRange);

mpuObj.setGyroRange(gyroRange); //Setup gyrometer range


Serial.print("Gyro range set to: ");
Serial.println(gyroRange);

mpuObj.setFilterBandwidth(bandwith); //Setup bandwidh filter value


Serial.print("Filter bandwidth set to: ");
Serial.println(bandwith);

Muhammad Mushlikh – Internet Of Things Assignment


Serial.println("End initialization step");
Serial.println("==============================================");

WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password); //Menginisiasi koneksi ke jaringan WiFi
while (WiFi.status() != WL_CONNECTED){ //Pengecekan status koneksi WiFi
delay(500);
Serial.print(".");
}

Serial.print("Connected to WiFi using IP : ");


Serial.println(WiFi.localIP());

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
mpuObj.getEvent(&accelerometerV, &gyrometerV, &temperatureV); //Get data
from sensor and put it into temporary variable that defined earlier

Serial.print("Temperature (in Celcius degree) : ");


Serial.println(temperatureV.temperature);

WiFiClient client; //Define variable WiFiClient yang diperuntukan sebagai


client terhadap webserver API yang akan di invoke
if (!client.connect(host, port)) { //Inisiasi koneksi terhadap webserver
API
Serial.println("connection failed");
}

// Menyusun url beserta payload dari API yang akan kita invoke
client.print(String("GET
http://localhost:808/arduino_project/mcu_insertData.php?")
+ ("&temperature=") + temperatureV.temperature + "\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(client.available() == 0){ //Pengecekan response dari webserver API
if(millis() - timeout >1000){
Serial.println(">> No response from client");
client.stop();
return;
}
}

// Membaca response yang dikirimkan oleh webserver API


while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}

Serial.println("-----------------------------------------------------------
---");

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

Anda mungkin juga menyukai