Isi kandungan:

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

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

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

Helo! Saya baru-baru ini diperkenalkan dengan dunia IoT (Internet of Things) kerana saya menemui peranti paling popular dalam bidang ini, ESP8266. Saya kagum dengan sejumlah kemungkinan yang dikeluarkan oleh peranti kecil dan murah ini. Oleh kerana saya baru mengetahui ini, saya memutuskan untuk membuat projek menggunakannya dan belajar di sepanjang jalan. Oleh itu, saya mula mencari di internet untuk projek dan idea.

Saya menemui projek yang luar biasa bernama Arduino Cricket Score Ticker oleh W. A. Smith. Dalam projek ini, Arduino bersama Ethernet Shield dan kad SD digunakan untuk memaparkan skor kriket langsung dari Cricbuzz. Projek ini membuat saya berfikir.

Saya berasal dari India dan perkara pertama yang terlintas di fikiran setelah mendengar India ialah Cricket. Di sini, kriket adalah agama. Kadang-kadang menjadi sukar untuk duduk di depan TV untuk mengikuti keseluruhan perlawanan. Oleh itu, mengapa tidak membuat sesuatu yang menjadikan skor menonton mudah, tanpa wayar dan mudah alih. Peranti kecil khusus yang menunjukkan maklumat yang mencukupi untuk membuat anda dikemas kini hanya dengan melihatnya.

Bukan peminat kriket? Tiada masalah! Kod tersebut mengandungi penghurai XML yang dapat digunakan untuk mendapatkan data dari mana-mana fail XML. Cukup gunakan fungsi yang betul untuk mendapatkan data.

Langkah 1: Rancangan

Rancangan
Rancangan

Rancangannya adalah menggunakan NodeMCU Development Board (dengan modul ESP-12E) untuk mengakses internet dan meminta kod XML dari Cricbuzz yang mengandungi semua maklumat mengenai pertandingan yang sedang berlangsung / akan datang. Kod ini disimpan pada kad SD sebagai fail.xml. Fail kemudian dibaca dari kad SD untuk menguraikan data yang diperlukan dari kod XML. Saya akan menggunakan kod W. A. Smith untuk menghuraikan maklumat. Berkat usahanya. Lihat projeknya jika anda ingin membuat yang sama menggunakan Arduino dan Ethernet Shield.

Idea saya adalah menjadikannya sekecil mungkin, membina PCB khas dan casingnya. Buat masa ini, mari buat prototaip. Tetapi pertama, mari kita kenal dengan komponen yang digunakan dalam projek ini.

Mari kita mulakan

Langkah 2: Paparan OLED

Paparan OLED
Paparan OLED
Paparan OLED
Paparan OLED

Saya memutuskan untuk menggunakan paparan OLED kerana saiznya yang kecil dan ia tersedia dengan harga yang murah. Saya menggunakan paparan 0,96 yang cukup untuk menampilkan maklumat pertandingan. Anda boleh menggunakan ukuran paparan apa pun.

Paparan yang saya gunakan adalah satu monokrom dengan pemacu SSD1306 dan antara muka I2C (2-wayar). Versi paparan SPI juga tersedia. Menjalankannya adalah tugas yang mudah. Muat turun perpustakaan SSD1306 dan GFX yang diperlukan untuk menjalankan paparan. Terima kasih kepada Adafruit kerana menulis perpustakaan ini.

Sambungan sangat mudah.

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

Langkah 3: Kad & Penyesuai SD

Kad & Penyesuai SD
Kad & Penyesuai SD

Kad SD menyimpan fail XML dari Cricbuzz sehingga semua maklumat telah dihuraikan. Setelah maklumat yang diperlukan dipaparkan, fail tersebut akan dihapuskan. Menggunakan kad SD untuk menyimpan fail XML 10 - 20 kB sedikit berlebihan tetapi ia menjadikan penghuraian lebih mudah dan senang difahami.

Sebarang kad memori boleh digunakan. Saya memilih kad SD mikro kerana faktor bentuknya yang kecil. Anda boleh memasangkan wayar ke kad SD secara langsung tetapi menggunakan papan pemecah menjadikan kerja ini mudah. Perlu diingatkan bahawa semua kad SD dimaksudkan untuk berjalan pada 3.3V. Ini bermaksud bahawa bukan sahaja ia harus diaktifkan menggunakan 3.3V tetapi juga komunikasi antara mikrokontroler dan kad SD mestilah tahap logik 3.3V. Voltan di atas 3.3V akan MEMBUNUHNYA! Kami tidak akan menyusahkannya sejauh NodeMCU kerana NodeMCU sendiri berjalan pada 3.3V yang baik. Sekiranya anda bercadang untuk menggunakan mikrokontroler lain dengan logik tahap 5V, pastikan papan pelarian anda mempunyai tingkat pergeseran bawaan (Seperti yang ditunjukkan dalam gambar). Ia pada dasarnya menukar atau 'menukar' 5V dari mikrokontroler ke kad SD 3.3V mesra. Menggunakan level shifter bersama dengan 3.3V (seperti yang saya lakukan) tidak mempengaruhi kerjanya.

Kad SD menggunakan antara muka SPI untuk komunikasi. Pin CS atau Chip Select boleh disambungkan ke mana-mana pin GPIO. Saya memilih GPIO15 (D8). Cukup buat perubahan yang diperlukan dalam kod jika anda menggunakan pin selain GPIO15

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

Format kad SD anda

Perpustakaan yang akan kami gunakan menyokong sistem fail FAT16 atau FAT32. Pastikan anda memformat kad SD ke format yang betul.

Langkah 4: Membuat Pad Kekunci

Membuat Pad Kekunci
Membuat Pad Kekunci
Membuat Pad Kekunci
Membuat Pad Kekunci
Membuat Pad Kekunci
Membuat Pad Kekunci

Saya mahu projek ini sekecil mungkin. Oleh itu, saya memutuskan untuk membuat papan berasingan untuk papan kekunci dan memasangnya di atas papan utama kemudian. Ini akan menjimatkan sedikit ruang.

Matriks kunci siap pakai boleh dibeli tetapi saya mempunyai butang tekan yang ada. Saya juga mahu menjadikannya sekecil mungkin. Susunan khas untuk menghubungkan baris dan lajur memerlukan 6 pin GPIO untuk matriks 3 x 3. Ini cukup banyak kerana paparan OLED dan kad SD akan disambungkan juga.

Apabila ragu-ragu, Google keluar! Itulah yang saya buat dan menemui kaedah yang memerlukan hanya 1 pin untuk mengawal keseluruhan matriks. Ini dimungkinkan dengan menggunakan Voltage Divider Matrix. Perintang dihubungkan antara setiap baris dan lajur. Apabila kekunci ditekan, kombinasi perintang tertentu disambung secara bersiri yang mewujudkan pembahagi voltan. Rujuk gambarajah litar. Voltan yang berbeza-beza akan dibaca oleh mikrokontroler. Setiap kekunci akan menghasilkan voltan yang berbeza dan dengan itu dapat diketahui dengan mudah mana kunci yang ditekan dengan membaca voltan keluaran matriks. Oleh kerana kita ingin membaca tahap voltan yang berbeza-beza dan sekarang hanya tinggi dan rendah, kita memerlukan pin Analog. Nasib baik ada satu pin Analog yang dilabel sebagai A0 di NodeMCU. Masalah selesai!

Sekiranya anda ingin membeli matriks, periksa sambungan dalaman yang ditunjukkan dalam rajah. Matriks dari sebarang dimensi boleh digunakan. Pastikan menggunakan perintang 2.2kΩ antara baris dan perintang 680Ω antara lajur.

Menyambung Butang Tekan

Pin 1 & 2 disambungkan secara dalaman. Sama dengan pin 3 & 4. Apabila butang ditekan, semua pin disambungkan bersama. Rujuk gambar untuk mendapatkan idea menyambungkan suis pada papan wangi.

Saya telah menyambungkan header lelaki 3-pin supaya dapat disambungkan ke papan utama kemudian.

Langkah 5: Menggabungkan Semuanya

Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya

Anda boleh merancang untuk meletakkan komponen di mana sahaja anda mahu. Tiada sekatan ke atasnya. Saya akan menunjukkan kepada anda bagaimana saya melakukannya untuk menjadikannya padat kerana saya mahukan sesuatu yang sesuai di telapak tangan. Ia boleh menjadi sedikit tidak kemas jadi cubalah cara saya jika anda selesa dengan pematerian. Saya memutuskan untuk mengisi kedua-dua sisi papan seperti PCB dua lapisan. Papan pelarian kad NodeMCU dan SD di satu sisi dan OLED dan papan kekunci di sisi lain.

Penembusan kad SD kebetulan sesuai antara dua header wanita untuk NodeMCU. Saya memotong kepala lelaki bersudut yang disertakan dengan papan pelarian, memutarnya dan kembali disolder sehingga pin bergerak tegak ke bawah seperti yang ditunjukkan dalam gambar. Mengakses slot kad SD menjadi lebih mudah.

Saya membengkokkan pin header wanita 4-pin pada sudut yang betul dan mematerinya di bahagian tembaga pada papan wangi seperti yang ditunjukkan dalam gambar.

Tutup sendi pateri di bawah pad kekunci untuk mengelakkan litar pintas. Tambahkan sekeping busa keras (tebal sekitar 5mm) antara papan kekunci dan papan utama untuk perlindungan dan ketegaran tambahan. Akhirnya, pasangkan pad kekunci yang kami buat sebelumnya. Mempunyai solder dengan hujung runcing pasti akan memudahkan pekerjaan anda. Ini adalah pekerjaan yang tidak kemas menjadikannya sekerap mungkin tetapi akhirnya berjaya melakukannya.

Periksa semula semua sambungan anda untuk sebarang litar pintas sebelum menghidupkan peranti

Langkah 6: Menyiapkan Pad Kekunci

Menyiapkan Pad Kekunci
Menyiapkan Pad Kekunci

Setelah anda memeriksa semua sambungan, anda bersedia menghidupkan peranti anda untuk pertama kalinya. Jari melintasi! Tiada asap sihir? Tahniah!

Sekarang kita sudah bersedia untuk menyediakan pad kekunci. Ingat kembali fungsi pad kekunci. Setiap penekanan kekunci akan mengeluarkan voltan berbeza yang dimasukkan ke pin analog NodeMCU. ESP-12E mempunyai Analog ke Digital Converter (ADC) dengan resolusi 10-bit. 2 dinaikkan ke kekuatan 10 akan memberikan 1024. Ini bermaksud bahawa kita akan mendapat bacaan antara 0 dan 1024 untuk setiap kekunci yang ditekan. Mari kita lihat bacaan apa yang kita dapat. Tetapi pertama, kita harus menulis program kecil untuk mendapatkan nilai-nilai tersebut. Buka Arduino IDE, copy paste kod berikut dan muat naik ke NodeMCU.

int keypadPin = A0;

persediaan tidak sah () {Serial.begin (115200); } gelung void () {int r = analogRead (keypadPin); Bersiri.println (r); }

  • Buka monitor Serial. Tetapkan kadar baud ke 115200.
  • Sekarang tekan butang mana-mana. Anda mesti mendapat bacaan berterusan pada monitor Serial. Turun naik kecil tidak mengapa. Mereka akan dijaga dalam kod utama. Lakukan perkara yang sama untuk setiap kunci.
  • Setiap kunci mesti mempunyai bacaan yang berbeza.
  • Catat semua nilai. Kami memerlukannya kemudian.

Langkah 7: Mari Kod

Mari Kod
Mari Kod
Mari Kod
Mari Kod
Mari Kod
Mari Kod

Muat turun fail Scoreboard.ino yang disediakan di bawah di komputer anda dan buka dengan menggunakan Arduino IDE.

Sebelum anda memuat naik

1) Tetapkan masa muat semula untuk papan skor. Contohnya, 15L selama 15 saat.

2) Masukkan SSID dan kata laluan penghala yang ingin disambungkan.

3) Lakukan perubahan yang diperlukan jika anda memilih untuk menyambungkan pin CS kad SD ke pin selain GPIO15.

4) Ingat nilai yang kita catat untuk semua kunci? Kita mesti memberikan nombor kunci untuk setiap nilai. Saya juga telah memberitahu anda mengenai turun naik bacaan. Ini kerana kenalan suis tidak sempurna. Dalam jangka masa panjang, nilai ini dapat menyimpang dari nilai semasa kerana penuaan kenalan yang menambahkan rintangan tambahan dalam litar sehingga mengubah voltan. Kita boleh mengatasi masalah ini dalam kod.

Kami akan menambahkan had atas dan had bawah nilai dengan margin 5. Sebagai contoh, saya mendapat bacaan 617 untuk kunci 1.

  • Kurangkan 5 darinya. 617 - 5 = 612. Ini adalah had bawah.
  • Sekarang tambahkan 5 padanya. 617 + 5 = 622. Ini adalah had atas.
  • Tatal ke hujung kod. Isi ruang yang disediakan untuk dua nilai dalam kod seperti yang ditunjukkan dalam gambar.
  • Lakukan ini untuk setiap 9 nilai.

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

Apakah maksud ini?

JIKA bacaan (r) lebih besar daripada 612 DAN kurang daripada 622, maka kekunci 1 ditekan. Sebarang nilai antara 612 dan 622 akan dianggap sebagai kunci 1. Ini menyelesaikan masalah bacaan yang berubah-ubah.

Langkah 8: Membina Kes

Membina Kes
Membina Kes
Membina Kes
Membina Kes
Membina Kes
Membina Kes
Membina Kes
Membina Kes

Ini adalah pilihan sepenuhnya. Saya fikir projek itu akan kelihatan kemas dan lengkap dengan casing di sekitarnya. Tanpa alat yang sesuai untuk pekerjaan ini, ini akan menjadi tugas besar bagi saya. Sarungnya dibina menggunakan akrilik.

Siapkan kepingan untuk dilekatkan dengan melicinkan tepi menggunakan kertas pasir. Saya menggunakan Fevi Kwik (Super Lem) untuk menyatukan semua bahagian. Super lem meninggalkan residu putih setelah ia sembuh. Jadi, sapukan hanya di antara sendi. Anda harus cepat dan tepat ketika bekerja dengan lem super kerana ia cepat terpasang. Semen Akrilik sangat sesuai untuk pekerjaan ini.

Membuat bukaan kecil untuk mengakses port USB menggunakan fail. Ia harus cukup besar untuk memasukkan kabel USB.

Membuat grid 3x3 pada penutup depan untuk butang tekan. Ini akan menjadikan butang tekan sukar diakses. Untuk menyelesaikan masalah ini, saya memotong kepingan persegi untuk setiap kunci sehingga butang mereka kini dipanjangkan ke permukaan.

Setelah pengamplasan, pemotongan, pembaikan dan penyesuaian begitu banyak, akhirnya ia selesai!

Langkah 9: Bersenang-senang

Berseronok!
Berseronok!

Akhirnya, semua kerja keras dilakukan. Naikkan papan skor mini anda dan dapatkan maklumat terkini permainan.

Setelah menghidupkan, pertama kali menghubungkan ke titik akses. Memulakan kad SD. Ia akan menunjukkan ralat jika kad SD tidak dimulakan.

Senarai semua perlawanan akan dipaparkan bersama dengan nombor perlawanan.

Pilih nombor padanan menggunakan pad kekunci.

Markah akan dipaparkan. Anda boleh menyesuaikan semua perkara yang anda mahu lihat di paparan. Saya tidak akan terlalu dalam menerangkan kodnya. Anda boleh mendapatkan penjelasan terperinci di sini mengenai cara penghuraian berfungsi.

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

Rancangan masa hadapan

  • Reka bentuk PCB tersuai dengan modul ESP8266 12-E.
  • Tambahkan bateri yang boleh dicas semula.
  • Tingkatkan kod dengan ciri baru.

Semoga anda menikmati pembinaannya. Buat sendiri dan bersenang-senang! Selalu ada banyak ruang untuk penambahbaikan dan banyak yang perlu dipelajari. Tentukan idea anda sendiri. Jangan ragu untuk memberi komen mengenai cadangan mengenai binaan tersebut. Terima kasih kerana terus bertahan hingga akhir.

Disyorkan: