Daftar Isi:

ColorPicker: 10 Langkah
ColorPicker: 10 Langkah

Video: ColorPicker: 10 Langkah

Video: ColorPicker: 10 Langkah
Video: best software to pick color on screen : Just Color Picker 2024, Oktober
Anonim
Pemilih warna
Pemilih warna

Tujuan dari proyek ini adalah untuk mengukur warna, dan menerjemahkannya ke sistem warna lain. Dengan hanya menggunakan nilai RGB yang diberikan oleh sensor, Anda dapat menerjemahkan ke HSL, CYMK, HEX dan juga kode RAL terdekat (standar yang digunakan untuk cat). Proyek ini membutuhkan pengetahuan dasar tentang Python, MySQL, Linux dan Javascript.

Jika Anda juga akrab dengan kerangka Flask dan SocketIO, maka kode untuk proyek ini akan mudah dipahami untuk Anda.

Proyek ini dapat digunakan oleh pelukis, desainer interior atau siapa saja yang ingin mengukur warna.

Proyek ini tidak begitu mahal, dan biayanya diperkirakan _ euro, tidak termasuk pengiriman.

Perlengkapan

Kita dapat membagi bagian ini menjadi dua bagian:

  • Perangkat keras
  • Perangkat lunak

Perangkat keras

Kami menggunakan komponen berikut:

  • HC04: Sensor jarak, seberapa jauh kita mengukur dari objek
  • Layar LCD 2x16
  • Modul LCD I2C (HW061)
  • Modul sensor warna TCS34725 (Adafruit)
  • LED putih
  • Raspberry Pi 3 (Semua Raspberry Pi bisa digunakan)
  • Resistor 5x 1k Ohm
  • 1x220 atau 330 Ohm resistor
  • Kartu SD 16 GB (14,4 GB)

Perangkat lunak

  • Python IDE, seperti Visual Code atau Pycharm (Pycharm digunakan di sini)
  • Meja Kerja MySQL
  • Putty (Unduh Putty)
  • Rufus atau penulis kartu SD lainnya (Unduh Rufus)

Harga

Proyek ini cukup murah, jika Anda sudah memiliki Rapsberry Pi.

  • HC04: Mulai sekitar €2,5 euro (Cina) dan hingga €6 untuk lebih banyak toko lokal.
  • LCD: Sekitar 6-8 euro.
  • Modul I2C: Semurah di bawah €1 (Cina), tetapi hingga €4 untuk lebih banyak toko lokal.
  • TCS34725: Sekitar €9-12 euro. Bagian paling mahal (Tidak Termasuk RPi)
  • LED putih: Dibeli dalam jumlah besar, 20 LED serendah €1
  • Raspberry Pi: Tergantung versi mana, sekitar €40 euro
  • Resistor: €0,10 untuk satu resistor
  • Kartu SD: sekitar €8

Adaptor daya untuk Raspberry Pi tidak termasuk dalam biaya harga, karena adaptor ini cukup umum.

Kisaran harga keseluruhan: sekitar €70, jika Anda menyertakan Raspberry Pi dan kasing untuk proyek tersebut.

Untuk membuat casing, saya menggunakan kayu tipis yang ringan. Saya mendaur ulang kayu ini dari furnitur. Bahan untuk kasus ini terserah Anda.

Langkah 1: Langkah 1: Instalasi RPi OS, Konfigurasi SSH dan Akses Internet

Langkah 1: Menginstal RPi OS, Mengkonfigurasi SSH dan Akses Internet
Langkah 1: Menginstal RPi OS, Mengkonfigurasi SSH dan Akses Internet
Langkah 1: Menginstal RPi OS, Mengkonfigurasi SSH dan Akses Internet
Langkah 1: Menginstal RPi OS, Mengkonfigurasi SSH dan Akses Internet
Langkah 1: Menginstal RPi OS, Mengkonfigurasi SSH dan Akses Internet
Langkah 1: Menginstal RPi OS, Mengkonfigurasi SSH dan Akses Internet
Langkah 1: Menginstal OS RPi, Mengkonfigurasi SSH dan Akses Internet
Langkah 1: Menginstal OS RPi, Mengkonfigurasi SSH dan Akses Internet

Langkah 1.1: Memasang gambar

Unduh gambar dari situs resmi Raspberry Pi. Tidak masalah gambar apa yang Anda instal. Untuk proyek ini, GUI tidak diperlukan, karena kami hanya akan terhubung menggunakan SSH.

Tulis gambar ke kartu SD (kosong) (Semua file di kartu akan dihapus).

Untuk menulis semuanya ke kartu SD, kami akan menggunakan alat yang disebut 'Rufus'. Setelah mengunduh gambar, buka Rufus dan pilih file gambar. Pilih drive target dan tulis gambar ke drive. Ini bisa memakan waktu cukup lama.

