OLEH :
NIM : 2031110079
Kelas : 3B D3TE
Absen : 15
NIM : 203111079
#include “myGpio.h”
myGpio Led(2); //definisikan obyek Led tersambung pada pin 2
Led.set(); //nyalakan
LedLed.clear(); //matikan Led
Untuk memulai pembahasan, buat dulu project program baru dengan mencopy
program hasil Subbab 5.3 dan mengubah nama menjadi tesLibrary, setelah itu buka
project programya didalam VsCode dan hapus directory build karena berisi file-file hasil
compile project sebelumnya. Selanjutnya harus buat direktori “components” didalam
project program lalu buat direktori “mygpio” didalam direktori “component tersebut.
Untuk membuat direktori, pilih direktori induknya lalu klik icon New Folder,
seperti ditunjukkan dalam Gambar 6.1.
New File
Setelah itu buat file mygpio.h dan mygpio.cpp didalam direktori mygpio, dengan cara
klik direktori mygpio lalu klik icon New File dan beri nama filenya. Buka file mygpio.h dan
ketikkan beberapa instruksi sehingga tampak seperti pada listing dibawah ini.
#pragma once
#include “Arduino”
Class myGpio{
Public :
myGpio (int pin, int mode =OUTPUT);
void set ();
void clear();
bool isClear();
private :
int _pin;
};
#include “mygpio.h”
Setelah selesai melakukkan editing pada Listing program langkah selanjutnya yaitu
meng-copy paste file CMakeList.txt yang ada didalam direktori main kedalam direktori
mygpio yang telah kita buat sebelumnya. Buka file CMakeList.txt hasil copy-an lalu ubah
listing programnya seperti pada isting dibawah ini
Idf_components_register(
SRCS “mygpio.cpp”
INCLUDE_DIRS ”.”
REQUIRES “arduino”
)
Tambahkan library mygpio ke dalam project program dengan cara membuka file
CMakeLists.txt project program (yang langsung dibawah direktori tesLibrary,
bukan didalam direktori mygpio maupun didalam direktori main), tambahkan
“mygpio” kedalam instruksi baris ke-6 sehingga tampak seperti Listing dibawah ini.
Setelah itu buka file main.cpp lalu ubah intrusi program seperti pada listing dibawah
ini
Disini terdapat beberapa hal yang belum pernah dilakukan pada bab sebelumnya yaitu
adanya instruksi pada baris 2 dan adanya definisi obyek pada bariss 7 dan 8. Selanjutnya
yaitu save semua hasil editing listing programnya dengan cara klik menu file dan klik di
menu autosave, maka semua program yang telah kita ubah secara otomatis akan tersimpan.
Langkah selanjutnya yaitu mengcompile program dan jika tidak ada error maka bisa
dilanjutkan pada flash monitor. Pada program ang telaah kita ketikkan akan bekerja sama
haya dengan project subbab 5, tetapi pada program kali ini menggunakan library buatan
sendiri yang bersifat object oriented yaitu adanya obyek led dan tombol.
BAB II
PEMBAHASAN HASIL MINIPROJECT
2.1 INSTALASI LAMP (Linux, Apache, MySql, PHP)
Dalam proyek ini saya akan membangun klient ESP32 yang membuat permintaan
HTTP POST ke skrip PHP untuk memasukkan data (pembacaan sensor) ke dalam database
MySQL.
1. Perbarui Cache Paket
Hal yang perlu dilakukan pertama kali yaitu membuka terminal ubuntu lalu ketikkan
sudo apt update, gunanya yaitu memperbarui paket cache manager ke versi
terbaru
• Untuk memastikan bahwa server database MariaDB dimulai dengan sistem saat
boot. Untuk melakukannya, jalankan perintah berikut: sudo systemctl enable
mariadb.service, dan akan keluar output bahwa mariadb tersinkron sesuai dengan
contoh dibawah.
Dengan ini, instalasi MariaDB Anda lebih aman dari sebelumnya, asalkan Anda
mengikuti praktik terbaik keamanan.
Setelah instalasi selesai maka periksa versi Apache untuk mengkonfigurasi bahwa
diinstall dengan benar, jalan kan kode peritah berikut sudo apachectl -v.
Kemudian periksa status Apache sudo systemctl status apache2, pastikan setelah di enter
output akan menunjukkan bahwa layanan Apache diaktifkan dan berjalan.
4. Install PHP
Dengan MariaDB dapat menyimpan dan mengelola data, dan server HTTP
Apache memungkinkan untuk menyajikannya. sekarang perlu menginstal PHP
untuk menampilkan data secara dinamis, dan memungkinkan pengguna akhir
untuk berinteraksi dengan layanan web melalui formulir web atau panggilan API
yang mudah digunakan.
Saat diminta, ketuk tombol y lalu Enter untuk melanjutkan penginstalan. Selanjutnya
untuk memastikan PHP berhasil diinstal, periksa versinya menggunakan perintah berikut
php -v maka akan mendapatkan output mirip denga gambar dibawah ini.
Selanjutnya buat fie Bernama index.html didalam mysite, dengan kode peritah berikut
sudo nno /var/www/mysite/index.html
Copykan script berikut kedalam file nano index.html, setelah selesai silhkan klik ctrl + o
untuk menyimpa dan ctrl + x untuk menutup.
Disini kita bisa membuuat database dengan cara mengetikkan CREATE DATABASE
(nama database);, jika perintah benar maka akan menampilkan pesan bahwa database akan
masuk, setelah itu membuat table dalam database yaitu dengan cara CREATE TABLE
(nama table), untuk table sendiri harus berada didalam database.
$servername = "localhost";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($result = $conn->query($sql)) {
while ($row = $result->fetch_assoc()) {
$row_id = $row["id"];
$row_sensor = $row["sensor"];
$row_location = $row["location"];
$row_value1 = $row["value1"];
$row_value2 = $row["value2"];
$row_value3 = $row["value3"];
$row_reading_time = $row["reading_time"];
// Uncomment to set timezone to - 1 hour (you can change 1 to
any number)
//$row_reading_time = date("Y-m-d H:i:s",
strtotime("$row_reading_time - 1 hours"));
echo '<tr>
<td>' . $row_id . '</td>
<td>' . $row_sensor . '</td>
<td>' . $row_location . '</td>
<td>' . $row_value1 . '</td>
<td>' . $row_value2 . '</td>
<td>' . $row_value3 . '</td>
<td>' . $row_reading_time . '</td>
</tr>';
}
$result->free();
}
$conn->close();
?>
</table>
</body>
</html>
Setelah itu simpan dan tutup editor nano, dan silahkan lakukan posting dalam kedalam web
server degan perintah sebagai berikut
Silahkan cek diweb server dengan menggukan IP Address perangkat atau bisa
menggunakan localhost/esp-data.php, jika pada saat memposting data dengan benar maka
dalam tampilan web php akan seperti dibawah ini