Mündəricat:
- Təchizat
- Addım 1: Adım 1: RPi OS -nin quraşdırılması, SSH və İnternetə girişin konfiqurasiyası
- Addım 2: Adım 2: RPi üzərində Proqram Quraşdırma
- Addım 3: Adım 3: MySQL Verilənlər Bazasına qoşulmaq, Veritabanı Yaratmaq
- Addım 4: Adım 4: Filezilla
- Adım 5: Adım 5: Veb saytın yaradılması
- Addım 6: Adım 6: Arxa planın yaradılması (Şüşə)
- Adım 7: Adım 7: Avadanlıq
- Adım 8: Adım 8: Kod izah edildi
- Addım 9: Adım 9: Dava Yarat
- Addım 10: Son addımlar
Video: ColorPicker: 10 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Bu layihənin məqsədi rəngləri ölçmək və digər rəng sistemlərinə tərcümə etməkdir. Sensor tərəfindən verilən yalnız RGB dəyərlərindən istifadə edərək, HSL, CYMK, HEX və həmçinin ən yaxın RAL kodunu (boya üçün istifadə olunan standart) tərcümə edə bilərsiniz. Bu layihə üçün Python, MySQL, Linux və Javascript haqqında əsas biliklər tələb olunur.
Flask çərçivəsi və SocketIO ilə də tanışsınızsa, bu layihənin kodu sizin üçün asan başa düşülməlidir.
Bu layihə rəssamlar, interiour dizaynerlər və ya rəngləri ölçmək ehtiyacı olan hər kəs tərəfindən istifadə edilə bilər.
Bu layihə o qədər də bahalı deyil və çatdırılma daxil deyil, təxminən _ avroya başa gəlir.
Təchizat
Bu bölməni iki hissəyə bölmək olar:
- Avadanlıq
- Proqram təminatı
Avadanlıq
Aşağıdakı komponentlərdən istifadə edirik
- HC04: Məsafə sensoru, cisimdən nə qədər uzaqda olduğumuzu ölçürük
- LCD ekran 2x16
- LCD I2C modulu (HW061)
- TCS34725 Rəng sensoru modulu (Adafruit)
- Ağ LED
- Raspberry Pi 3 (İstənilən Raspberry Pi işləməlidir)
- 5x 1k Ohm müqavimət
- 1x 220 və ya 330 Ohm müqavimət
- SD kart 16GB (14.4GB)
Proqram təminatı
- Python IDE, Visual Code və ya Pycharm kimi (burada istifadə olunan Pycharm)
- MySQL Workbench
- Macun (Macunu yükləyin)
- Rufus və ya başqa bir SD kart yazıcısı (Rufus'u yükləyin)
Qiymətləndirmə
Rapsberry Pi varsa, bu layihə olduqca ucuzdur.
- HC04: 2.5 avrodan başlayaraq (Çin) və daha çox yerli mağaza üçün 6 avroya qədər.
- LCD: təxminən 6-8 avro.
- I2C modulu: 1 avrodan aşağı (Çin), lakin daha çox yerli mağaza üçün 4 avroya qədər.
- TCS34725: 9-12 avro ətrafında. Ən bahalı hissə (RPi istisna olmaqla)
- Ağ led: Toplu olaraq alınıb, 1 avroya qədər olan 20 LED
- Raspberry Pi: Hansı versiyadan asılı olaraq, təxminən 40 avro
- Rezistorlar: bir müqavimət üçün 0,10 avro
- SD kart: təxminən 8 avro
Raspberry Pi üçün güc adapteri qiymətə daxil deyil, çünki bu adapter olduqca yaygındır.
Aşırı qiymət aralığı: Raspberry Pi və layihə üçün qabı daxil etsəniz, təxminən 70 avro.
Çantanı qurmaq üçün yüngül nazik ağacdan istifadə etdim. Bu taxtanı mebeldən geri qaytardım. Davanın materialı sizə aiddir.
Addım 1: Adım 1: RPi OS -nin quraşdırılması, SSH və İnternetə girişin konfiqurasiyası
Addım 1.1: Şəklin quraşdırılması
Şəkili Raspberry Pi rəsmi saytından yükləyin. Hansı görüntünün quraşdırılmasının əhəmiyyəti yoxdur. Bu layihə üçün bir GUI lazım deyil, çünki yalnız SSH istifadə edərək əlaqə quracağıq.
Şəkli (boş) SD karta yazın (Kartdakı bütün fayllar silinəcəkdir).
Hər şeyi SD karta yazmaq üçün 'Rufus' adlı bir vasitədən istifadə edəcəyik. Şəkli yüklədikdən sonra Rufus -u açın və şəkil faylını seçin. Hədəf sürücüsünü seçin və sürücüyə şəkil yazın. Bu bir müddət çəkə bilər.
> Rufus
Addım 1.2: SSH quraşdırın
Növbəti addım SD karta bir əlaqə yaratmaqdır. Bunu etmək üçün SSH -ni aktivləşdirməliyik.
Bunu bir monitor istifadə etmədən etmək üçün fayl araşdırıcınızı və SD kartın açılış hissəsini açın. Fayl uzantısı olmadan "ssh" adlı boş bir fayl yaradın.
Ayrıca "cmdline.txt" açın
Faylın sonuna "169.254.10.1" əlavə edin və qeyd edin.
SD kartı ayırın və Raspberry Pi -yə daxil edin.
İndi Raspberry Pi -ni bir enerji mənbəyinə bağlaya və SSH -dən istifadə edərək aça və qoşula bilərik.
SSH istifadə edərək qoşulmaq üçün "Putty" proqramından istifadə edirik. Bunu etməzdən əvvəl bir İnternet kabelindən istifadə edərək RPi və PC -ni bağlayın. Putty açın və SSH sekmesine keçin və bu IP -ni doldurun: 169.254.10.1. 'Bağlan' düyməsini vurun və bağlı olacaqsınız.
> Macun
Raspberry Pi tərəfindən istifadə edilən standart giriş istifadəçi adı olaraq 'pi' və parol üçün 'moruq' dur.
Addım 1.3: Simsiz əlaqə
Sizin Raspberry Pi artıq işə salınmışdır.
Wifi istifadə edərək RPi -yə qoşulmaq istəyirik, beləliklə artıq bir Ethernet kabelinə ehtiyacımız yoxdur.
Aşağıdakı sətri icra edin:
'sudo nano /etc/wpa_supplicant/wpa_supplicant.conf'
Bu, yüksək hüquqlara malik 'nano' mətn redaktorunu açacaq.
Faylı aşağıdakı sətirləri əlavə edin:
şəbəkə = {
ssid = "SSID"
psk = "Şifrə"
}
"SSID" ni Wifi şəbəkənizin SSID ilə əvəz edin
"Şifrə" ni parolunuzla əvəz edin.
Sonra Ctrl+X düyməsini basın və 'bəli' seçimini seçin. İndi fayl saxlanılacaq.
İndi şəbəkə xidmətini yenidən başlatmalıyıq
Aşağıdakı əmrləri yerinə yetirin:
- 'sudo -i'
- 'sudo systemctl şəbəkəni yenidən başladın'
Wget əmrindən istifadə edərək internet bağlantınızı yoxlaya bilərsiniz.
Məsələn: 'wget google.com'
> Wget əmri
Addım 2: Adım 2: RPi üzərində Proqram Quraşdırma
Bu layihə üçün bir neçə kitabxana qurmalıyıq.
- Mariadb: MySQL verilənlər bazası (sudo apt-get install mariadb-server)
- Rəng sensoru üçün Adafruit kitabxanası: Rənglərin ölçülməsi (pip3 qurmaq adafruit-circuitpython-tcs34725)
- PHPmyAdmin: ('sudo apt install phpmyadmin', apache veb serverini seçin)
Aşağıdakı pip kitabxanalarını da quraşdırın:
- flask_socketio
- balon
- flask_cors
- lövhə
- busio
- netfaces
Addım 3: Adım 3: MySQL Verilənlər Bazasına qoşulmaq, Veritabanı Yaratmaq
Növbəti addım, MySQL iş masası istifadə edərək MySQL verilənlər bazasına qoşulmaqdır.
> IP a
Yuxarıdakı şəkildə göstərildiyi kimi 'ip a' əmrini yerinə yetirin (linki vurun)
Əksər hallarda 3 giriş göstəriləcək. 'Wlan0' girişinə ehtiyacımız var. IP -ni "inet" in yanına kopyalayın və ya bu nümunədə '192.168.1.44'
. >> Yeni əlaqə yaradın
Yuxarıdakı şəkildə göstərildiyi kimi, aşağıdakı parametrlərlə yeni bir əlaqə yaradın (Parametrlər üçün aşağıdakı şəkil)
> Bağlantı parametrləri
Qoşulmaq üçün yeni yaradılan bağlantıya iki dəfə vurun.
Bir təklif varsa, 'Bəli' düyməsini basın.
Bu hələ boş bir verilənlər bazasıdır, buna görə bəzi cədvəllər əlavə edək.
Əvvəlcə bir sxem yaradın, bunu etmək üçün sol tərəfdə 'sağ klikləyin' və 'Şema yarat' seçin.
Şemaya bir ad verin və təsdiq edin.
İndi cədvəllər əlavə etməliyik. Şemanı genişləndirin və 'sağ klikləyin', 'masalar'.
Aşağıdakı sxemləri yaradın:
> Cədvəl 1: RALcolors
> Cədvəl 2: Sensor növləri
> Cədvəl 3: Ölçmələr (Şəkildə 'metingen' istifadə olunur, ölçülər üçün Hollandiya)
> Cədvəl 4: Veb sayt_dataları || Cədvəl 4 alt
MySQL, əlaqəli bir verilənlər bazası sistemidir, yəni cədvəllər arasında əlaqələr yarada bilərik.
Yaratmamız lazım olan ilk əlaqə 'sensor_type' və 'ölçmələr' arasındadır.
Şəkildə göstərildiyi kimi iki düyməni bağlayın.
> Cədvəl və keçid düymələrini redaktə edin
Alt küncdəki 'Tətbiq et' düyməsini basaraq dəyişiklikləri saxlamağı unutmayın.
Ayrıca 'website_data' cədvəlini düzəldin və 'MetingID' bağlantısını yaradın.
İndi cədvəllər yaratmaq və əlaqələr qurmaqla işimiz bitdi.
Məlumat əlavə olunur:
RALcolors cədvəli, dəyərlərin heç vaxt dəyişməyəcəyi sabit bir cədvəldir. Bu dəyərləri əlavə edə bilərik
çox asan.
> Excel faylını yükləyin
Yuxarıdakı excel faylını yükləyin və bütün məlumatları seçin və 'kopyalayın'. Şəkildəki kimi edin
> Cədvəli göstər
masada 'sağ basın' və 'Satırları yapışdır' seçin. Məlumatları əlavə etmək üçün alt küncdəki 'tətbiq' düyməsini basın.
İndi bütün RALcolors verilənlər bazasında saxlanılır.
İndi verilənlər bazasına sensor_type əlavə etməliyik.
> Sensortype məlumatları
Qeyd: Sensorun təsviri 'Holland dilindədir'
Addım 4: Adım 4: Filezilla
Raspberry Pi -yə asanlıqla qoşulmaq və faylları köçürmək üçün Filezilla'dan istifadə edə bilərik.
> Filezilla yükləyin
Bağlantı detallarını daxil edin və əlaqə qurun. Sağ tərəfdə faylları sürükləyərək köçürə bilərsiniz.
> Github mənbəyi
Faylları yuxarıdakı github mənbəyindən yükləyin.
Adım 5: Adım 5: Veb saytın yaradılması
Veb saytın yerləşdirilməsi üçün PHPmyAdmin və Apache2 istifadə edirik.
Raspberry Pi üzərindəki veb serveri '/var/www/html' qovluğunu kök olaraq istifadə edir.
Fayllarınızı ora yerləşdirsəniz, onlar Raspberry Pi -nin IP ünvanında yerləşdiriləcək. (IP = bax 'ip a')
Github repo -dan lazımi faylları yükləyə bilərsiniz (əvvəlki addım)
'/Var/www/html/' üzərinə 'Frontend' qovluğundakı bütün faylları yapışdırın.
>/var/www/html/
Addım 6: Adım 6: Arxa planın yaradılması (Şüşə)
Veb saytın arxa tərəfi Flask -a əsaslanır.
Bütün faylları github repo -da tapa bilərsiniz.
Bütün faylları Raspberry Pi üzərindəki hər hansı bir qovluğa kopyalayın.
Məsələn '/home/pi/colorpicker.
Bir kataloq yaratmaq üçün 'cd' istifadə edərək təyinat qovluğuna gedin və 'mkdir' əmrini yerinə yetirin.
Hələlik hamısı budur. Kod növbəti addımlarda izah ediləcək.
Adım 7: Adım 7: Avadanlıq
> Proqramı yükləyin
Yuxarıdakı sənəddə göstərildiyi kimi sxem yaradın.
Qeyd: Bir rezistorlu (220 və ya 330 Ohm) bir ağ LED əlavə edin.
Avadanlıqların izahı
HC04
HC04 sensoru, əks etdirən və yenidən sensor tərəfindən qəbul edilən dalğalar yayır.
Emitasiya və alma arasındakı zaman deltasını hesablayaraq, məsafəni hesablaya bilərik.
Məsafə = ((Timestamp_recieve - Timestamp_emit) / səs sürəti) / 2
Dalğanı əks etdirdiyi üçün məsafəni iki dəfə qət etdiyi üçün ikiyə bölürük.
LCD
Proqram başlayanda RGB və HEX -i IP kimi göstərmək üçün LCD ekrandan istifadə edirik.
Bu LCD üçün I2C modulu aldım. İndi yalnız 4 telə ehtiyacımız var. SDA, SCL, GND, VCC
Bu LCD -dən istifadə etmək üçün istifadə etməyi asanlaşdırmaq üçün Python sinfi yazdım.
TCS 34725
Bu sensor rəngləri ölçməyə imkan verir. RGB dəyərini ölçmək üçün kitabxanadan istifadə edirik.
Adım 8: Adım 8: Kod izah edildi
Ön cəbhə
Ön uç üç əsas hissədən ibarətdir.
Birincisi, veb saytımızın quruluşunu quran, lakin ehtiva etməyən və ya minimum düzeni olmayan html fayllarıdır.
İkincisi, veb saytımızı tərtib edən və tərtib edən CSS faylları və ya stil faylları var.
İkisini oxumaq və başa düşmək olduqca asandır, buna görə izah etməyəcəyəm.
Son olaraq iki kitabxanamız olan Javascript -ə sahibik.
İstifadə olunan iki kitabxana SocketIO və URLSearchParamsdır.
SocketIO, arxa ucdan ön tərəfə və əksinə mesaj göndərməyə imkan verir.
Mesajlar bir müştəriyə, eyni zamanda birdən çox müştəriyə göndərilə bilər (Yayım)
> Soket IO Javascript
> Soket IO Python
Yuxarıdakı şəkillərdə bu proyektdə edilən Socket bağlantılarından birini görə bilərsiniz.
Mesaj göndərmək əmri 'yay', qəbulu 'on' ilə edilir.
URLSearchParms bir sorğu sətrindən dəyərləri asanlıqla əldə etməyə imkan verir.
Nümunə sorğu sətri: example.com/index.html?id=1
URLSearchParams sizə geri verəcək: {'id' = '1'}
> URLSearchParams nümunəsi
Arxa tərəf
Arxa plan bir çox kitabxana ilə birlikdə Python -da yazılmışdır.
İdxal etdiyimiz ilk kitabxana 'Flask' dır. Bu kitabxana bir API yaratmaq, MySQL verilənlər bazası üçün bütün CRUD hərəkətlərini etmək üçün lazımdır. CRUD, Oxu Yeniləmə Silmək Yaratmaq deməkdir.
> Şüşə
Yuxarıdakı şəkil bir neçə Flask 'marşrutu' göstərir. Bir marşrutda gəzərək avtomatik olaraq 'GET' metodu edəcəksiniz, kod icra ediləcək və dəyəri metodu geri qaytaracaqsınız. 'POST' və 'SİL' kimi başqa üsullar da var. Bu cür üsulları sınamaq üçün Postman kimi bir proqrama ehtiyacınız olacaq.
Növbəti idxal kitabxanası, SocketIO -dur, bunu artıq ön hissədə izah etmişəm.
Sonrakı GPIO.
Bu, Rapsberry Pi -nin GPIO sancaqlarını idarə etməyə imkan verir.
Ən vacib əmrlər bunlardır:
- GPIO.setmode (GPIO. BCM) Sancaqlar konfiqurasiyasını seçin.
- GPIO.output (, GPIO. LOW və ya GPIO. HIGH) Bir pin üçün LOW və ya HIGH yazın.
- GPIO.setup (,) Bir PIN -i giriş və ya çıxış, ya da açılan və ya açılan kimi təyin edin
Sonrakı işimiz var.
İstifadə etdiyimiz tək əmrlər bunlardır:
- Mövzu (hədəf =)
- .başlamaq()
Mövzulardan istifadə edərək eyni anda birdən çox kod nümunəsi işlədə bilərik. Bu şəkildə məsafəni ölçə bilərik və eyni zamanda gələn yuva io mesajlarını dinləyə bilərik.
Thread (target =) ilk əmri, 'start ()' istifadə etməyə başladıqdan sonra, sinifin yaradılmasında verilən 'target' açar sözündəki funksiyanı işlədəcək bir Thread sinfi yaradacaq.
Daha sonra olduqca düz olan rəng sensoru kitabxanasına sahibik. Bu kitabxananı izah etməyəcəyəm, çünki metodlar çox aydındır və kodda izah edilmişdir.
Son olaraq netifaces var. Bu, Simsiz və Simli əlaqə üçün istifadə etdiyimiz IP ünvanını əldə etməyimizi təmin edir.
Son olaraq məsafə sensoru, LED və LCD üçün bir neçə dərs hazırladım.
Bunun necə işlədiyini izah etməyəcəyəm.
Addım 9: Adım 9: Dava Yarat
Bu layihə üçün taxta bir qutu hazırladım.
Ağac yüngül, incədir və çox xərc tələb etmir.
İstifadə etdiyim ölçülər kimi:
- Hündürlük: 5 sm
- Genişlik: 10.5 sm
- Uzunluq: 12.5 sm
Sensorlar üçün 2 deşik əlavə etməli və onları bir -birinin yanında yerləşdirməlisiniz.
Çantanı yaratdıqdan sonra sensorlar, LED və LCD quraşdırın.
Addım 10: Son addımlar
Əsasən hər şey edilir.
İndi yalnız kodumuzun güc mənbəyimizi bağladığımız anda başladığından əmin olmalıyıq.
Bunu etmək üçün bir çox üsul var.
> Nümunələr
Birinci üsuldan istifadə edəcəyik:
Bu sətri icra edin: 'sudo nano /etc/rc.local'
Kodu çalıştırmak üçün əmrinizi əlavə edin: 'sudo python3'
Ctrl-X istifadə edərək faylı qeyd edin.
Redaktə etməkdə probleminiz varsa. Bu addımı təkrarlayın, amma əvvəlcə 'sudo -i' icra edin.
Tövsiyə:
Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım
Arduino Avtomobil Ters Park Diqqət Sistemi | Addım-addım: Bu layihədə, Arduino UNO və HC-SR04 Ultrasonik Sensoru istifadə edərək sadə bir Arduino Car Reverse Park Sensor Dövrü dizayn edəcəyəm. Bu Arduino əsaslı Avtomobil Ters siqnal sistemi Avtonom Naviqasiya, Robot Aralığı və digər diapazonlarda istifadə edilə bilər
Addım -addım PC qurulması: 9 addım
Addım -addım PC Bina: Təchizat: Təchizat: MotherboardCPU & CPU soyuducu PSU (Enerji təchizatı vahidi) Yaddaş (HDD/SSD) RAMGPU (tələb olunmur) Kassa Alətləri: Tornavida ESD bilərzik/mattermal pasta/aplikator
Üç Hoparlör Devresi -- Addım-addım təlimat: 3 addım
Üç Hoparlör Devresi || Addım-addım Təlimat: Dinamik Dövrə, ətraf mühitdən alınan səs siqnallarını MIC-ə gücləndirir və gücləndirilmiş səsin çıxarıldığı yerdən Dinamikə göndərir.Burada bu Hoparlör Devrini düzəltməyin üç fərqli yolunu göstərəcəyəm:
Robot texnikasında bir dəst ilə addım-addım təhsil: 6 addım
Bir dəst ilə Robototexnikada Addım-addım Təhsil: Öz robotumu düzəltdikdən bir neçə ay sonra (zəhmət olmasa bunların hamısına baxın) və iki dəfə hissələri arızalandıqdan sonra bir addım geri çəkilmək və öz fikrimi yenidən düşünmək qərarına gəldim. strategiya və istiqamət. Bir neçə aylıq təcrübə bəzən çox mükafatlandırıcı idi və
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)