Satura rādītājs:

Bezkontakta ūdens strūklaka: 9 soļi (ar attēliem)
Bezkontakta ūdens strūklaka: 9 soļi (ar attēliem)

Video: Bezkontakta ūdens strūklaka: 9 soļi (ar attēliem)

Video: Bezkontakta ūdens strūklaka: 9 soļi (ar attēliem)
Video: ТЕСТ: ПОЧЕМУ ВАМ НЕ ХВАТАЕТ ЭНЕРГИИ 2024, Jūlijs
Anonim
Bezkontakta ūdens strūklaka
Bezkontakta ūdens strūklaka

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

Ķēdes montāža
Ķēdes montāža
Ķēdes montāža
Ķēdes montāža
Ķēdes montāža
Ķēdes 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

Fona sistēmas iestatīšana
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

Datu bāzes importēšana mūsu projektam
Datu bāzes importēšana mūsu projektam
Datu bāzes importēšana mūsu projektam
Datu bāzes importēšana mūsu projektam

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

Mūsu projekta uzsākšana
Mūsu projekta uzsākšana
Mūsu projekta uzsākšana
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

Lieta
Lieta
Lieta
Lieta
Lieta
Lieta
Lieta
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

Apbrīnojiet galaproduktu
Apbrīnojiet galaproduktu
Apbrīnojiet galaproduktu
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: