Sisukord:
- Tarvikud
- Samm: kogu elektroonika ühendamine
- 2. samm: seadistage Raspberry Pi
- 3. samm: andmebaasi loomine
- Samm: taustaprogrammi seadistamine
- Samm: kasutajaliidese seadistamine
- 6. samm: korpuse loomine
Video: Automaatne veejaotur tarbimise jälgimiseks: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Tere!
Paar kuud tagasi olin oma toas ja mõtlesin, millist projekti ma koolitöö jaoks teha tahan. Tahtsin teha midagi, mis mulle sobiks ja mis mulle tulevikus kasuks tuleks. Äkitselt astus ema tuppa ja hakkas kurtma, et ei joo piisavalt vett. Mul oli kohe kolmekuningapäev. Mul tuli mõte teha automaatne veejaotur (nagu kinosaalis), mis jälgib teie veetarbimist igapäevaselt.
Raspberry Pi, mõne anduri, pumba ja vähese teadmisega proovisin seda võimalikult hästi teha.
Kõigi toimingute lõpus on teil toimiv veeanum, mis täidab teie veepudeli ning ühendab teie Raspberry Pi ja suhtleb sellega. Saate mitte ainult jälgida oma veetarbimist protsendi alusel, vaid saate vaadata ka oma veenõu temperatuuri ja veetaset. Lõpuks saate oma statistikat kontrollida. Kui see tundub teile huvitav, vaadake seda kindlasti ja proovige ise!
GitHubi hoidla:
Tarvikud
Mikrokontrollerid
Vaarika Pi 4
Andurid ja moodulid
Kasutasin 4 andurit:
2xHC-SR04 ultraheliandur
Ultraheli andurid mõõdavad kaugust ultrahelilainete abil. Anduripea kiirgab ultrahelilainet ja võtab vastu laine, mis peegeldub sihtmärgist tagasi. Ultraheli andurid mõõdavad kaugust sihtmärgini, mõõtes aega kiirguse ja vastuvõtu vahel. Kasutasin neist kahte, et kontrollida, kas läheduses on pudel, ja mõõta paagis oleva vee kaugust.
Andmeleht
1x DS18B20 temperatuuriandur
DS18B20 on 1-juhtmeline programmeeritav temperatuuriandur maksimaalselt integreeritud. Seda kasutatakse laialdaselt temperatuuri mõõtmiseks rasketes keskkondades, näiteks keemilistes lahustes, kaevandustes või pinnases jne. Ma kasutasin seda veepaagi veetemperatuuri mõõtmiseks.
Andmeleht
1x RC522 RFID -moodul
RC522 on 13,56 MHz RFID -moodul, mis põhineb NXP pooljuhtide MFRC522 kontrolleril. Moodul toetab I2C, SPI ja UART ning tavaliselt tarnitakse koos RFID -kaardi ja võtmehoidjaga. Seda kasutatakse tavaliselt osavõtusüsteemides ja muudes isikute/objektide tuvastamise rakendustes. Selles projektis kasutatakse seda identifitseerimis-/sisselogimissüsteemi jaoks.
Andmeleht
Ja 2 täiturmehhanismi:
1x peristaltiline pump 12-24V
Ma kasutasin peristaltilist pumpa, et viia vesi paagist veepudelisse. Enamik pumbasid olid liiga aeglased, nii et valisin 24 V versiooni, mida toidan 24 V toiteadapteriga.
1x LCD ekraan
LCD -ekraani kasutatakse IP -aadressi ja oluliste teadete kuvamiseks. Vedelkristallkuvar (LCD) on lameekraan või muu elektrooniliselt moduleeritud optiline seade, mis kasutab vedelkristallide valgust moduleerivaid omadusi koos polarisaatoritega.
Andmeleht
Korpus
Korpusest rääkides tegin DIY koos Home Depo varudega (minu puhul Brico Belgias). Kasutasin vineeri, mille lõikasin paraja suurusega. Ma räägin sellest, kuidas ma oma juhtumi tegin, kuid siin on vaja järgmisi asju:
- 3x vineerist plangud
- 1x väike lehter
- 1x veepaak (saate valida, millist kogust soovite, mina läksin 10 liitri peale)
- 1x tilgakandik
Kõik materjalid ja hinnad leiate lisatud tootekirjeldusest.
Samm: kogu elektroonika ühendamine
Nüüd, kui oleme kogu elektroonika kokku võtnud, on aeg need ühendada. Tegin kaks Fritzingi vooluahelat, ühe leivalaua ja ühe skeemi, et näidata teile, kuidas ja kuhu kogu elektroonika ühendada. Fritzingi allalaadimislingi leiate siit: https://fritzing.org/download/. Nagu varem mainitud, kasutasin ma Raspberry Pi ja ühendasin vee jaoks RFID -skanneri, kaks ultraheliandurit, ühe temperatuurianduri, LCD -ekraani ja peristaltilise pumba.
Lisasin need kaks vooluringi PDF -failina, kui soovite seda lähemalt uurida.
2. samm: seadistage Raspberry Pi
Kasutame oma Raspberry Pi -d, et juhtida ja juhtida kõike: taustaprogrammi, kasutajaliidest ja andmebaasi.
Raspberry Pi ei tööta automaatselt. Selle kasutamise alustamiseks peame läbima mõned sammud.
Samm: Raspbian
Kui kasutate uhiuut Raspberry Pi, vajate raspbiani. Allalaadimislingi ja õpetuse leiate siit.
Samm: pildi kirjutamine SD -le
Nüüd, kui teil on oma Raspbiani pilt, vajate pildifaili SD -kaardile kirjutamiseks pilti kirjutavat tarkvara (soovitan win32diskimager). Täieliku õpetuse leiate siit.
Samm: logige sisse Raspberry Pi -sse
Avage "Powershell" ja tippige "ssh [email protected]". Kui kõik läheb õigesti, küsivad nad teilt parooli (vaikimisi parool on alati vaarikas). Tavaliselt peaks see teid Raspberry Pi sisse logima. Nüüd peame oma seadeid muutma. Tippige terminali sudo raspi-config ja vajutage sisestusklahvi. Liikuge lokaliseerimisvalikutele> muutke ajavööndit ja määrake see oma ajavööndiks. Samuti peaksite muutma oma WiFi-riigi oma asukohaks. Lõpuks minge liidese valikutesse ja lubage SPI, I2C ja 1-juhe. See on oluline andurite õigeks kasutamiseks.
Samm: Interneti -ühenduse seadistamine
Kasutame WiFi -võrku. Koduvõrgu saate lisada järgmiselt.
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Ühenduse loomiseks peate oma Pi taaskäivitama. Et kontrollida, kas see töötas, saate ifconfig abil kontrollida, kas IP -aadress on olemas.
Samm: veebiserveri ja andmebaasi seadistamine
Esiteks on parem süsteemi uuendada ja täiendada järgmise käsujärjega:
- sudo apt dist-upgrade --auto-remove -y
- sudo apt uuendus
- sudo apt värskendus
- sudo apt autoremove
Kui see on tehtud, vajame oma veebiserveri ja andmebaasi jaoks järgmisi pakette:
Apache
sudo apt install apache2 -y
PHP
sudo apt install php
sudo apt install phpMyAdmin -y
Ärge unustage määrata turvalist MySQL -i parooli, kui see küsib parooli.
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt install php -mysql -y
sudo systemctl taaskäivitage apache2.service
Samm: Pythoni teekide installimine
Taustprogrammi jaoks vajame Pythoni jaoks mõnda raamatukogu. Paigaldame need pip3 abil, kuna kasutame python3.
pip3 installige mysql-connector-python
pip3 paigaldage kolb-pistikupesa
pip3 paigaldage kolvid
pip3 install gevent
pip3 installige gevent-websocket
sudo apt install python3 -mysql.connector -y
pip3 paigaldage mfrc522! (seda vajame RFID -skanneri kasutamiseks)
Samm: Visual Studio koodi ettevalmistamine
Koodi käitamiseks soovitan Raspberry Pi ühendamiseks kasutada Visual Studio Code'i. Allalaadimislingi VSC installimiseks leiate siit.
Kui teil pole veel SSH abil kaugarendust installitud, leiate selle tegemiseks vajalikud sammud siit.
3. samm: andmebaasi loomine
Salvestame kõik andurite andmed ja kasutajaandmed andmebaasi.
Minu andmebaas koosneb viiest tabelist:
Seade
Tabeliseadmel on seadme ID, mis viitab seadmele endale. DeviceName annab seadme nime, antud juhul ultraheli anduri, temperatuurianduri,… DeviceType annab seadme tüübi (andur või täiturmehhanism).
Ajalugu
Tabeli ajalugu sisaldab kogu andurite ajalugu koos de date'iga (HistoryDate) ajalugu lisati ja ajaloo hetke väärtus. Sellel on ka kaks välisvõtit:
- DeviceID, konkreetse logi seadmega linkimiseks
- UserID, et siduda konkreetne kasutaja logiga (seda seetõttu, et kasutame RFID -d ja soovime lisada ajaloologi ühele konkreetsele kasutajale)
Kasutaja
Tabeli kasutajat kasutatakse RFID -skanneriga kasutaja sisselogimissüsteemi loomiseks. See koosneb hüüdnimest, eesnimest, perekonnanimest, paroolist ja RFID -st (see on märgendi RFID -number). Iga kasutaja on lingitud konteineriga (veemahutiga) ja kannab ka ContainerID välisvõti.
Konteiner
Lauakonteiner koosneb erinevatest konteineritest. Sellel on ID, ContainerLocation (see võib olla ettevõte, kodu või midagi muud). Lõpuks on sellel MaxLevel, mis tähistab konteineri maksimaalset mahtu.
Seaded
Tabeli seadistustel on seadete ID ja see jälgib iga kasutaja DailyGoali + kuupäeva, mil kasutaja DailyGoali lisas. See selgitab välisvõtme kasutajatunnust.
Andmebaasi prügimäe leiate minu GitHubi hoidlast andmebaasi alt.
Samm: taustaprogrammi seadistamine
Pole ühtegi projekti ilma töötava taustata.
Taustaprogramm koosneb neljast erinevast asjast:
abilised
Abimehed on kõik klassid, mida kasutatakse erinevate andurite ja täiturmehhanismide jaoks. Temperatuurianduril (DS18B20), ultrahelianduritel (HCSR05) on abivahend kauguse mõõtmiseks ja LCD -ekraanil saab sõnumeid kirjutada.
hoidlad
Hoidlate kaustast leiate 2 Pythoni faili:
- Database.py, mis on abiline ridade eemaldamiseks andmebaasist. See hõlbustab andmebaasi täitmist ja lugemist.
- DataRepository.py, mis sisaldab kõiki SQL -päringuid, mida kasutatakse põhikoodis (app.py). Neid kasutatakse andmebaasi andmete hankimiseks, värskendamiseks või kustutamiseks.
app.py
See on projekti peamine taustaprogramm. See teeb seadistamise, määrates kindlaks kõik tihvtid ja režiimid ning sisaldab koodi pumba tööle panemiseks, temperatuuri saamiseks, kasutaja hankimiseks ja nii edasi. See sisaldab ka marsruute, mida kasutatakse andmebaasist andmete hankimiseks ja kõikidest pistikupesadest. Iga HTML -lehe jaoks on erinev socketio.on, et veenduda, et iga funktsioon töötab õigel ajal.
config.py
Meil on jäänud üks fail: config.py. See on fail koos andmebaasiga ühenduse loomise konfiguratsioonivalikutega. Ärge unustage seadistada oma andmebaasi mandaati.
Taustaprogrammi leiate minu hoidlast taustaprogrammi alt.
Samm: kasutajaliidese seadistamine
Esialgu jaoks tegin ma disaini sellest, milline peaks minu veebiserver AdobeXD -s välja nägema. Kasutasin oma logo värve, mis on oranžid ja 2 erinevat sinist tooni. Püüdsin hoida disaini võimalikult lihtsana ja lõin veepiisa, mis näitab protsenti, mil määral olete oma päeva eesmärgi saavutanud.
Minu GitHubi hoidlast leiate minu kasutajaliidese koodist> Frontend. Oluline on see kleepida oma Raspberry Pi kausta /var /html, et muuta see veebiserverist juurdepääsetavaks.
See koosneb paarist HTML -failist, mis viivad erinevatele lehtedele. Samuti leiate minu screen.css koos kõigi CSS -idega, mida vajate, et see näeks välja nagu minu projekt. Lõpuks on teil skriptide all erinevad JavaScripti failid. Need skriptid suhtlevad minu taustaprogrammiga, et näidata andmeid minu andmebaasist või taustaprogrammist.
Taustaprogrammi leiate minu hoidlast kasutajaliidese alt.
6. samm: korpuse loomine
Kui me räägime minu juhtumist, siis on kaks peamist osa:
Väljaspool korpust
Ehitasin korpuse nullist. Kasutasin vineerplaate ja saagisin õiges suuruses. Keerasin kõik plangud kokku ja puurisin augud LCD -ekraanile, nupule, ultraheliandurile, et tuvastada, kas veepudel on kohal, ja lehtri vee jaotamiseks. Jagasin oma ümbrise erinevatesse osadesse, et vesi ja elektroonika oleksid eraldatud, ja kasutasin kaablialust, et kaitsta kaableid vee lekke eest. Lisatud videos näete enamikku minu ümbrise aspekte ja seda, kuidas ma selle tegin. Trükkisin ka 3D -nupu, mis on liimitud tavalisele nupule. Lõpuks kasutasin tilkumisalust kogu mahavoolanud vee püüdmiseks. Kasutasin ka hinged, et saaksin oma elektroonika vaatamiseks külgpaneeli avada ja sulgeda. Võite alati kasutada kasutatud jaoturit või kasutada ka muid materjale.
Ehitise täpsete mõõtmiste jaoks lisasin PDF -faili, millel on kõik korpuses kasutatud plaatide suurused.
Veepaak
Veepaak polnud kerge töö. Sain veepaagi, mille põhjas oli auk, nii et pidin selle lekkima, et leke peatada. Teil on vaja neli auku: üks temperatuurianduri jaoks, teine pumba torude jaoks. üks toru jaoks paagi täitmiseks ja teine ultrahelianduri jaoks. Viimase jaoks printisin 3D jaoks selle jaoks korpuse, mille leiate siit. See annab andurile rohkem kaitset vee eest. Seejärel puurisin paagi ülaossa ristküliku, et andur peal püsida.
Soovitan:
Kuidas kasutada Sensor21.com sensori jälgimiseks: 3 sammu
Kuidas kasutada Sensor21.com -i andurite jälgimiseks: kui vajate platvormi, et oma isetegevusprojektide kaugseadmeid ja andureid jälgida ja juhtida, võib sensor21.com olla teie jaoks hea lahendus. Sellel on kasutusvalmis kasutajasõbralik GUI. Lihtne lisada andureid ja neid graafikute abil jälgida. Seadistage äratused e
Mikrokontrollerite kasutamine kaug -niisutussüsteemi juhtimiseks ja jälgimiseks: 4 sammu
Mikrokontrollerite kasutamine kaugniisutussüsteemi käitamiseks ja jälgimiseks: põllumajandustootjad ja kasvuhooneettevõtjad odava automaatse niisutussüsteemi jaoks. Sellesse projekti integreerime elektroonilise mullaniiskuse anduri koos mikrokontrolleriga, et niisutada taimi automaatselt, kui muld on liiga kuiv ilma inimese sekkumiseta
Arduino projekt: testivahemik LoRa moodul RF1276 GPS -i jälgimiseks Lahendus: 9 sammu (piltidega)
Arduino projekt: testivahemik LoRa moodul RF1276 GPS -i jälgimiseks Lahendus: Ühendus: USB - jada Vajadus: Chrome'i brauseri vajadus: 1 X Arduino Mega vajadus: 1 X GPS -i vajadus: 1 X SD -kaardi vajadus: 2 X LoRa -modem RF1276 Funktsioon: Arduino Saada GPS -väärtus põhibaasi - peamine baas salvestab andmed Dataino Server Lora moodulis: ülikõrge vahemik
Kuidas teha IoT -seadet seadmete juhtimiseks ja ilma jälgimiseks, kasutades Esp8266: 5 sammu
Kuidas teha IoT-seadet seadmete juhtimiseks ja ilma jälgimiseks, kasutades Esp8266: asjade Internet (IoT) on füüsiliste seadmete (mida nimetatakse ka "ühendatud seadmeteks" ja "nutiseadmeteks"), hoonete, ja muud esemed, mis on integreeritud elektroonika, tarkvara, andurite, täiturmehhanismide ja
Kas vaktsineerida või mitte? projekt karja immuunsuse jälgimiseks haiguste simulatsiooni kaudu: 15 sammu
Kas vaktsineerida või mitte? a projekt karja immuunsuse jälgimiseks haiguste simulatsiooni kaudu: projekti ülevaade: Meie projekt uurib karja immuunsust ja loodab julgustada inimesi vaktsineerima, et vähendada meie kogukondade nakatumissagedust. Meie programm simuleerib seda, kuidas haigus nakatab elanikkonna erinevaid vaktsineerimisprotsente