Sisukord:
- Tarvikud
- Samm: vooluringi kokkupanek
- Samm: seadistage meie RaspberryPi
- 3. samm: taustaprogrammi seadistamine
- 4. samm: kasutajaliidese seadistamine
- 5. samm: andmebaasi importimine meie projekti jaoks
- 6. samm: meie projekti käivitamine
- 7. samm: juhtum
- 8. samm: imetlege lõpptoodet
- 9. samm: probleemid
Video: Kontaktivaba purskkaev: 9 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
MCT üliõpilasena esimese aasta lõpuks tehti mulle ülesandeks teha projekt, mis sisaldas kõiki oskusi, mida olin aasta jooksul kursustel omandanud.
Otsisin projekti, mis kontrolliks kõiki minu õpetajate seatud nõudeid ja oleks samal ajal minu jaoks lõbus. Teemat otsides ei suutnud ma end Covid-19-st inspireerituna tunda (see oli vahetult enne ülemaailmse puhangu algust.) Valisin kontaktivaba purskkaevu/dosaatori, kuna see pakuks võimalust vee joomine ilma mõnda nuppu puudutamata, enne kui vesi välja tuleb.
See projekt kasutab kaugusandurit, et tuvastada, kas veeväljundi alla on asetatud tass või klaas, seejärel jätkab purskkaev 60 sekundit (100 ml / minut) väljuvat vett. Selle eesmärk on muuta see järjepidevamaks, sest klaasi eemale tõmbamise tuvastamine osutus ülesandeks liiga keeruliseks/aeglaseks, mistõttu pandi taimer. Kui teie klaas on täidetud 100 ml veega, võite oodata 5 sekundit ja kui klaas on endiselt kaugusanduri ees, täidab see teist korda (see tähendab, et kahe erineva täitmise vahel on ka 5 sekundiline aeg) esemed).
Tarvikud
Komponendid
- 1x RaspberryPi (ma kasutasin neljandat versiooni, kuid ka vanemad versioonid võivad töötada)- 1x S8050 transistor või 1x PN2222 transistor võivad samuti töötada- 1x fototakisti- 1x HC-SR04 (ultraheli kaugusandur)- 1x RFID-RC522- 3x erinev värvilised LED-id (sinine, kollane, punane)- 1x LCD1602- 1x aktiivne helisignaal- 1x PCF8574- 1x MCP3008- 1x veepump (kasutati 12v peristaltilist pumpa, link sellele üksusele)
- 1x alalisvoolu toide (12v, 600mAh)- 1x toiteplokk 3 kohaga- 3x leivaplaadid (võiksite kasutada vähem)- T-kurn RaspberryPi GPIO tihvtide jaoks
Kasutatud materjalid ja tööriistad
- puur, millel on järgmised puurid:
- 4 mm (kruvide aukude puurimiseks) - 15 mm (kaugusanduri aukude puurimiseks)
- mis tahes kruvikeeraja- 30 kruvi 45 mm pikkused- 6 kruvi 20 mm- 2 uksehinge- MDF plaat umbes 130 cm kuni 80 cm- paar faili
Samm: vooluringi kokkupanek
Vooluahela jaoks on meil 2 andurit, kaugusandur ja fototakisti. Kaugusandurit kasutatakse, et tuvastada, kas tass on purskkaevu vahemikku pandud, ja valikuliselt lisasin fototakisti, seda kasutatakse selle tuvastamiseks, kas kesta on avanud keegi, kes ei peaks seda avama. Lisaks on meil RFID -lugeja, mida saab kasutada mehaaniku autentimiseks, kes peab veemahuti täitmiseks korpuse avama või mõne muu mehaanilise probleemi korral.
Aktiivsete elementide puhul on meil LCD1602, aktiivne sumin ja peristaltiline pump, vedelkristallekraani kasutatakse oleku kuvamiseks, näiteks juhul, kui korpus on avatud või pump töötab, samuti kuvatakse seadme IP -aadress. kasutatakse murettekitava heli tegemiseks, kui ümbris on avatud ilma kellegi volituseta.
Olen lisanud alloleva vooluahela leivaplaadi ja skemaatilised vaated.
Samm: seadistage meie RaspberryPi
Meie RaspberryPi seadistamiseks laadime Raspberry saidilt alla pilditarkvara, mille abil saate alla laadida soovitud Raspbiani versiooni ja kujutada oma SDCARDi enda jaoks. Kui see tööriist on oma töö teinud, saate SDCARDi avada Windows Exploreris ja näete oma RaspberryPi alglaadimissektsiooni. Siit leiame faili nimega cmdline.txt (ärge avage seda faili märkmikus, avage see Notepad ++ või mõne muu IDE -ga). Selle faili lõppu lisame ip = 169.254.10.1, et olla kindel, et saame oma seadmega Etherneti kaudu ühenduse luua (veenduge, et faili lõppu ei lisataks ENTERS -i, muidu tekib probleeme).
Nüüd saate oma SDCARD -i RaspberryPi -sse panna ja selle käivitada, ühendada Pi arvutiga ja kasutada Puttyt, et ühendada oma Pi SSH -ga. Putty kasutamise asemel kasutan oma Pi -ga ühenduse loomiseks järgmist käsku. "ssh [email protected]" võib see aeguda, seega olge kannatlik ja oodake, kuni Pi käivitub. Kui parooli küsitakse, täidame vaikeparooli "vaarikas". Muutke parool pärast sisselogimist kindlasti ära, et vältida pahatahtlike inimeste juurdepääsu teie Raspberry Pi -le.
Nüüd konfigureerime oma Pi, et pakkuda meie koodile vajalikke funktsioone. Kasutage konfiguratsioonimenüü avamiseks "sudo raspi-config" ja siin läheme liidese suvandite juurde.
Siin lülitame sisse järgmised valikud:- SPI-I2C
Järgige seda juhendit, et seadistada oma Pi -le traadita Interneti -ühendus, pärast seda, kui olete selle edukalt teinud, saame hakata installima vajalikke pakette.
Paketid: (käivitage käsud siin märgitud järjekorras)
Meie Pi- sudo apt update && apt upgrade -y uusimate värskenduste saamiseks järgige järgmist
Installige meie MySQL-server ja veebiserver- sudo apt install mariadb-server apache2
Kasutan MySQL Workbenchi andmebaasi seadistamiseks hiljem selles juhendis. Kui te seda ei kasuta ja eelistate phpmyadminit, saate selle installida järgmise käsuga, võite vabalt kasutada mis tahes muud MySQL -i klienti. suudab andmebaasi korralikult importida.- sudo apt install phpmyadmin
Kui olete kõik ülaltoodud teinud, peame looma oma andmebaasi kasutaja. Kasutage MySQL -i serverisse sisselogimiseks käsku "sudo mysql -u root", siin loome kasutaja nimega db_admin koos vastava parooliga. see parool on juhistes kusagil hiljem märgitud. GRANTI KÕIK PRIILIID * *.
MySQL -terminalist väljumiseks kasutage käsku "\ q".
Pythoni paketid: enne jätkamist peame veel mõned pythoni paketid installima, käivitage allolev käsk, et veenduda, et kõik on veatu kogemuse jaoks olemas.
sudo pip3 install Flask Flask-Cors Flask-SocketIO gevent gevent-websocket greenlet spi SPI-Pyspidev
Nagu ka järgmised MySQL -i ühendavad python -paketidudo apt install python3 -mysql.connector -y
Kui kõik läks õigesti, saate nüüd oma veebibrauseris oma Pi külastada järgmise aadressiga
3. samm: taustaprogrammi seadistamine
Siin selgitan, kuidas saate taustaprogrammi ise seadistada, laadige kõigepealt altpoolt alla rar -fail ja eemaldage see mõnda ajutisse kataloogi. Ühendage oma RaspberryPi -ga FileZilla või WinSCP abil järgmiste volitustega:
IP: 169.254.10.1Kasutaja: piPassword: vaarikas (parooli muutmisel tee seda ka siin)
Seejärel saate jätkata eemaldatud failide ülekandmist pi kasutaja kodukataloogi soovitud kataloogi. Lihtsuse huvides eeldame selles seadistuses, et oleme kõik failid dokumendikataloogi alla laadinud.
Hoidke oma FTP -programm järgmiseks sammuks avatuks!
Nüüd avage oma SSH -ühenduse abil uuesti oma käsuviip, sest peame veebiserveris mõned muudatused tegema, et kasutajaliides saaks taustaprogrammiga suhelda. Avame vaikimisi Apache2 konfiguratsioonifaili ja muudame seda veidi: sudo nano /etc/apache2/sites-available/000-default.conf
Lisage äsja avatud konfiguratsioonifaili DocumentRooti alla järgmised read: ProxyPass/api/https://127.0.0.1:5000/api/ProxyPassReverse/api/https://127.0.0.1:5000/api/
Näitena võite vaadata lisatud pilti.
4. samm: kasutajaliidese seadistamine
Enne failide ülekandmist peame midagi tegema, enne kui saame hakata oma esipaneeli faile edastama. Avage oma käsuviip varem loodud SSH -ühendusega ja kasutage alltoodud käsku, et minna üle meie RaspberryPi juurkasutajale: "sudo su -"
Pärast seda saame oma juurkasutaja parooli muuta järgmise käsuga: "passwd" See palub teil sisestada uue parooli. Pärast seda saate oma FTP -programmile tagasi lülituda ja oma juurandmetega sisse logida:
IP: 169.254.10.1 Kasutaja: root Parool:
Laadige altpoolt alla rar -fail ja eemaldage see ajutisest kaustast, saate need failid oma RaspberryPi -sse teisaldada järgmisse kataloogi/var/www/html/, kui olete seda teinud, saate külastada kasutajaliidest aadressil http:/ /169.254.10.1, te ei saa veel suhelda, sest taustaprogramm ei tööta veel. Näitan teile selles juhendis hiljem, kuidas seda teha.
5. samm: andmebaasi importimine meie projekti jaoks
Avage oma lemmik MySQL -i serverihaldusprogramm ja ühendage oma Raspberry Pi -ga 2. sammus loodud mandaadiga.
Laadige alla andmebaasi prügila ja importige see nagu tavaliselt, MySQL töölaud, kui lähete menüüsse Fail> Ava SQL -skript ja valige allalaaditud andmebaasi prügila. Seejärel vajutage klahvikombinatsiooni CTRL + SHIFT + ENTER ja SQL -skript tuleb käivitada ning struktuur andmebaasi jaoks tuleks luua.
Lisasin näitena oma RaspberryPi jaoks kasutatud mandaadid ja mitu pilti andmebaasi struktuurist. Saate seda vaadata ja proovida saada üldist ettekujutust sellest, kuidas kõik toimib.
6. samm: meie projekti käivitamine
Enne projekti käivitamist peame muutma andmebaasi mandaati failis config.py. Kui järgisite juhiseid täpselt nii, nagu selles juhendis öeldud, leiate need aadressilt /home/pi/Documents/Backend/src/config.py siin peate muutma muutuja db_config mandaati, et see vastaks varem meie andmebaasi jaoks loodud andmetele. Lisasin allpool näite selle kohta, mida selles failis näete.
Pärast seda lisame.service faili, see fail tagab, et meie projekt käivitub RaspberryPi käivitamisel, muutke kindlasti kataloogi, kuhu installisite taustaprogrammid. Teenusefaili loomiseks kasutage järgmist käsku: sudo nano /etc/systemd/system/dispenser.serviceSee loob teenusefaili ja kopeerib alloleva koodi sellesse faili.
[Ühik] Kirjeldus = Water DispenserAfter = mysql.service
[Teenus] Tüüp = lihtneRestart = alatiRestartSec = 1Kasutaja = piExecStart =/usr/bin/python3 /home/pi/Documents/Backend/index.py
[Install] WantedBy = multi-user.target
Muutke rida /home/pi/Documents/Backend/index.py oma taustafailide installimise kohta, kui te seda õigesti ei tee, ei käivitata projekti õigesti! Lisan allpool näitefaili.
Kui olete selle teinud ja tekstiredaktorist väljunud, saame teenuse lubada järgmiste käskudega:- sudo systemctl daemon-reload- sudo systemctl lubage jaotur- sudo systemctl käivitage jaotur
Täiendavalt saame käivitada: sudo systemctl oleku jaotur See näitab meie teenuse kohta teavet, kas see on aktiivne või mitte,…
7. samm: juhtum
Palju õnne, oleme peaaegu kohal. Lisan mõned pildid, mis näitavad täpselt minu projekti jaoks kasutatud mõõtmeid, kasutasin 18 mm paksuseid MDF -plaate, soovi korral võite kasutada ka muud paksust. Minu korpust saab kasutada juhisena teie enda kujundamisel või saate uuesti teha minu tehtud. (Kui kasutate erineva paksusega MDF-plaati, ei võimalda minu joonised teil enam minu kujundust teha, kohandage seda kindlasti!) Minu valmistatud paneelid:- 2 paneeli mõõtudega 32 cm x 42 cm (külgpaneelid)- 1 paneel 24 cm 32 cm (alumine plaat)- 2 paneeli mõõtudega 16 cm x 24 cm (esiplaat, kuhu jääb LCD ja naaberplaat)- 1 paneel 28 cm x 24 cm (keskmine plaat eestvaates)- 1 paneel 30 cm x 24 cm (ülemine plaat)
8. samm: imetlege lõpptoodet
Olete jõudnud lõppu ja nüüdseks loodetavasti olete suutnud kogu asja reaalsuseks muuta. Kui olete lihtsalt mööduja, kes loeb läbi, siis tere tulemast, tänan teid, et lugesite kuni viimase sammuni!
Kulutasin sellesse projekti palju verd, higi ja pisaraid, nii et oleksin tänulik, kui jätaksite kommentaari, igasugune kriitika selle parandamise kohta on teretulnud!
9. samm: probleemid
Ma paneksin projekti praegusesse olekusse töötava prototüübina, mis näeb palju rohkem parandusi.
Taustaprogrammi koodibaas on üles ehitatud nii, et ülem -alam -seost saab ideaalselt luua seal, kus üks purskkaev toimiks peamise esiplaanina ja kõik muud purskkaevud lükkaksid andmed ja muudatused üle põhiosa REST api -le. Koodis on ka API sümboolsüsteemi jäänuseid, kuna seda kavatseti rakendada, kuid ajapiirangute tõttu hiljem lõigata.
Laadisin oma koodi oma Gitlabi serverisse üles ja seal saate vaadata koodi tervikuna:
Soovitan:
Kontaktivaba midi -kontroller: 6 sammu (piltidega)
Kontaktivaba midi-kontroller: asjade mittekontaktseks muutmine on tänapäeval olnud trend. Lõin lihtsa midi-kontrolleri, kasutades Arduino Pro micro ja mõnda IR-lähedusandurite tahvlit, millel on sisseehitatud võrdlus, see peaks olema üsna lihtne ja odav. See projekt on
Tantsiv purskkaev: Arduino koos MSGEQ7 spektrianalüsaatoriga: 8 sammu
Tantsiv purskkaev: Arduino koos MSGEQ7 spektrianalüsaatoriga: helisignaali vastuvõtmine ja selle muutmine visuaalseks või mehaaniliseks reaktsiooniks on väga huvitav. Selles projektis kasutame Arduino Megat, et olla ühendatud spektrianalüsaatoriga MSGEQ7, mis võtab vastu sisendsignaali ja esitab sagedusala
Sooda purskkaev: 7 sammu
Sooda purskkaev: see juhend on loodud Lõuna -Florida ülikooli Makecourse'i (www.makecourse.com) projektinõude täitmiseks ""* kas olete väsinud joogi kirjutamisest laual? see on probleem, millega igaüks silmitsi seisab. koos temaga
Mood Light Bluetoothi purskkaev: 5 sammu
Mood Light Bluetoothi purskkaev: kavatseme vana plastkarbi ja mõned pudeli korgid väärkasutada nutikaks purskkaevuks, mis muudab värvi juhuslikult või vastavalt meie meeleolule. Valguse värvi saame muuta vastavalt meie meeleolule nutitelefonist Bluetooth -ühenduse kaudu
Purskkaev: 5 sammu
Purskkaev: See juhend on seotud väga vähese materjaliga veefounatiini valmistamisega, millest enamik on maja ümber. Te vajate: veepumpa 9 -voldist akut aku patareipistikut fooliumpappTapeGlueKääridMingisugune plastmahuti koos