Mündəricat:
- Təchizat
- Addım 1: Dövrün montajı
- Addım 2: RaspberryPi qurmaq
- Addım 3: Arxa planın qurulması
- Addım 4: Ön ucun qurulması
- Addım 5: Layihəmiz üçün Verilənlər Bazasını İdxal edin
- Addım 6: Layihəmizə Başlayın
- Addım 7: Dava
- Addım 8: Son Məhsula heyran olun
- Addım 9: Problemlər
Video: Kontaktsiz Su Çeşməsi: 9 Addım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
MCT tələbəsi olaraq ilk ilimin sonunda, il ərzində kurslardan topladığım bütün bacarıqları özündə birləşdirən bir layihə hazırlamağı tapşırdım.
Müəllimlərim tərəfindən qoyulan bütün tələbləri yoxlayacaq və eyni zamanda mənim üçün əyləncəli olacaq bir layihə axtarırdım. Bir mövzu axtararkən Covid-19dan ilhamlandığımı hiss edə bilmədim (Bu, dünya miqyasında yayılmağa başlamazdan əvvəl idi.) Bir yol təklif edəcəyi kimi daha az su çeşməsi/paylayıcı ilə əlaqə qurmağı seçdim. Su çıxmazdan əvvəl bəzi düymələrə toxunmadan su içmək.
Bu layihə, su çıxışı altına bir fincan və ya stəkan qoyulduğunu təyin etmək üçün bir məsafə sensoru istifadə edir, sonra çeşmə 60 saniyə (100ml / dəq) suyun çıxışına davam edəcək. Bu, daha ardıcıl etməkdir, çünki şüşənin çəkilib -çəkilmədiyini müəyyən etmək çox çətin/yavaş olduğunu sübut etdi, buna görə də bir taymer qoyuldu. Şüşəniz 100 ml su ilə doldurulduqdan sonra 5 saniyə gözləyə bilərsiniz və əgər şüşə hələ də məsafə sensoru qarşısındadırsa başqa vaxt doldurmağa davam edəcək (bu da iki fərqli doldurma arasında 5 saniyəlik bir fasilə olduğunu bildirir) maddələr).
Təchizat
Komponentlər
- 1x RaspberryPi (4-cü versiyanı istifadə etdim, amma köhnə versiyalar da işləyə bilər)- 1x S8050 tranzistoru və ya 1x PN2222 tranzistoru da işləyə bilər- 1x Fotoresistor- 1x HC-SR04 (Ultrasonik Məsafə Sensoru)- 1x RFID-RC522- 3x Fərqli rəng LEDləri (mavi, sarı, qırmızı)- 1x LCD1602- 1x Aktiv Buzzer- 1x PCF8574- 1x MCP3008- 1x Su Pompası (12v peristaltik nasos istifadə olunmuşdur, bu elementə keçid)
- 1x DC Enerji təchizatı (12v, 600mAh)- 3 nöqtəli 1x güc kərpic- 3x çörək taxtası (ehtimal ki, daha az istifadə edə bilərsiniz)- RaspberryPi GPIO sancaqları üçün T-ayaqlayıcı- T-ayaqqabı kabeli (pi ilə ayaqqabı arasında əlaqə üçün)
İstifadə olunan alətlər və materiallar
- Aşağıdakı matkap ucları olan bir matkap:
- 4 mm (vintlər üçün əvvəlcədən delik açmaq üçün) - 15 mm (məsafə sensoru üçün delik açmaq üçün)
- İstənilən tornavida- 45 mm uzunluğunda 30 vida- 20 mm-lik 6 vida- Qapı üçün 2 menteşə- Təxminən 130 sm-dən 80 sm-ə qədər MDF lövhəsi- Bir neçə fayl
Addım 1: Dövrün montajı
Dövrə üçün 2 sensor, bir məsafə sensoru və bir fotorezistor var. Məsafə sensoru, su fəvvarəsi aralığına bir fincan qoyulub -salınmadığını təyin etmək üçün istifadə olunur və isteğe bağlı olaraq bir fotorezistor əlavə etdim, bu korpusun açılmaması lazım olan hər kəs tərəfindən açıldığını aşkar etmək üçün istifadə olunur. Bunun üzərinə RFID oxuyucumuz var, bu, su anbarını doldurmaq üçün və ya başqa bir mexaniki problem üçün işi açması lazım olan bir mexaniki təsdiqləmək üçün istifadə edilə bilər.
LCD1602, aktiv buzzer və peristaltik nasosumuz olan aktiv elementlər üçün, vəziyyət açıq olduqda və ya nasos işləyərkən cihazın IP ünvanı göstəriləcəyi kimi vəziyyətin göstərilməsi üçün istifadə olunur. kimsə icazə vermədən iş açıldığında həyəcan verici bir səs çıxarmaq üçün istifadə olunur.
Aşağıdakı dövrənin çörək taxtasını və sxematik görünüşlərini əlavə etdim.
Addım 2: RaspberryPi qurmaq
RaspberryPi qurmaq üçün, Raspberry saytından görüntü proqramını yükləyəcəyik, bununla istədiyiniz Raspbian versiyasını yükləyə və SDCARD -ı sizin üçün görə bilərsiniz. Bu alət işini bitirdikdən sonra Windows Explorer -də SDCARD -ı aça bilərsiniz, RaspberryPi -nin yükləmə hissəsini görə biləcəksiniz. Burada cmdline.txt adlı bir fayl tapacağıq (bu faylı notepadda açmayın, Notepad ++ və ya başqa bir IDE -də açın). Ethernet üzərindən cihazımıza qoşula biləcəyimizdən əmin olmaq üçün bu faylın sonuna ip = 169.254.10.1 əlavə edəcəyik (faylınızın sonunda heç bir ENTER əlavə etməyinizə əmin olun, yoxsa probleminiz olacaq).
İndi SDCARD -ı RaspberryPi -yə yerləşdirə və yükləyə, Pi -ni kompüterinizə qoşa və SSH üzərindən Pi -yə qoşulmaq üçün Putty istifadə edə bilərsiniz. Putty istifadə etmək əvəzinə Pi -yə qoşulmaq üçün aşağıdakı əmri istifadə edirəm. "ssh [email protected]" bu zaman aşımına səbəb ola bilər, buna görə səbirli olun və Pi -nin açılmasını gözləyin. Şifrə istədikdən sonra "moruq" un standart parolunu dolduracağıq. Daxil olduqdan sonra pis niyyəti olan hər kəsin Raspberry Pi -yə daxil olmasını qarşısını almaq üçün bu şifrəni dəyişdirdiyinizə əmin olun.
İndi Pi-ni kodumuz üçün lazımi funksiyanı təmin etmək üçün konfiqurasiya edəcəyik. Konfiqurasiya menyusunu açmaq üçün "sudo raspi-config" istifadə edin və burada İnterfeys Seçimlərinə keçəcəyik.
Burada aşağıdakı variantları AÇIQ edəcəyik:- SPI- I2C
Pi -də simsiz internet bağlantısı qurmaq üçün bu təlimatı izləyin, bunu uğurla etdikdən sonra tələb olunan paketlərimizi quraşdıra bilərik.
Paketlər: (əmrləri burada qeyd edildiyi kimi sırayla işlədin)
Pi- sudo apt update && apt upgrade -y üçün ən son yenilikləri əldə etmək üçün aşağıdakılar
MySQL serverimizi və veb serverimizi quraşdırın- sudo apt install mariadb-server apache2
Verilənlər bazasını bu təlimatda daha sonra qurmaq üçün MySQL Workbench -dən istifadə edəcəyəm, əgər bunu istifadə etməsəniz və phpmyadmin -ə üstünlük versəniz, bunu aşağıdakı əmrlə quraşdıra bilərsiniz, başqa bir MySQL Müştəri istifadə edə bilərsiniz. verilənlər bazasını düzgün idxal edə bilirik.- sudo apt install phpmyadmin
Yuxarıda göstərilənlərin hamısını etdikdən sonra verilənlər bazamız üçün bir istifadəçi yaratmalıyıq. MySQL serverinizə daxil olmaq üçün "sudo mysql -u root" istifadə edin, burada müvafiq parol ilə db_admin adlı bir istifadəçi yaradacağıq. bu parol daha sonra təlimatlarda bir yerdə qeyd edildi. BÜTÜN İSTİFADƏLƏRİ ONLAYIN *. * QRANT SEÇİMİ İLE "dB_admin"@"%" İSTİFADƏ EDİLDİ"
MySQL terminalından çıxmaq üçün "\ q" əmrindən istifadə edin.
Python Paketleri: Davam etməzdən əvvəl hələ də bəzi python paketləri qurmalıyıq, qüsursuz bir təcrübə üçün hər şeyin olduğundan əmin olmaq üçün aşağıdakı əmri işlədin.
sudo pip3 Flask Flask-Cors Flask-SocketIO gevent gevent-websocket greenlet spi SPI-Pyspidev quraşdırın
Aşağıdakı MySQL -də python paketlərini birləşdirin və python3 -mysql.connector -y quraşdırın
Hər şey qaydasındadırsa, indi veb brauzerinizdə aşağıdakı ünvana sahib Pi -ni ziyarət edə bilərsiniz
Addım 3: Arxa planın qurulması
Burada arxa tərəfi özünüz necə qura biləcəyinizi izah edəcəyəm, əvvəlcə rar faylını aşağıdan yükləyin, müvəqqəti bir qovluğa çıxarın. Aşağıdakı etimadnamələri olan FileZilla və ya WinSCP ilə RaspberryPi -yə qoşulun:
IP: 169.254.10.1 İstifadəçi: piPassword: moruq (şifrənizi dəyişdirmisinizsə burada da edin)
Ardından açmadığınız faylları pi istifadəçisinin ev qovluğunda istədiyiniz hər hansı bir qovluğa köçürməyə davam edə bilərsiniz. Sadəlik naminə bu quruluşda bütün sənədlərimizi sənəd qovluğuna yüklədiyimizi güman edəcəyik.
Növbəti addım üçün FTP proqramınızı açıq saxlayın!
İndi SSH bağlantınızla yenidən əmr istəyinizi açın, çünki veb -serverdə bəzi dəyişikliklər etməliyik, belə ki ön uç arxa tərəflə əlaqə saxlaya bilər. Varsayılan Apache2 konfiqurasiya faylını açıb bir qədər dəyişdirəcəyik: sudo nano /etc/apache2/sites-available/000-default.conf
Yeni açdığımız konfiqurasiya faylına DocumentRoot -un altına aşağıdakı sətirləri əlavə edin: ProxyPass/api/https://127.0.0.1:5000/api/ProxyPassReverse/api/https://127.0.0.1:5000/api/
Bir nümunə üçün əlavə edilmiş şəklə baxa bilərsiniz.
Addım 4: Ön ucun qurulması
Fayllarımızı köçürməzdən əvvəl ön uç fayllarımızı köçürməyə başlamazdan əvvəl bir şey etməliyik. Daha əvvəl qurduğunuz SSH bağlantısı ilə əmr satırınızı açın və RaspberryPi -nin kök istifadəçisinə keçmək üçün aşağıdakı əmrdən istifadə edin: "sudo su -"
Bundan sonra, kök istifadəçimizin parolunu aşağıdakı komanda ilə dəyişə bilərik: "passwd" Bu, yeni bir parol daxil etməyinizi xahiş edəcək, bunu etdikdən sonra yenidən FTP proqramınıza keçə və kök məlumatlarınızla daxil ola bilərsiniz:
IP: 169.254.10.1 İstifadəçi: rootPassword:
Rar faylını aşağıdan yükləyin və müvəqqəti bir qovluqda açın, bu faylları RaspberryPi -yə aşağıdakı qovluğa/var/www/html/köçürə bilərsiniz, bunu bitirdikdən sonra http:/ /169.254.10.1, hələ əlaqə qura bilməzsiniz, çünki arxa tərəf hələ işləmir, bunu daha sonra bu təlimatda sizə göstərəcəyəm.
Addım 5: Layihəmiz üçün Verilənlər Bazasını İdxal edin
Sevdiyiniz MySQL server idarəetmə proqramını açın və 2 -ci addımda yaratdığımız məlumatlarla Raspberry Pi -yə qoşulun.
Verilənlər bazası zibilini aşağıdan yükləyin və normalda olduğu kimi idxal edin, MySQL iş tezgahına Fayl> Aç SQL Skriptinə gedin və yüklədiyiniz verilənlər bazası boşluğunu seçin. Sonra CTRL + SHIFT + ENTER düymələrini basın və SQL skripti və quruluşu işləməlidir. üçün verilənlər bazası yaradılmalıdır.
Aşağıdakı nümunə olaraq RaspberryPi üçün istifadə etdiyim etimadnamələri və Veritabanı quruluşunun bir neçə şəklini əlavə etdim, buna baxa və hər şeyin necə işlədiyinə dair ümumi bir fikir əldə edə bilərsiniz.
Addım 6: Layihəmizə Başlayın
Layihəmizə başlamazdan əvvəl config.py faylındakı verilənlər bazası məlumatlarını dəyişdirməliyik, əgər bu təlimatın dediyi kimi təlimatlara əməl etsəniz, bunları /home/pi/Documents/Backend/src/config.py altında tapa bilərsiniz. burada db_config dəyişəninin etimadnaməsini verilənlər bazamız üçün əvvəllər yaratdığımıza uyğun olaraq dəyişdirməlisiniz. Aşağıda bu faylda görəcəyiniz bir nümunə əlavə etdim.
Bundan sonra bir.service faylı əlavə edəcəyik, bu fayl RaspberryPi başladıqda layihəmizin başladığından əmin olacaq, arxa plan fayllarını yüklədiyiniz yerə uyğun olaraq qovluğu dəyişdirdiyinizə əmin olun. Xidmət faylını yaratmaq üçün aşağıdakı əmrdən istifadə edin: sudo nano /etc/systemd/system/dispenser.serviceBu bir xidmət faylı yaradacaq və aşağıdakı kodu bu fayla yapışdıracaq.
[Bölmə] Təsvir = Su DispenserAfter = mysql.service
[Xidmət] Növ = simpleRestart = alwaysRestartSec = 1User = piExecStart =/usr/bin/python3 /home/pi/Documents/Backend/index.py
[Quraşdır] WantedBy = multi-user.target
/Home/pi/Documents/Backend/index.py deyildiyi sətri arxa plan fayllarınızı quraşdırdığınız yerə dəyişdirin, əgər bunu düzgün etməsəniz, layihə düzgün başlamaz! Aşağıda bir nümunə faylı əlavə edəcəyəm.
Bunu etdiyinizdən və mətn redaktorundan çıxdıqdan sonra xidməti aşağıdakı əmrlərlə aktivləşdirə bilərik:- sudo systemctl daemon-reload- sudo systemctl dispenseri işə salın- sudo systemctl start dispenser
Əlavə olaraq işləyə bilərik: sudo systemctl status dispenserBu, xidmətimiz ətrafında bəzi məlumatları göstərəcək, aktivdir və ya olmursa…
Addım 7: Dava
Təbrik edirəm, az qala oradayıq, layihəm üçün istifadə etdiyim ölçüləri dəqiq göstərəcək bəzi şəkillər əlavə edəcəyəm, qalınlığı 18 mm olan MDF lövhələrdən istifadə etdim, istəsəniz fərqli bir qalınlıqdan istifadə edə bilərsiniz. Qutum sizin dizaynınız üçün bir təlimat olaraq istifadə edilə bilər və ya hazırladıqlarımı yenidən yarada bilərsiniz. (Fərqli bir MDF qalınlığından istifadə edirsinizsə, mənim rəsmlərim artıq dizaynımı hazırlamağa imkan verməyəcək, onu uyğunlaşdırdığınızdan əmin olun!) Hazırladığım panellər:- 32 sm-dən 42 sm-ə qədər 2 panel (yan panellər)- 24 sm-lik 1 panel 32 sm (alt plitə)- 16 sm-dən 24 sm-ə qədər 2 panel (LCD-nin qaldığı ön lövhə və qonşu plaka)- 28 sm-dən 24 sm-ə qədər 1 panel (ön plandan görünür)- 30 sm-dən 24 sm-ə qədər 1 panel (üst lövhə)
Addım 8: Son Məhsula heyran olun
Siz sona çatdınız və indiyə qədər hər şeyi reallığa çevirməyi bacardınız. Yalnız yoldan keçən birisinizsə, xoş gəldiniz, son addıma qədər oxuduğunuz üçün təşəkkür edirəm!
Bu layihəyə çoxlu qan, tər və göz yaşı sərf etdim, buna görə də şərh yazsanız, bunu qiymətləndirərəm, təkmilləşdirilməsi ilə bağlı hər hansı bir tənqid xoş qarşılanır!
Addım 9: Problemlər
Layihəni daha çox təkmilləşdirmələri görə bilən işləyən bir prototip olaraq indiki vəziyyətinə gətirərdim.
Arxa planın kod bazası, bir fəvvarənin əsas cəbhə rolunu oynayacağı və digər bütün çeşmələrin məlumatları və dəyişiklikləri ustanın REST api üzərində itələyəcəyi bir şəkildə, əsas qul münasibətləri mükəmməl şəkildə qurulacaq şəkildə qurulmuşdur. Kodda tətbiq olunmaq üçün nəzərdə tutulduğu, lakin zaman məhdudiyyətləri səbəbindən sonradan kəsildiyi üçün bir API token sisteminin qalıqları da var.
Kodumu Gitlab serverimə yüklədim və orada bütövlükdə koda baxa bilərsiniz:
Tövsiyə:
Kontaktsiz IR termometr: 8 addım (şəkillərlə)
Kontaktsiz IR Termometr: Yerli Səhiyyə İdarəm mənimlə əlaqə saxladı, çünki 2020 Covid-19 böhranı zamanı işçilərinin sağlamlığının bədən istiliyini gündəlik olaraq izləmək üçün bir yola ehtiyac duydular. Normal olaraq, rəfdə IR termometrləri qıt olmağa başladı
Smartfonu Kontaktsiz Termometr / Portativ Termometr Olaraq İstifadə Edin: 8 Addım (Şəkillərlə)
Smartfonu Kontaktsiz Termometr / Portativ Termometr Olaraq İstifadə Edin: Termo tabancası kimi təmassız / təmassız bədən istiliyinin ölçülməsi. Thermo Gun indi çox bahalı olduğu üçün bu layihəni yaratdım, buna görə DIY etmək üçün alternativ almalıyam. Və məqsəd aşağı büdcə versiyası ilə etməkdir.SuppliesMLX90614Ardu
Kontaktsiz Gərginlik Dedektoru: 5 Addım (Şəkillərlə birlikdə)
Əlaqəsiz Gərginlik Dedektoru: Bu Təlimat kitabında canlı elektrik naqillərini yoxlamaq üçün təmassız bir gərginlik detektoru necə qura biləcəyinizi göstərəcəyəm. Alətlər və istifadə olunan materiallar (Ortaq bağlantılar): Transistorlar http://s.click.aliexpress.com /e/bWomecjILEDs http://s.click.aliexpress.com/e
Kontaktsiz Gərginlik Dedektoru: 15 Addım (Şəkillərlə birlikdə)
Kontaktsiz Gərginlik Dedektoru: Öz Dolsuz Güvənlik Dedektörünüzü Bir Dollardan Az Qurmağın 3 Yolu Giriş ------------ Elektrik düzgün işlənmədikdə pis bir təcrübə ilə elektrik cərəyanı ilə nəticələnir; bu səbəbdən işləyərkən təhlükəsizlik birinci yerdə olmalıdır
Soda çeşməsi: 7 addım
Soda Fəvvarəsi: Bu təlimat, Cənubi Florida Universitetində (www.makecourse.com) Məkançılığın layihə tələbinin yerinə yetirilməsi üçün yaradılmışdır. bu hər kəsin üzləşdiyi bir məsələdir. o ilə