> Rufus

Langkah 1.2: Menginstal SSH

Langkah selanjutnya adalah membuat koneksi ke kartu SD. Untuk melakukan itu, kita perlu mengaktifkan SSH.

Untuk melakukannya tanpa menggunakan monitor, buka file explorer Anda dan buka partisi boot kartu SD. Buat file kosong bernama "ssh", tanpa ekstensi file.

Juga, buka "cmdline.txt"

Tambahkan "169.254.10.1" di akhir file dan simpan.

Lepaskan kartu SD dan masukkan ke dalam Raspberry Pi.

Sekarang kita dapat menghubungkan Raspberry Pi ke sumber daya dan boot dan terhubung menggunakan SSH.

Untuk terhubung menggunakan SSH, kami menggunakan program "Putty". Hubungkan RPi dan PC Anda menggunakan kabel ehternet sebelum melakukan itu. Buka Putty dan masuk ke tab SSH, dan isikan IP ini: 169.254.10.1. Klik 'sambungkan' dan Anda akan terhubung.

> Dempul

Login default yang digunakan oleh Raspberry Pi adalah 'pi' sebagai username dan 'raspberry' untuk password.

Langkah 1.3: Koneksi nirkabel

Raspberry Pi Anda sekarang dihidupkan.

Kami juga ingin terhubung ke RPi menggunakan Wifi, dengan begitu kami tidak memerlukan kabel ethernet lagi.

Jalankan baris berikut:

'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'

Ini akan membuka editor teks 'nano' dengan hak yang lebih tinggi.

Tambahkan baris berikut dalam file:

jaringan={

ssid = "SSID"

psk="Kata Sandi"

}

Ganti "SSID" dengan SSID jaringan Wifi Anda

Ganti "Kata Sandi" dengan kata sandi Anda.

Kemudian lakukan Ctrl+X dan pilih opsi 'ya'. File sekarang akan disimpan.

Sekarang kita perlu me-restart layanan jaringan

Jalankan perintah berikut:

  • 'sudo-i'
  • 'Sudo systemctl restart jaringan'

Anda dapat menguji koneksi internet Anda menggunakan perintah wget.

Contoh: 'wget google.com'

> Perintah Wget

Langkah 2: Langkah 2: Menginstal Perangkat Lunak di RPi

Untuk proyek ini kita perlu menginstal beberapa perpustakaan.

  • Mariadb: Database MySQL (Sudo apt-get install mariadb-server)
  • Pustaka Adafruit untuk sensor warna: Mengukur warna (pip3 install adafruit-circuitpython-tcs34725)
  • PHPmyAdmin: ('Sudo apt install phpmyadmin', pilih server web Apache)

Instal juga pustaka pip berikut:

  • flask_socketio
  • labu
  • labu_kors
  • papan
  • kesibukan
  • netiface

Langkah 3: Langkah 3: Menghubungkan ke Database MySQL, Membuat Database

Langkah 3: Menghubungkan ke Database MySQL, Membuat Database
Langkah 3: Menghubungkan ke Database MySQL, Membuat Database
Langkah 3: Menghubungkan ke Database MySQL, Membuat Database
Langkah 3: Menghubungkan ke Database MySQL, Membuat Database
Langkah 3: Menghubungkan ke Database MySQL, Membuat Database
Langkah 3: Menghubungkan ke Database MySQL, Membuat Database

Langkah selanjutnya adalah melakukan koneksi ke database MySQL menggunakan workbench MySQL.

> IP

Jalankan perintah 'ip a', seperti terlihat pada gambar di atas (Klik link)

Dalam kebanyakan situasi, akan ditampilkan 3 entri. Kami membutuhkan entri 'wlan0'. Salin IP di sebelah 'inet', atau dalam contoh ini '192.168.1.44'

.>> Buat koneksi baru

Seperti yang ditunjukkan pada gambar di atas, buat koneksi baru dengan parameter berikut (Gambar di bawah untuk params)

> Parameter koneksi

Klik dua kali koneksi yang baru dibuat untuk terhubung.

Jika ada muncul prompt, klik 'Ya'.

Ini masih database kosong, jadi mari tambahkan beberapa tabel.

Pertama buat skema, untuk melakukannya, di sisi kiri 'klik kanan' dan pilih 'buat skema'.

Beri nama skema dan konfirmasi.

Sekarang kita perlu menambahkan tabel. Perluas skema dan 'klik kanan', 'tabel'.

Buat skema berikut:

> Tabel 1: RALcolors

> Tabel 2: Jenis sensor

> Tabel 3: Pengukuran (Pada gambar, 'metingen' digunakan, bahasa Belanda untuk pengukuran)

> Tabel 4: Data_situs web || Tabel 4 bawah

MySQL adalah sistem database relasional, artinya kita dapat membuat relasi antar tabel.

