Satura rādītājs:

Automātiskais ūdens dozators patēriņa izsekošanai: 6 soļi
Automātiskais ūdens dozators patēriņa izsekošanai: 6 soļi

Video: Automātiskais ūdens dozators patēriņa izsekošanai: 6 soļi

Video: Automātiskais ūdens dozators patēriņa izsekošanai: 6 soļi
Video: Nakšņošana Bibliotēkas viesnīcā Tokijā, Japānā | Shiba Park viesnīca 2024, Jūlijs
Anonim
Automātiskais ūdens izsmidzinātājs patēriņa izsekošanai
Automātiskais ūdens izsmidzinātājs patēriņa izsekošanai
Automātiskais ūdens izsmidzinātājs patēriņa izsekošanai
Automātiskais ūdens izsmidzinātājs patēriņa izsekošanai

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

Visas elektronikas savienošana
Visas elektronikas savienošana
Visas elektronikas savienošana
Visas elektronikas savienoš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:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt jauninājums
  3. sudo apt atjauninājums
  4. 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

Datu bāzes izveide
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

Frontend uzstādīšana
Frontend uzstādīšana
Frontend uzstādīšana
Frontend uzstādīš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

Korpusa izveide
Korpusa izveide
Korpusa izveide
Korpusa izveide
Korpusa izveide
Korpusa 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: