Mündəricat:
- Təchizat
- Addım 1: Bütün Elektronikanı Bağlayın
- Addım 2: Raspberry Pi qurmaq
- Addım 3: Verilənlər bazasının yaradılması
- Addım 4: Arxa planın qurulması
- Addım 5: Ön ucun qurulması
- Addım 6: Qutunun yaradılması
Video: İstehlakatı izləmək üçün Avtomatik Su Dağıtıcı: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Salam!
Bir neçə ay əvvəl otağımda bir məktəb tapşırığı üçün hansı layihə etmək istədiyimi düşünürdüm. Özümə uyğun və gələcəkdə mənə fayda verəcək bir şey etmək istəyirdim. Birdən anam otağa girdi və kifayət qədər su içmədiyindən şikayət etməyə başladı. Dərhal bir epifaniya yaşadım. Gündəlik su istehlakınızı izləyən (kinoteatrda olduğu kimi) avtomatik su tökmə cihazı hazırlamaq fikri mənə gəldi.
Bir Raspberry Pi, bir neçə sensor, bir nasos və az məlumatla bunu mümkün qədər yaxşı etməyə çalışdım.
Bütün addımların sonunda, su qabınızı dolduran və Raspberry Pi ilə əlaqələndirən və işləyən bir su paylayıcınız olacaq. Su istehlakınızı yalnız bir faiz əsasında izləyə bilməyəcəksiniz, həm də su qabınızın temperaturunu və suyun səviyyəsini görmək imkanı əldə edəcəksiniz. Nəhayət, statistikanı yoxlaya biləcəksiniz. Bu sizə maraqlı gəlirsə, mütləq yoxlayın və özünüz sınayın!
GitHub deposu:
Təchizat
Mikro nəzarətçilər
Moruq Pi 4
Sensorlar və modullar
4 sensordan istifadə etdim:
2xHC-SR04 Ultrasonik Sensor
Ultrasonik sensorlar məsafəni ultrasəs dalğaları ilə ölçür. Sensor başı ultrasəs dalğası yayır və hədəfdən əks olunan dalğanı alır. Ultrasonik Sensorlar, emissiya və qəbul arasındakı vaxtı ölçərək hədəfə olan məsafəni ölçür. Yaxınlığında bir şüşə olub olmadığını yoxlamaq və tankdakı suya olan məsafəni ölçmək üçün onlardan ikisini istifadə etdim.
Məlumat cədvəli
1 x DS18B20 Temperatur Sensoru
DS18B20, maksimum inteqrasiya edilmiş 1 telli proqramlaşdırıla bilən bir temperatur sensoru. Kimyəvi məhlullarda, minalarda və ya torpaqda olduğu kimi sərt mühitlərdə temperaturun ölçülməsi üçün geniş istifadə olunur. Su anbarının su istiliyini ölçmək üçün istifadə etdim.
Məlumat cədvəli
1x RC522 RFID Modulu
RC522, NXP yarımkeçiricilərdən MFRC522 nəzarətçisinə əsaslanan 13.56MHz RFID moduldur. Modul I2C, SPI və UART -ı dəstəkləyə bilər və normal olaraq RFID kartı və açar fobla birlikdə verilir. İştirak sistemlərində və digər şəxs/obyekt tanıma tətbiqlərində istifadə olunur. Bu layihədə identifikasiya/giriş sistemi üçün istifadə olunur.
Məlumat cədvəli
Və 2 aktuator:
1x Peristaltik Pompa 12-24V
Tankdakı suyu bir su şüşəsinə almaq üçün peristaltik nasosdan istifadə etdim. Əksər nasoslar çox yavaş idi, buna görə 24V güc adapteri ilə işlədiyim 24V versiyasına keçdim.
1x LCD Ekran
LCD, IP ünvanını və vacib mesajları göstərmək üçün istifadə olunur. Maye kristal displey (LCD), polarizatorlarla birlikdə maye kristalların işıq modulyasiya xüsusiyyətlərindən istifadə edən düz panelli ekran və ya digər elektron modulyasiya edilmiş optik cihazdır.
Məlumat cədvəli
Korpus
Qutudan danışarkən, bir ev deposundan (mənim vəziyyətimdə Belçikadakı Brico) təchizatla bir DIY etdim. Doğru ölçüdə kəsdiyim kontrplakdan istifadə etdim. Növbəti addımımda davamı necə düzəltdiyimdən bəhs edəcəyəm, amma ehtiyacınız olan şeylər bunlardır:
- 3x kontrplak taxtalar
- 1 x Kiçik huni
- 1x Su çəni (nə qədər istədiyinizi seçə bilərsiniz, 10L getdim)
- 1x Damlama tepsisi
Bütün materialları və qiymətləri əlavə olunmuş BOM -da tapa bilərsiniz.
Addım 1: Bütün Elektronikanı Bağlayın
İndi bütün elektronikaya yekun vurduqdan sonra onları birləşdirmə vaxtıdır. Bütün elektronikanın necə və harada bağlanacağını sizə göstərmək üçün bir çörək taxtası və bir sxematik olaraq iki Fritzing dövrəsi hazırladım. Fritzing -in yükləmə bağlantısını burada tapa bilərsiniz: https://fritzing.org/download/. Daha əvvəl qeyd edildiyi kimi, bir Raspberry Pi istifadə etdim və RFID skaneri, iki ultrasəs sensoru, bir temperatur sensoru, LCD və su üçün peristaltik nasos bağladım.
Daha yaxından baxmaq istəyirsinizsə, iki dövrəni bir PDF -də əlavə etdim.
Addım 2: Raspberry Pi qurmaq
Hər şeyi işə salmaq və idarə etmək üçün Raspberry Pi -dən istifadə edəcəyik: arxa, ön və verilənlər bazası.
Raspberry Pi avtomatik olaraq işləmir. İstifadəyə başlamaq üçün bəzi addımlardan keçməliyik.
Addım 1: Raspbian
Yeni bir Raspberry Pi istifadə edirsinizsə, raspbian lazımdır. Yükləmə linki və təlimatı burada tapa bilərsiniz.
Addım 2: Şəkili SD -yə yazın
İndi Raspbian imicinizə sahib olduğunuz üçün, şəkil faylını SD karta yazmaq üçün bir şəkil yazma proqramına (win32diskimager tövsiyə edirəm) ehtiyacınız olacaq. Tam dərsliyi burada tapa bilərsiniz.
Addım 3: Raspberry Pi -yə giriş
"Powershell" açın və "ssh [email protected]" yazın. Hər şey qaydasındadırsa, sizdən bir parol istəyəcəklər (standart parol həmişə moruqdur). Normalda bu sizi Raspberry Pi -yə daxil etməlidir. İndi parametrlərimizdə bəzi dəyişikliklər etməliyik. Terminala sudo raspi-config yazın və enter düyməsini basın. Yerləşdirmə seçimlərinə gedin> Saat dilimini dəyişdirin və saat diliminizə təyin edin. Wi-Fi ölkənizi də öz yerinizə dəyişməlisiniz. Nəhayət, interfeys seçimlərinə keçin və SPI, I2C və 1 telli aktivləşdirin. Sensorlardan düzgün istifadə etmək vacibdir.
Addım 4: İnternet bağlantısının qurulması
WiFi şəbəkəsindən istifadə edəcəyik. Ev şəbəkənizi əlavə edə bilərsiniz:
wpa_passphrase "Şəbəkəniz" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Əlaqə qurmaq üçün Pi -ni yenidən başlatmalısınız. İşlədiyini yoxlamaq üçün ifconfig istifadə edərək bir IP ünvanı olub olmadığını yoxlaya bilərsiniz.
Addım 5: Veb serveri və verilənlər bazasını qurmaq
Birincisi, sistemi aşağıdakı əmrlər ardıcıllığı ilə yeniləmək və təkmilləşdirmək daha yaxşıdır:
- sudo apt dist-upgrade --auto-remove -y
- sudo apt upgrade
- sudo apt yeniləmə
- sudo apt avtomatik silin
Bunu etdikdən sonra veb serverimiz və verilənlər bazası üçün aşağıdakı paketlərə ehtiyacımız olacaq:
Apache
sudo apt install apache2 -y
PHP
sudo apt php quraşdırın
sudo apt quraşdırma phpMyAdmin -y
Şifrə təyin etmək istədikdə etibarlı bir MySQL şifrəsi qurmağı unutmayın.
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt install php -mysql -y
sudo systemctl apache2.service'i yenidən başladın
Addım 6: Python kitabxanalarının quraşdırılması
Arxa plan üçün Python üçün bəzi kitabxanalara ehtiyacımız olacaq. Bunları pip3 istifadə edərək quraşdıracağıq, çünki python3 istifadə edirik.
pip3 mysql-connector-python qurun
pip3 flask-socketio qurun
pip3 flask-cors quraşdırın
pip3 gevent quraşdırın
pip3 gevent-websocket quraşdırın
sudo apt install python3 -mysql.connector -y
pip3 mfrc522 quraşdırın! (RFID skanerindən istifadə etmək üçün buna ehtiyacımız olacaq)
Addım 7: Visual Studio Kodunun Hazırlanması
Kodu işə salmaq üçün Raspberry Pi -ni bağlamaq üçün Visual Studio Kodundan istifadə etməyi məsləhət görürəm. VSC yükləmək üçün yükləmə bağlantısını burada tapa bilərsiniz.
Hələ SSH istifadə edərək Uzaqdan İnkişaf etdirmə quraşdırmadınızsa, bunu etmək üçün addımları burada tapa bilərsiniz.
Addım 3: Verilənlər bazasının yaradılması
Bütün sensor məlumatlarımızı və istifadəçi məlumatlarımızı bir verilənlər bazasında saxlayacağıq.
Verilənlər bazam 5 cədvəldən ibarətdir:
Qurğu
Cədvəl Cihazında cihazın özünə istinad edən bir DeviceID var. Cihaz Adı, cihazın adını verir, bu halda ultrasəs sensoru, temperatur sensoru,… DeviceType cihazın tipini (sensor və ya aktuator) verir.
Tarix
Cədvəl Tarixi, tarixin əlavə edildiyi tarix (HistoryDate) ilə birlikdə bütün sensör tarixçəsini və tarixdəki anın dəyərini ehtiva edir. Həm də iki xarici açar var:
- DeviceID, müəyyən bir girişi bir cihaza bağlamaq üçün
- UserID, müəyyən bir istifadəçini bir qeydlə əlaqələndirmək üçün (bunun səbəbi RFID -dən istifadə etməyimizdir və tarix jurnalını müəyyən bir istifadəçiyə əlavə etmək istəyirik)
İstifadəçi
Cədvəl İstifadəçisi, RFID skaneri ilə İstifadəçi Giriş Sistemi yaratmaq üçün istifadə olunur. Ləqəb, Ad, Soyad, Şifrə və RFID -dən ibarətdir (bu etiketin RFID nömrəsidir). Hər bir istifadəçi bir Konteynerə (su çəninə) bağlıdır və Konteyner ID -ni Xarici Açar kimi daşıyır.
Konteyner
Masa Konteyner bütün fərqli Konteynerlərdən ibarətdir. Şəxsiyyət vəsiqəsi, ContainerLocation var (bu müəssisə, ev və ya başqa bir şey ola bilər). Nəhayət, konteynerin maksimum həcmini ifadə edən bir MaxLevel var.
Ayarlar
Cədvəl Ayarlarında bir Parametrlər ID -si var və hər bir istifadəçinin Gündəlik Golunu + istifadəçinin DailyGoal -ın əlavə olunduğu tarixi izləyir. Bu, Xarici Açar UserID -ni izah edir.
Veritabanının bir zibilini GitHub verilənlər bazamda Verilənlər Bazası altında tapa bilərsiniz.
Addım 4: Arxa planın qurulması
İşləyən arxa planı olmayan bir layihə yoxdur.
Arxa plan 4 fərqli şeydən ibarətdir:
köməkçilər
Köməkçilər, fərqli sensorlar və aktuatorlar üçün istifadə olunan bütün siniflərdir. Temperatur sensoru (DS18B20), ultrasəs sensorlar (HCSR05) üçün məsafəni ölçə bilməsi və LCD -nin ekrana mesaj yaza bilməsi üçün bir köməkçi var.
depolar
Depolar qovluğunda 2 Python faylı tapa bilərsiniz:
- Veritabanınızdan satır çıxarmaq üçün köməkçi olan Database.py. Verilənlər bazasını oxumağı və icra etməyi asanlaşdırır.
- Əsas kodda (app.py) istifadə olunan bütün SQL sorğularını ehtiva edən DataRepository.py. Verilənlər bazasından məlumat əldə etmək, yeniləmək və ya silmək üçün istifadə olunur.
app.py
Bu, layihənin əsas arxa kodudur. Bütün sancaqlar və rejimləri təyin edərək quruluşu yerinə yetirir və nasosun işləməsi, temperaturun alınması, istifadəçinin əldə edilməsi və s. Məlumat bazasından və bütün socketio.on -dan məlumat almaq üçün istifadə olunan marşrutları da ehtiva edir. Hər HTML səhifəsi üçün hər bir funksiyanın doğru zamanda işlədiyinə əmin olmaq üçün fərqli bir socketio.on var.
config.py
Bir fayl qaldı: config.py. Bu, Veritabanınıza qoşulmaq üçün konfiqurasiya variantları olan bir sənəddir. Database etimadnamənizi təyin etməyi unutmayın.
Arxa tərəfi arxa plandakı arxivimdə tapa bilərsiniz.
Addım 5: Ön ucun qurulması
Frontend üçün, veb serverimin AdobeXD -də necə görünməli olduğunu tərtib etməklə başladım. Logomda narıncı və 2 fərqli mavi çalar olan rənglərdən istifadə etdim. Dizaynı mümkün qədər sadə saxlamağa çalışdım və günün hədəfinə nə dərəcədə çatdığınızı göstərən bir su damlası yaratdım.
GitHub depomda, Frontendimi Kod> Frontend altında tapa bilərsiniz. Veb serverdən əldə etmək üçün bunu Raspberry Pi /var /html qovluğuna yapışdırmağınız vacibdir.
Fərqli səhifələrə aparan bir neçə HTML sənədindən ibarətdir. Layihəmə bənzətmək üçün lazım olacaq bütün CSS -lərlə birlikdə screen.css -ni tapacaqsınız. Nəhayət, skriptlərin altında fərqli JavaScript sənədləriniz olacaq. Bu skriptlər, məlumat bazamdan və ya arxa ucumdan məlumatları göstərmək üçün arxa ucumla əlaqə qurur.
Arxa tərəfi Frontend altındakı depomda tapa bilərsiniz.
Addım 6: Qutunun yaradılması
Mənim vəziyyətimdən danışırıqsa, iki əsas hissə var:
Qutunun xaricində
Davanı sıfırdan qurdum. Kontrplak taxtalardan istifadə etdim və düzgün ölçüdə mişarladım. Bütün taxtaları vidaladım və LCD -də, düymədə, ultrasəs sensöründə su şüşəsinin olub olmadığını və suyun paylanması üçün huni olub olmadığını öyrənmək üçün deliklər qazdım. Suyu və elektronikanı ayrı saxlamaq üçün işimi fərqli bölmələrə ayırdım və kabelləri su sızmasından qorumaq üçün bir kabel kanalı istifadə etdim. Əlavə edilmiş videoda, korpusumun əksər cəhətlərini və necə düzəltdiyimi görə bilərsiniz. Mən də normal düyməyə yapışdırılmış bir düyməni 3D çap etdim. Nəhayət, tökülən suyu toplamaq üçün bir damcı tepsisi istifadə etdim. Elektronikama baxmaq üçün yan paneli açıb bağlaya bilmək üçün də menteşələrdən istifadə etdim. Həmişə ikinci əl dispenserdən istifadə edə bilərsiniz və ya digər materiallardan da istifadə edə bilərsiniz.
Qurduğum şeyin dəqiq ölçüləri üçün, qutuda istifadə olunan bütün ölçüləri olan bir PDF əlavə etdim.
Su çəni
Su anbarı asan iş deyildi. Dibində çuxur olan bir su qabı aldım, sızmağı dayandırmaq üçün lentlə bağlamalı oldum. Dörd çuxura ehtiyacınız olacaq: biri temperatur sensoru üçün, digəri pompanızın borusu üçün. biri tankı doldurmaq üçün borular üçün, biri də ultrasəs sensoru üçün. Bu sonuncusu üçün, 3D üçün bir qutu çap etdim, burada tapa bilərsiniz. Bu sensora sudan daha çox qorunma verir. Sonra sensoru işə salmaq üçün tankın üstündə bir düzbucaq qazdım.
Tövsiyə:
Avtomatik Əl Dezinfeksiyaedici Dağıtıcı: 3 addım
Avtomatik Əl Dezinfeksiyaedici Dağıtıcı: Bu avtomatik əl dezinfeksiyaedici dispenser, yığılması asan olan nisbətən aşağı qiymətli bir variant olaraq dizayn edilmişdir. Lazımi əşyaların çoxunu yerli hardware və elektronika satıcılarından almaq olar. 3D çap etmək imkanı var
Arduino ilə Avtomatik Alkoqol Dağıtıcı: 6 addım
Arduino ilə Avtomatik Alkoqol Dağıtıcı: Bu arduino layihəsi, Avtomatik spirt paylayıcısının necə hazırlanacağını sizə göstərəcək. İstifadəçinin alkoqol əldə etmək üçün heç bir şeyə toxunmasına ehtiyac yoxdur, sadəcə ultrasəs sensoruna yaxınlaşın, spirt sıxışdırılacaq, sonra istifadəçiyə məlumat verməsi üçün bir audio fayl səsləndiriləcək
Avtomatik İt Dağıtıcı: 10 addım
Avtomatik Köpək Dispenseri: Layihəmlə əminəm ki, itinizi evdə tək qoyanda heç vaxt yeməksiz qalmaz. Avtomatik qidalandırıcı " hacked " qarğıdalı qabığı dispenserindən. Dağıtıcı, it yemi üçün su anbarıdır, altdakı təkər
Uzaqdan Suvarma Sistemini İşlətmək və İzləmək üçün Mikrokontrolörlərin İstifadəsi: 4 Addım
Uzaqdan Suvarma Sistemini İşlətmək və İzləmək üçün Mikrokontrolörlərdən istifadə: aşağı qiymətli avtomatik suvarma sistemi üçün fermerlər və istixana operatorları. Bu layihədə, insan müdaxiləsi olmadan torpaq həddindən artıq quruduqda bitkiləri avtomatik olaraq sulamaq üçün elektron bir torpaq nəm sensörünü mikrokontrolörlə birləşdiririk
Esp8266: 5 addımlarından istifadə edərək cihazları idarə etmək və havanı izləmək üçün bir IoT cihazı necə etmək olar
Esp8266 istifadə edərək cihazları idarə etmək və havanı izləmək üçün bir IoT Cihazı Necə Hazırlanır: Əşyaların İnterneti (IoT) fiziki cihazların ("əlaqəli qurğular" və "ağıllı qurğular" olaraq da adlandırılır), binaların, və elektronika, proqram təminatı, sensorlar, aktuatorlar və