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); } } }