Daftar Isi:
- Perlengkapan
- Langkah 1: Langkah 1: Instalasi RPi OS, Konfigurasi SSH dan Akses Internet
- Langkah 2: Langkah 2: Menginstal Perangkat Lunak di RPi
- Langkah 3: Langkah 3: Menghubungkan ke Database MySQL, Membuat Database
- Langkah 4: Langkah 4: Filezilla
- Langkah 5: Langkah 5: Membuat Situs Web
- Langkah 6: Langkah 6: Membuat Backend (Flask)
- Langkah 7: Langkah 7: Perangkat Keras
- Langkah 8: Langkah 8: Penjelasan Kode
- Langkah 9: Langkah 9: Membuat Kasus
- Langkah 10: Langkah Terakhir
Video: ColorPicker: 10 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
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.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 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
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
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
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
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:
Sistem Peringatan Parkir Terbalik Mobil Arduino - Langkah demi Langkah: 4 Langkah
Sistem Peringatan Parkir Mundur Mobil Arduino | Langkah demi Langkah: Pada proyek kali ini, saya akan merancang Rangkaian Sensor Parkir Mundur Mobil Arduino sederhana menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem peringatan mundur mobil berbasis Arduino ini dapat digunakan untuk Navigasi Otonom, Jarak Robot, dan r
Langkah demi Langkah Membangun PC: 9 Langkah
Langkah demi Langkah Membangun PC: Perlengkapan: Perangkat Keras: MotherboardCPU & Pendingin CPUPSU (Unit catu daya)Penyimpanan (HDD/SSD)RAMGPU (tidak diperlukan)Kasing Alat: Obeng Gelang ESD/pasta matstermal dengan aplikator
Tiga Sirkuit Loudspeaker -- Tutorial Langkah-demi-Langkah: 3 Langkah
Tiga Sirkuit Loudspeaker || Tutorial Langkah-demi-Langkah: Sirkuit Loudspeaker memperkuat sinyal audio yang diterima dari lingkungan ke MIC dan mengirimkannya ke Speaker dari mana audio yang diperkuat diproduksi. Di sini, saya akan menunjukkan kepada Anda tiga cara berbeda untuk membuat Sirkuit Loudspeaker ini menggunakan:
Pendidikan Langkah demi Langkah dalam Robotika Dengan Kit: 6 Langkah
Pendidikan Selangkah demi Selangkah dalam Robotika Dengan Kit: Setelah beberapa bulan membuat robot saya sendiri (silakan lihat semua ini), dan setelah dua kali mengalami bagian yang gagal, saya memutuskan untuk mengambil langkah mundur dan memikirkan kembali strategi dan arahan. Pengalaman beberapa bulan terkadang sangat bermanfaat, dan
Levitasi Akustik Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): 8 Langkah
Akustik Levitation Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): transduser suara ultrasonik L298N Dc female adapter power supply dengan pin dc laki-laki Arduino UNOBreadboardCara kerjanya: Pertama, Anda mengunggah kode ke Arduino Uno (ini adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk mengonversi kode (C++)