Satura rādītājs:
- Piegādes
- 1. darbība: shēmas montāža
- 2. darbība: mūsu RaspberryPi iestatīšana
- 3. darbība. Fona sistēmas iestatīšana
- 4. darbība: priekšgala uzstādīšana
- 5. darbība: mūsu projekta datu bāzes importēšana
- 6. darbība: mūsu projekta uzsākšana
- 7. solis: lieta
- 8. solis: apbrīnojiet galaproduktu
- 9. solis: problēmas
Video: Bezkontakta ūdens strūklaka: 9 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Pirmā MCT studenta kursa beigās man tika uzdots izveidot projektu, kurā bija visas prasmes, ko biju apguvusi kursos visa gada garumā.
Es meklēju projektu, kurā tiktu pārbaudītas visas manu skolotāju izvirzītās prasības un tajā pašā laikā man būtu jautri to izpildīt. Meklējot tēmu, es nevarēju nejusties iedvesmota no Covid-19 (tas bija tieši pirms tā uzliesmojuma visā pasaulē.) Es izvēlējos kontaktligzdu, kurā bija mazāk ūdens strūklakas/dozatora, jo tas piedāvātu veidu, kā dzert ūdeni, nepieskaroties dažām pogām, pirms ūdens izplūst.
Šis projekts izmanto attāluma sensoru, lai noteiktu, vai zem ūdens izplūdes ir novietota krūze vai glāze, un strūklaka 60 sekundes (100 ml / min) turpinās izvadīt ūdeni. Tas jādara, lai padarītu to konsekventāku, jo stikla atrašanas noteikšana izrādījās pārāk grūta/lēna, tāpēc tika ievietots taimeris. Pēc tam, kad glāze ir piepildīta ar 100 ml ūdens, varat pagaidīt 5 sekundes, un, ja glāze joprojām atrodas attāluma sensora priekšā, tā piepildīsies citā laikā (tas nozīmē, ka starp divu dažādu pildījumu ir arī 5 sekunžu noildze) preces).
Piegādes
Sastāvdaļas
- 1x RaspberryPi (es izmantoju ceturto versiju, bet varētu darboties arī vecākas versijas)- 1x S8050 tranzistors vai 1x PN2222 tranzistors var darboties tikpat labi- 1x fotorezistors- 1x HC-SR04 (ultraskaņas attāluma sensors)- 1x RFID-RC522- 3x atšķirīgs krāsu gaismas diodes (zila, dzeltena, sarkana)- 1x LCD1602- 1x aktīvs zvana signāls- 1x PCF8574- 1x MCP3008- 1x ūdens sūknis (tika izmantots 12v peristaltiskais sūknis, saite uz šo vienumu)
- 1x līdzstrāvas barošanas avots (12v, 600mAh)- 1x strāvas ķieģelis ar 3 plankumiem- 3x maizes dēļi (iespējams, varētu izmantot mazāk)- T-kurpnieks RaspberryPi GPIO tapām- T-kurpju kabelis (savienošanai starp pi un kurpīti)
Izmantotie materiāli un instrumenti
- urbis ar šādiem urbjiem:
- 4 mm (lai urbtu caurumus skrūvēm) - 15 mm (lai urbtu caurumus attāluma sensoram)
- Jebkurš skrūvgriezis- 30 skrūves ar 45 mm garu- 6 skrūves ar 20 mm- 2 eņģes durvīm- MDF plāksne aptuveni 130 cm līdz 80 cm- pāris faili
1. darbība: shēmas montāža
Ķēdei mums ir 2 sensori, attāluma sensors un fotorezistors. Attāluma sensoru izmanto, lai noteiktu, vai ūdens strūklakas diapazonā ir ievietota krūzīte, un pēc izvēles es pievienoju fotorezistoru, kas tiek izmantots, lai noteiktu, vai korpusu ir atvēris kāds, kam to nevajadzētu atvērt. Turklāt mums ir RFID lasītājs, ko var izmantot, lai autentificētu mehāniķi, kuram jāatver korpuss, lai uzpildītu ūdens rezervuāru, vai kādu citu mehānisku problēmu dēļ.
Aktīvajiem elementiem ir LCD1602, aktīvs skaņas signāls un peristaltisks sūknis, LCD tiek izmantots, lai parādītu statusu, piemēram, ja korpuss ir atvērts vai sūknis darbojas, kā arī tiks parādīta ierīces IP adrese, izmanto, lai radītu satraucošu skaņu, ja lieta ir atvērta bez kāda atļaujas.
Es esmu pievienojis maizes dēli un shēmas shematiskos skatus zemāk.
2. darbība: mūsu RaspberryPi iestatīšana
Lai iestatītu mūsu RaspberryPi, mēs lejupielādēsim attēlveidošanas programmatūru no Raspberry vietnes, ar to jūs varat lejupielādēt vēlamo Raspbian versiju un attēlot savu SDCARD. Kad šis rīks ir paveicis savu darbu, jūs varat atvērt SDCARD programmā Windows Explorer, un jūs varēsit redzēt sava RaspberryPi sāknēšanas nodalījumu. Šeit mēs atradīsim failu ar nosaukumu cmdline.txt (neatveriet šo failu piezīmju grāmatiņā, atveriet to Notepad ++ vai jebkurā citā IDE). Šī faila beigās mēs pievienosim ip = 169.254.10.1, lai pārliecinātos, ka varam izveidot savienojumu ar mūsu ierīci, izmantojot Ethernet (pārliecinieties, ka faila beigās nepievienojat nevienu ENTERS), pretējā gadījumā jums radīsies problēmas).
Tagad jūs varat ievietot savu SDCARD savā RaspberryPi un ielādēt to, savienot Pi ar datoru un izmantot Putty, lai izveidotu savienojumu ar savu Pi, izmantojot SSH. Es izmantoju šo komandu, lai izveidotu savienojumu ar savu Pi, nevis izmantoju Putty. "ssh [email protected]", iespējams, iestāsies taimauts, tāpēc esiet pacietīgs un gaidiet, kamēr Pi tiks sāknēts. Kad tiek prasīts ievadīt paroli, mēs aizpildīsim noklusējuma paroli “aveņu”. Noteikti nomainiet šo paroli pēc pieteikšanās, lai neļautu ikvienam ļaunam nolūkam piekļūt jūsu Raspberry Pi.
Tagad mēs konfigurēsim savu Pi, lai nodrošinātu mūsu kodam nepieciešamo funkcionalitāti. Izmantojiet "sudo raspi-config", lai atvērtu konfigurācijas izvēlni, un šeit mēs pāriesim uz saskarnes opcijām.
Šeit mēs ieslēgsim šādas iespējas:- SPI-I2C
Izpildiet šo rokasgrāmatu, lai izveidotu Pi bezvadu interneta savienojumu, pēc tam, kad esat to veiksmīgi paveicis, mēs varam sākt instalēt nepieciešamās paketes.
Pakotnes: (palaidiet komandas šajā secībā)
Lai iegūtu jaunākos atjauninājumus mūsu Pi- sudo apt update && apt upgrade -y, veiciet tālāk norādītās darbības
Instalējiet mūsu MySQL serveri un tīmekļa serveri- sudo apt install mariadb-server apache2
Vēlāk šajā rokasgrāmatā es izmantošu MySQL Workbench, lai iestatītu datu bāzi. Ja jūs to neizmantojat un dodat priekšroku phpmyadmin, varat to instalēt ar šādu komandu, jūs varat brīvi izmantot jebkuru citu MySQL klientu, kā arī spēj pareizi importēt datu bāzi.- sudo apt instalēt phpmyadmin
Kad esat paveicis visu iepriekš minēto, mums ir jāizveido lietotājs mūsu datu bāzei. Lai pieteiktos savā MySQL serverī, izmantojiet "sudo mysql -u root", šeit mēs izveidosim lietotāju ar nosaukumu db_admin ar attiecīgo paroli. šī parole kaut kur tika atzīmēta vēlāk instrukcijās. GRANT VISAS PRIVILĒGAS ON *. * TO "db_admin"@"%" IDENTIFICED by "yourPassword Here" AR GRANT OPTION;
Izmantojiet komandu "\ q", lai izietu no MySQL termināļa.
Python pakotnes: Pirms turpināt, mums joprojām ir jāinstalē dažas python pakotnes, palaidiet zemāk esošo komandu, lai pārliecinātos, ka viss ir pieejams nevainojamai pieredzei.
sudo pip3 install Flask Flask-Cors Flask-SocketIO gevent gevent-websocket greenlet spi SPI-Pyspidev
Kā arī šādas MySQL savienojuma python paketesudo apt instalēt python3 -mysql.connector -y
Ja viss gāja pareizi, tagad tīmekļa pārlūkprogrammā varat apmeklēt savu Pi ar šādu adresi:
3. darbība. Fona sistēmas iestatīšana
Šeit es paskaidrošu, kā jūs pats varat iestatīt aizmuguri, vispirms lejupielādējiet rar failu no apakšas, noņemiet to uz kādu pagaidu direktoriju. Izveidojiet savienojumu ar savu RaspberryPi, izmantojot FileZilla vai WinSCP, izmantojot šādus akreditācijas datus:
IP: 169.254.10.1 Lietotājs: piPassword: aveņu (ja esat nomainījis paroli, dariet to arī šeit)
Pēc tam jūs varat turpināt pārsūtīto failu pārsūtīšanu uz jebkuru direktoriju, kuru vēlaties atrast pi lietotāja mājas direktorijā. Vienkāršības labad mēs šajā iestatījumā pieņemsim, ka esam augšupielādējuši visus savus failus dokumentu direktorijā.
Turiet savu FTP programmu atvērtu nākamajam solim!
Tagad vēlreiz atveriet komandu uzvedni, izmantojot savu SSH savienojumu, jo mums būs jāveic dažas izmaiņas tīmekļa serverī, lai priekšpuse varētu sazināties ar aizmuguri. Mēs atvērsim noklusējuma Apache2 konfigurācijas failu un nedaudz to mainīsim: sudo nano /etc/apache2/sites-available/000-default.conf
Tikko atvērtajā konfigurācijas failā zem DocumentRoot pievienojiet šādas rindas: ProxyPass/api/https://127.0.0.1:5000/api/ProxyPassReverse/api/https://127.0.0.1:5000/api/
Jūs varat apskatīt piemēru pievienotajā attēlā.
4. darbība: priekšgala uzstādīšana
Pirms failu pārsūtīšanas mums ir jādara kaut kas, pirms mēs varam sākt pārsūtīt savus priekšējās sistēmas failus. Atveriet komandu uzvedni, izmantojot iepriekš izveidoto SSH savienojumu, un izmantojiet tālāk norādīto komandu, lai pārslēgtos uz mūsu RaspberryPi saknes lietotāju: "sudo su -"
Pēc tam mēs varam mainīt mūsu root lietotāja paroli ar šādu komandu: "passwd" Tas prasīs ievadīt jaunu paroli. Pēc tam jūs varat pārslēgties atpakaļ uz savu FTP programmu un pieteikties, izmantojot saknes akreditācijas datus:
IP: 169.254.10.1 Lietotājs: root Parole:
Lejupielādējiet rar failu no apakšas un izņemiet to pagaidu mapē. Jūs varat pārvietot šos failus uz savu RaspberryPi uz šo direktoriju/var/www/html/, kad esat to izdarījis, varat apmeklēt priekšgalu vietnē http:/ /169.254.10.1, jūs vēl nevarat mijiedarboties, jo aizmugure vēl nedarbojas, vēlāk šajā rokasgrāmatā parādīšu, kā to izdarīt.
5. darbība: mūsu projekta datu bāzes importēšana
Atveriet savu iecienīto MySQL servera pārvaldības programmu un izveidojiet savienojumu ar savu Raspberry Pi, izmantojot akreditācijas datus, ko izveidojām 2. darbībā.
Lejupielādējiet datu bāzes izmetni no apakšas un importējiet to, kā parasti, MySQL darbgalds, dodoties uz Fails> Atvērt SQL skriptu un atlasiet lejupielādēto datu bāzes izmetni. Pēc tam nospiediet taustiņu kombināciju CTRL + SHIFT + ENTER, un SQL skripts jāizpilda un struktūra jāizveido datu bāze.
Zemāk kā piemēru pievienoju akreditācijas datus, ko izmantoju savai RaspberryPi, kā arī vairākus attēlus no datu bāzes struktūras. Jūs varat to apskatīt un mēģināt iegūt vispārēju priekšstatu par to, kā viss darbojas.
6. darbība: mūsu projekta uzsākšana
Pirms mēs varam sākt savu projektu, mums ir jāmaina datubāzes akreditācijas dati failā config.py. Ja izpildījāt norādījumus tieši tā, kā šajā rokasgrāmatā teikts, tos varat atrast sadaļā /home/pi/Documents/Backend/src/config.py šeit jums ir jāmaina db_config mainīgā akreditācijas dati, lai tie atbilstu tiem, kurus mēs iepriekš izveidojām mūsu datu bāzei. Tālāk esmu pievienojis piemēru tam, ko redzēsit šajā failā.
Pēc tam mēs pievienosim.service failu, šis fails nodrošinās, ka mūsu projekts sākas, kad sākas RaspberryPi. Pārliecinieties, vai esat pareizi mainījis direktoriju, kurā instalējāt aizmugures failus. Izmantojiet šo komandu, lai izveidotu pakalpojuma failu: sudo nano /etc/systemd/system/dispenser.serviceTas izveidos pakalpojuma failu un kopēs ielīmējiet zemāk esošo kodu šajā failā.
[Vienība] Apraksts = Ūdens dozatorsAfter = mysql.service
[Pakalpojums] Tips = simpleRestart = vienmērRestartSec = 1 Lietotājs = piExecStart =/usr/bin/python3 /home/pi/Documents/Backend/index.py
[Instalēt] WantedBy = multi-user.target
Pārveidojiet rindiņu, kurā rakstīts /home/pi/Documents/Backend/index.py, uz to, kur instalējāt aizmugures failus, ja to nedarīsit pareizi, projekts netiks sākts pareizi! Tālāk pievienošu faila piemēru.
Pēc tam, kad esat to izdarījis un izgājis no teksta redaktora, mēs varam iespējot pakalpojumu ar šādām komandām:- sudo systemctl dēmons-pārlādēt- sudo systemctl iespējot dozatoru- sudo systemctl sākt dozatoru
Un kā papildus mēs varam palaist: sudo systemctl statusa dozatorsTas parādīs kādu informāciju par mūsu pakalpojumu, vai tas ir aktīvs vai nē,…
7. solis: lieta
Apsveicam, ka esam gandrīz jau klāt. Es pievienošu dažus attēlus, kas precīzi parādīs izmērus, kurus izmantoju savam projektam, es izmantoju 18 mm biezas MDF plāksnes, pēc izvēles varat izmantot citu biezumu. Manu apvalku var izmantot kā vadlīnijas, lai izstrādātu savu, vai arī jūs varat atjaunot manu izveidoto. (Ja jūs izmantojat cita biezuma MDF, mani zīmējumi vairs neļaus jums izveidot manu dizainu, pārliecinieties, ka to pielāgojat!) Manis izgatavotie paneļi:- 2 paneļi no 32 cm līdz 42 cm (sānu paneļi)- 1 panelis ar 24 cm 32 cm (apakšējā plāksne)- 2 paneļi pa 16 cm līdz 24 cm (priekšējā plāksne, kur atrodas LCD un blakus esošā plāksne)- 1 panelis 28 cm līdz 24 cm (vidējā plāksne no priekšpuses)- 1 panelis 30 cm līdz 24 cm (augšējā plāksne)
8. solis: apbrīnojiet galaproduktu
Jūs esat nonācis līdz galam un, cerams, līdz šim brīdim, iespējams, spēsit visu padarīt par realitāti. Ja jūs esat tikai garāmgājējs, kas lasa cauri, laipni lūdzam, es pateicos jums, ka izlasījāt līdz pēdējam solim!
Es šajā projektā iztērēju daudz asiņu, sviedru un asaru, tāpēc es būtu pateicīgs, ja atstātu komentāru, jebkāda kritika par tā uzlabošanu ir laipni gaidīta!
9. solis: problēmas
Es nodotu projektu pašreizējā stāvoklī kā strādājošu prototipu, kas var redzēt daudz vairāk uzlabojumu.
Fona sistēmas koda bāze ir strukturēta tā, lai varētu lieliski izveidot galveno vergu attiecību, kur viena strūklaka darbotos kā galvenā priekšpuse, un visas pārējās strūklakas virzītu datus un izmaiņas uz galvenā REST api. Kodā ir arī API marķieru sistēmas paliekas, jo to bija paredzēts ieviest, bet laika ierobežojuma dēļ vēlāk samazināt.
Esmu augšupielādējis savu kodu savā Gitlab serverī, un tur jūs varat apskatīt kodu kopumā:
Ieteicams:
Reālā laika akas ūdens temperatūra, vadītspēja un ūdens līmeņa mērītājs: 6 soļi (ar attēliem)
Reālā laika akas ūdens temperatūras, vadītspējas un ūdens līmeņa mērītājs: šajos norādījumos ir aprakstīts, kā izveidot zemu izmaksu reāllaika ūdens skaitītāju temperatūras, elektrovadītspējas (EK) un ūdens līmeņa uzraudzībai izraktās akās. Skaitītājs ir paredzēts pakārt izraktajā akā, mērīt ūdens temperatūru, EK un
Ūdens atgādinājuma ūdens pudeles turētājs: 16 soļi
Ūdens atgādinājuma ūdens pudeles turētājs: Vai jūs kādreiz aizmirstat dzert ūdeni? Es zinu, ka daru! Tāpēc man radās ideja izveidot ūdens pudeles turētāju, kas atgādina dzert ūdeni. Ūdens pudeles turētājam ir funkcija, kurā katru stundu atskanēs troksnis, lai atgādinātu, ka
Ūdens dzeršanas signalizācijas sistēma /ūdens ieplūdes monitors: 6 soļi
Ūdens dzeršanas signalizācijas sistēma /ūdens ieplūdes monitors: Katru dienu mums vajadzētu dzert pietiekamu daudzumu ūdens, lai mēs paši būtu veseli. Ir arī daudzi pacienti, kuriem katru dienu ir noteikts dzert noteiktu ūdens daudzumu. Bet diemžēl mēs gandrīz katru dienu nokavējām grafiku. Tāpēc es projektēju
Bezkontakta un bez korozijas ūdens līmeņa indikators un motora vadība: 5 soļi
Ūdens līmeņa indikators un bezkorozijas ūdens līmeņa indikators un motora vadība: HI, šajā pamācībā mēs redzēsim, kā iegūt ūdens tvertnes statusu, pamatojoties uz augšējās tvertnes ūdens līmeni (augsts, vidējs, zems), izmantojot trīs dažādu krāsu gaismas diodes Bezkontakta veids, izmantojot ultraskaņas sensoru un Arduino uno plati. P
Mood Light Bluetooth ūdens strūklaka: 5 soļi
Mood Light Bluetooth ūdens strūklaka: mēs ļaunprātīgi izmantosim veco plastmasas kastīti un dažus pudeļu vāciņus viedā ūdens strūklakā, kas maina krāsu nejauši vai atbilstoši mūsu noskaņojumam. Mēs varam mainīt gaismas krāsu atbilstoši mūsu noskaņojumam no mūsu viedtālruņa, izmantojot Bluetooth savienojumu