Halo Fanbot!
Halo para pecinta sepak bola!
Sepak bola merupakan pertandingan olahraga yang paling populer di dunia. Petandingan 11 lawan 11 ini memiliki tujuan utamanya yaitu mencetak gol di gawang lawan. Tentunya dengan berbagai peraturan yang ditetapkan dan diawasi oleh wasit agar tidak ada kecurangan dan pelanggaran tiap timnya.
Nah pada project kali ini, kita akan membuat papan scoring sepak bola dengan kendali menggunakan telegram.
Telegram merupakan aplikasi yang sudah sangat sering kita gunakan. Biasanya telegram ini berfungsi untuk komunikasi secara personal maupun grup. Selain itu, Telegram juga dapat digunakan untuk melakukan berbagi file dalam ukuran yang lumayan besar. Lalu bagaimana Telegram ini bisa berfungsi untuk mengendalikan tampilan pada papan scoring sepak bola?
Telegram sudah memiliki bot yang dapat dikembangkan sebagai monitoring dan kontrolling dengan sistem IoT dengan device mikrokontroler. Mikrokontroler yang digunakan pada project ini adalah nodeMCU ESP8266. Jadi nanti kita akan menghubungkan NodeMCU ESP8266 dengan telegram, agar telegram dapat mengatur score dari kedua pemain. Display akan dimunculkan dengan program di NodeMCU ESP8266.
Bagaimana cara membuatnya? yuk kita simak.
Alat dan juga Bahan
Alat dan bahan untuk project ini adalah sebagai berikut.
- Software Arduino IDE
- NodeMCU ESP8266 1
- LCD 16×2 1
- I2C LCD 1
- Projectboard 1
- Kabel jumper Secukupnya
Belajar Elektronika, Arduino, dan juga IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO
Rangkaian
Susun device di atas menjadi rangkaian seperti berikut. Pastikan semua terhubung dengan baik. Rapikan semua device agar lebih mudah memperbaikinya semisal terjadi kesalahan.
Program
Tahap selanjutnya adalah penulisan program pada Arduino IDE. Perhatikan keterangan (comment) untuk memahami program dengan baik. Jangan lupa untuk memasukkan terlebih dahulu library Liquidcrystal, CTBot dan Arduino Json.
//Program Pengaturan Score dengan Telegram #include "CTBot.h" //Pendeklarasian Library #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); CTBot myBot; TBMessage msg; String ssid = "*********"; //nama ssid wifi kalian String pass = "*********"; //password wifi kalian String token = "XXXX"; //token bot baru kalian const int id = XXXX; //id telegram kalian String tim1 = "tim1"; //nama Tim 1 String tim2 = "tim2"; //nama tim 2 int score1 = 0; //score untuk pemain 1 int score2 = 0; //score untuk pemain 2 void setup() { Serial.begin(9600); lcd.init(); // initialize the lcd // Print a message to the LCD. lcd.backlight(); Serial.println("Starting TelegramBot..."); myBot.wifiConnect(ssid, pass); myBot.setTelegramToken(token); if (myBot.testConnection()) { Serial.println("Koneksi Bagus"); } else { Serial.println("Koneksi Jelek"); } myBot.sendMessage(msg.sender.id, (String)"Telegram Bot untuk Papan Score Sepakbola" + "\nScore tim 1, kirim >>> gol1"+ "\nScore tim 2, kirim >>> gol2"+ "\nRevisi Score 1, kirim >>> rev1"+ "\nRevisi Score 2, kirim >>> rev2"+ "\nReset, kirim>>> reset" ); } void loop() { // menampilkan di LCD lcd.setCursor(5,0); lcd.print(" >< "); lcd.setCursor(0,0); lcd.print(tim1); lcd.setCursor(10,0); lcd.print(tim2); lcd.setCursor(3,1); nol(score1); lcd.setCursor(13,1); nol(score2); if (myBot.getNewMessage(msg)) { if (msg.text.equalsIgnoreCase("gol1")){ score1++; myBot.sendMessage(msg.sender.id, (String)"Score Saat ini: \n" + tim1 +" = "+ score1 + "\n" + tim2 + " = " + score2); } else if (msg.text.equalsIgnoreCase("gol2")){ score2++; myBot.sendMessage(msg.sender.id, (String)"Score Saat ini: \n" + tim1 +" = "+ score1 + "\n" + tim2 + " = " + score2); } else if (msg.text.equalsIgnoreCase("rev1")){ score1--; myBot.sendMessage(msg.sender.id, (String)"Score Saat ini: \n" + tim1 " = "+ score1 + "\n" + tim2 + " = " + score2); } else if (msg.text.equalsIgnoreCase("rev2")){ score2--; myBot.sendMessage(msg.sender.id, (String)"Score Saat ini: \n" + tim1 +" = "+ score1 + "\n" + tim2 + " = " + score2); } else if (msg.text.equalsIgnoreCase("reset")){ score1 = 0; score2 = 0; myBot.sendMessage(msg.sender.id, (String)"Score Saat ini: \n" + tim1 +" = "+ score1 + "\n" + tim2 + " = " + score2); } else { myBot.sendMessage(msg.sender.id, (String)"Telegram Bot untuk Papan Score Sepakbola" + "\nScore tim 1, kirim >>> gol1"+ "\nScore tim 2, kirim >>> gol2"+ "\nRevisi Score 1, kirim >>> rev1"+ "\nRevisi Score 2, kirim >>> rev2"+ "\nReset, kirim>>> reset" ); } } delay(500); } |
Untuk mendapatkan Token Bot dan ID telegram, anda dapat mengunjungi LINK INI.
Masukkan nama hotspot, password hotspot, token, dan ID yang anda gunakan di String ssid = “**********”;
String pass = “**********”;
String token = “XXXXX”;
const int id = XXXXXX;
Upload program di atas, kemudian kita dapat mulai mencobanya dengan di awali ke telegram bot milik kita dan klik start.
baca juga: Tutorial Project Internet of Things : Papan Scoring Bulu Tangkis dengan Blynk
Hasil dari project ini adalah kita dapat menambahkan score di tampilan LCD hanya dengan mengirimkan pesan di telegram. Caranya sesuai dengan teks awal yang dikirimkan ke telegram.
Score tim 1, kirim >>> gol1
Score tim 2, kirim >>> gol2
Namun jika kita melakukan kesalahan, kita bisa mengulangnya dengan mengurangi score. Caranya dengan mengirimkan pesan seperti ini. Sesuai dengan score tim mana yang salah.
Revisi Score 1, kirim >>> rev1
Revisi Score 2, kirim >>> rev2
Jika sudah selesai, maka kita bisa reset semuanya menjadi score 0:0.
Reset, kirim>>> reset
Nah. Bagaimana? ingin mencobanya? Coba aja. Jangan lupa untuk terus dikembangkan dengan menambahkan fitur lainnya, seperti fitur mengganti nama tim atau yang lainnya.
Selamat mencoba.
*Note: Jika ada kendala dalam pengoperasian project di atas, silakan hubungi Minbot agar dapat segera kami perbaiki. Terima kasih.
Mau belajar elektronika dasar? Arduino? atau bahkan Internet of Things? Ikuti kursus online Indobot Academy!