Relasi pertama yang harus kita buat adalah antara 'sensor_type' dan 'measurements'.

Seperti yang ditunjukkan pada gambar, hubungkan kedua tombol.

> Edit tabel & tombol tautan

Jangan lupa untuk menyimpan perubahan dengan mengklik 'Terapkan' di sudut bawah.

Edit juga tabel 'website_data' dan tautkan 'MetingID'.

Sekarang kita selesai dengan membuat tabel dan membuat hubungan.

Menambahkan data:

Tabel RALcolors adalah tabel tetap, di mana nilainya tidak akan pernah berubah. Kita dapat menambahkan nilai-nilai ini

sangat mudah.

> Unduh file Excel

Download file excel diatas dan pilih semua data dan 'copy'. Lakukan seperti pada gambar

> Tampilkan tabel

'klik kanan' pada tabel dan pilih 'Tempel baris'. 'klik' 'terapkan' di sudut bawah untuk menambahkan data.

Sekarang semua RALcolors disimpan dalam database.

Kita hanya perlu menambahkan sensor_type ke database sekarang.

> Data tipe sensor

Catatan: Deskripsi sensor dalam 'Belanda'

Langkah 4: Langkah 4: Filezilla

Langkah 4: Filezilla
Langkah 4: Filezilla

Untuk dengan mudah terhubung ke Raspberry Pi dan mentransfer file, kita dapat menggunakan Filezilla.

> Unduh Filezilla

File dalam detail koneksi dan sambungkan. Di sisi kanan Anda sekarang dapat mentransfer file dengan menyeretnya masuk.

> sumber Github

Unduh file dari sumber github di atas.

Langkah 5: Langkah 5: Membuat Situs Web

Langkah 5: Membuat Situs Web
Langkah 5: Membuat Situs Web
Langkah 5: Membuat Situs Web
Langkah 5: Membuat Situs Web

Untuk hosting website, kami menggunakan PHPmyAdmin dan Apache2.

Server web pada Raspberry Pi menggunakan direktori '/var/www/html' sebagai root.

Jika Anda menempatkan file Anda di sana, mereka akan di-host di IP Raspberry Pi. (IP = lihat 'ip a')

Anda dapat mengunduh file yang diperlukan dari repo github saya (langkah sebelumnya)

Di '/var/www/html/', tempel semua file dari folder 'Frontend'.

> /var/www/html/

Langkah 6: Langkah 6: Membuat Backend (Flask)

Backend situs web didasarkan pada Flask.

Semua file dapat ditemukan di repo github.

Salin semua file ke direktori mana pun di Raspberry Pi.

Misalnya '/home/pi/colorpicker.

Untuk membuat direktori, navigasikan ke direktori tujuan menggunakan 'cd', lalu jalankan 'mkdir'.

Itu saja untuk saat ini. Kode akan dijelaskan pada langkah selanjutnya.

Langkah 7: Langkah 7: Perangkat Keras

> Unduh skema

Buat skema seperti yang ditunjukkan pada dokumen di atas.

CATATAN: Tambahkan juga satu LED putih, dengan satu resistor (220 atau 330 Ohm).

Menjelaskan perangkat keras

HC04

Sensor HC04 memancarkan gelombang, yang dipantulkan dan diterima kembali oleh sensor.

Dengan menghitung delta waktu antara memancarkan dan menerima, kita dapat menghitung jarak.

Jarak = ((Timestamp_recieve - Timestamp_emit) / kecepatan suara) /2

Kami membagi dua karena gelombang memantul, artinya ia menempuh jarak dua kali.

LCD

Kami menggunakan layar LCD untuk menampilkan RGB dan HEX, serta IP saat program dimulai.

Untuk LCD ini, saya membeli modul I2C. Kami hanya membutuhkan 4 kabel sekarang. SDA, SCL, GND, VCC

Untuk menggunakan LCD ini, saya menulis kelas Python, agar lebih mudah digunakan.

TCS34725

Sensor ini memungkinkan Anda mengukur warna. Kami menggunakan perpustakaan untuk mengukur nilai RGB.

Langkah 8: Langkah 8: Penjelasan Kode

Langkah 8: Penjelasan Kode
Langkah 8: Penjelasan Kode
Langkah 8: Penjelasan Kode
Langkah 8: Penjelasan Kode
Langkah 8: Penjelasan Kode
Langkah 8: Penjelasan Kode
Langkah 8: Penjelasan Kode
Langkah 8: Penjelasan Kode

Bagian depan

Frontend ada dari tiga bagian utama.

Pertama adalah file html, yang membangun struktur situs web kita, tetapi tidak berisi atau tata letak minimal.

Kedua kami memiliki file css, atau file gaya, yang gaya dan tata letak situs web kami.

Keduanya cukup mudah dibaca dan dipahami, itulah sebabnya saya tidak akan menjelaskannya.

Terakhir kami memiliki Javascript, dengan dua perpustakaan.

Dua perpustakaan yang digunakan adalah SocketIO dan URLSearchParams.

SocketIO memungkinkan Anda untuk mengirim pesan dari backend ke frontend, dan sebaliknya.

Pesan dapat dikirim ke satu klien, tetapi juga beberapa klien (Siaran)

> Socket IO Javascript

> Soket IO Python

Pada gambar di atas, Anda dapat melihat salah satu koneksi Socket yang dibuat dalam proyek ini.

Perintah untuk mengirim pesan adalah 'emit', penerimaan dilakukan dengan 'on'.

URLSearchParms memungkinkan Anda mendapatkan nilai dari string kueri dengan mudah.

Contoh querystring: example.com/index.html?id=1

URLSearchParams akan mengembalikan Anda: {'id'='1'}

> Contoh URLSearchParams

Bagian belakang

Backend sepenuhnya ditulis dengan Python, dengan banyak perpustakaan.

Pustaka pertama yang kami impor adalah 'Flask'. Pustaka ini diperlukan untuk membuat API, untuk melakukan semua tindakan CRUD untuk database MySQL. CRUD adalah singkatan dari Create Read Update Delete.

> Labu

Gambar di atas menunjukkan beberapa 'rute' Flask. Dengan berselancar ke suatu rute, Anda akan secara otomatis melakukan metode 'GET', kode akan dijalankan dan Anda akan menerima nilai dari metode pengembalian. Ada juga metode lain, seperti 'POST' dan 'DELETE'. Untuk menguji metode tersebut, Anda memerlukan program seperti Postman.

Pustaka impor berikutnya adalah SocketIO, yang sudah saya jelaskan di bagian ujung depan.

Berikutnya adalah GPIO.

Ini memungkinkan Anda untuk mengontrol pin GPIO dari Rapsberry Pi.

Perintah yang paling penting adalah:

  • GPIO.setmode(GPIO. BCM) Pilih konfigurasi pin.
  • GPIO.output(, GPIO. LOW atau GPIO. HIGH) Tulis LOW atau HIGH ke pin.
  • GPIO.setup(,) Tentukan PIN sebagai input atau output, atau pulldown atau pullup

Selanjutnya kita memiliki threading.

Satu-satunya perintah yang kami gunakan adalah:

  • Utas (target =)
  • . Mulailah()

Dengan menggunakan utas, kita dapat menjalankan beberapa contoh kode secara bersamaan. Dengan cara ini kita dapat mengukur jarak dan pada saat yang sama, mendengarkan pesan socket io yang masuk.

Perintah pertama Thread(target=) akan membuat kelas Thread, yang setelah mulai menggunakan 'start()', akan menjalankan fungsi dalam kata kunci 'target', yang diberikan pada pembuatan kelas.

Selanjutnya kita memiliki perpustakaan sensor warna, yang cukup lurus ke depan. Saya tidak akan menjelaskan perpustakaan ini, karena metodenya sangat jelas dan dijelaskan dalam kode.

Terakhir kita memiliki netifaces. Ini memungkinkan kami untuk mengambil alamat IP yang kami gunakan untuk koneksi Nirkabel dan Kabel.

Terakhir saya membuat beberapa class sendiri untuk sensor jarak, LED dan LCD.

Saya tidak akan menjelaskan cara kerjanya.

Langkah 9: Langkah 9: Membuat Kasus

Langkah 9: Membuat Kasus
Langkah 9: Membuat Kasus
Langkah 9: Membuat Kasus
Langkah 9: Membuat Kasus
Langkah 9: Membuat Kasus
Langkah 9: Membuat Kasus

Untuk proyek ini, saya membuat kotak kayu.

Kayunya ringan, tipis dan tidak membutuhkan banyak biaya.

Sebagai dimensi yang saya gunakan:

  • Tinggi: 5 cm
  • Lebar: 10.5cm
  • Panjang: 12.5cm

Untuk sensor, Anda perlu menambahkan 2 lubang dan menempatkannya bersebelahan.

Setelah membuat casing, pasang sensor, LED dan LCD.

Langkah 10: Langkah Terakhir

Semuanya pada dasarnya dilakukan.

Sekarang kita hanya perlu memastikan bahwa kode kita dimulai, saat kita mencolokkan sumber listrik kita.

Ada banyak metode untuk melakukan ini.

> Contoh

Kami akan menggunakan metode pertama:

Jalankan baris ini: 'sudo nano /etc/rc.local'

Tambahkan perintah Anda untuk menjalankan kode: 'sudo python3'

Simpan file menggunakan Ctrl-X.

Jika Anda memiliki masalah dalam mengedit. Lakukan kembali langkah ini, tetapi pertama-tama jalankan 'Sudo -i'.

Direkomendasikan: