Мазмұны:

Тұтынуды бақылауға арналған автоматты су таратқыш: 6 қадам
Тұтынуды бақылауға арналған автоматты су таратқыш: 6 қадам

Бейне: Тұтынуды бақылауға арналған автоматты су таратқыш: 6 қадам

Бейне: Тұтынуды бақылауға арналған автоматты су таратқыш: 6 қадам
Бейне: Жарты сағат бір сағаттан + бақылау тақтасы сызатынан Excel Pivot кестелері! 2024, Қыркүйек
Anonim
Тұтынуды бақылауға арналған автоматты су таратқыш
Тұтынуды бақылауға арналған автоматты су таратқыш
Тұтынуды бақылауға арналған автоматты су таратқыш
Тұтынуды бақылауға арналған автоматты су таратқыш

Сәлем!

Бірнеше ай бұрын мен өз бөлмемде мектеп тапсырмасы бойынша қандай жоба жасағым келетіні туралы ойладым. Мен өзіме сәйкес келетін және болашақта маған пайдасы тиетін нәрсені жасағым келді. Кенеттен бөлмеге анам кіріп, судың аздығына шағымдана бастады. Менде бірден эпифания болды. Маған күнделікті су тұтынуды бақылайтын автоматты су таратқыш (кинотеатрдағыдай) жасау идеясы келді.

Raspberry Pi, бірнеше датчиктер, сорғы және аз біліммен мен мұны мүмкіндігінше жақсы етуге тырыстым.

Барлық қадамдардың соңында сізде су ыдысына толтыратын және сіздің Raspberry Pi -мен байланысатын және жұмыс жасайтын су таратқыш болады. Сіз суды тұтынуды пайызбен бақылап қана қоймай, сонымен қатар су ыдысының температурасы мен су деңгейін көруге мүмкіндік аласыз. Соңында сіз статистиканы тексере аласыз. Егер бұл сізге қызықты болып көрінсе, оны міндетті түрде тексеріп көріңіз!

GitHub репозиторийі:

Жабдықтар

Микроконтроллерлер

Таңқурай Pi 4

Датчиктер мен модульдер

Мен 4 сенсорды қолдандым:

2xHC-SR04 ультрадыбыстық сенсор

Ультрадыбыстық датчиктер қашықтықты ультрадыбыстық толқындардың көмегімен өлшейді. Сенсордың басы ультрадыбыстық толқын шығарады және нысанадан кері толқынды қабылдайды. Ультрадыбыстық датчиктер сәулелену мен қабылдау арасындағы уақытты өлшеу арқылы мақсатқа дейінгі қашықтықты өлшейді. Мен олардың екеуін жақын жерде бөтелке бар -жоғын тексеру үшін және резервуардағы суға дейінгі қашықтықты өлшеу үшін қолдандым.

Деректер тізімі

1x DS18B20 температура сенсоры

DS18B20-бұл максималды интеграцияланған 1 сымды бағдарламаланатын температура сенсоры. Ол химиялық орталардағы, шахталардағы немесе топырақтағы қатты орталарда температураны өлшеу үшін кеңінен қолданылады, мен оны су ыдысының су температурасын өлшеу үшін қолдандым.

Деректер тізімі

1x RC522 RFID модулі

RC522 - бұл NXP жартылай өткізгіштерден MFRC522 контроллеріне негізделген 13,56 МГц RFID модулі. Модуль I2C, SPI және UART қолдай алады және әдетте RFID картасы мен кілтпен беріледі. Ол келу жүйелерінде және басқа адамдарды/объектілерді сәйкестендіру қосымшаларында жиі қолданылады. Бұл жобада ол сәйкестендіру/кіру жүйесі үшін қолданылады.

Деректер тізімі

Және 2 атқарушы:

1х 12-24В перисталтикалық сорғы

Мен резервуардағы суды бөтелкеге жеткізу үшін перистальтикалық сорғыны қолдандым. Көптеген сорғылар тым баяу болды, сондықтан мен 24В қуат адаптерімен жұмыс жасайтын 24В нұсқасын таңдадым.

1x СКД дисплейі

СКД IP мекенжайын және маңызды хабарларды көрсету үшін қолданылады. Сұйық кристалды дисплей (СКД)-поляризаторлармен біріктірілген сұйық кристалдардың жарық модуляциялық қасиеттерін қолданатын жалпақ панельді дисплей немесе басқа электронды модуляцияланған оптикалық құрылғы.

