Përmbajtje:

Dispenser automatik i ujit për të ndjekur konsumin: 6 hapa
Dispenser automatik i ujit për të ndjekur konsumin: 6 hapa

Video: Dispenser automatik i ujit për të ndjekur konsumin: 6 hapa

Video: Dispenser automatik i ujit për të ndjekur konsumin: 6 hapa
Video: Дешевое отопление из чайника 2024, Korrik
Anonim
Dispenser automatik i ujit për të gjurmuar konsumin
Dispenser automatik i ujit për të gjurmuar konsumin
Dispenser automatik i ujit për të gjurmuar konsumin
Dispenser automatik i ujit për të gjurmuar konsumin

Pershendetje atje!

Nja dy muaj më parë, unë isha në dhomën time duke menduar se çfarë lloj projekti do të bëja për një detyrë shkollore. Doja të bëja diçka që më përshtatej dhe që do të më sillte dobi në të ardhmen. Papritur, mamaja ime hyri në dhomë dhe filloi të ankohej se nuk pinte ujë të mjaftueshëm. Menjëherë pata një epifani. Ideja më erdhi për të bërë një shpërndarës automatik të ujit (si në kinema) që monitoron konsumin tuaj të ujit në baza ditore.

Me një Raspberry Pi, disa sensorë, një pompë dhe pak njohuri, u përpoqa ta bëja këtë sa më mirë që të ishte e mundur.

Në fund të të gjitha hapave, do të keni një shpërndarës uji që mbush shishen tuaj me ujë dhe që lidhet dhe ndërvepron me Raspberry Pi tuaj. Jo vetëm që do të jeni në gjendje të gjurmoni konsumin tuaj të ujit në bazë të një përqindjeje, por gjithashtu do të keni mundësinë të shikoni temperaturën dhe nivelin e ujit në enën tuaj të ujit. Së fundi, do të jeni në gjendje të kontrolloni statistikat tuaja. Nëse kjo ju duket interesante, sigurohuni që ta shikoni dhe ta provoni vetë!

Depoja e GitHub:

Furnizimet

Mikrokontrolluesit

Mjedër Pi 4

Sensorë dhe module

Kam përdorur 4 sensorë:

2xHC-SR04Sensor tejzanor

Sensorët tejzanor matin distancën duke përdorur valë tejzanor. Koka e sensorit lëshon një valë tejzanor dhe merr valën e reflektuar prapa nga objektivi. Sensorët tejzanor matin distancën në objektiv duke matur kohën midis emetimit dhe marrjes. Kam përdorur dy prej tyre për të kontrolluar nëse ka një shishe aty pranë dhe për të matur distancën me ujin në rezervuar.

Fleta e të dhënave

1x Sensor Temperature DS18B20

DS18B20 është një sensor i temperaturës i programueshëm me 1 tela, i integruar nga maksima. Përdoret gjerësisht për të matur temperaturën në mjedise të vështira si në tretësira kimike, miniera ose tokë etj. E kam përdorur për të matur temperaturën e ujit të rezervuarit të ujit.

Fleta e të dhënave

1x modul RC522 RFID

RC522 është një modul RFID 13.56MHz që bazohet në kontrolluesin MFRC522 nga gjysmëpërçuesit NXP. Moduli mund të mbështesë I2C, SPI dhe UART dhe normalisht dërgohet me një kartë RFID dhe fob kyç. Zakonisht përdoret në sistemet e frekuentimit dhe aplikacionet e tjera të identifikimit të personave/objekteve. Në këtë projekt, përdoret për një sistem identifikimi/identifikimi.

Fleta e të dhënave

Dhe 2 aktivizues:

1x Pompë Peristaltike 12-24V

Kam përdorur një pompë peristaltike për të marrë ujin nga rezervuari në një shishe uji. Shumica e pompave ishin shumë të ngadalta, kështu që unë shkova për një version 24V që e furnizoj me një përshtatës të energjisë 24V.

1x ekran LCD

LCD -ja përdoret për të shfaqur adresën IP dhe mesazhet e rëndësishme. Një ekran me kristale të lëngëta (LCD) është një ekran me panel të sheshtë ose pajisje të tjera optike të moduluara në mënyrë elektronike që përdor vetitë e modulimit të dritës të kristaleve të lëngëta të kombinuara me polarizuesit.

Fleta e të dhënave

Zorrë

Duke folur për zorrën, bëra një DIY me furnizime nga një depo në shtëpi (në rastin tim Brico në Belgjikë). Kam përdorur kompensatë që e kam prerë në madhësinë e duhur. Unë do të flas për mënyrën sesi e bëra rastin tim në një hap të mëtejshëm, por këtu janë gjërat që do t'ju nevojiten:

  • 3x Dërrasa kompensatë
  • 1x Gyp i vogël
  • 1x Rezervuar uji (ju mund të zgjidhni atë sasi që dëshironi, unë shkova për 10L)
  • 1x tabaka pikuese

Të gjitha materialet dhe çmimet mund t'i gjeni në BOM -in e bashkangjitur.

Hapi 1: Lidhja e të gjithë pajisjeve elektronike

Lidhja e të gjithë pajisjeve elektronike
Lidhja e të gjithë pajisjeve elektronike
Lidhja e të gjithë pajisjeve elektronike
Lidhja e të gjithë pajisjeve elektronike

Tani që kemi përmbledhur të gjithë pajisjet elektronike, është koha t'i lidhim ato. Kam bërë dy qarqe Fritzing, një dërrasë buke dhe një skematike, për t'ju treguar se si dhe ku duhet të lidhen të gjitha pajisjet elektronike. Ju mund të gjeni lidhjen e shkarkimit të Fritzing këtu: https://fritzing.org/download/. Siç u përmend më parë, unë përdor një Raspberry Pi dhe lidha një skaner RFID, dy sensorë tejzanor, një sensor të temperaturës, një LCD dhe një pompë peristaltike për ujin.

Unë i bashkangjita dy qarqet në një PDF, nëse doni ta hidhni një vështrim më të afërt në të.

Hapi 2: Vendosja e Raspberry Pi

Ne do të përdorim Raspberry Pi tonë për të drejtuar dhe kontrolluar gjithçka: backend, frontend dhe database.

Një Raspberry Pi nuk funksionon automatikisht. Do të na duhet të kalojmë disa hapa për të filluar përdorimin e tij.

Hapi 1: Raspbian

Nëse jeni duke përdorur një Raspberry Pi krejt të re, do t'ju duhet raspbian. Lidhja e shkarkimit dhe tutoriali mund të gjenden këtu.

Hapi 2: Shkrimi i imazhit në SD

Tani që keni imazhin tuaj Raspbian, do t'ju duhet një program për shkrimin e imazhit (unë rekomandoj win32diskimager) për të shkruar skedarin e imazhit në kartën SD. Udhëzimin e plotë mund ta gjeni këtu.

Hapi 3: Hyni në Raspberry Pi

Hapni "Powershell" dhe shkruani "ssh [email protected]". Nëse gjithçka shkon mirë, ata do t'ju kërkojnë një fjalëkalim (fjalëkalimi i paracaktuar është gjithmonë mjedër). Normalisht, kjo duhet t'ju regjistrojë në Raspberry Pi. Tani do të na duhet të bëjmë disa ndryshime në cilësimet tona. Shkruani sudo raspi-config në terminal dhe shtypni enter. Shkoni te opsionet e lokalizimit> ndryshoni zonën kohore dhe vendoseni në zonën tuaj kohore. Ju gjithashtu duhet të ndryshoni vendin tuaj wi-fi në vendndodhjen tuaj. Së fundi, shkoni te opsionet e ndërlidhjes dhe aktivizoni SPI, I2C dhe 1-wire. Kjo do të jetë e rëndësishme për të përdorur sensorët në mënyrë korrekte.

Hapi 4: Vendosja e lidhjes në internet

Ne do të përdorim një rrjet WiFi. Ju mund të shtoni rrjetin tuaj në shtëpi përmes:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Ju do të duhet të rindizni Pi tuaj për të bërë një lidhje. Për të kontrolluar nëse funksionoi, mund të përdorni ifconfig për të kontrolluar nëse ka një adresë IP.

Hapi 5: Vendosja e serverit në internet dhe bazës së të dhënave

Së pari, është më mirë të azhurnoni dhe azhurnoni sistemin me sekuencën e mëposhtme të komandave:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt upgrade
  3. sudo apt përditësim
  4. sudo apt autoremove

Pasi të bëhet kjo, do të na duhen paketat e mëposhtme për serverin tonë të uebit dhe bazën e të dhënave:

Apache

sudo apt install apache2 -y

PHP

sudo apt instaloni php

sudo apt instaloni phpMyAdmin -y

Mos harroni të vendosni një fjalëkalim të sigurt MySQL, kur kërkon të vendosni një fjalëkalim.

MariaDB

sudo apt instaloni mariadb-server mariadb-client -y

sudo apt instaloni php -mysql -y

sudo systemctl rinis apache2.service

Hapi 6: Instalimi i bibliotekave Python

Për pjesën e pasme, do të na duhen disa biblioteka për Python. Ne do t'i instalojmë këto duke përdorur pip3, sepse ne po përdorim python3.

pip3 instaloni mysql-connector-python

pip3 instaloni flaks-socketio

pip3 instaloni balona-cors

pip3 instaloni gevent

pip3 instaloni gevent-websocket

sudo apt install python3 -mysql.connector -y

pip3 instaloni mfrc522! (do të na duhet kjo për të përdorur skanerin RFID)

Hapi 7: Përgatitja e Kodit të Visual Studio

Për ekzekutimin e kodit, unë rekomandoj të përdorni Visual Studio Code për të lidhur Raspberry Pi tuaj. Lidhja e shkarkimit për të instaluar VSC mund të gjendet këtu.

Nëse ende nuk e keni të instaluar Remote Development duke përdorur SSH, mund t'i gjeni hapat për ta bërë këtë këtu.

Hapi 3: Krijimi i bazës së të dhënave

Krijimi i bazës së të dhënave
Krijimi i bazës së të dhënave

Ne do t'i ruajmë të gjitha të dhënat tona të sensorit dhe të dhënat e përdoruesit në një bazë të dhënash.

Baza e të dhënave të mia përbëhet nga 5 tabela:

Pajisje

Tabela Device ka një DeviceID, e cila i referohet vetë pajisjes. Emri i pajisjes jep emrin e pajisjes, në këtë rast sensor tejzanor, sensor të temperaturës,… DeviceType jep llojin e pajisjes (sensori ose aktivizuesi).

Histori

Tabela Historia përmban të gjithë historinë e sensorit, së bashku me datën (HistoryDate) historia u shtua dhe vlera e momentit në histori. Ajo gjithashtu ka dy çelësa të huaj:

  • DeviceID, për të lidhur një regjistër specifik me një pajisje
  • UserID, për të lidhur një përdorues specifik me një regjistër (kjo ndodh sepse ne përdorim një RFID dhe duam të shtojmë regjistrin e historisë tek një përdorues specifik)

Përdorues

Table User përdoret për të krijuar një Sistem të Hyrjes së Përdoruesit me skanerin RFID. Ai përbëhet nga një Nofkë, Emri, Mbiemri, Fjalëkalimi dhe RFID (ky është numri RFID i një etikete). Çdo përdorues është i lidhur me një Kontejner (rezervuar uji) dhe gjithashtu mbart ContainerID si një Çelës i Huaj.

Enë

Kontejnerët e Tabelave përbëhen nga të gjithë Kontejnerët e ndryshëm. Ajo ka një ID, një ContainerLocation (kjo mund të jetë një ndërmarrje, shtëpi ose ndonjë gjë tjetër). Së fundmi, ajo ka një MaxLevel që përfaqëson volumin maksimal që ka ena.

Cilësimet

Cilësimet e Tabelës kanë një IDID të Cilësimeve dhe gjurmon DailyGoal të çdo përdoruesi + datën kur DailyGoal u shtua nga përdoruesi. Kjo shpjegon User ID të Çelësit të Huaj.

Një hale e bazës së të dhënave mund të gjendet në depon time të GitHub nën bazën e të dhënave.

Hapi 4: Vendosja e sfondit

Nuk ka një projekt pa një sfond pune.

Pjesa e pasme përbëhet nga 4 gjëra të ndryshme:

ndihmësit

Ndihmuesit janë të gjitha klasat e përdorura për sensorë dhe aktivizues të ndryshëm. Ekziston një ndihmës për sensorin e temperaturës (DS18B20), për sensorët tejzanor (HCSR05) që të jenë në gjendje të matin distancën dhe që LCD të jetë në gjendje të shkruajë mesazhe në ekran.

depo

Në dosjen e depove, do të gjeni 2 skedarë Python:

  • Database.py e cila është një ndihmëse për të nxjerrë rreshta nga baza e të dhënave tuaja. E bën më të lehtë ekzekutimin dhe leximin e bazës së të dhënave.
  • DataRepository.py e cila përmban të gjitha pyetjet SQL, të cilat përdoren në kodin kryesor (app.py). Ato përdoren për marrjen, përditësimin ose fshirjen e të dhënave nga baza e të dhënave.

app.py

Ky është kodi kryesor i sfondit të projektit. Ai bën konfigurimin duke përcaktuar të gjitha kunjat dhe mënyrat dhe përmban kodin për funksionimin e pompës, marrjen e temperaturës, marrjen e përdoruesit etj. Ai gjithashtu përmban rrugët që përdoren për të marrë të dhëna nga Baza e të Dhënave dhe të gjitha socketio's. Për çdo faqe HTML është një socketio.on i ndryshëm për t'u siguruar që çdo funksion punon në kohën e duhur.

config.py

Na mbetet një skedar: config.py. Ky është skedari me opsionet e konfigurimit për t'u lidhur me bazën tuaj të të dhënave. Mos harroni të vendosni kredencialet tuaja të bazës së të dhënave.

Pjesa e pasme mund të gjendet në depon time nën Backend.

Hapi 5: Vendosja e Frontend

Vendosja e Frontend
Vendosja e Frontend
Vendosja e Frontend
Vendosja e Frontend

Për Frontend, fillova duke bërë një dizajn se si duhet të duket serveri im i uebit në AdobeXD. Kam përdorur ngjyrat në Logon time, të cilat janë portokalli dhe 2 nuanca të ndryshme blu. Unë u përpoqa ta mbaja modelin sa më të thjeshtë dhe krijova një pikë uji që tregon përqindjen në atë masë sa keni arritur qëllimin tuaj të ditës.

Në deponinë time GitHub, do të gjeni Frontend tim nën Kod> Frontend. Importantshtë e rëndësishme që ta ngjisni këtë në dosjen tuaj /var /html të Raspberry Pi për ta bërë atë të arritshme nga serveri në internet.

Përbëhet nga disa skedarë HTML, të cilët çojnë në faqe të ndryshme. Ju gjithashtu do të gjeni screen.css tim me të gjitha CSS që ju nevojiten për ta bërë atë të duket si projekti im. Së fundi, nën skriptet do të keni skedarë të ndryshëm JavaScript. Këto skripte komunikojnë me sfondin tim për të treguar të dhëna nga baza e të dhënave ose sfondi im.

Pjesa e pasme mund të gjendet në depon time nën Frontend.

Hapi 6: Krijimi i zorrës

Krijimi i zorrës
Krijimi i zorrës
Krijimi i zorrës
Krijimi i zorrës
Krijimi i zorrës
Krijimi i zorrës

Nëse po flasim për rastin tim, ka dy pjesë kryesore:

Shtresa e jashtme

Unë e ndërtova rastin nga e para. Kam përdorur dërrasa kompensatë dhe i kam sharruar në madhësitë e duhura. I vidhosa të gjitha dërrasat dhe shpova vrima për LCD, butonin, sensorin tejzanor për të zbuluar nëse ka një shishe me ujë të pranishëm dhe gypin për shpërndarjen e ujit. Unë e ndava rastin tim në seksione të ndryshme për të mbajtur ujin dhe pajisjet elektronike të ndara dhe kam përdorur një tabaka kabllo për të mbrojtur kabllot nga rrjedhja e ujit. Në videon e bashkangjitur, ju mund të shihni shumicën e aspekteve të zorrës sime dhe mënyrën se si e kam bërë atë. Unë gjithashtu printova 3D një buton, i cili është ngjitur në një buton normal. Më në fund, kam përdorur një tabaka pikuese për të kapur të gjithë ujin e derdhur. Kam përdorur gjithashtu mentesha për të qenë në gjendje të hap dhe mbyll një panel anësor për të parë pajisjet e mia elektronike. Ju gjithmonë mund të përdorni një shpërndarës të dorës së dytë ose mund të përdorni materiale të tjera.

Për matjet e sakta të strukturës sime, bashkangjit një PDF me të gjitha madhësitë e pllakave të përdorura në kuti.

Rezervuari i ujit

Rezervuari i ujit nuk ishte një punë e lehtë. Mora një rezervuar uji me një vrimë në pjesën e poshtme, kështu që më duhej ta ngjisja me shirit për të ndaluar rrjedhjen. Do t'ju duhen katër vrima: një për sensorin e temperaturës, një për tubin e pompës tuaj. një për tubin për të rimbushur rezervuarin dhe një për sensorin tejzanor. Për këtë të fundit, unë printova 3D një rast për të, i cili mund të gjendet këtu. Kjo i jep sensorit më shumë mbrojtje kundër ujit. Pastaj shpova një drejtkëndësh në pjesën e sipërme të rezervuarit, për të mbështetur sensorin.

Recommended: