Laravel adalah salah framework php dengan pengguna terbanyak. Dengan banyaknya pengguna otomatis ketika kita menghadapi error akan lebih mudah menemukan solusin...
Pada bagian ini kita akan mensetting koneksi ke database yang akan kita gunakan sebagai lokasi penyimpanan data hasil pembacaan sensor.
Langkah pertama, kita akan membuat koneksi ke database yang kita buat dengan mengedit config/database.php.
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',//host
'username' => 'root',//username
'password' => 'root',//password
'database' => 'iot_db',//nama database
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
Kemudian kita tambahkan library database ke config/autoload.php.
$autoload['libraries'] = array('database');
Setelah setup sudah selesai, sekarang kita buat table di database yang sudah kita buat tadi. Kita akan membuat dua buah table, yaitu table unit_client dan monitor_client.
CREATE TABLE `unit_client` (
`id_unit` int(11) NOT NULL,
`unit` varchar(16) DEFAULT NULL,
`unit_create` datetime DEFAULT NULL,
`unit_update` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `monitor_client` (
`id_monitor` int(11) NOT NULL,
`unit_id` int(11) DEFAULT NULL,
`output` varchar(12) DEFAULT NULL,
`monitor_created` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Setelah selesai membuat table, masukkan data ke table unit_client secara manual dengan nilai id_unit = 1, dan unit = “LM35”.
Tabel sudah siap, sekarang kita buat model untuk table tersebut.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Model_unit extends CI_Model{
public function getAll(){
$query = $this->db->get('unit_client');
return $query;
}
public function getMonitorByUnit($id){
$this->db->select('*');
$this->db->from('monitor_client');
$this->db->where('unit_id', $id);
$this->db->limit('100');
$this->db->order_by('id_monitor','desc');
$this->db->join('unit_client', 'unit_client.id_unit = monitor_client.unit_id');
$query = $this->db->get('');
return $query;
}
}
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Model_monitor extends CI_Model{
public function create($unit,$output){
$data = array('unit_id' => $unit,
'output'=>$output,
'monitor_created'=>date('Y-m-d H-i-s'));
$query = $this->db->insert('monitor_client', $data);
return $query;
}
public function getByUnitId($id){
$this->db->where('unit_id', $id);
$query = $this->db->get('monitor_client');
return $query;
}
}
Dan terakhir kita edit controller dengan nama Monitor.php menjadi seperti berikut :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . '/libraries/REST_Controller.php';//lokasi library rest
class Monitoring extends REST_Controller{
public function __construct(){
parent::__construct();
$this->load->model(array('model_monitor'));
}
function unit_get(){
$data = array('respon : '.$this->get('id'));
$this->response($data);
}
function unit_put(){
$intruksi = $this->model_monitor->create($this->put('unit_id'),$this->put('output'));
if ($intruksi==FALSE) {
$this->set_response(array('status'=>'error'));
}else{
$this->set_response(REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
}
}
function unit_post(){
$data = array('respon : '.$this->post('id'));
$this->response($data);
}
function unit_delete(){
$data = array('respon : '.$this->delete('id'));
$this->response($data);
}
}
Setelah selesai, sekarang kita coba akses menggunakan postman. Responnya harus seperti ini.
Sampe bagian ini harusnya sudah cukup untuk membuat server IoT untuk monitoring.
Oke, selamat mencoba. Kalo bermanfaat silahkan share, kalo ada yang error silahkan tanya-tanya di kolom komentar.
Related Post :
22 Jan, 2021 - Fadlur Rohman
Laravel 8 menyediakan sistem authentication untuk SPA (single page app...
31 Dec, 2020 - Fadlur Rohman
Laravel telah dilengkapi fitur untuk membuat backend API, diantaranya:...
31 Dec, 2020 - Fadlur Rohman
Sistem login untuk aplikasi simplegis sudah kita buat sebelumnya, untu...
31 Dec, 2020 - Fadlur Rohman
Pada aplikasi simple gis yang kita buat, pengguna dapat mengakses hala...
31 Dec, 2020 - Fadlur Rohman
Grafik digunakan untuk menampilkan ringkasan dari sekumpulan data, bia...
31 Dec, 2020 - Fadlur Rohman
Setelah kita membuat database untuk menyimpan data hasil mon...