Daftar Isi:

Papan Skor Cricket Menggunakan NodeMCU: 9 Langkah (dengan Gambar)
Papan Skor Cricket Menggunakan NodeMCU: 9 Langkah (dengan Gambar)

Video: Papan Skor Cricket Menggunakan NodeMCU: 9 Langkah (dengan Gambar)

Video: Papan Skor Cricket Menggunakan NodeMCU: 9 Langkah (dengan Gambar)
Video: NodeMCU based Live Cricket score board | ESP8266 projects | IoT Projects 2024, Juli
Anonim
Image
Image
Rencana
Rencana

Halo! Saya baru-baru ini diperkenalkan ke dunia IoT (Internet of Things) ketika saya menemukan perangkat paling populer di bidang ini, ESP8266. Saya kagum dengan banyaknya kemungkinan yang dibuka oleh perangkat kecil dan murah ini. Karena saat ini saya baru dalam hal ini, saya memutuskan untuk membuat proyek dengan menggunakannya dan belajar di sepanjang jalan. Jadi, saya mulai mencari di internet untuk proyek dan ide.

Saya menemukan proyek luar biasa yang disebut Arduino Cricket Score Ticker oleh W. A. Smith. Dalam proyek ini, Arduino bersama dengan Ethernet Shield dan kartu SD digunakan untuk menampilkan skor kriket langsung dari Cricbuzz. Proyek ini membuat saya berpikir.

Saya dari India dan hal pertama yang terlintas dalam pikiran setelah mendengar India adalah Cricket. Di sini, kriket adalah agama. Terkadang menjadi sulit untuk duduk di depan TV untuk mengikuti seluruh pertandingan. Jadi, mengapa tidak membuat sesuatu yang membuat skor menonton menjadi mudah, nirkabel, dan portabel. Perangkat kecil khusus yang menampilkan informasi yang cukup untuk membuat Anda terus diperbarui hanya dengan melihatnya sekilas.

Bukan penggemar kriket? Tidak masalah! Kode berisi parser XML yang dapat digunakan untuk mendapatkan data dari file XML apa pun. Cukup gunakan fungsi yang benar untuk mendapatkan data.

Langkah 1: Rencana

Rencana
Rencana

Rencananya adalah menggunakan NodeMCU Development Board (dengan modul ESP-12E) untuk mengakses internet dan meminta kode XML dari Cricbuzz yang berisi semua informasi tentang pertandingan yang sedang berlangsung/mendatang. Kode ini disimpan di kartu SD sebagai file.xml. File kemudian dibaca dari kartu SD untuk mengurai data yang diperlukan dari kode XML. Saya akan menggunakan kode W. A. Smith untuk mengurai informasi. Berkat usahanya. Lihat proyeknya jika Anda ingin membuat yang sama menggunakan Arduino dan Ethernet Shield.

Ide saya adalah membuatnya sekecil mungkin, membuat PCB khusus dan kasing untuknya. Untuk saat ini, mari kita membuat prototipe. Tapi pertama-tama, mari kita kenali komponen yang digunakan dalam proyek ini.

Mari kita mulai

Langkah 2: Tampilan OLED

Tampilan OLED
Tampilan OLED
Tampilan OLED
Tampilan OLED

Saya memutuskan untuk menggunakan layar OLED karena ukurannya yang kecil dan tersedia dengan harga murah. Saya menggunakan layar 0,96 yang cukup untuk menampilkan informasi pertandingan. Anda dapat menggunakan ukuran layar berapa pun.

Layar yang saya gunakan adalah layar monokrom dengan driver SSD1306 dan antarmuka I2C (2-kawat). Versi layar SPI juga tersedia. Menjalankan mereka adalah tugas yang mudah. Unduh pustaka SSD1306 dan GFX yang diperlukan untuk menjalankan tampilan. Terima kasih kepada Adafruit untuk menulis perpustakaan ini.

Koneksi sangat sederhana.

  • GND ke GND
  • VCC ke 3.3V
  • SCL ke D1
  • SDA ke D2.

Langkah 3: Kartu SD & Adaptor

Kartu SD & Adaptor
Kartu SD & Adaptor

Kartu SD menyimpan file XML dari Cricbuzz hingga semua informasi telah diuraikan. Setelah informasi yang diperlukan telah ditampilkan, file akan dihapus. Menggunakan kartu SD untuk menyimpan file XML 10 - 20 kB agak berlebihan tetapi membuat penguraian lebih mudah dan mudah dimengerti.

Kartu memori apa pun dapat digunakan. Saya memilih kartu micro SD karena faktor bentuknya yang kecil. Anda dapat langsung menyolder kabel ke kartu SD tetapi menggunakan papan breakout membuat pekerjaan menjadi mudah. Perlu dicatat bahwa semua kartu SD dimaksudkan untuk berjalan pada 3.3V. Ini berarti bahwa tidak hanya harus ditenagai menggunakan 3.3V tetapi juga komunikasi antara mikrokontroler dan kartu SD harus level logika 3.3V. Tegangan di atas 3.3V akan MEMBUNUHNYA! Kami tidak akan mempermasalahkannya sejauh menyangkut NodeMCU karena NodeMCU sendiri berjalan pada 3.3V yang baik-baik saja. Jika Anda berencana untuk menggunakan mikrokontroler lain dengan level logika 5V, pastikan papan breakout Anda memiliki pengatur level bawaan (Seperti yang ditunjukkan pada gambar). Ini pada dasarnya mengubah atau 'menggeser' 5V dari mikrokontroler ke 3.3V yang ramah kartu SD. Menggunakan shifter level bersama dengan 3.3V (seperti yang saya lakukan) tidak memengaruhi kerjanya.

Kartu SD menggunakan antarmuka SPI untuk komunikasi. Pin CS atau Chip Select dapat dihubungkan ke salah satu pin GPIO. Saya memilih GPIO15 (D8). Cukup buat perubahan yang diperlukan dalam kode jika Anda menggunakan pin selain GPIO15

  • SCK ke D5
  • MISO ke D6
  • MOSI ke D7
  • CS ke D8
  • VCC ke 3.3V
  • GND ke GND

Format kartu SD Anda

Pustaka yang akan kita gunakan mendukung sistem file FAT16 atau FAT32. Pastikan Anda memformat kartu SD ke format yang benar.

Langkah 4: Membuat Keypad

Membuat Keypad
Membuat Keypad
Membuat Keypad
Membuat Keypad
Membuat Keypad
Membuat Keypad

Saya ingin menjaga proyek sekecil mungkin. Jadi, saya memutuskan untuk membuat papan terpisah untuk keypad dan memasangnya di atas papan utama nanti. Ini akan menghemat ruang.

Matriks kunci yang sudah jadi dapat dibeli tetapi saya memiliki tombol tekan yang tergeletak di sekitar. Juga, saya ingin membuatnya sekecil mungkin. Pengaturan khas untuk menghubungkan baris dan kolom akan membutuhkan total 6 pin GPIO untuk matriks 3 x 3. Ini cukup banyak mengingat layar OLED dan kartu SD akan terhubung juga.

Jika ragu, cari di Google! Itulah yang saya lakukan dan menemukan cara yang hanya membutuhkan 1 pin untuk mengontrol seluruh matriks. Ini dimungkinkan dengan menggunakan Matriks Pembagi Tegangan. Resistor dihubungkan antara setiap baris dan kolom. Ketika tombol ditekan, kombinasi resistor tertentu akan dihubungkan secara seri yang menciptakan pembagi tegangan. Lihat diagram sirkuit. Tegangan yang berubah-ubah akan dibaca oleh mikrokontroler. Setiap tombol akan menghasilkan tegangan yang berbeda sehingga dapat dengan mudah diketahui tombol mana yang ditekan dengan membaca tegangan keluaran matriks. Karena kita ingin membaca level tegangan yang bervariasi dan sekarang hanya tinggi dan rendah, kita memerlukan pin Analog. Untungnya ada satu pin Analog berlabel A0 di NodeMCU. Masalah terpecahkan!

Jika Anda ingin membeli matriks, periksa koneksi internal yang ditunjukkan pada diagram. Sebuah matriks dari setiap dimensi dapat digunakan. Pastikan untuk menggunakan resistor 2.2kΩ di antara baris dan resistor 680Ω di antara kolom.

Menghubungkan Tombol Tekan

Pin 1 & 2 terhubung secara internal. Sama dengan pin 3 & 4. Saat tombol ditekan, semua pin terhubung bersama. Lihat gambar untuk mendapatkan ide menghubungkan sakelar pada papan perf.

