Note: Source code is under develop. Use any syntax you need.
Referensi pengawatan DF Player Mini dan NodeMCU ESP8266 (https://www.nn-digital.com/blog/2019/06/13/mp3-player-menggunakan-dfplayer-mini-dan-arduino/ dan https://www.anakkendali.com/esp8266-nodemcu-wemos-mengakses-mp3-dfplayer/), silahkan sesuaikan pin-pin yang digunakan dengan kode program / sketch dibagian bawah.
Sumber gambar dibawah ini adalah https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299 :
Catatan penting cara meng-copy file ke micro sd yang digunakan untuk DF Player Mini:
Copy your mp3 into you micro SD card
NOTE: The order you copy the mp3 into micro SD card will affect the order mp3 played , which means play(1) function will play the first mp3 copied into micro SD card.
Berikut ini adalah potongan program (fungsi) untuk menampilkan logo lafadz Allah dan logo lafadz Nabi Muhammad pada display P10. Untuk menampilkan lafadz Allah dan Nabi Muhammad pada panel P10, menggunakan library HJS589, tinggal panggil fungsi tersebut. Berikut adalah fungsi nya:
Pada artikel kali ini saya akan berbagi cara memperbaiki JWS 7 Segment yang rusak karena disambar petir. Setelah tersambar petir, JWS 7 Segment kondisinya:
Display menampilkan karakter acak-acakan
Buzzer tidak berhenti berbunyi / selalu berbunyi
Setelah saya cek, ternyata kerusakannya ada pada mikrokontroler nya. Mungkin mikrokontroler tersebut rusak secara hardware, atau hanya sekedar rusak programnya saja (harus di flashing / program ulang). Dikarenakan saya tidak mengetahui Jam Sholat JWS ini menggunakan vendor mana, sehingga saya tidak bisa sembarang membeli kontroler JWS 7 Segment yang dijual secara online, sebab jika salah beli maka saya bisa rugi lumayan besar, disebabkan harga kontrolernya yang tidak murah.
Oleh sebab itu, saya harus mempelajari hardware dari JWS 7 Segment itu sendiri, kemudian memrakit dan memprogram sendiri kontroler JWS yang sesuai dengan hardware yang sedang saya perbaiki. Setelah melakukan beberapa tahap identifikasi, observasi, dan beberapa pertimbangan, akhirnya saya memutuskan untuk menggunakan Arduino Uno R3, RTC DS3231, Buzzer 12A05 (bawaan dari vendornya) (krn Buzzer ini suaranya jernih dan nyaring, bukan abal-abal), Remote TV Universal, Kanibal IR Receiver Sensor dari MP3 Player bekas, Rangkaian Power Supply bawaan vendor, dan melakukan modifikasi JWS 7 Segement Simple dari Fans Electronic.
Alhamdulillah, hasilnya cukup memuaskan. Jam Sholat Digital / JWS 7 Segment bisa menyala kembali, menampilkan waktu dengan presisi, menampilkan jadwal sholat dengan baik, bisa disetting secara remote menggunakan remote tv universal, style tampilan yang lebih update karena menggunakan kode program lebih baru.
Untuk mengetahui step-step yang dilakukan dalam perbaikan ini bisa disaksikan pada video berikut ini:
Part 1: https://youtu.be/DI4PCLy1oSc
Memperbaiki Jam Masjid JWS Seven Segment Part 1 : (Identifikasi Hardware, Modul & Tes Kode Program)
Part 2: https://youtu.be/6G7ux164pw8
Memperbaiki Jam Masjid JWS Seven Segment Part 2 : (Modif Sketch & Menampilkan Jam Pada Display)
Part 3: https://youtu.be/pQtUCkhciO4
Memperbaiki Jam Masjid JWS Seven Segment Part 3 : (Menampilkan Waktu Sholat & Jam Pada Display)
Part 4: https://youtu.be/XC14J05yoUo
Memperbaiki Jam Masjid JWS Seven Segment Part 4 : (Remote TV Untuk Setting JWS)
Part 5: https://youtu.be/nKqjrZADUco
Memperbaiki Jam Masjid JWS Seven Segment Part 5 : (Trik Dumping Data IR Remote Dengan Mudah & Cepat)
Part 6: https://youtu.be/593fN5q_7ls
Memperbaiki Jam Masjid JWS Seven Segment Part 6: (Setting Jam - JWS Digital 7 Segment)
SHORT VIDEO
Untuk kode program hasil modifikasi, belum terlalu rapi dan tidak begitu terstruktur, namun cukup untuk menjalankan hardware JWS 7 Segement yang rusak tersambar petir ini. Sebagaimana dari sumber aslinya, yaitu fanselectronics.com, digunakan 4 sketch yang disimpan dalam satu folder, yaitu "JWS_Ekonomis_Set_Remote", "Display", "Jadwal_Sholat", "Setting". Adapun kode programnya adalah sebagai berikut.
Saya baru saja membeli Arduino Uno dan LCD Keypad Shield, yaitu modul LCD yang disertai dengan tombol-tombol (keypad). Setelah saya coba, saya upload beberapa sketch LCD Shield dari yang berisi kode program sederhana ("Hello World") hingga yang berisi kode program yang sedang dan kompleks, namun HASILNYA NIHIL, LCD NYA TETAP TIDAK BISA MENAMPILKAN KARAKTER.
Setelah browsing ke beberapa sumber, akhirnya didapatkan bahwa permasalahannya adalah settingan brightness dari LCD nya. Jadi ada sebuah trimpot berwarna biru di pojok kiri atas dari LCD Keypad Shield tersebut yang harus kita putar pada arah kiri maupun kanan (sesuai dengan kebutuhan), defaultnya adalah diputar ke arah kiri / bawah / berlawanan arah jarum jam. Kita harus putar tersebut potensiometer biru tersebut sehingga pixel-pixel yang ada pada LCD Shield tersebut menjadi lebih terang dari pada cahaya latar modul LCD tersebut.
Kemudian untuk pengetesan kita bisa mengisi Arduino Uno dengan kode program yang sederhana (hello world) seperti berikut:
#include <LiquidCrystal.h>// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
voidsetup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
lcd.print("Hello World!");
}
voidloop()
{
}
Atau bisa juga dengan kode program yang lebih panjang seperti ini (untuk menampilkan informasi tombol yang ditekan):
Sebelum menggunakan Remote Infra Red (semisal Remote TV) dengan mikokontroler atau arduino, kita membutuhkan kode-kode desimal dari setiap tombol-tombol yang ada pada remote tersebut. Untuk memudahkan dalam melakukan dumping file kode IR Remote ke dalam file text, kita dapat menggunakan bantuan software komunikasi serial yabg sudah saya buat sebelumnya (silahkan klik link ini). Sedangkan untuk arduino nya sendiri kita isikan kode program berikut:
#include <IRremote.h>//int RECV_PIN = 11; // PIN 11int RECV_PIN =2; // PIN 2
IRrecv irrecv(RECV_PIN);
decode_results results;
int incomingByte;
voidsetup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}
voidloop()
{
while(Serial.available())
{
}
for (int i=0; i<23; i++)
{
if (i<10)
{
delay(1000);
Serial.print("Tekan tombol ");
Serial.print(i);
Serial.println(" :");
delay(700);
while (!irrecv.decode(&results))
{
}
Serial.println(results.value);
delay(700);
irrecv.resume();
}
else
{
switch (i)
{
case (10):
Serial.println("Tekan tombol titik (.) :");
break;
case (11):
Serial.println("Tekan tombol + :");
break;
case (12):
Serial.println("Tekan tombol - :");
break;
case (13):
Serial.println("Tekan tombol Power :");
break;
case (14):
Serial.println("Tekan tombol OK :");
break;
case (15):
Serial.println("Tekan tombol Panah Atas :");
break;
case (16):
Serial.println("Tekan tombol Panah Bawah :");
break;
case (17):
Serial.println("Tekan tombol Panah Kiri :");
break;
case (18):
Serial.println("Tekan tombol Panah Kanan :");
break;
case (19):
Serial.println("Tekan tombol Recall :");
break;
case (20):
Serial.println("Tekan tombol Exit :");
break;
case (21):
Serial.println("Tekan tombol CH+ :");
break;
case (22):
Serial.println("Tekan tombol CH- :");
break;
default:break;
}
delay(700);
while (!irrecv.decode(&results))
{
}
Serial.println(results.value);
delay(700);
irrecv.resume();
}
}
}
Untuk cara interfacing IR Receiver dengan arduino beserta teknik dasar dumping kode IR Remote ke dalam file text bisa cek di video ini: Interfacing IR Receiver dan Arduino.
Disini saya menggunakan Ms. Visual C# 2019 Communitty Editions. Program ini berfungsi untuk melakukan komunikasi serial antara PC dengan Arduino atau mikrokontroler. Diantara kegunaannya adalah untuk menyinkronkan waktu modul RTC dengan waktu PC, melakukan Dump Data Remote IR, Debug Program yang telah dibuat, dan lain sebagainya.
Untuk membuat program ini, pertama kali buat desain UI seperti gambar berikut ini:
Adapun komponen yang harus ditambahkan disini adalah tentunya Main Form (Properti Text = komunikasi serial). Kemudian di dalamnya ditambahkan komponen Tab Control, Serial Port, Timer, Status Strip, dan Save File Dialog. Sedangkan di dalam Tab Control memuat komponen-komponen berikut:
Tab Page 1
Group Box 1 (Text : Waktu)
2 Label
2 Button
Groub Box 2 (Text: Kirim Data)
1 Text Box
1 Button
Group Box 3 (Text: Data Diterima)
1 Rich Text Box
3 Button
1 Label
Tab Page 2
6 Label
6 Combo Box
1 Button
Untuk kode program lengkapnya seperti dibawah ini: