Përmbajtje:
- Furnizimet
- Hapi 1: Lidhja e të gjithë pajisjeve elektronike
- Hapi 2: Vendosja e Raspberry Pi
- Hapi 3: Krijimi i bazës së të dhënave
- Hapi 4: Vendosja e sfondit
- Hapi 5: Vendosja e Frontend
- Hapi 6: Krijimi i zorrës
Video: Dispenser automatik i ujit për të ndjekur konsumin: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
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
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:
- sudo apt dist-upgrade --auto-remove -y
- sudo apt upgrade
- sudo apt përditësim
- 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
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
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
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:
Temperatura e ujit, përcjellshmëria dhe niveli i ujit në pus në kohë reale: 6 hapa (me fotografi)
Një matës i temperaturës së ujit, përcjellshmërisë dhe nivelit të ujit të pusit në kohë reale: Këto udhëzime përshkruajnë se si të ndërtoni një ujëmatës me kosto të ulët, në kohë reale për monitorimin e temperaturës, përçueshmërinë elektrike (KE) dhe nivelet e ujit në puset e gërmuara. Matësi është projektuar për të varur brenda një pusi të gërmuar, për të matur temperaturën e ujit, KE dhe
Sistemi i alarmit për pirjen e ujit /Monitorimi i marrjes së ujit: 6 hapa
Sistemi i alarmit për pirjen e ujit /Monitorimi i marrjes së ujit: Duhet të pimë sasi të mjaftueshme të ujit çdo ditë për të mbajtur veten të shëndetshëm. Gjithashtu ka shumë pacientë që janë të përshkruar të pinë një sasi të caktuar uji çdo ditë. Por për fat të keq ne e humbëm orarin pothuajse çdo ditë. Kështu që unë dizajnoj
Koka e z. Wallplate kthehet për t'ju ndjekur: 9 hapa (me fotografi)
Koka e z. Wallplate kthehet për t'ju ndjekur: Ky është një version më i avancuar i Robotit të Iluzionit të Syve të Z. Wallplate https://www.instructables.com/id/Mr-Wallplates-Eye-Illusion. Një sensor tejzanor lejon që koka e z. Wallplate t'ju ndjekë ndërsa ecni para tij. Procesi mund të përmblidhet
Përcaktoni konsumin mesatar aktual të pajisjes me ndërprerje të energjisë së ulët: 4 hapa
Përcaktoni konsumin mesatar aktual të pajisjes me ndërprerje të energjisë së ulët: HyrjePër kuriozitet doja të dija sa gjatë mund të zgjasin bateritë në sensorin tim të temperaturës në distancë. Duhen dy qeliza AA në seri, por është pak ndihmë për të vendosur një ammetër në linjë dhe për të parë ekranin sepse energjia konsumohet
Metodat e zbulimit të nivelit të ujit Arduino duke përdorur sensorin tejzanor dhe sensorin e ujit Funduino: 4 hapa
Metodat e zbulimit të nivelit të ujit Arduino duke përdorur sensorin tejzanor dhe sensorin e ujit Funduino: Në këtë projekt, unë do t'ju tregoj se si të krijoni një detektor të lirë uji duke përdorur dy metoda: 1. Sensori tejzanor (HC-SR04) .2. Sensori i ujit Funduino