
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59


Sveiki!
Pirms pāris mēnešiem es biju savā istabā un domāju, kādu projektu es vēlos izveidot skolas uzdevumam. Es gribēju izgatavot kaut ko tādu, kas man piestāvētu un kas man nāktu par labu nākotnē. Pēkšņi istabā ienāca mamma un sāka sūdzēties par nepietiekamu ūdens dzeršanu. Man uzreiz bija epifānija. Man radās ideja izveidot automātisku ūdens izsmidzinātāju (piemēram, kinoteātrī), kas izseko jūsu ūdens patēriņu ikdienā.
Ar Raspberry Pi, dažiem sensoriem, sūkni un mazām zināšanām es centos to padarīt pēc iespējas labāku.
Visu darbību beigās jums būs darba ūdens izsmidzinātājs, kas piepilda jūsu ūdens pudeli un savieno un mijiedarbojas ar jūsu Raspberry Pi. Jūs ne tikai varēsit izsekot ūdens patēriņam, pamatojoties uz procentiem, bet arī varēsit apskatīt ūdens trauka temperatūru un ūdens līmeni. Visbeidzot, jūs varēsit pārbaudīt savu statistiku. Ja tas jums šķiet interesanti, noteikti pārbaudiet to un izmēģiniet pats!
GitHub krātuve:
Piegādes
Mikrokontrolleri
Raspberry Pi 4
Sensori un moduļi
Es izmantoju 4 sensorus:
2xHC-SR04Ultraskaņas sensors
Ultraskaņas sensori mēra attālumu, izmantojot ultraskaņas viļņus. Sensora galva izstaro ultraskaņas viļņu un saņem no mērķa atstaroto viļņu. Ultraskaņas sensori mēra attālumu līdz mērķim, mērot laiku starp emisiju un uztveršanu. Es izmantoju divus no tiem, lai pārbaudītu, vai tuvumā ir pudele, un izmērītu attālumu līdz ūdenim tvertnē.
Datu lapas
1x DS18B20 temperatūras sensors
DS18B20 ir 1 vadu programmējams temperatūras sensors no maksimāli integrēta. To plaši izmanto temperatūras mērīšanai cietā vidē, piemēram, ķīmiskajos šķīdumos, raktuvēs vai augsnē utt. Es to izmantoju, lai izmērītu ūdens tvertnes ūdens temperatūru.
Datu lapas
1x RC522 RFID modulis
RC522 ir 13,56 MHz RFID modulis, kura pamatā ir NXP pusvadītāju MFRC522 kontrolieris. Modulis var atbalstīt I2C, SPI un UART, un parasti tas tiek piegādāts kopā ar RFID karti un atslēgu piekariņu. To parasti izmanto apmeklējumu sistēmās un citās personu/objektu identifikācijas lietojumprogrammās. Šajā projektā to izmanto identifikācijas/pieteikšanās sistēmai.
Datu lapas
Un 2 izpildmehānismi:
1x peristaltiskais sūknis 12-24V
Es izmantoju peristaltisku sūkni, lai ūdeni no tvertnes nonāktu ūdens pudelē. Lielākā daļa sūkņu bija pārāk lēni, tāpēc es izvēlējos 24 V versiju, kuru darbinu ar 24 V strāvas adapteri.
1x LCD displejs
LCD tiek izmantots, lai parādītu IP adresi un svarīgus ziņojumus. Šķidro kristālu displejs (LCD) ir plakanā ekrāna displejs vai cita elektroniski modulēta optiska ierīce, kas izmanto šķidro kristālu gaismas modulējošās īpašības apvienojumā ar polarizatoriem.
Datu lapas
Korpuss
Runājot par korpusu, es darīju DIY ar piegādēm no Home depo (manā gadījumā Brico Beļģijā). Es izmantoju saplāksni, kuru sagriezu pareizajā izmērā. Es runāšu par to, kā es darīju savu lietu nākamajā solī, bet šeit ir lietas, kas jums būs nepieciešamas:
- 3x saplākšņa dēļi
- 1x Maza piltuve
- 1x ūdens tvertne (jūs varat izvēlēties vēlamo daudzumu, es devos uz 10 l)
- 1x pilienu paplāte
Visus materiālus un cenas varat atrast pievienotajā BOM.
1. darbība: visas elektronikas pievienošana


Tagad, kad esam apkopojuši visu elektroniku, ir pienācis laiks tos savienot. Es izveidoju divas Fritzing shēmas, vienu maizes dēli un vienu shematisku, lai parādītu, kā un kur jāpievieno visa elektronika. Fritzing lejupielādes saiti varat atrast šeit: https://fritzing.org/download/. Kā minēts iepriekš, es izmantoju Raspberry Pi un pievienoju ūdenim RFID skeneri, divus ultraskaņas sensorus, vienu temperatūras sensoru, LCD un peristaltisku sūkni.
Abas shēmas pievienoju PDF failā, ja vēlaties to aplūkot tuvāk.
2. darbība. Raspberry Pi iestatīšana
Mēs izmantosim savu Raspberry Pi, lai palaistu un kontrolētu visu: aizmuguri, priekšpusi un datu bāzi.
Raspberry Pi nedarbojas automātiski. Mums būs jāiziet dažas darbības, lai sāktu to lietot.
1. darbība: Raspbian
Ja izmantojat pavisam jaunu Raspberry Pi, jums būs nepieciešama raspbian. Lejupielādes saite un apmācība ir atrodama šeit.
2. darbība: attēla ierakstīšana SD
Tagad, kad jums ir Raspbian attēls, jums būs nepieciešama attēlu rakstīšanas programmatūra (es iesaku win32diskimager), lai ierakstītu attēla failu SD kartē. Pilnu pamācību var atrast šeit.
3. darbība: piesakieties Raspberry Pi
Atveriet "Powershell" un ierakstiet "ssh [email protected]". Ja viss notiek pareizi, viņi lūgs jums paroli (noklusējuma parole vienmēr ir aveņu). Parasti tam vajadzētu pieteikties Raspberry Pi. Tagad mums būs jāveic dažas izmaiņas mūsu iestatījumos. Terminālī ierakstiet sudo raspi-config un nospiediet enter. Pārejiet uz lokalizācijas opcijām> mainiet laika joslu un iestatiet to uz savu laika joslu. Jums vajadzētu arī mainīt savu Wi-Fi valsti uz savu atrašanās vietu. Visbeidzot, dodieties uz saskarnes opcijām un iespējojiet SPI, I2C un 1 vadu. Tas būs svarīgi, lai pareizi izmantotu sensorus.
4. darbība. Interneta savienojuma iestatīšana
Mēs izmantosim WiFi tīklu. Mājas tīklu varat pievienot, izmantojot:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Lai izveidotu savienojumu, jums būs jāpārstartē Pi. Lai pārbaudītu, vai tas darbojās, varat izmantot ifconfig, lai pārbaudītu, vai ir IP adrese.
5. darbība: tīmekļa servera un datu bāzes iestatīšana
Pirmkārt, vislabāk ir atjaunināt un jaunināt sistēmu, izmantojot šādu komandu secību:
- sudo apt dist-upgrade --auto-remove -y
- sudo apt jauninājums
- sudo apt atjauninājums
- sudo apt autoremove
Kad tas būs izdarīts, mūsu tīmekļa serverim un datu bāzei būs nepieciešamas šādas paketes:
Apache
sudo apt instalēt apache2 -y
PHP
sudo apt instalēt php
sudo apt instalēt phpMyAdmin -y
Neaizmirstiet iestatīt drošu MySQL paroli, kad tiek prasīts iestatīt paroli.
MariaDB
sudo apt instalēt mariadb-server mariadb-client-y
sudo apt instalēt php -mysql -y
sudo systemctl restartējiet apache2.service
6. darbība: Python bibliotēku instalēšana
Fonam mums būs nepieciešamas dažas Python bibliotēkas. Mēs tos instalēsim, izmantojot pip3, jo mēs izmantojam python3.
pip3 instalējiet mysql-connector-python
pip3 instalējiet kolbu-ligzdu
pip3 instalēt kolbas
pip3 instalācijas ģenerators
pip3 instalēt gevent-websocket
sudo apt instalēt python3 -mysql.connector -y
pip3 instalējiet mfrc522! (mums tas būs vajadzīgs, lai izmantotu RFID skeneri)
7. darbība. Visual Studio koda sagatavošana
Lai palaistu kodu, es iesaku izmantot Visual Studio Code, lai savienotu savu Raspberry Pi. Lejupielādes saiti VSC instalēšanai var atrast šeit.
Ja jums vēl nav instalēta attālā izstrāde, izmantojot SSH, šeit varat atrast darbības, kā to izdarīt.
3. darbība. Datu bāzes izveide

Mēs glabāsim visus mūsu sensoru datus un lietotāju datus datu bāzē.
Mana datu bāze sastāv no 5 tabulām:
Ierīce
Tabulas ierīcei ir ierīces ID, kas norāda uz pašu ierīci. DeviceName norāda ierīces nosaukumu, šajā gadījumā ultraskaņas sensoru, temperatūras sensoru,… DeviceType norāda ierīces tipu (sensoru vai izpildmehānismu).
Vēsture
Tabulas vēsture satur visu sensoru vēsturi, kopā ar de date (HistoryDate) pievienoto vēsturi un vēstures mirkļa vērtību. Tam ir arī divas svešas atslēgas:
- DeviceID, lai saistītu konkrētu žurnālu ar ierīci
- UserID, lai saistītu konkrētu lietotāju ar žurnālu (tas ir tāpēc, ka mēs izmantojam RFID un vēlamies pievienot vēstures žurnālu vienam konkrētam lietotājam)
Lietotājs
Tabulas lietotājs tiek izmantots, lai izveidotu RFID skenera lietotāja pieteikšanās sistēmu. Tas sastāv no segvārda, vārda, uzvārda, paroles un RFID (tas ir taga RFID numurs). Katrs lietotājs ir saistīts ar konteineru (ūdens tvertni), un tam ir arī konteinera ID kā ārējā atslēga.
Konteiners
Galda konteiners sastāv no dažādiem konteineriem. Tam ir ID, ContainerLocation (tas var būt uzņēmums, mājas vai jebkas cits). Visbeidzot, tam ir MaxLevel, kas apzīmē konteinera maksimālo tilpumu.
Iestatījumi
Tabulas iestatījumiem ir iestatījumu ID, un tiek izsekots katra lietotāja DailyGoal + datums, kad lietotājs pievienoja DailyGoal. Tas izskaidro ārējās atslēgas lietotāja ID.
Datu bāzes izgāztuvi var atrast manā GitHub krātuvē sadaļā Database.
4. darbība. Fona sistēmas iestatīšana
Nav projekta bez darba aizmugures.
Fona sistēma sastāv no 4 dažādām lietām:
palīgi
Palīgi ir visas klases, ko izmanto dažādiem sensoriem un izpildmehānismiem. Ir palīgs temperatūras sensoram (DS18B20), ultraskaņas sensoriem (HCSR05), lai varētu izmērīt attālumu, un LCD ekrānam var rakstīt ziņas.
krātuves
Repozitoriju mapē atradīsit 2 Python failus:
- Database.py, kas ir palīgs rindu izņemšanai no jūsu datu bāzes. Tas atvieglo datu bāzes izpildi un lasīšanu.
- DataRepository.py, kurā ir visi SQL vaicājumi, kas tiek izmantoti galvenajā kodā (app.py). Tos izmanto datu iegūšanai, atjaunināšanai vai dzēšanai no datu bāzes.
app.py
Šis ir galvenais projekta aizmugures kods. Tas veic iestatīšanu, definējot visas tapas un režīmus, un tajā ir kods sūkņa darbināšanai, temperatūras noteikšanai, lietotāja iegūšanai utt. Tajā ir arī maršruti, kas tiek izmantoti datu izgūšanai no datu bāzes un visas socketio.on. Katrai HTML lapai ir atšķirīga ligzda.on, lai pārliecinātos, ka katra funkcija darbojas pareizajā laikā.
config.py
Mums ir palicis viens fails: config.py. Šis ir fails ar konfigurācijas opcijām, lai izveidotu savienojumu ar jūsu datu bāzi. Neaizmirstiet iestatīt savus datu bāzes akreditācijas datus.
Funkciju var atrast manā krātuvē sadaļā Backend.
5. darbība: priekšpuses iestatīšana


Frontendam es sāku, izveidojot dizainu tam, kādam vajadzētu izskatīties manam tīmekļa serverim programmā AdobeXD. Es izmantoju logotipa krāsas, kas ir oranža un 2 dažādi zili toņi. Es centos saglabāt dizainu pēc iespējas vienkāršāku un izveidoju ūdens pilienu, kas parāda procentos, cik lielā mērā esat sasniedzis savu dienas mērķi.
Manā GitHub krātuvē manu priekšgalu atradīsit sadaļā Kods> Frontend. Ir svarīgi to ielīmēt savā Raspberry Pi mapē /var /html, lai tas būtu pieejams no tīmekļa servera.
Tas sastāv no pāris HTML failiem, kas ved uz dažādām lapām. Jūs atradīsit arī manu screen.css ar visu CSS, kas jums būs nepieciešams, lai tas izskatītos kā mans projekts. Visbeidzot, skriptos būs dažādi JavaScript faili. Šie skripti sazinās ar manu aizmuguri, lai parādītu datus no manas datu bāzes vai aizmugures.
Funkciju var atrast manā krātuvē sadaļā Frontend.
6. darbība: apvalka izveide



Ja mēs runājam par manu lietu, tad ir divas galvenās daļas:
Ārējais apvalks
Es izveidoju lietu no nulles. Es izmantoju saplākšņa dēļus un zāģēju tos pareizajos izmēros. Es saskrūvēju visus dēļus un izurbju caurumus LCD, pogai, ultraskaņas sensoram, lai noteiktu, vai tur ir ūdens pudele, un piltuvi ūdens sadalīšanai. Es sadalīju savu lietu dažādās sadaļās, lai ūdens un elektronika netiktu atdalītas, un es izmantoju kabeļu paliktni, lai aizsargātu kabeļus no ūdens noplūdes. Pievienotajā videoklipā varat redzēt lielāko daļu mana korpusa aspektu un to, kā es to izveidoju. Es arī 3D izdrukāju pogu, kas ir pielīmēta pie parastās pogas. Visbeidzot, es izmantoju pilienu paplāti, lai notvertu visu izlijušo ūdeni. Es arī izmantoju eņģes, lai varētu atvērt un aizvērt sānu paneli, lai apskatītu manu elektroniku. Jūs vienmēr varat izmantot lietotu dozatoru vai arī citus materiālus.
Lai veiktu precīzus mērījumus, es pievienoju PDF failu ar visiem korpusā izmantoto plākšņu izmēriem.
Ūdens tvertne
Ūdens tvertne nebija viegls darbs. Es saņēmu ūdens tvertni ar caurumu apakšā, tāpēc man vajadzēja to lentēt, lai apturētu noplūdi. Jums būs nepieciešami četri caurumi: viens temperatūras sensoram, otrs - sūkņa caurulēm. viens cauruļvadam tvertnes uzpildīšanai un otrs ultraskaņas sensoram. Šim pēdējam es 3D izdrukāju tam futrāli, kuru var atrast šeit. Tas nodrošina sensoru lielāku aizsardzību pret ūdeni. Pēc tam es urbju taisnstūri tvertnes augšdaļā, lai sensors būtu ieslēgts.
Ieteicams:
DIY automātiskais roku dezinfekcijas līdzekļa dozators: 6 soļi

DIY automātiskais roku dezinfekcijas līdzekļa dozators: Šajā projektā mēs izveidosim automātisko roku dezinfekcijas līdzekļa dozatoru. Šajā projektā tiks izmantots Arduino, ultraskaņas sensors, ūdens sūknis un roku dezinfekcijas līdzeklis. Ultraskaņas sensoru izmanto, lai pārbaudītu roku klātbūtni zem dezinfekcijas iekārtas izplūdes atveres
Automātiskais zāļu dozators: 5 soļi

Automātiskais zāļu izsmidzinātājs: Šis projekts ir paredzēts izmantošanai medicīnas jomā, kur gados vecākiem pacientiem ir jābūt drošam medikamentu sadalīšanas un izsniegšanas veidam. Šī ierīce ļauj zāles sadalīt porcijās līdz 9 dienām iepriekš un automātiski izsniegt pēc nepieciešamības
Automātiskais ziepju dozators, izmantojot Arduino: 8 soļi

Automātiskais ziepju dozators, izmantojot Arduino: Automātiskais ziepju dozators, izmantojot arduino: Tātad, čau, laipni lūdzam atgriezties pie jaunā raksta šajā rakstā, un mēs izgatavosim automātisku ziepju dozatoru, izmantojot arduino
Automātiskais rokas gēla dozators ar Arduino: 3 soļi

Automātiskais rokas gēla dozators ar Arduino: šis projekts ir balstīts uz ļoti vienkāršām un vieglām zināšanām, piemērots amatieriem, balstīts uz atvērtā pirmkoda kodiem un viegli atrodamām sastāvdaļām par ļoti pieņemamu cenu. Šī projekta mērķis ir saglabāt mūsu rokas tīras no vīrusiem un citi mikrobi
Automātiskais suņu dozators: 10 soļi

Automātiskais suņu dozators: Ar savu projektu es pārliecinos, ka, atstājot suni vienu mājās, viņš / viņa nekad nepaliks bez ēdiena. Automātiskais padevējs tiks " uzlauzts " no kukurūzas pārslu dozatora. Dozators ir suņu barības tvertne, ritenis apakšā