Mündəricat:

İstehlakatı izləmək üçün Avtomatik Su Dağıtıcı: 6 addım
İstehlakatı izləmək üçün Avtomatik Su Dağıtıcı: 6 addım

Video: İstehlakatı izləmək üçün Avtomatik Su Dağıtıcı: 6 addım

Video: İstehlakatı izləmək üçün Avtomatik Su Dağıtıcı: 6 addım
Video: Ən yaxşı 15 Casio G Shock Saatları 500 $ Ən yaxşı G-Shock saatları 500 dollardan aşağı... 2024, Iyul
Anonim
İstehlakatı izləmək üçün Avtomatik Su Dağıtıcı
İstehlakatı izləmək üçün Avtomatik Su Dağıtıcı
İstehlakatı izləmək üçün Avtomatik Su Dağıtıcı
İstehlakatı izləmək üçün Avtomatik Su Dağıtıcı

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

Bütün Elektronikaya Bağlanma
Bütün Elektronikaya Bağlanma
Bütün Elektronikaya Bağlanma
Bütün Elektronikaya Bağlanma

İ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:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt upgrade
  3. sudo apt yeniləmə
  4. 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ı

Verilənlər bazasının yaradılması
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ı

Ön ucun qurulması
Ön ucun qurulması
Ön ucun qurulması
Ö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ı

Qutunun yaradılması
Qutunun yaradılması
Qutunun yaradılması
Qutunun yaradılması
Qutunun yaradılması
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ə: