131 lines
4.2 KiB
PHP
131 lines
4.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Sensors;
|
|
use App\Models\Kebun;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class RealtimeController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$user = Auth::user();
|
|
$kebuns = Kebun::where('user_id', $user->id)->get();
|
|
$sensors = Sensors::whereIn('kebun_id', $kebuns->pluck('id'))
|
|
->orderBy('created_at', 'desc') // Order by creation date
|
|
->take(5) // Take the latest 5 records
|
|
->get();
|
|
$title = "Dashboard";
|
|
|
|
return view('dashboard.index', compact('kebuns', 'title', 'sensors'));
|
|
}
|
|
|
|
// Metode untuk mengambil data kelembaban tanah
|
|
public function bacasoil()
|
|
{
|
|
// Mendapatkan data kelembaban tanah terbaru
|
|
$latestData = Sensors::latest()->first();
|
|
|
|
// Mengembalikan kelembaban tanah dalam format yang diharapkan
|
|
return $latestData->calibrated_moisture;
|
|
}
|
|
|
|
// Metode untuk mengambil data status pompa air
|
|
public function bacapompa()
|
|
{
|
|
// Mendapatkan data kelembaban tanah terbaru
|
|
$latestData = Sensors::latest()->first();
|
|
|
|
// Mengembalikan status pompa air dalam format yang diharapkan
|
|
return $latestData->relay_state ? 'Hidup' : 'Mati';
|
|
}
|
|
|
|
// Metode untuk mengambil data status buzzer
|
|
public function bacabuzzer()
|
|
{
|
|
// Mendapatkan data kelembaban tanah terbaru
|
|
$latestData = Sensors::latest()->first();
|
|
|
|
// Mengembalikan status buzzer dalam format yang diharapkan
|
|
return $latestData->buzzer_state ? 'Hidup' : 'Mati';
|
|
}
|
|
|
|
public function updateSwitch1(Request $request) {
|
|
// Tangani logika untuk memperbarui status switch 1
|
|
$status = $request->input('status');
|
|
// Simpan status switch 1
|
|
return response()->json(['success' => true]);
|
|
}
|
|
|
|
public function updateSwitch2(Request $request) {
|
|
// Tangani logika untuk memperbarui status switch 2
|
|
$status = $request->input('status');
|
|
// Simpan status switch 2
|
|
return response()->json(['success' => true]);
|
|
}
|
|
|
|
public function getBlynkToken(Request $request)
|
|
{
|
|
// Ambil nama kebun dari request
|
|
$namaKebun = $request->input('kebun');
|
|
|
|
// Cari kebun berdasarkan nama
|
|
$kebun = Kebun::where('name', $namaKebun)->first();
|
|
|
|
// Jika kebun ditemukan, kembalikan token Blynk
|
|
if ($kebun) {
|
|
return response()->json(['blynk_token' => $kebun->blynk_token]);
|
|
}
|
|
|
|
// Jika kebun tidak ditemukan, kembalikan pesan kesalahan
|
|
return response()->json(['error' => 'Kebun tidak ditemukan'], 404);
|
|
}
|
|
|
|
public function updateBlynkToken(Request $request)
|
|
{
|
|
// Ambil token baru dari permintaan
|
|
$newToken = $request->input('token');
|
|
|
|
// Ambil nama kebun yang sedang dipilih oleh pengguna
|
|
$selectedKebun = $request->input('kebun');
|
|
|
|
// Cari kebun berdasarkan nama
|
|
$kebun = Kebun::where('name', $selectedKebun)->first();
|
|
|
|
// Jika kebun ditemukan, perbarui token Blynk-nya
|
|
if ($kebun) {
|
|
$kebun->blynk_token = $newToken;
|
|
$kebun->save(); // Simpan perubahan
|
|
|
|
// Beri respons bahwa token telah diperbarui
|
|
return response()->json(['message' => 'Token Blynk berhasil diperbarui']);
|
|
}
|
|
|
|
// Jika kebun tidak ditemukan, kembalikan pesan kesalahan
|
|
return response()->json(['error' => 'Kebun tidak ditemukan'], 404);
|
|
}
|
|
|
|
public function getKebunInfo(Request $request)
|
|
{
|
|
$token = $request->input('token');
|
|
$kebun = Kebun::where('blynk_token', $token)->first();
|
|
|
|
if ($kebun) {
|
|
$user = $kebun->user;
|
|
return response()->json([
|
|
'name' => $kebun->name,
|
|
'location' => $kebun->location,
|
|
'deskripsi' => $kebun->deskripsi,
|
|
'users' => $user->name,
|
|
]);
|
|
} else {
|
|
return response()->json(['error' => 'Kebun not found'], 404);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|