Daftar Isi:
- Langkah 1: Proyek
- Langkah 2: Instal Papan DFRobot FireBeetle ESP32 Ke Arduino IDE
- Langkah 3: Instal Perpustakaan Umum untuk Proyek
- Langkah 4: Penutup Matriks LED 24x8
- Langkah 5: Proyek 1: Jam NTP Matrix LED Sederhana Dengan Tampilan Waktu Militer atau Tampilan AMPM
- Langkah 6: Proyek 2: Tampilan Prediksi ISS Pass,
- Langkah 7: Proyek 3: Tanda Pesan Bergerak Sederhana Menggunakan MQTT
- Langkah 11: Tautan…
Video: 4 Proyek dalam 1 Menggunakan DFRobot FireBeetle ESP32 & Penutup Matriks LED: 11 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Saya berpikir untuk melakukan instruksi untuk masing-masing proyek ini - tetapi pada akhirnya saya memutuskan bahwa perbedaan terbesar adalah perangkat lunak untuk setiap proyek, saya pikir lebih baik membuat satu instruksi besar!
Perangkat kerasnya sama untuk setiap proyek, dan kami menggunakan Arduino IDE untuk memprogram perangkat ESP32.
Jadi apa perangkat kerasnya: Semua perangkat keras disediakan oleh teman-teman saya di DFRobot, mereka memiliki tutorial yang sangat bagus, dan papan inti yang mudah dipasang untuk ini. Juga memiliki sistem pendukung yang baik, dan pengiriman yang cukup cepat ke AS.
Pengungkapan penuh papan Firebeetle ESP32, dan Matriks LED disediakan oleh DF Robot, proyek yang disajikan dan dalam video adalah milik saya sendiri.
Semua proyek ini menggunakan DFRobot FireBeetle ESP32 IOT MicroController
www.dfrobot.com/product-1590.html
Wiki dukungan - dengan petunjuk pemasangan inti papan dapat ditemukan di sini:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Kami juga membutuhkan FireBeetle Covers 24x8 LED Matrix (BIRU)
www.dfrobot.com/product-1595.html
Tidak suka led BIRU - Mereka memiliki warna yang berbeda juga.
HIJAU -
MERAH -
PUTIH -
KUNING -
Anda hanya perlu satu Matriks LED - warnanya adalah pilihan Anda, semuanya bekerja sama.
Wiki dukungan Matriks LED dapat ditemukan di sini:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Di sini kami menemukan tautan ke Perpustakaan Arduino.
github.com/Chocho2017/FireBeetleLEDMatrix
Lebih lanjut tentang ini nanti….
Sesuatu yang opsional, tetapi mungkin berguna untuk dimiliki adalah Dudukan Baterai MicroUSB 3xAA.
www.dfrobot.com/product-1130.html
Jadi Itu adalah perangkat keras yang dibutuhkan - Apa saja 4 proyek -
Langkah 1: Proyek
Proyek 1: Adalah Jam NTP Matrix LED sederhana dengan tampilan Waktu Militer atau tampilan waktu AMPM, Jam ini akan terhubung ke NTP (server waktu) ambil waktu, dan menerapkan off set sehingga Anda mendapatkan waktu lokal. Ini akan menampilkan waktu pada Matriks LED. - Ini adalah jam yang sangat sederhana, dan proyek pertama yang sangat sederhana.
Proyek 2: Tampilan Prediksi ISS Pass, proyek ini menggunakan inti ke-2 dari prosesor. Ini akan menampilkan seberapa dekat (dalam mil) ISS, kapan mengharapkan ISS berikutnya berlalu di lokasi Anda (Dalam waktu UTC), dan secara opsional berapa banyak orang di luar angkasa. Karena banyak informasi ini tidak sering berubah, kami menggunakan inti ke-2 untuk hanya memeriksa pembaruan prediksi kelulusan, atau berapa banyak orang di luar angkasa setiap 15 menit. Kami dapat mencegah terlalu banyak panggilan API ke server dengan cara ini. Proyek ini sedikit lebih rumit, tetapi masih cukup mudah dilakukan.
Proyek 3: Tanda Pesan Bergerak Sederhana menggunakan MQTT, saya mengunjungi kembali proyek yang dibuat untuk papan mini ESP8266 D1, dan itu adalah Matriks LED 8x8 - Idenya adalah untuk terhubung ke broker MQTT, mengirim pesan ke topik perangkat ini mendengarkan - dan menampilkan pesan itu. Ini cukup mudah, dan sangat sederhana untuk dilakukan setelah semuanya diatur. Dan ada beberapa langkah untuk menyiapkan perangkat lunak klien MQTT di komputer desktop. Setelah pengaturan MQTT adalah protokol perpesanan yang sangat kuat yang digunakan oleh banyak perangkat IoT untuk mengirim dan menerima pesan.
Proyek 4: Tampilan Stasiun Cuaca - berdasarkan stasiun cuaca mini ESP8266 D1 yang dibuat oleh Squix78 dan ThingPulse. Kami mengambil data kami dari Wunderground, dan menampilkan kondisi saat ini, dan suhu dalam derajat Fahrenheit. Kami menggunakan inti ke-2 dari ESP32, untuk memperbarui data kami setiap 10 menit. Hal ini juga sederhana untuk setup.
CONTOH BOUNS MINI: Perpustakaan (dan sketsa di atas) menggunakan font 8x4, perpustakaan juga berisi font 5x4, yang saya gunakan untuk sebagian besar contoh mini BOUNS ini. Ada beberapa masalah yang dapat saya perhatikan dengan font kecil, yang tampaknya menyebabkan masalah saat Anda menggunakan WIFI perangkat. Ini adalah sesuatu yang ingin saya jelajahi lebih lanjut, tetapi saya punya waktu. Masalah lainnya adalah tidak menggulir, hanya font yang lebih besar yang dapat menggulir. Jadi tidak satu pun dari contoh-contoh ini yang menggunakan WIFI - mereka hanya memperbarui tampilan, dan lebih lanjut tentang ini nanti.
Mari kita mulai…..
Langkah 2: Instal Papan DFRobot FireBeetle ESP32 Ke Arduino IDE
Jadi, saya akan merujuk Anda ke DF Robot Wiki tentang memasang inti papan untuk Arduino IDE.
Ini cukup mudah dilakukan dengan IDE modern (1.8.x atau lebih baik).
www.dfrobot.com/wiki/index.php/FireBeetle_…
Saya menemukan bahwa perpustakaan WiFi yang dibangun ke dalam Arduino IDE menyebabkan masalah (PS Perpustakaan WiFi lain yang mungkin diinstal di direktori perpustakaan Anda mungkin atau mungkin tidak menimbulkan masalah). Satu-satunya cara (atau setidaknya cara termudah) yang saya temukan untuk menyelesaikan masalah ini adalah dengan menghapus pustaka WiFi dari direktori IDE. Sayangnya tidak ada cara yang baik untuk memberi tahu Anda di mana itu mungkin diinstal - itu tergantung pada bagaimana IDE diinstal, dan pada OS apa yang Anda gunakan.
Apa yang saya lakukan adalah menemukan perpustakaan WiFi yang menyebabkan masalah, dan cukup pindahkan direktori direktori WiFi ke desktop Anda…dan mulai ulang IDE. Dengan begitu Anda dapat menyimpan perpustakaan jika Anda membutuhkannya untuk papan WIFI Arduino.
90% dari masalah yang saya lihat terkait dengan masalah di atas. Jika Anda mendapatkan banyak kesalahan kompilasi, terkait dengan penggunaan WiFi dari direktori Arduino IDE atau direktori Perpustakaan Arduino, ini adalah masalah yang Anda miliki.
Masalah kedua saya adalah terkadang unggahan sketsa gagal diunggah - Dalam hal ini saya hanya perlu menekan tombol unggah lagi, dan berhasil.
Dan terakhir, jika Anda membuka konsol serial, lalu menutupnya - FireBeetle membeku.
Saya tahu bahwa Robot DF secara aktif bekerja pada inti papan, dan hanya dalam waktu singkat setelah saya memiliki papan, mereka telah merilis inti baru. Sayangnya itu tidak menyelesaikan masalah WiFi yang merupakan masalah terbesar saya.
* Espressif memiliki manajer inti 'generik' yang dapat diinstal, inti memang menyertakan papan FireBeetle ESP32, tetapi saya mengalami masalah dengan nomor pinnya. Hal yang menarik di sini adalah perpustakaan WiFi bekerja dengan perpustakaan WiFi built-in - jadi saya tahu ada solusi untuk masalah itu.
Jika Anda ingin mencoba inti Espressif, Anda dapat mengetahui informasi lebih lanjut di sini:
github.com/espressif/arduino-esp32
Saya pribadi menyukai cara kerja inti DF-Robot, bahkan dengan beberapa masalah yang saya alami.
** CATATAN: Saya menggunakan LinuxMint 18 yang berbasis Ubuntu 16.04, saya pikir, saya belum mencoba ini di mesin lain, tapi saya yakin masalahnya ada untuk semua OS berdasarkan beberapa pencarian internet yang saya lakukan. **
Langkah 3: Instal Perpustakaan Umum untuk Proyek
Semua proyek ini menggunakan beberapa perpustakaan umum, jadi lebih mudah untuk melakukan langkah ini sekarang.
Bergantung pada perpustakaan, Anda mungkin menemukannya di manajer perpustakaan - yang sejauh ini merupakan cara termudah untuk menginstal perpustakaan.
Cara umum lainnya adalah menginstal melalui file zip, yang juga berfungsi sama. Tapi umumnya saya menggunakan cara install manual. Ada tutorial bagus tentang tiga metode di Situs Web Arduino.
www.arduino.cc/en/guide/libraries
Untuk perpustakaan ini, saya akan merekomendasikan metode manual - karena ada beberapa perpustakaan yang berbeda dengan nama yang sama, menggunakan manajer perpustakaan Anda mungkin berakhir dengan salah.
Semua proyek ini menggunakan Pengelola WiFi untuk memudahkan koneksi ke wifi Anda - Saya memutuskan untuk melakukannya, jadi jika Anda perlu memindahkan proyek, Anda tidak perlu memprogram ulang papan. Ini adalah sesuatu yang saya gunakan untuk papan ESP8266, dan berfungsi dengan baik - tidak sempurna. Keberuntungan untuk menggunakan perpustakaan telah porting untuk menggunakan ESP32 oleh pengguna github bernama bbx10. (Manajer ini juga harus bekerja dengan papan ESP8266)
Kita perlu menginstal tiga perpustakaan agar ini juga berfungsi.
WiFiManager -
Server Web -
Dan akhirnya DNSServer -
Juga umum untuk semua sketsa adalah perpustakaan DF Robot DFRobot_HT1632C untuk Matriks LED.
www.dfrobot.com/wiki/index.php/FireBeetle_…
Perpustakaan dapat ditemukan di sini (Sekali lagi saya akan merekomendasikan metode instalasi manual)
github.com/Chocho2017/FireBeetleLEDMatrix
Catatan khusus: di repositori github saya - Saya memiliki beberapa pustaka DFRobot_HT1632C yang sedikit dimodifikasi
github.com/kd8bxp/DFRobot-FireBeetle-ESP32…
Modifikasi untuk font yang lebih kecil, dan hanya digunakan untuk beberapa contoh bonus. Anda dapat menggunakan perpustakaan yang dimodifikasi dan seharusnya tidak menimbulkan masalah. Ada juga perpustakaan yang sedikit dimodifikasi (Terlampir pada beberapa sketsa sebagai tab) yang dapat melakukan gambar bitmap.
Jika Anda memilih untuk menggunakan versi yang sedikit dimodifikasi, Anda perlu mengganti nama direktori "modified-library" menjadi FireBeetleLEDMatrix dan memindahkan folder itu ke direktori library Arduino Anda. Anda tidak harus menggunakan versi ini untuk proyek ini, ini diperlukan jika Anda ingin mencoba beberapa font yang lebih kecil dari contoh bonus.
Itu adalah perpustakaan umum - kami akan menginstal beberapa perpustakaan khusus untuk setiap proyek.
Mari kita beralih ke Matriks LED….
Langkah 4: Penutup Matriks LED 24x8
Untuk Kami akan mengikuti Tutorial Robot DF untuk Matriks LED
www.dfrobot.com/wiki/index.php/FireBeetle_…
Pendahuluan: Tampilan Matriks LED 24×8 ini dirancang khusus untuk seri FireBeetle. Ini mendukung mode konsumsi daya rendah dan tampilan bergulir. Dengan chip driver LED kinerja tinggi HT1632C, setiap led memiliki register independen, yang membuatnya mudah untuk dikendarai secara terpisah. Ini mengintegrasikan jam RC 256 KHz, hanya 5uA di bawah mode daya rendah, mendukung penyesuaian kecerahan PWM 16 skala. Produk ini juga bekerja dengan mikrokontroler Arduino lainnya seperti Arduino UNO.
Spesifikasi:
- Tegangan Operasi: 3.3~5VLED
- Warna: Satu warna (Putih/Biru/Kuning/Merah/Hijau)
- Drive Chip: HT1632C
- Bekerja Saat Ini: 6 ~ 100mA
- Konsumsi daya rendah: 5uARC
- jam: 256KHz
- Pilihan Chip (CS): D2, D3, D4, D5 dapat dipilih
- Mendukung tampilan Bergulir
PIN bawaan:
- DATAD6
- WRD7 (Umumnya Tidak Digunakan)
- CSD2, D3, D4, D5 dapat dipilih (D2 default)
- RDD8
- VCC 5VUSB; Baterai 3.7VLipo
(Semua proyek ini menggunakan D2 untuk memilih pin, ini dapat dengan mudah diubah sesuai kebutuhan.)
Di bagian belakang Matriks LED Anda akan melihat 4 sakelar kecil, pastikan untuk hanya memilih salah satu pin CS. Sakelar kecil ini adalah cara Anda memilih Pin CS Anda, dan defaultnya adalah D2.
DF Robot WIKI memiliki beberapa kode contoh, kode ini juga ada di contoh untuk perpustakaan. (Aku percaya)
Catatan lain: gunakan nomor Dx untuk pin Anda - jika tidak, nomor pin akan menjadi nomor/nama pin IO
Dan itu dapat menyebabkan Anda beberapa masalah.
Menetapkan titik:
X adalah 0 hingga 23 (atau jika Anda menganggapnya sebagai spreadsheet, ini adalah kolom).
Y adalah 0 hingga 7 (atau jika Anda menganggapnya sebagai spreadsheet, ini adalah baris).
Perpustakaan menyediakan fungsi set point.
display.setPoint(x, y) ini akan mengatur kursor ke lokasi itu, di mana Anda sekarang dapat mencetak pesan.
display.print("Halo Dunia", 40); //ini akan menyebabkan tampilan menampilkan "Hello World" mulai dari titik x, y dan bergulir dari layar.
Ada juga setPixel(x, y) dan clrPixel(x, y) - setPixel akan menyalakan satu LED di lokasi x, y, dan clrPixel akan mematikan LED di lokasi x, y.
Ada beberapa hal lain yang dapat dilakukan perpustakaan ini - dan sebagian besar disertakan dalam contoh.
(Saya akan merekomendasikan menjalankan dan memodifikasi contoh untuk melihat apa yang dapat dilakukannya).
* Satu hal yang tampaknya kurang adalah menggambar bitmap - perpustakaan sebenarnya dapat melakukan ini tetapi untuk beberapa alasan itu adalah fungsi pribadi perpustakaan. Lihat beberapa contoh bonus saya untuk versi perpustakaan yang sedikit dimodifikasi
** Hal lain yang termasuk set font 5x4, yang bagus untuk memiliki font yang lebih kecil - itu dikomentari bagaimanapun di perpustakaan. Saya menghapus komentarnya, dan membuatnya berfungsi, tetapi melihat beberapa masalah dengannya - yang terbesar tidak menggulir. Dan saya perhatikan bahwa itu tampaknya menyebabkan masalah dengan wifi atau mungkin perpustakaan lain yang ingin saya gunakan.
Namun salah satu perpustakaan yang dimodifikasi yang saya sertakan menggunakan font 5x4.
Mari beralih ke proyek…..
Langkah 5: Proyek 1: Jam NTP Matrix LED Sederhana Dengan Tampilan Waktu Militer atau Tampilan AMPM
Proyek 1: Adalah Jam NTP Matrix LED sederhana dengan tampilan Waktu Militer atau tampilan waktu AMPM, Jam ini akan terhubung ke NTP (server waktu) ambil waktu, dan menerapkan off set sehingga Anda mendapatkan waktu lokal. Ini akan menampilkan waktu pada Matriks LED. - Ini adalah jam yang sangat sederhana, dan proyek pertama yang sangat sederhana.
Sebelum kita mulai dengan proyek sederhana ini, mungkin ada baiknya untuk mengetahui apa itu NTP -
NTP adalah protokol internet yang digunakan untuk menyinkronkan jam komputer ke beberapa referensi waktu. Ini adalah protokol standar. NTP adalah singkatan dari Protokol Waktu Jaringan.
NTP menggunakan UTC sebagai waktu referensi (UTC adalah Universal Time Coordinated) ia berkembang dari GMT (Greenwich Mean Time), dan di beberapa kalangan disebut Waktu Zulu (Militer). UTC didasarkan pada resonansi kuantum atom cesium.
NTP toleran terhadap kesalahan, dan sangat skalabel, protokolnya sangat akurat, menggunakan resolusi kurang dari satu nanodetik.
*
Jam UTC tidak banyak berguna bagi kebanyakan orang, jadi kita perlu menyesuaikan jam kita dengan waktu lokal. Untungnya kita bisa melakukan ini dengan cukup mudah. Jadi mari kita mulai dengan Jam NTP sederhana ini….
Pertama kita perlu menginstal perpustakaan yang membuat berbicara dengan server NTP menjadi mudah.
github.com/arduino-libraries/NTPClient (perpustakaan ini mungkin ada di pengelola perpustakaan)
Apakah Anda melewatkan langkah 3 - dan tidak yakin bagaimana cara menginstal perpustakaan(?) Lebih baik kembali dan baca langkah 3:-)
Anda perlu pergi ke situs web ini, dan memasukkan kota terdekat dengan Anda yang ada di zona waktu Anda.
www.epochconverter.com/timezones
Saat Anda menekan enter, Anda akan melihat "Hasil konversi", dan dalam hasil tersebut Anda akan mendapatkan offset Anda (selisih dengan GMT/UTC) dalam hitungan detik (Bagi saya itu adalah -14400)
Dalam sketsa dfrobot_firebeetle_led_matrix_ntp_clock pada baris 66 Anda akan melihat:
#define TIMEOFFSET -14400 //Temukan pengaturan Zona Waktu Anda Di Sini https://www.epochconverter.com/timezones OFF Atur dalam Detik#define AMPM 1 //1 = Waktu AM PM, 0 = MILITARY/24 HR Time
ganti -14400 dengan offset Anda. Baris berikutnya Anda akan melihat AMPM 1 - ini akan menyebabkan jam menampilkan waktu dalam AM/PM - jika Anda lebih suka melihatnya dalam waktu 24 jam, buat yang nol.
Selanjutnya unggah sketsa ke papan Anda, sambungkan ke Access point (wifi manager) dan masukkan detail untuk wifi Anda. JIKA Anda telah melakukan ini, Anda akan melihat gulir "terhubung" di layar dan beberapa detik kemudian Anda akan melihat waktu.
Itu saja untuk proyek ini - sederhana dan mudah digunakan…..
(Kemungkinan peningkatan: Menampilkan Bulan, Hari dan Tahun, mengatur bel dan alarm - umumnya mengontrol apa yang Anda lihat melalui halaman web. Ide ini akan membutuhkan penulisan ulang besar dari sketsa sederhana saat ini)
Siap untuk proyek sederhana lainnya -- Tampilkan di mana ISS berada - Lewati prediksi, dan berapa banyak orang di Luar Angkasa! (PS sketsa ini memang menggunakan halaman web untuk mengontrol apa yang ditampilkan) …..
Langkah 6: Proyek 2: Tampilan Prediksi ISS Pass,
Proyek 2: Tampilan Prediksi ISS Pass, proyek ini menggunakan inti ke-2 dari prosesor. Ini akan menampilkan seberapa dekat (dalam mil) ISS, kapan mengharapkan ISS berikutnya berlalu di lokasi Anda (Dalam waktu UTC), dan secara opsional berapa banyak orang di luar angkasa. Karena banyak informasi ini tidak sering berubah, kami menggunakan inti ke-2 untuk hanya memeriksa pembaruan prediksi kelulusan, atau berapa banyak orang di luar angkasa setiap 15 menit. Kami dapat mencegah terlalu banyak panggilan API ke server dengan cara ini. Proyek ini sedikit lebih rumit, tetapi masih cukup mudah dilakukan.
Proyek ini didasarkan pada salah satu proyek saya sebelumnya yang dapat ditemukan di sini:
(Sistem Notifikasi ISS Sederhana) Di situ saya menggunakan ESP8266 dengan layar OLED terpasang (D-Duino). Untuk sebagian besar proyek ini hanya menggunakan sistem tampilan yang berbeda, saya memperluasnya sehingga Anda dapat mengubah apa yang ingin Anda lihat dengan cepat melalui halaman web. Jadi mari kita mulai….
Sebagian besar kredit untuk kemudahan penggunaan masuk ke https://open-notify.org yang memiliki API yang sangat sederhana dan mudah digunakan. Open-notify API memiliki tiga hal yang dapat ditampilkan, lokasi ISS di lintang dan bujur, melewati prediksi berdasarkan lintang dan bujur yang diberikan. Dan akhirnya berapa banyak orang (Dan nama mereka) di luar angkasa.
Kita perlu menginstal perpustakaan lain - Perpustakaan ArduinoJson.
github.com/bblanchon/ArduinoJson
Kami juga membutuhkan TimeLib.h tapi saya tidak yakin dari mana saya mendapatkannya atau apakah itu termasuk dalam IDE (maaf)….
Jadi mengapa memprediksi di mana ISS akan berada - ISS berisi berbagai peralatan radio amatir, dan ketika "di atas kepala" operator radio ham dapat melakukan kontak dengan ISS menggunakan beberapa radio yang sangat sederhana (dan murah). Saya bahkan sudah melakukannya saat mobile (mengemudi di dalam mobil). Anda benar-benar tidak perlu banyak untuk membuat ini bekerja. Satu hal yang Anda perlukan adalah mengetahui di mana letaknya. Dan mengarahkan antena ke arah umum itu membantu.
Baris 57, 58, 59 adalah beberapa variabel tampilan - jika disetel ke 1 Anda akan melihat tampilan, jika disetel ke 0 (nol) Anda tidak akan melihat tampilan. (Variabel ini dapat diatur dalam sketsa, atau diperbarui dari halaman web yang dibuat oleh firebeetle - lebih lanjut tentang itu nanti).
int locDis = 1; //Menampilkan Lokasi ISSint pasDis = 0; //Menampilkan Prediksi Pass int pplDis = 1; //Menampilkan Orang di Luar Angkasa
jadi locDis akan menampilkan lokasi ISS dalam lintang dan bujur - juga menampilkan berapa mil jauhnya.
pasDis akan mendapatkan prediksi pass dari open-notify.org dan menampilkannya.
dan akhirnya, pplDis akan menampilkan nama dan berapa banyak orang di luar angkasa - ini bisa sangat panjang, tidak
sering berubah juga. (Anda dapat mengubah ini atau membiarkannya, ini sepenuhnya opsional)
Kita juga perlu mengetahui garis lintang dan garis bujur kita dan memasukkannya ke dalam sketsa.
Ini tidak harus tepat bujur/lintang, itu bisa menjadi pusat kota Anda, atau sedikit melenceng. Jejak kaki ISS lebar saat berada di atas kepala, dan ratusan (atau ribuan) mil dapat ditempuh, jadi sedikit melenceng di lintang/bujur Anda tidak akan menjadi pemecah kesepakatan (sebagian besar waktu), komunikasi lebih dari 500 mil cukup umum.
Jika Anda tidak mengetahui garis lintang dan bujur Anda, situs web ini dapat membantu Anda.
www.latlong.net Dekat garis 84 dari sketsa Anda akan melihat sesuatu seperti ini:
//Temukan Lintang dan Bujur Anda di sini//https://www.latlong.net/ float mylat = 39.360095; float mylon = -84,58558;
Itu semua yang perlu diubah. Unggah sketsa, dan hubungkan Firebeetle ke internet - dan Anda akan melihat, lokasi ISS yang diberikan dalam lat/panjang dan berapa mil jauhnya (ingat ini akan menjadi perkiraan jarak. ISS bergerak sangat cepat, dan pada saat tampilan selesai, ISS telah bergerak bermil-mil dari tempatnya). Anda juga harus melihat orang-orang di luar angkasa. (JIKA Anda tidak mengubah variabel di atas).
Kami menggunakan inti kedua ESP32 untuk menjalankan situs web, menggunakan situs memberi kami kendali atas apa yang ditampilkan pada matriks LED. Seharusnya cukup intuitif tentang cara kerjanya, satu bagian menunjukkan apa yang diaktifkan untuk ditampilkan, bagian lain memiliki tombol "ya" "tidak" - mengklik "ya" berarti Anda ingin melihatnya, "tidak" berarti tidak' t menunjukkannya. Anda juga harus melihat bahwa bagian atas berubah berdasarkan tombol.
Satu-satunya hal yang tidak begitu terpotong dan kering di sini adalah bagaimana menemukan alamat IP Firebeetle - sayangnya saya tidak dapat menemukan cara yang baik untuk menemukannya - jadi saya hanya menggunakan konsol serial IDE untuk menampilkan itu (9600 baud).
Buka konsol, dan Anda akan melihat alamat IP. (buka sebelum Anda mendapatkan pesan yang terhubung) - pilihan saya yang lain adalah menampilkannya di Matriks LED sekali saat memulai - saya memutuskan untuk tidak melakukannya karena Anda mungkin tidak melihat waktu dan Anda akan melewatkannya. Saya telah mempertimbangkan untuk mengirim pesan sms, atau sesuatu tetapi, pada akhirnya saya hanya membuatnya sederhana. (Saya juga mencoba menetapkan IP/gateway/dll statis, saya tidak dapat membuatnya berfungsi dengan baik dengan manajer wifi - kodenya masih dalam sketsa, jadi jika seseorang mengetahuinya, beri tahu saya)
Sketsa juga mengambil kemajuan dari FreeRTOS membangun ke inti ESP32 - Kami memiliki tugas yang berjalan setiap 15 menit atau lebih, apa yang dilakukan adalah memperbarui prediksi lulus, serta orang-orang di luar angkasa. Seperti yang saya katakan sebelumnya, orang-orang di luar angkasa tidak banyak berubah, sehingga mungkin dapat dipindahkan ke tugas lain dan mungkin dijalankan setiap 12 jam (atau 6 jam) - tetapi ini berhasil, dan ini membuat semuanya tetap sederhana.
Bagi mereka yang tidak tahu FreeRTOS adalah cara untuk membiarkan pengontrol mikro inti tunggal menjalankan tugas ganda
Biasanya Anda harus menyertakan beberapa perpustakaan dan hal-hal lain untuk membuatnya berfungsi - namun itu dibangun ke dalam inti untuk ESP32 - yang menjadikan ESP32 perangkat yang sangat kuat. untuk informasi lebih lanjut tentang FreeRTOS
freertos.org/
PENINGKATAN: ada beberapa hal yang dapat diperbaiki untuk proyek ini, dan hampir setiap hari saya memikirkan sesuatu yang dapat dilakukan sedikit berbeda, atau diubah, atau ditambahkan.
Dan di lebih banyak direktori contoh dari repositori Anda dapat melihat beberapa hal sebelumnya/berbeda yang saya pikirkan - beberapa di antaranya tidak berfungsi, beberapa baru saja berubah, dan beberapa di antaranya termasuk dalam sketsa saat ini.
* Pada satu titik saya mencoba menambahkan neopiksel ke tampilan sehingga akan sedikit lebih seperti proyek saya sebelumnya - saya tidak pernah membuatnya berfungsi dengan benar (saya menemukan itu sebagai masalah daya yang tidak saya pertimbangkan) saya bekerja pada cara untuk meningkatkan ide ini *
Saat menulis langkah ini, saya pikir, mungkin saya bisa menambahkan cara untuk memperbarui garis lintang dan garis bujur Anda ke situs web - dengan cara itu sketsa tidak perlu diubah - saya akan memikirkan yang ini sedikit lebih banyak juga.
Cara yang lebih baik untuk mendapatkan alamat IP adalah hal lain yang ingin saya lakukan (masih memikirkan yang itu juga)
Mari kita lanjutkan ke proyek kita berikutnya…..
Langkah 7: Proyek 3: Tanda Pesan Bergerak Sederhana Menggunakan MQTT
"memuat="malas" " memuat="malas"
Jadi ternyata, perpustakaan dapat menampilkan gambar - Anda untuk beberapa alasan fungsi itu tampaknya "pribadi" - baik, untuk sketsa berikutnya saya memodifikasi perpustakaan sekali lagi dan membuat drawImage fungsi publik.
Kali ini library yang sudah dimodifikasi saya taruh di direktori sketches, jadi tidak perlu install ulang librarynya, sketchnya lihat sendiri dulu, baru nanti akan terlihat di direktori library, so we good!
*** Saya berencana mengirimkan perubahan ini ke DFRobot, karena sangat keren, dan rapi untuk dapat membuat sketsa jenis ini ***
Sketsa Gambar Matriks LED, di sini saya pertama kali mencoba mencari tahu apa yang diinginkan perpustakaan, dan apa yang akan dan tidak akan berhasil - dengan berbagai tingkat keberhasilan. Saya menemukan bahwa gambar 8x8 bekerja paling baik, tetapi Anda juga bisa membuat gambar lain bekerja. Saya menemukan beberapa editor matriks led online juga, beberapa bekerja lebih baik daripada yang lain.
xantorohara.github.io/led-matrix-editor/ - tampaknya berfungsi dengan baik, membuat gambar 8x8, dan Anda menginginkannya sebagai array byte.
www.riyas.org/2013/12/online-led-matrix-fo… yang satu ini bekerja dengan baik, dan memiliki kemampuan untuk membuat layar lebih besar dari 8x8, layar tampak miring dengan layar ini Namun. Array byte tampaknya berfungsi paling baik di sini. Saya menggunakannya untuk membuat "penyerbu luar angkasa" seperti yang terlihat dalam video di atas.
Jadi bagaimana ini bekerja, drawImage(const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);
variabel array byte gambar, lebar gambar (8), tinggi gambar (8), posisi awal pada layar x (0), y (0) biasanya, dan nomor offset, yang saya tidak 100% yakin apa fungsinya, jadi sebagian besar waktu saya membiarkannya nol.
Dalam sketsa Gambar Matriks LED - ada 8 array byte yang berbeda - dengan tiga metode berbeda juga.
- kembang api adalah susunan pertama, sejujurnya saya tidak yakin bagaimana yang ini bekerja - tetapi itu berhasil.
berikutnya ada mulut - ini tidak benar-benar bekerja dengan benar, mulut meletakkan dengan cara yang salah untuk satu, dan mencoba membuat perubahan apa pun hanya memperburuknya. (mempelajari apa yang berhasil dan apa yang tidak adalah setengah kesenangan)
Diikuti oleh marioImg pertama - ini terlalu besar untuk tampilan, dan saya pikir di sinilah off set berperan - saya menggunakannya di sini, dan Anda dapat melihat bagian depan mario, jika Anda mengubah offset menjadi 1 Anda' akan melihat punggungnya. (Anda, saya tidak dapat memberi tahu Anda mengapa atau apa yang dilakukan offset. Tampaknya menggeser gambar tetapi mengapa 2 menggesernya sehingga Anda dapat melihat bagian depannya dan mengapa 1 menggeser ke arah lain, saya tidak dapat memberi tahu Anda)
GAMBAR - byte array adalah tanda @ yang saya buat - sepertinya yang saya buat menggunakan alat di
pic1 byte array juga terlihat seperti apa yang saya coba buat, hanya saja lebih kecil dari yang saya coba - apa yang saya tidak bisa katakan, tapi saya bisa mengatakan secara umum sepertinya apa yang saya lakukan di editor.
mario2Img - ini adalah versi saya sendiri dari Mario yang lebih besar yang dibuat untuk ukuran layar 8x8 - dan Anda di sana satu atau dua piksel tidak pada tempatnya (salah saya, bukan tampilan) itu memang terlihat seperti Mario kecil (agak).
penyerbu1 dan penyerbu2 - keduanya ide saya untuk penyerbu luar angkasa. ternyata cukup bagus, dan dengan meletakkan gambar di atas satu sama lain, saya dapat menciptakan efek kaki yang bergerak.
Ada dua sketsa kembang api di direktori, masing-masing sedikit berbeda, dan patut dicoba.
Yang satu memiliki kembang api yang bergerak melintasi layar, jadi sedikit lebih banyak/animasi yang berbeda… yang lain memiliki dua kembang api yang ditampilkan pada saat yang sama
Ada juga tiga sketsa "penyerbu", masing-masing sedikit berbeda, satu memiliki penyerbu yang bergerak melintasi layar, dan Anda dapat melihat bagaimana saya melakukannya - (mungkin ada cara yang lebih baik untuk melakukannya, saya tidak tahu)
Bahkan Lebih Banyak: Ada beberapa sketsa di direktori pengujian repositori - sebagian besar tidak bekerja seperti yang saya inginkan, atau merupakan ide yang ingin saya lakukan, tetapi tidak bekerja seperti yang saya inginkan. Saya meninggalkannya karena seseorang mendapatkan beberapa ide * (Saya memang membuat "perisai" kecil dengan piksel WS2812 di atasnya untuk digunakan dengan tampilan ISS, tetapi saya menghubungkannya ke saluran 3v, dan tidak memiliki cukup daya dengan Matriks LED berjalan juga, piksel bekerja dengan baik, tanpa Matriks LED, jadi masih ada sesuatu yang mungkin saya lakukan dengannya)*
Ada juga direktori yang disebut "Contoh Lainnya" - ini adalah variasi pada beberapa sketsa proyek, entah saya sesuatu telah ditambahkan atau dihapus, atau diubah dalam beberapa cara. Untuk ini, mereka bekerja - mereka bukan proyek akhir. Jadi saya meninggalkan mereka lagi seseorang mungkin mendapatkan sesuatu yang berguna dari mereka. (Mungkin)
Saya harap Anda menikmati instruksi ini sama seperti saya menikmati membuat proyek ini:-)
Langkah 11: Tautan…
Proyek ini disponsori dan didukung oleh DF Robot. Silakan gunakan tautan di bawah ini untuk produk:
Firebeetle ESP32 -
Firebeetle Cover 24x8 LED Matrix -
Repositori Kode Saya:
Jika Anda merasa ini atau proyek saya berguna atau menyenangkan, tolong dukung saya. Apa pun yang saya dapatkan digunakan untuk membeli lebih banyak suku cadang dan membuat lebih banyak/proyek yang lebih baik.
www.patreon.com/kd8bxp
Perpustakaan NTPClient
ArduinoJson.h
Perpustakaan Cuaca ESP8266
Perpustakaan Json-Streaming-Parser
Direkomendasikan:
Cara Membuat RADAR Menggunakan Arduino untuk Proyek Sains - Proyek Arduino Terbaik: 5 Langkah
Cara Membuat RADAR Menggunakan Arduino untuk Proyek Sains | Proyek Arduino Terbaik: Hai teman-teman, dalam instruksi ini saya akan menunjukkan kepada Anda bagaimana membuat sistem radar luar biasa yang dibangun menggunakan arduino nano, proyek ini sangat ideal untuk proyek sains dan Anda dapat dengan mudah membuatnya dengan investasi dan peluang yang sangat sedikit jika memenangkan hadiah besar untuk
Memulai Dengan ESP32 CAM - Streaming Video Menggunakan ESP CAM Melalui Wifi - Proyek Kamera Keamanan ESP32: 8 Langkah
Memulai Dengan ESP32 CAM | Streaming Video Menggunakan ESP CAM Melalui Wifi | Proyek Kamera Keamanan ESP32: Hari ini kita akan belajar cara menggunakan papan CAM ESP32 baru ini dan bagaimana kita dapat mengkodekannya dan menggunakannya sebagai kamera keamanan dan mendapatkan video streaming melalui wifi
IoT Wallet (Dompet pintar Dengan Firebeetle ESP32, Arduino IDE dan Google Spreadsheet): 13 Langkah (dengan Gambar)
IoT Wallet (Dompet pintar Dengan Firebeetle ESP32, Arduino IDE dan Google Spreadsheet): Hadiah pertama dalam Instructables Pocket-Sized Contest!:DJika Anda menginvestasikan sejumlah uang dalam cryptocurrency, Anda mungkin sudah tahu bahwa mereka sangat fluktuatif. Mereka berubah dalam semalam dan Anda tidak pernah tahu sekarang banyak uang 'nyata' yang masih Anda miliki di dompet Anda
Proyek Papan Skor Dengan Tampilan LED P10 Menggunakan DMD: 6 Langkah (dengan Gambar)
Proyek Papan Skor Dengan Tampilan LED P10 Menggunakan DMD: Seringkali kita bertemu di stadion sepak bola; ada papan LED raksasa yang berfungsi sebagai papan skor. Begitu juga di bidang olahraga lainnya, juga sering kita kenal dengan papan skor dari tampilan layar yang terbuat dari LED. Meski tidak mungkin, ada juga bidang yang masih kita
Buat Penutup Speaker Komputer dalam Waktu Kurang dari 10 Menit!!!: 3 Langkah
Membuat Penutup Speaker Komputer dalam Waktu Kurang Dari 10 Menit!!!: *** ini hanya akan berfungsi dengan speaker kecil, harus lebih kecil dari kaleng pop, atau apa pun yang dapat Anda gunakan. Anda akan membutuhkan:-2 kaleng ( saya menggunakan 2 kaleng pop aluminium biasa)-scissors-tape (saya menggunakan scotch tape)-saya juga menggunakan obeng untuk meninju hol