Деректер тізімі

Қаптама

Қаптама туралы айтатын болсам, мен үй қоймасынан (менің жағдайда Бельгиядағы Брико) керек -жарақтармен DIY жасадым. Мен фанераны қолдандым, мен оны қажетті мөлшерде кесіп алдым. Мен келесі қадамда өз ісімді қалай жасағаным туралы айтатын боламын, бірақ сізге қажет нәрселер:

  • 3x фанера тақтайшалары
  • 1x Кішкене шұңқыр
  • 1x су ыдысы (сіз өзіңіз қалаған соманы таңдай аласыз, мен 10 л жүрдім)
  • 1x тамшы науасы

Сіз барлық материалдар мен бағаны қоса берілген ББ -дан таба аласыз.

1 -қадам: барлық электрониканы қосу

Барлық электрониканы қосу
Барлық электрониканы қосу
Барлық электрониканы қосу
Барлық электрониканы қосу

Енді біз барлық электрониканы қорытындыладық, оларды қосу уақыты келді. Мен сізге барлық электрониканы қалай және қай жерде қосу керектігін көрсету үшін екі фритзинг схемасын жасадым: бір тақта мен бір схема. Сіз Fritzing жүктеу сілтемесін мына жерден таба аласыз: https://fritzing.org/download/. Жоғарыда айтылғандай, мен Raspberry Pi қолдандым және RFID сканерін, екі ультрадыбыстық сенсорды, бір температура сенсорын, СКД мен суға арналған перистальтикалық сорғыны қостым.

Мен екі тізбекті PDF форматында тіркедім, егер сіз оны мұқият қарастырғыңыз келсе.

2 -қадам: Raspberry Pi орнату

Біз Raspberry Pi -ді пайдаланып, бәрін басқарамыз: backend, frontend және мәліметтер базасы.

Raspberry Pi автоматты түрде іске қосылмайды. Біз оны қолдануды бастау үшін бірнеше қадамдардан өтуіміз керек.

1 -қадам: Распби

Егер сіз жаңа Raspberry Pi қолдансаңыз, сізге raspbian қажет болады. Жүктеу сілтемесі мен оқулықты мына жерден табуға болады.

2 -қадам: суретті SD -ге жазу

Енді сізде Raspbian кескіні бар болғандықтан, суретті файлды SD картасына жазу үшін сізге сурет жазу бағдарламасы қажет (мен win32diskimager ұсынамын). Толық оқулықты мына жерден табуға болады.

3 -қадам: Raspberry Pi -ге кіру

«Powershell» ашыңыз және «ssh [email protected]» теріңіз. Егер бәрі дұрыс болса, олар сізден құпия сөз сұрайды (әдепкі құпия сөз әрқашан таңқурай болады). Әдетте бұл сізге Raspberry Pi -ге кіруі керек. Енді біз параметрлерге біраз өзгерістер енгізуіміз керек. Терминалға sudo raspi-config теріп, enter пернесін басыңыз. Локализация опцияларына өтіңіз> уақыт белдеуін өзгертіңіз және оны уақыт белдеуіне орнатыңыз. Сіз сондай-ақ Wi-Fi елін өзіңіздің орналасқан жеріңізге өзгертуіңіз керек. Соңында интерфейс опцияларына өтіп, SPI, I2C және 1 сымды қосыңыз. Бұл сенсорларды дұрыс пайдалану үшін маңызды болады.

4 -қадам: Интернетке қосылуды орнату

Біз WiFi желісін қолданамыз. Үй желісін келесі жолмен қосуға болады:

wpa_passphrase «YourNetwork» «YourSSID» >> /etc/wpa_supplicant/wpa_supplicant.conf

Қосылу үшін сізге Pi -ді қайта жүктеу қажет болады. Оның жұмыс істегенін тексеру үшін ifconfig көмегімен IP мекенжайы бар -жоғын тексеруге болады.

5 -қадам: Веб -сервер мен дерекқорды орнату

Біріншіден, жүйені келесі пәрмендер тізбегімен жаңарту және жаңарту жақсы:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt жаңарту
  3. sudo apt жаңарту
  4. sudo apt autoremove

Бұл аяқталғаннан кейін бізге веб -сервер мен мәліметтер базасы үшін келесі пакеттер қажет болады:

Apache

sudo apt install apache2 -y

PHP

sudo apt php орнатыңыз

sudo apt install phpMyAdmin -y

