Proses manufaktur
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
Ikhtisar
Pernahkah Anda ingin membuat grafik data Anda secara profesional pada LCD TFT? Tapi ada masalah, sangat sulit untuk membuat grafik karena semua perhitungan yang terlibat.
Proyek ini bertujuan untuk menghilangkan semua stres itu dari pundak Anda dan memungkinkan Anda membuat grafik riwayat pribadi Anda sendiri, membuat grafik apa pun yang Anda inginkan hanya dalam hitungan detik. Yang harus Anda lakukan adalah mengedit 5 variabel.
Video
Gambar
Fungsionalitas
Proyek ini bertujuan untuk membuat grafik menjadi mudah dan menyenangkan bagi semua orang, semua perhitungan sulit diselesaikan, yang harus dilakukan pengguna hanyalah mengedit 2 variabel, dan memilih warna untuk grafiknya. Berikut adalah beberapa contoh yang menunjukkan keragaman grafik.
Grafik akan memplot suhu hidup, pada interval 6 detik, nilainya akan ditampilkan oleh sebuah titik, titik tersebut akan terhubung ke titik lain dengan garis. Detik yang berlalu sejak awal kode akan ditampilkan pada sumbu x dengan rentang nilai pada sumbu y.
Proyek ini bekerja secara sederhana, Arduino Mega membaca nilai sensor DHT 11 dan menyimpan suhu ke variabel, kemudian membuat grafik nilai pada grafik yang disesuaikan. Berikut adalah diagram yang menggambarkan ikhtisar fungsionalitas.
Berikut adalah gambar yang menunjukkan ikhtisar kode proyek.
Baca Suhu
akan membaca suhu dari sensorData Proses
akan memproses pembacaan sensor dan memetakannya ke grafik.Data Grafik
akan menampilkan nilai yang dipetakan pada grafik.Yang perlu Anda ketahui untuk dapat melanjutkan proyek ini adalah pemahaman yang luas tentang bagaimana segala sesuatunya diposisikan pada LCD TFT, ini dijelaskan di bawah ini.
Saya menyebut seluruh LCD sebagai kanvas, di sinilah semuanya digambar, semua perpustakaan LCD TFT bekerja dengan cara yang hampir sama, jadi fungsi dalam kode ini juga harus bekerja dengan perpustakaan lain. Di bawah ini adalah sketsa segi empat (persegi panjang) yang digambar pada LCD TFT.
Dalam sketsa ini digambar persegi panjang, setiap titik diberi label, kode baris yang digunakan untuk menggambar persegi panjang adalah ini,
tft.fillRect(originX, originY, sizeX, sizeY, Color);
originX
diwakili oleh 'z' pada diagram di atas, ini adalah jarak dari kanan layar ke bentuk.asalY
diwakili oleh 'x' pada sketsa, ini adalah jarak dari bagian atas layar ke bentuk.sizeX
adalah ukuran bentuk pada sumbu x, ini adalah panjang bentuk.ukuranY
adalah ukuran bentuk pada sumbu y, ini adalah tinggi bentuk.
Manfaat
Yang pengguna beroperasi ini proyek akan manfaat Dalam:
Membangun Proyek
Langkah 1: Diperlukan Aparat
Proyek ini menggunakan sensor suhu dan kelembaban DHT 11 untuk menerima data suhu, tetapi sensor apa pun dapat digunakan, mengubah sensor akan dijelaskan lebih lanjut.
Langkah 2: Menghubungkan yang Sirkuit
Berikut adalah skema proyeknya, cukup pasang sensor DHT 11 ke Arduino Mega dan Anda siap melakukannya.
Langkah 3:Mengenali Kode
Ada 3 bagian utama dari kode:
Bagian ini dijelaskan di bawah.
// judul gambar tft.setCursor(10, 10); // setel kursor tft.setTextColor(BIRU); // mengatur warna teks tft.setTextSize(4); // mengatur ukuran teks tft.println(graphName); // menggambar garis tft.drawLine(originX, originY, (originX + sizeX), originY, graphColor); tft.drawLine(OriginX, originY, originX, (OriginY - sizeY), graphColor); // menggambar label untuk(int i =0; i
Bagian kode ini akan menggambar garis luar grafik, menggambar garis sumbu x dan y, juga menggambar tanda dan memberi label sumbu y dengan nilai.
chk =DHT.read11(22); temp =(DHT.temperature);
Baris kode pendek ini akan membaca suhu dari sensor DHT 11 dan kemudian akan menyimpannya dalam sebuah variabel.
if(blockPos <8) { // mencetak waktu tft.setCursor((mark[valuePos] - 5), (asal + 16)); tft.setTextColor(GraphColor, PUTIH); tft.setTextSize(1); tft.println(timeBlock[nilaiPos]); // memetakan nilai locationBlock[valuePos] =map(temp, 0, graphRange, originY, (originY - sizeY)); // menggambar titik tft.fillRect((mark[valuePos] - 1), (locationBlock[valuePos] - 1), markSize, markSize, pointColor); // coba sambungkan ke titik sebelumnya if(valuePos !=0) { tft.drawLine(mark[valuePos], locationBlock[valuePos], mark[(valuePos - 1)], locationBlock[(valuePos - 1)], lineColor); } blokPos++; } else { // bersihkan kanvas grafik tft.fillRect((originX + 2), (originY - sizeY), sizeX, sizeY, WHITE); // memetakan nilai - titik saat ini locationBlock[valuePos] =map(temp, 0, graphRange, originY, (originY - sizeY)); // draw point - titik saat ini tft.fillRect((mark[7]), (locationBlock[valuePos] - 1), markSize, markSize, pointColor); // menggambar semua poin untuk(int i =0; i <8; i++) { tft.fillRect((mark[(blockPos - (i + 1))] - 1), (locationBlock[(valuePos - i)] - 1), markSize, markSize, pointColor); } // gambar semua garis for(int i =0; i <7; i++) { tft.drawLine(mark[blockPos - (i + 1)], locationBlock[valuePos - i], mark[blockPos - (i + 2)], locationBlock[valuePos - (i + 1)], lineColor); } // ubah label waktu untuk(int i =0; i <=8; i++) { tft.setCursor((mark[(blockPos - i)] - 5), (asal + 16)); tft.setTextColor(GraphColor, PUTIH); tft.setTextSize(1); tft.println(timeBlock[nilaiPos - i]); } } nilaiPos++;
Bagian kode yang panjang ini akan menggambar titik-titik grafik pada nilainya dan kemudian akan menggabungkannya melalui garis, kode memeriksa apakah kanvas grafik terisi, jika ya, itu akan mulai mengeluarkan nilai pertama grafik dan memindahkan yang lain ke atas untuk memberikan ruang bagi nilai baru yang akan dimasukkan, jika masih ada ruang yang tersisa, perangkat akan terus menambahkan nilai pada interval.
Mempersonalisasi Grafik
Hal yang menyenangkan dari grafik ini adalah 100% dapat diedit, sehingga pengguna dapat mengedit ukuran grafik, lokasi dan warnanya, pengguna juga dapat menampilkan data apa pun pada grafik berkat fleksibilitasnya. Adalah semua variabel yang harus Anda perhatikan.
bool proDebug =0; uint16_t graphColor =BIRU; uint16_t pointColor =HITAM; uint16_t lineColor =HIJAU; String graphName ="Grafik Waktu"; int rentang grafik =50; int markUkuran =3;
proDebug
adalah utilitas debugging yang dibangun ke dalam proyek, itu diatur ke 0 sebagai default, ketika diatur ke 1/benar, itu akan mencetak suhu saat ini ke Serial Monitor, ini adalah utilitas debugging, perhatikan bahwa jika diaktifkan, Serial Monitor adalah harus terbuka agar kode dapat dijalankan.graphColor
mengatur warna grafik, garis x dan y dan labelnya diatur ke warna ini.warna titik
mewakili warna titik yang menggambarkan nilai pada grafik.lineColor
menyetel warna garis yang menghubungkan titik-titik pada grafik ke warna yang dipilih.graphRange
adalah tulang punggung grafik, perhatikan bahwa sangat penting bahwa itu diatur dengan benar, ini mewakili nilai maksimal yang dapat dibuat grafik, saya menggunakan sensor suhu, saya tidak akan mengharapkan nilainya melebihi 50ºC, jadi saya mengatur nilai ke 50, jika Anda ingin membuat grafik input analog mentah, Anda dapat mengatur graphRange ke 1024, nilai maksimal yang dapat ditampilkan oleh pin analog.markSize
mewakili ukuran titik yang memberi label nilai sensor pada grafik, nilai mewakili panjang persegi.Dan hanya itu, hanya itu yang perlu Anda khawatirkan, sisa variabel akan ditentukan secara otomatis oleh Arduino.
Berubah yang Nilai
Sangat bagus untuk membuat grafik suhu di kamar Anda, tetapi lebih baik lagi jika Anda dapat menampilkan data sensor apa pun pada grafik, dan Anda dapat, hanya dengan mengedit beberapa baris kode, Anda dapat membuat grafik data apa pun dari kelembaban tanah hingga cahaya intensitas. Berikut adalah panduan untuk melakukannya.
Pergi Selanjutnya
Anda dapat bereksperimen lebih jauh dengan proyek, coba edit konstanta originX, originY, sizeX dan sizeY untuk memberikan ukuran dan posisi berbeda pada grafik Anda di layar. Ada file header yang dilampirkan ke sketsa utama, berisi kode warna dari beberapa warna, coba ubah warna bagan dan batangnya. Dan itu dia, grafik hasil personalisasi Anda sudah siap.
Perpustakaan
Latar belakang
Saya baru-baru ini menerbitkan sebuah proyek yang membuat grafik 1, 2, 3 atau 4 nilai pada diagram batang. Saya telah memutuskan untuk menerbitkan template lain untuk grafik. Tidak ada template untuk diagram batang yang tidak memiliki garis di semua tempat yang mengancam untuk membingungkan, jadi saya memutuskan untuk menghitung ulang dan menerbitkan proyek sederhana yang memungkinkan semua orang untuk membuat grafik data mereka pada grafik riwayat, secara langsung.
Proses manufaktur
Komponen dan persediaan Arduino Due dari http://www.arduino.cc × 1 3.2 Modul Sentuh TFT 400*240 SD Dengan Perisai untuk Arduino Jatuh tempo Saya menggunakan yang dari Elechouse × 1 RTC DS3231 Jam waktu nyata dari Ebay × 1 GPS uBlox Neo 6M Modul GPS dari Ebay × 1
Komponen dan persediaan Arduino Mega 2560 × 1 Alat dan mesin yang diperlukan Jigsaw Aplikasi dan layanan online Arduino IDE Tentang proyek ini Ini adalah lift 5 lantai yang berfungsi. Tingginya 3 kaki. Kami bekerja keras untuk ini. Mari kita mu
Komponen dan persediaan LED (generik) × 10 Arduino UNO × 1 Resistor 221 ohm × 10 Kabel jumper (generik) × 13 Potensiometer putar (generik) × 1 Aplikasi dan layanan online Arduino IDE Tentang proyek ini Ada sepuluh LED
Dalam tutorial layar sentuh Arduino ini kita akan belajar cara menggunakan Layar Sentuh LCD TFT dengan Arduino. Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini. Ringkasan Untuk tutorial ini saya menyusun tiga contoh. Contoh pertama adalah pengukuran jarak menggunakan