Isi kandungan:
- Bekalan
- Langkah 1: Langkah 1: Memasang RPi OS, Mengkonfigurasi SSH dan Akses Internet
- Langkah 2: Langkah 2: Memasang Perisian pada RPi
- Langkah 3: Langkah 3: Menyambung ke Pangkalan Data MySQL, Membuat Pangkalan Data
- Langkah 4: Langkah 4: Filezilla
- Langkah 5: Langkah 5: Membuat Laman Web
- Langkah 6: Langkah 6: Membuat Backend (Flask)
- Langkah 7: Langkah 7: Perkakasan
- Langkah 8: Langkah 8: Terangkan Kod
- Langkah 9: Langkah 9: Membuat Kes
- Langkah 10: Langkah Akhir
Video: ColorPicker: 10 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Matlamat projek ini adalah untuk mengukur warna, dan menerjemahkannya ke sistem warna lain. Dengan hanya menggunakan nilai RGB yang diberikan oleh sensor, anda boleh menterjemahkan ke HSL, CYMK, HEX dan juga kod RAL terdekat (standard yang digunakan untuk cat). Projek ini memerlukan pengetahuan asas mengenai Python, MySQL, Linux dan Javascript.
Sekiranya anda juga biasa dengan kerangka kerja Flask dan SocketIO, maka kod untuk projek ini semestinya mudah difahami untuk anda.
Projek ini boleh digunakan oleh pelukis, pereka interiour atau hanya oleh sesiapa sahaja yang perlu mengukur warna.
Projek ini tidak begitu mahal, dan berharga _ €, penghantaran tidak termasuk.
Bekalan
Kita boleh membahagikan bahagian ini dalam dua bahagian:
- Perkakasan
- Perisian
Perkakasan
Kami menggunakan komponen berikut
- HC04: Sensor jarak, sejauh mana kita mengukur dari objek
- Paparan LCD 2x16
- Modul LCD I2C (HW061)
- Modul sensor warna TCS34725 (Adafruit)
- LED Putih
- Raspberry Pi 3 (Mana-mana Raspberry Pi mesti berfungsi)
- Perintang Ohm 5x 1k
- Perintang 1x 220 atau 330 Ohm
- Kad SD 16GB (14.4GB)
Perisian
- Python IDE, seperti Visual Code atau Pycharm (Pycharm digunakan di sini)
- Meja Kerja MySQL
- Putty (Muat turun Putty)
- Rufus atau penulis kad SD lain (Muat turun Rufus)
Harga
Projek ini agak murah, jika anda sudah mempunyai Rapsberry Pi.
- HC04: Bermula sekitar € 2.5 euro (China) dan hingga € 6 untuk lebih banyak kedai tempatan.
- LCD: Sekitar 6-8 euro.
- Modul I2C: Murah di bawah € 1 (China), tetapi sehingga € 4 untuk lebih banyak kedai tempatan.
- TCS34725: Sekitar € 9-12 euro. Bahagian paling mahal (Tidak termasuk RPi)
- Putih dipimpin: Dibeli secara pukal, 20 LED dengan harga serendah € 1
- Raspberry Pi: Bergantung pada versi mana, sekitar € 40 euro
- Perintang: € 0.10 untuk satu perintang
- Kad SD: sekitar € 8
Penyesuai kuasa untuk Raspberry Pi tidak termasuk dalam kos harga, kerana penyesuai ini agak biasa.
Julat harga keseluruhan: sekitar € 70, jika anda memasukkan Raspberry Pi dan sarung untuk projek tersebut.
Untuk membina sarung itu, saya menggunakan kayu nipis ringan. Saya mengitar semula kayu ini dari perabot. Bahan untuk kes itu terpulang kepada anda.
Langkah 1: Langkah 1: Memasang RPi OS, Mengkonfigurasi SSH dan Akses Internet
Langkah 1.1: Memasang gambar
Muat turun gambar dari laman rasmi Raspberry Pi. Tidak kira imej yang anda pasang. Untuk projek ini, GUI tidak diperlukan, kerana kami hanya akan berhubung menggunakan SSH.
Tulis gambar ke kad SD (kosong) (Semua fail pada kad akan dipadamkan).
Untuk menulis semuanya ke kad SD, kami akan menggunakan alat yang dipanggil 'Rufus'. Setelah memuat turun gambar, buka Rufus dan pilih fail gambar. Pilih pemacu sasaran dan tulis gambar ke pemacu. Ini boleh mengambil masa sedikit.
> Rufus
Langkah 1.2: Memasang SSH
Langkah seterusnya ialah membuat sambungan ke kad SD. Untuk melakukan itu, kita perlu mengaktifkan SSH.
Untuk melakukannya tanpa menggunakan monitor, buka penjelajah fail anda dan buka partisi but kad SD. Buat fail kosong yang disebut "ssh", tanpa perluasan fail.
Buka juga "cmdline.txt"
Tambahkan "169.254.10.1" di akhir fail dan simpan.
Lepaskan kad SD dan masukkan ke dalam Raspberry Pi.
Sekarang kita dapat menyambungkan Raspberry Pi ke sumber kuasa dan boot dan sambungkan menggunakan SSH.
Untuk berhubung menggunakan SSH, kami menggunakan program "Putty". Sambungkan RPi dan PC anda menggunakan kabel ehternet sebelum melakukannya. Buka Putty dan pergi ke tab SSH, dan isikan IP ini: 169.254.10.1. Klik 'sambung' dan anda akan dihubungkan.
> Dempul
Log masuk lalai yang digunakan oleh Raspberry Pi adalah 'pi' sebagai nama pengguna dan 'raspberry' untuk kata laluan.
Langkah 1.3: Sambungan tanpa wayar
Raspberry Pi anda kini dihidupkan.
Kami juga ingin menyambung ke RPi menggunakan Wifi, dengan cara itu kami tidak lagi memerlukan kabel ethernet.
Jalankan baris berikut:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
Ini akan membuka editor teks 'nano' dengan hak tinggi.
Tambahkan baris berikut dalam fail:
rangkaian = {
ssid = "SSID"
psk = "Kata Laluan"
}
Ganti "SSID" dengan SSID rangkaian Wifi anda
Ganti "Kata Laluan" dengan kata laluan anda.
Kemudian lakukan Ctrl + X dan pilih pilihan 'ya'. Fail sekarang akan disimpan.
Sekarang kita perlu memulakan semula perkhidmatan rangkaian
Laksanakan perintah berikut:
- 'sudo -i'
- 'sudo systemctl mulakan semula rangkaian'
Anda boleh menguji sambungan internet anda menggunakan perintah wget.
Contoh: 'wget google.com'
> Wget arahan
Langkah 2: Langkah 2: Memasang Perisian pada RPi
Untuk projek ini, kita perlu memasang beberapa perpustakaan.
- Mariadb: Pangkalan data MySQL (sudo apt-get install mariadb-server)
- Perpustakaan Adafruit untuk sensor warna: Mengukur warna (pip3 memasang adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', pilih server web apache)
Pasang juga perpustakaan pip berikut:
- kelalang_socketio
- kelalang
- termos_cors
- papan
- busio
- muka jaring
Langkah 3: Langkah 3: Menyambung ke Pangkalan Data MySQL, Membuat Pangkalan Data
Langkah seterusnya, adalah menyambung ke pangkalan data MySQL menggunakan meja kerja MySQL.
> IP a
Jalankan perintah 'ip a', seperti yang ditunjukkan pada gambar di atas (Klik pautan)
Dalam kebanyakan situasi, akan ditunjukkan 3 entri. Kami memerlukan entri 'wlan0'. Salin IP di sebelah 'inet', atau dalam contoh ini '192.168.1.44'
. >> Buat sambungan baru
Seperti yang ditunjukkan dalam gambar di atas, buat sambungan baru dengan parameter berikut (Gambar di bawah untuk param)
> Parameter sambungan
Klik dua kali connecton yang baru dibuat untuk menyambung.
Sekiranya terdapat arahan, klik 'Ya'.
Ini masih merupakan pangkalan data kosong, jadi mari kita tambahkan beberapa jadual.
Pertama buat skema, untuk melakukannya, di sebelah kiri 'klik kanan' dan pilih 'buat skema'.
Beri nama skema dan sahkan.
Sekarang kita perlu menambah jadual. Kembangkan skema dan 'klik kanan', 'jadual'.
Buat skema berikut:
> Jadual 1: Warna RAL
> Jadual 2: Jenis sensor
> Jadual 3: Pengukuran (Dalam gambar, 'metingen' digunakan, Belanda untuk pengukuran)
> Jadual 4: Data_data laman web || Jadual 4 bawah
MySQL adalah sistem pangkalan data hubungan, yang bermaksud kita dapat menjalin hubungan antara jadual.
Hubungan pertama yang harus kita buat adalah antara 'sensor_type' dan 'pengukuran'.
Seperti yang ditunjukkan dalam gambar, pautkan dua kekunci.
> Edit jadual & kunci pautan
Jangan lupa menyimpan perubahan dengan mengklik 'Terapkan' di sudut bawah.
Edit juga jadual 'website_data' dan pautkan 'MetingID'.
Sekarang kita selesai dengan membuat jadual dan menjalin hubungan.
Menambah data:
Jadual RALcolors adalah jadual tetap, di mana nilainya tidak akan pernah berubah. Kita boleh menambah nilai-nilai ini
sangat mudah.
> Muat turun fail Excel
Muat turun fail excel di atas dan pilih semua data dan 'salin'. Suka seperti dalam gambar
> Tunjukkan jadual
'klik kanan' di atas meja dan pilih 'Tampal baris'. 'klik' 'terapkan' di sudut bawah untuk menambahkan data.
Sekarang semua RALcolors disimpan dalam pangkalan data.
Kita hanya perlu menambahkan jenis sensor_ ke pangkalan data sekarang.
> Data sensortype
Catatan: Keterangan sensor terdapat dalam 'Belanda'
Langkah 4: Langkah 4: Filezilla
Untuk menyambung ke Raspberry Pi dan memindahkan fail dengan mudah, kita dapat menggunakan Filezilla.
> Muat turun Filezilla
Failkan dalam maklumat sambungan dan sambungkan. Di sebelah kanan anda kini boleh memindahkan fail dengan menyeretnya masuk.
> Sumber Github
Muat turun fail dari sumber github di atas.
Langkah 5: Langkah 5: Membuat Laman Web
Untuk hosting laman web, kami menggunakan PHPmyAdmin dan Apache2.
Pelayan laman web pada Raspberry Pi menggunakan direktori '/ var / www / html' sebagai root.
Sekiranya anda meletakkan fail anda di sana, fail tersebut akan dihoskan di IP Raspberry Pi. (IP = lihat 'ip a')
Anda boleh memuat turun fail yang diperlukan dari repo github saya (langkah sebelumnya)
Di '/ var / www / html /', tampal semua fail dari folder 'Frontend'.
> / var / www / html /
Langkah 6: Langkah 6: Membuat Backend (Flask)
Backend laman web berdasarkan Flask.
Semua fail boleh didapati di repo github.
Salin semua fail ke mana-mana direktori di Raspberry Pi.
Contohnya '/ home / pi / colorpicker.
Untuk membuat direktori, arahkan ke direktori tujuan menggunakan 'cd', dan kemudian jalankan 'mkdir'.
Itu sahaja buat masa ini. Kodnya akan dijelaskan pada langkah seterusnya.
Langkah 7: Langkah 7: Perkakasan
> Skema muat turun
Buat skema seperti yang ditunjukkan dalam dokumen di atas.
CATATAN: Juga tambahkan satu LED putih, dengan satu perintang (220 atau 330 Ohms).
Menjelaskan perkakasan
HC04
Sensor HC04 memancarkan gelombang, yang memantulkan dan diterima semula oleh sensor.
Dengan mengira delta masa antara emit dan penerimaan, kita dapat mengira jaraknya.
Jarak = ((Cap Tim_recieve - Cap Waktu_emit) / kelajuan bunyi) / 2
Kami membahagi dua kerana gelombang memantulkan, yang bermaksud jarak perjalanan dua kali.
LCD
Kami menggunakan paparan LCD untuk menunjukkan RGB dan HEX, sebagai IP ketika program bermula.
Untuk LCD ini, saya membeli modul I2C. Kami hanya memerlukan 4 wayar sekarang. SDA, SCL, GND, VCC
Untuk menggunakan LCD ini, saya menulis kelas Python, untuk memudahkan penggunaannya.
TCS34725
Sensor ini membolehkan anda mengukur warna. Kami menggunakan perpustakaan untuk mengukur nilai RGB.
Langkah 8: Langkah 8: Terangkan Kod
Bahagian depan
Bahagian depan wujud daripada tiga bahagian utama.
Pertama adalah fail html, yang membina struktur laman web kami, tetapi tidak mengandungi atau susun atur yang minimum.
Kedua, kita mempunyai fail css, atau file gaya, yang gaya dan susun atur laman web kita.
Kedua-duanya cukup mudah dibaca dan difahami, sebab itulah saya tidak akan menerangkannya.
Terakhir kami mempunyai Javascript, dengan dua perpustakaan.
Dua perpustakaan yang digunakan adalah SocketIO dan URLSearchParams.
SocketIO membolehkan anda menghantar mesej dari backend ke frontend, dan sebaliknya.
Mesej boleh dihantar kepada satu pelanggan, tetapi juga beberapa pelanggan (Siaran)
> Soket IO Javascript
> Soket IO Python
Dalam gambar di atas, anda dapat melihat salah satu sambungan Socket yang dibuat dalam projek ini.
Perintah untuk menghantar mesej adalah 'emit', penerimaan dilakukan oleh 'on'.
URLSearchParms membolehkan anda mendapatkan nilai dari querystring dengan mudah.
Contoh pertanyaan: contoh.com/index.html?id=1
URLSearchParams akan memberi anda kembali: {'id' = '1'}
> Contoh URLSearchParams
Bahagian belakang
Bahagian belakang ditulis sepenuhnya dalam Python, dengan banyak perpustakaan.
Perpustakaan pertama yang kami import adalah 'Flask'. Perpustakaan ini diperlukan untuk membuat API, untuk melakukan semua tindakan CRUD untuk pangkalan data MySQL. CRUD bermaksud Buat Hapus Kemas kini Baca Baca.
> Kelalang
Gambar di atas menunjukkan beberapa 'laluan' Flask. Dengan melayari ke laluan, anda secara automatik akan melakukan kaedah 'GET', kod akan dilaksanakan dan anda akan menerima nilai dari kaedah kembali. Terdapat juga kaedah lain, seperti 'POST' dan 'DELETE'. Untuk menguji kaedah tersebut, anda memerlukan program seperti Postman.
Perpustakaan import seterusnya adalah SocketIO, yang saya jelaskan sudah ada di bahagian hujung depan.
Seterusnya adalah GPIO.
Ini membolehkan anda mengawal 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 RENDAH atau TINGGI ke pin.
- GPIO.setup (,) Tentukan PIN sebagai input atau output, atau pulldown atau pullup
Seterusnya kita mempunyai threading.
Satu-satunya arahan yang kami gunakan adalah:
- Benang (sasaran =)
- mulakan ()
Dengan menggunakan utas, kita dapat menjalankan beberapa contoh kod pada masa yang sama. Dengan cara ini kita dapat mengukur jarak dan pada masa yang sama, mendengar mesej io soket masuk.
Perintah pertama Thread (target =) akan membuat kelas Thread, yang setelah mula menggunakan 'start ()', akan menjalankan fungsi dalam kata kunci 'target', yang diberikan pada penciptaan kelas.
Seterusnya kita mempunyai perpustakaan sensor warna, yang agak lurus ke hadapan. Saya tidak akan menjelaskan perpustakaan ini, kerana kaedahnya sangat jelas dan dijelaskan dalam kodnya.
Terakhir kami mempunyai netifaces. Ini membolehkan kami mendapatkan semula alamat IP yang kami gunakan untuk sambungan Tanpa Wayar dan Berwayar.
Terakhir saya membuat beberapa kelas sendiri untuk sensor jarak, LED dan LCD.
Saya tidak akan menerangkan bagaimana ia berfungsi.
Langkah 9: Langkah 9: Membuat Kes
Untuk projek ini, saya membuat sarung kayu.
Kayu itu ringan, nipis dan tidak memerlukan banyak kos.
Sebagai dimensi yang saya gunakan:
- Tinggi: 5 cm
- Lebar: 10.5cm
- Panjang: 12.5cm
Untuk sensor, anda perlu menambah 2 lubang dan meletakkannya di sebelah satu sama lain.
Setelah membuat casing, pasang sensor, LED dan LCD.
Langkah 10: Langkah Akhir
Semuanya dilakukan secara asas.
Sekarang kita hanya perlu memastikan bahawa kod kita bermula, pada saat kita memasangkan sumber kuasa kita.
Terdapat banyak kaedah untuk melakukan ini.
> Contoh
Kami akan menggunakan kaedah pertama:
Jalankan baris ini: 'sudo nano /etc/rc.local'
Tambahkan arahan anda untuk menjalankan kod: 'sudo python3'
Simpan fail menggunakan Ctrl-X.
Sekiranya anda menghadapi masalah menyunting. Lakukan semula langkah ini, tetapi jalankan terlebih dahulu 'sudo -i'.
Disyorkan:
Sistem Makluman Tempat Letak Balik Kereta Arduino - Langkah demi Langkah: 4 Langkah
Sistem Makluman Tempat Letak Balik Kereta Arduino | Langkah demi Langkah: Dalam projek ini, saya akan merancang Litar Sensor Tempat Letak Kereta Berbalik Arduino yang ringkas menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem amaran Car Reverse berasaskan Arduino ini dapat digunakan untuk Navigasi Autonomi, Robot Ranging dan rangkaian lain
Langkah demi Langkah Pembinaan PC: 9 Langkah
Langkah demi Langkah Pembinaan PC: Persediaan: Perkakasan: MotherboardCPU & CPU cooler PSU (Unit bekalan kuasa) Penyimpanan (HDD / SSD) RAMGPU (tidak diperlukan) Alat kes: Pemutar skru Gelang ESD / tampal matsthermal dengan aplikator
Tiga Litar Pembesar Suara -- Tutorial Langkah demi Langkah: 3 Langkah
Tiga Litar Pembesar Suara || Tutorial Langkah-demi-Langkah: Loudspeaker Circuit menguatkan isyarat audio yang diterima dari persekitaran ke MIC dan menghantarnya ke Speaker dari tempat audio diperkuat dihasilkan. Di sini, saya akan menunjukkan kepada anda tiga cara berbeza untuk membuat Loudspeaker Circuit ini menggunakan:
Pendidikan Langkah demi Langkah dalam Robotik Dengan Kit: 6 Langkah
Pendidikan Langkah-demi-Langkah dalam Robotik Dengan Kit: Setelah beberapa bulan membina robot saya sendiri (sila rujuk semua ini), dan setelah dua kali bahagian gagal, saya memutuskan untuk mengambil langkah mundur dan memikirkan semula strategi dan arahan. Pengalaman selama beberapa bulan kadang-kadang sangat bermanfaat, dan
Pengangkatan Akustik Dengan Arduino Uno Langkah demi Langkah (8-langkah): 8 Langkah
Acoustic Levitation With Arduino Uno Step-by Step (8-step): transduser suara ultrasonik L298N Dc power adaptor wanita dengan pin dc lelaki Arduino UNOBreadboardBagaimana ini berfungsi: Pertama, anda memuat naik kod ke Arduino Uno (ia adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk menukar kod (C ++)