Saya sudah menyambungkan 3 pin male header supaya bisa disambungkan ke mainboard nantinya.

Langkah 5: Menyatukan Semuanya

Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya

Anda dapat merencanakan untuk menempatkan komponen di mana pun Anda suka. Tidak ada batasan di atasnya. Saya akan menunjukkan kepada Anda bagaimana saya melakukannya untuk membuatnya kompak karena saya menginginkan sesuatu yang pas di telapak tangan. Ini bisa menjadi sedikit berantakan jadi coba cara saya jika Anda merasa nyaman dengan menyolder. Saya memutuskan untuk mengisi kedua sisi papan sebagai PCB dua lapis. NodeMCU dan papan breakout kartu SD di satu sisi dan OLED dan keypad di sisi lain.

Pelarian kartu SD kebetulan cocok di antara dua header perempuan yang untuk NodeMCU. Saya melepas solder header pria bersudut yang disertakan dengan papan breakout, memutarnya dan menyoldernya lagi sehingga pin tegak lurus ke bawah seperti yang ditunjukkan pada gambar. Mengakses slot kartu SD menjadi lebih mudah.

Saya menekuk pin header perempuan 4-pin di sudut kanan dan menyoldernya di sisi tembaga papan perf seperti yang ditunjukkan pada gambar.

Tutup sambungan solder di bawah keypad untuk mencegah korsleting. Tambahkan sepotong tipis busa keras (tebal sekitar 5 mm) di antara keypad dan mainboard untuk perlindungan dan kekakuan ekstra. Terakhir, solder keypad yang sudah kita buat tadi. Memiliki besi solder dengan ujung runcing pasti akan memudahkan pekerjaan Anda. Itu adalah pekerjaan yang berantakan membuatnya sekompak mungkin tetapi akhirnya berhasil melakukannya.

Periksa kembali semua koneksi Anda untuk korsleting sebelum menyalakan perangkat

Langkah 6: Menyiapkan Keypad

Menyiapkan Papan Tombol
Menyiapkan Papan Tombol

Setelah Anda memeriksa semua koneksi, Anda siap untuk menyalakan perangkat Anda untuk pertama kalinya. Semoga saja! Tidak ada asap ajaib? Selamat!

Sekarang kita siap untuk mengatur keypad. Ingat cara kerja keypad. Setiap penekanan tombol akan menghasilkan tegangan berbeda yang diumpankan ke pin analog NodeMCU. ESP-12E memiliki Analog to Digital Converter (ADC) dengan resolusi 10-bit. 2 dipangkatkan 10 akan menghasilkan 1024. Ini berarti bahwa kita akan mendapatkan pembacaan antara 0 dan 1024 untuk setiap tombol yang ditekan. Mari kita lihat bacaan apa yang kita dapatkan. Tapi pertama-tama, kita harus menulis program kecil untuk mendapatkan nilai-nilai itu. Buka Arduino IDE, copy paste kode berikut dan upload ke NodeMCU.

int keypadPin = A0;

void setup(){ Serial.begin(115200); } void loop(){ int r = analogRead(keypadPin); Serial.println(r); }

  • Buka monitor serial. Atur baud rate ke 115200.
  • Sekarang tekan tombol apa saja. Anda harus mendapatkan pembacaan yang konstan pada monitor Serial. Fluktuasi kecil tidak masalah. Itu akan diurus dalam kode utama. Lakukan hal yang sama untuk setiap kunci.
  • Setiap kunci harus memiliki pembacaan yang berbeda.
  • Catat semua nilainya. Kami akan membutuhkan mereka nanti.

Langkah 7: Mari Kode

Ayo Kode
Ayo Kode
Ayo Kode
Ayo Kode
Ayo Kode
Ayo Kode

Unduh file Scoreboard.ino yang disediakan di bawah ini di komputer Anda dan buka menggunakan Arduino IDE.

Sebelum Anda mengunggah

1) Atur waktu refresh untuk papan skor. Misalnya, 15L selama 15 detik.

2) Masukkan SSID dan kata sandi router yang ingin dihubungkan.

3) Lakukan perubahan yang diperlukan jika Anda memilih untuk menghubungkan pin CS kartu SD ke pin selain GPIO15.

4) Ingat nilai yang kita catat untuk semua kunci? Kita harus menetapkan nomor kunci untuk setiap nilai. Saya juga telah memberi tahu Anda tentang fluktuasi bacaan. Ini karena kontak sakelar tidak sempurna. Dalam jangka panjang, nilai ini dapat menyimpang dari nilai arus karena penuaan kontak yang menambah hambatan ekstra di sirkuit sehingga mengubah tegangan. Kami dapat menangani masalah ini dalam kode.

Kami akan menambahkan batas atas dan batas bawah nilai dengan margin 5. Misalnya, saya mendapat pembacaan 617 untuk kunci 1.

  • Kurangi 5 dari itu. 617 - 5 = 612. Ini adalah batas bawah.
  • Sekarang tambahkan 5 ke dalamnya. 617 + 5 = 622. Ini adalah batas atas.
  • Gulir ke akhir kode. Isilah tempat yang disediakan untuk kedua nilai pada kode seperti pada gambar.
  • Lakukan ini untuk setiap 9 nilai.

if(r > 612 && r < 622){ keyNumber = 1; }

Apa artinya ini?

JIKA pembacaan (r) lebih besar dari 612 DAN kurang dari 622, maka tombol 1 ditekan. Nilai antara 612 dan 622 akan diperlakukan sebagai kunci 1. Ini memecahkan masalah pembacaan yang berfluktuasi.

Langkah 8: Membangun Kasus

Membangun Kasus
Membangun Kasus
Membangun Kasus
Membangun Kasus
Membangun Kasus
Membangun Kasus
Membangun Kasus
Membangun Kasus

Ini sepenuhnya opsional. Saya pikir proyek ini akan terlihat rapi dan lengkap dengan kasing di sekitarnya. Tanpa alat yang tepat untuk pekerjaan ini, itu akan menjadi tugas besar bagi saya. Kasing ini dibuat menggunakan akrilik.

Siapkan potongan-potongan untuk direkatkan dengan menghaluskan ujung-ujungnya menggunakan amplas. Saya menggunakan Fevi Kwik (Lem Super) untuk menyatukan semua bagian. Lem super meninggalkan residu putih setelah sembuh. Jadi, aplikasikan hanya di antara sendi. Anda harus cepat dan akurat saat bekerja dengan lem super karena lem super cepat mengeras. Semen Akrilik paling cocok untuk pekerjaan ini.

Membuat lubang kecil untuk mengakses port USB menggunakan file. Itu harus cukup besar untuk memasukkan kabel USB.

Membuat kisi 3x3 di sampul depan untuk tombol tekan. Ini akan membuat tombol push sulit diakses. Untuk mengatasi masalah ini, saya memotong potongan persegi untuk setiap tombol sehingga tombolnya sekarang diperpanjang hingga ke permukaan.

Setelah begitu banyak pengamplasan, pemotongan, pemasangan dan penyesuaian, akhirnya selesai!

Langkah 9: Bersenang-senanglah

Selamat bersenang-senang!
Selamat bersenang-senang!

Akhirnya, semua kerja keras selesai. Nyalakan papan skor mini Anda dan tetap perbarui dengan permainan.

Setelah dinyalakan, pertama-tama terhubung ke titik akses. Inisialisasi kartu SD. Ini akan menunjukkan kesalahan jika kartu SD tidak diinisialisasi.

Daftar semua pertandingan akan ditampilkan bersama dengan nomor pertandingan.

Pilih nomor yang cocok menggunakan keypad.

Skor akan ditampilkan. Anda dapat menyesuaikan semua hal yang ingin Anda lihat di layar. Saya tidak akan terlalu jauh menjelaskan kodenya. Anda dapat menemukan penjelasan rinci di sini tentang cara kerja parsing.

Untuk kembali ke menu, tahan tombol KEMBALI (Kunci 8) hingga halaman "Mengambil Skor…" ditampilkan.

Rencana masa depan

  • Rancang PCB khusus dengan modul ESP8266 12-E.
  • Tambahkan baterai isi ulang.
  • Tingkatkan kode dengan fitur baru.

Semoga Anda menikmati pembangunannya. Buat sendiri dan bersenang-senanglah! Selalu ada ruang untuk perbaikan dan banyak belajar. Munculkan ide-ide Anda sendiri. Jangan ragu untuk mengomentari saran apa pun mengenai build. Terima kasih telah bertahan sampai akhir.

Direkomendasikan: