Program upgrade skill di bidang engineering, dari dasar hingga mahir.
Program khusus melalui platform mitra resmi dokter mekanik academy seperti Udemy, Prakerja, dan Kampus Merdeka.
Sertifikasi BNSP
Pilih pelatihan dan sertifikasi Nasional BNSP di bidang engineering, rekayasa, manufaktur, dan subsetnya
Lihat SemuaSertifikasi Internasional
Pilih pelatihan dan sertifikasi Internasional di bidang engineering, rekayasa, manufaktur, dan subsetnya
Lihat Semua
Temukan inspirasi dari hasil karya dan pengalaman para alumni dr. Mekanik Academy.
dr. Mekanik Academy tersedia di berbagai platform mitra resmi untuk memudahkan akses pelatihan Anda.
Jelajahi produk dan layanan lainnya dari ekosistem dr. Mekanik untuk solusi bisnis yang komprehensif.
Membantu kamu belajar, berkarya, dan membuat proyek engineering secara instan dan presisi!
Oleh: Sha'Bani Septriansyah
Sistem ini menggunakan mikrokontroler wemos d1 mini (esp8266) yang terhubung dengan relay untuk menjadikannya saklar otomatis. Sistem ini bertujuan untuk melakukan shutdown server secara otomatis terjadi mati listrik.
Alat Dan Bahan
Wemos D1 Mini
Relay 1 Channel 5V yang terhubung ke GPIO
Sistem ini menggunakan mikrokontroler wemos d1 mini (esp8266) yang terhubung dengan relay untuk menjadikannya saklar otomatis. Sistem ini bertujuan untuk melakukan shutdown server secara otomatis terjadi mati listrik.
Sistem ini akan mendekteksi mati listrik jika modul esp8266 nya tidak konek ke wifi, wemos d1 mini akan mengaktifkan relay -+ 300ms jika wifi tidak terdeteksi, relay akan terhubung ke pin power_btn motherboard server. Jika tidak menggunakan sistem ini maka komputer server akan mati mendadak jika baterai ups habis (-+ 15 menit ) maka dari itu sistem ini bertujuan untuk melakukan softshutdown jika terjadi pemadaman listrik.
1. Rangkaian Sistem
2. Menyiapkan Program untuk Wemos D1 Mini
#include <ESP8266WiFi.h>
const char* ssid = "SSID_WIFImu";
const char* password = "pwnyadisini";
const int relayPin = 4;
bool isDisconnected = false;
bool initialized = false; // Variabel untuk menandai inisialisasi selesai
void setup() {
delay(2000);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // Pastikan relay mati (active low)
connectToWiFi(); // Mencoba koneksi WiFi awal
}
void connectToWiFi() {
WiFi.begin(ssid, password);
// Mencoba menghubungkan ke WiFi selama 5 detik (10 kali)
for (int attempts = 0; attempts < 10 && WiFi.status() != WL_CONNECTED; attempts++) {
delay(500);
}
// Jika terhubung, tandai sebagai terinisialisasi
if (WiFi.status() == WL_CONNECTED) {
initialized = true;
digitalWrite(relayPin, HIGH); // Pastikan relay tetap mati
}
}
void loop() {
// Jika sudah terinisialisasi, periksa status WiFi
if (initialized) {
if (WiFi.status() != WL_CONNECTED) {
if (!isDisconnected) {
// Jika terputus, aktifkan relay sekali
digitalWrite(relayPin, LOW); // Nyalakan relay
delay(300); // Tunggu 0,3 detik
digitalWrite(relayPin, HIGH); // Matikan relay
isDisconnected = true; // Tandai sebagai terputus
}
} else {
// Reset status disconnection jika terhubung
isDisconnected = false;
}
} else {
// Jika belum terinisialisasi, coba sambungkan ke WiFi
connectToWiFi(); // Panggil fungsi untuk mencoba sambungan
}
delay(1000); // Cek status WiFi setiap detik
}
0 Orang Menyukai Karya Ini