Құпия сөзді орнатуды сұраған кезде қауіпсіз MySQL құпия сөзін орнатуды ұмытпаңыз.

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt php -mysql -y орнатыңыз

sudo systemctl apache2.service қайта іске қосыңыз

6 -қадам: Python кітапханаларын орнату

Артқы жағы үшін бізге Python үшін кейбір кітапханалар қажет болады. Біз оларды pip3 арқылы орнатамыз, себебі біз python3 қолданамыз.

pip3 mysql-Connector-python орнатыңыз

pip3 колба-розеткасын орнатады

pip3 колбаны орнатады

pip3 gevent орнатыңыз

pip3 gevent-websocket орнатыңыз

sudo apt install python3 -mysql.connector -y

pip3 mfrc522 орнатыңыз! (бұл RFID сканерін пайдалану үшін қажет болады)

7 -қадам: Visual Studio кодын дайындау

Кодты іске қосу үшін мен Raspberry Pi -ге қосылу үшін Visual Studio кодын қолдануды ұсынамын. VSC орнату үшін жүктеу сілтемесін мына жерден табуға болады.

Егер сізде SSH көмегімен қашықтан әзірлеу әлі орнатылмаған болса, мұны істеу қадамдарын мына жерден таба аласыз.

3 -қадам: Мәліметтер қорын құру

Мәліметтер қорын құру
Мәліметтер қорын құру

Біз барлық сенсорлық деректер мен пайдаланушы деректерін дерекқорда сақтаймыз.

Менің мәліметтер қорым 5 кестеден тұрады:

Құрылғы

Кестелік құрылғыда DeviceID бар, ол құрылғының өзіне сілтеме жасайды. DeviceName құрылғының атауын береді, бұл жағдайда ультрадыбыстық сенсор, температура сенсоры,… DeviceType құрылғының түрін береді (сенсор немесе жетегі).

Тарих

Кесте тарихы барлық датчиктер тарихын қамтиды, сонымен бірге (DateDate) тарих қосылады және тарихтағы сәттің мәні қосылады. Ол сондай -ақ екі шетелдік кілтке ие:

  • DeviceID, белгілі бір журналды құрылғыға байланыстыру
  • UserID - белгілі бір пайдаланушыны журналға байланыстыру үшін (бұл біз RFID -ті қолданатындықтан және біз бір журналға тарих журналын қосқымыз келеді)

Қолданушы

Table User RFID сканері бар пайдаланушыға кіру жүйесін құру үшін қолданылады. Ол лақап аты, аты, фамилиясы, құпия сөзі мен RFID -ден тұрады (бұл тегтің RFID нөмірі). Әрбір пайдаланушы контейнерге (су ыдысына) қосылған, сонымен қатар контейнер идентификаторын шетелдік кілт ретінде алып жүреді.

Контейнер

Үстел контейнері әр түрлі контейнерлерден тұрады. Оның идентификаторы, ContainerLocation бар (бұл кәсіпорын, үй немесе басқа нәрсе болуы мүмкін). Ақырында, контейнердегі максималды көлемді білдіретін MaxLevel бар.

Параметрлер

Кесте параметрлерінде Параметрлер идентификаторы бар және әрбір пайдаланушының DailyGoal + күнтізбесін пайдаланушы қосқан күнді бақылайды. Бұл шетелдік кілт UserID түсіндіреді.

Деректер қорының қоқысын менің GitHub репозиторийінде Деректер базасынан табуға болады.

4 -қадам: Артқы жағын орнату

Жұмыс істемейтін артқы жағы жоқ жоба жоқ.

Артқы жағы 4 түрлі нәрседен тұрады:

көмекшілер

Көмекшілер - бұл әр түрлі сенсорлар мен жетектер үшін қолданылатын барлық сыныптар. Температура сенсорына (DS18B20), ультрадыбыстық датчиктерге (HCSR05) қашықтықты өлшеуге және СКД экранға хабарлама жаза алатын көмекші бар.

қоймалар

Репозиторийлер қалтасында сіз 2 Python файлын таба аласыз:

  • Database.py - бұл дерекқордан жолдарды шығаруға көмекші. Бұл дерекқорды оқу мен оқуды жеңілдетеді.
  • Негізгі кодта (app.py) қолданылатын SQL сұрауларының барлығын қамтитын DataRepository.py. Олар мәліметтер қорынан деректерді алу, жаңарту немесе жою үшін қолданылады.

app.py

Бұл жобаның негізгі коды. Ол барлық түйреуіштер мен режимдерді анықтау арқылы орнатуды жүзеге асырады және сорғының жұмысын, температураны алуды, пайдаланушыны алуды және т. Ол сонымен қатар Дерекқордан және барлық socketio.on -дан деректерді алу үшін қолданылатын маршруттарды қамтиды. Әр HTML парағы үшін әр функцияның дәл уақытта жұмыс істейтініне көз жеткізу үшін басқа socketio.on.

config.py

Бізде бір файл қалды: config.py. Бұл дерекқормен қосылатын конфигурация опциялары бар файл. Мәліметтер қорының тіркелгі деректерін орнатуды ұмытпаңыз.

Артқы жағын менің репозиторийімде Backend астында табуға болады.

5 -қадам: Frontend орнату

Frontend орнату
Frontend орнату
Frontend орнату
Frontend орнату

Frontend үшін мен AdobeXD -де менің веб -серверім қандай болуы керек екенін жобалаудан бастадым. Мен логотипімде қызғылт сары және көк түстің 2 түрлі реңктерін қолдандым. Мен дизайнды мүмкіндігінше қарапайым етіп сақтауға тырыстым және күннің мақсатына қаншалықты жеткеніңізді көрсететін су тамшысын жасадым.

Менің GitHub репозиторийінде сіз менің Frontend -ді Code> Frontend бөлімінде таба аласыз. Оны Raspberry Pi қалтасына /var /html қалтасына қою маңызды, оны веб -серверден қол жетімді ету үшін.

Ол бірнеше беттерге апаратын бірнеше HTML файлдарынан тұрады. Сіз менің screen.css файлын менің жобама ұқсас етіп жасау үшін қажет барлық CSS -пен таба аласыз. Соңында, сізде сценарийлер астында әр түрлі JavaScript файлдары болады. Бұл сценарийлер менің Деректер қорымнан немесе дерекқордан деректерді көрсету үшін менің артқы жағыммен байланысады.

Артқы жағын Frontend астындағы менің репозиторийімде табуға болады.

6 -қадам: қаптаманы құру

Қаптаманы құру
Қаптаманы құру
Қаптаманы құру
Қаптаманы құру
Қаптаманы құру
Қаптаманы құру

Егер менің ісім туралы айтатын болсақ, онда екі негізгі бөлім бар:

Сыртқы корпус

Мен істі нөлден құрдым. Мен фанера тақталарын қолдандым және оларды дұрыс мөлшерде араладым. Мен барлық тақталарды бұрап, су бөтелкесі мен су тарататын шұңқырдың бар -жоғын анықтау үшін СКД, түйме, ультрадыбыстық сенсор үшін тесіктер бұрғыладым. Мен суды және электрониканы бөлек ұстау үшін ісімді әр түрлі бөлімдерге бөлдім, мен кабельдерді судың ағуынан қорғау үшін кабельдік науаны қолдандым. Қосымша бейнематериалда сіз менің корпусымның көптеген аспектілерін және оны қалай жасағанымды көре аласыз. Мен сондай -ақ қарапайым түймеге жабыстырылған түймені 3D басып шығардым. Ақырында мен төгілген суды жинау үшін тамшы табақшасын қолдандым. Мен сонымен қатар электрониканы қарау үшін бүйірлік панельді ашып, жабу үшін ілмектерді қолдандым. Сіз әрқашан екінші диспенсерді қолдана аласыз немесе басқа материалдарды пайдалана аласыз.

Менің құрастыруымның дәл өлшемдері үшін мен корпуста пайдаланылған пластиналардың барлық өлшемдері бар PDF тіркедім.

Су ыдысы

Су ыдысы оңай жұмыс емес еді. Менде түбінде тесік бар су ыдысы болды, сондықтан ағып кетуді тоқтату үшін оны таспамен жабуға тура келді. Сізге төрт тесік қажет: біреуі температура сенсоры үшін, екіншісі сорғыңыздың құбыры үшін. біреуі резервуарды толтыруға арналған құбырлар үшін, екіншісі ультрадыбыстық сенсор үшін. Бұл үшін мен 3D -дің корпусын басып шығардым, оны мына жерден табуға болады. Бұл сенсорды судан көбірек қорғайды. Содан кейін мен сенсорды қосу үшін резервуардың жоғарғы жағында тіктөртбұрыш бұрғыладым.

Ұсынылған: