TKK_E32211375/website/monitoring-cabai/app/Http/Controllers/RealtimeController.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);
}
}
}