
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51


Сәлем!
Бірнеше ай бұрын мен өз бөлмемде мектеп тапсырмасы бойынша қандай жоба жасағым келетіні туралы ойладым. Мен өзіме сәйкес келетін және болашақта маған пайдасы тиетін нәрсені жасағым келді. Кенеттен бөлмеге анам кіріп, судың аздығына шағымдана бастады. Менде бірден эпифания болды. Маған күнделікті су тұтынуды бақылайтын автоматты су таратқыш (кинотеатрдағыдай) жасау идеясы келді.
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 -қадам: Веб -сервер мен дерекқорды орнату
Біріншіден, жүйені келесі пәрмендер тізбегімен жаңарту және жаңарту жақсы:
- sudo apt dist-upgrade --auto-remove -y
- sudo apt жаңарту
- sudo apt жаңарту
- 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 үшін мен AdobeXD -де менің веб -серверім қандай болуы керек екенін жобалаудан бастадым. Мен логотипімде қызғылт сары және көк түстің 2 түрлі реңктерін қолдандым. Мен дизайнды мүмкіндігінше қарапайым етіп сақтауға тырыстым және күннің мақсатына қаншалықты жеткеніңізді көрсететін су тамшысын жасадым.
Менің GitHub репозиторийінде сіз менің Frontend -ді Code> Frontend бөлімінде таба аласыз. Оны Raspberry Pi қалтасына /var /html қалтасына қою маңызды, оны веб -серверден қол жетімді ету үшін.
Ол бірнеше беттерге апаратын бірнеше HTML файлдарынан тұрады. Сіз менің screen.css файлын менің жобама ұқсас етіп жасау үшін қажет барлық CSS -пен таба аласыз. Соңында, сізде сценарийлер астында әр түрлі JavaScript файлдары болады. Бұл сценарийлер менің Деректер қорымнан немесе дерекқордан деректерді көрсету үшін менің артқы жағыммен байланысады.
Артқы жағын Frontend астындағы менің репозиторийімде табуға болады.
6 -қадам: қаптаманы құру



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

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

Жарықтандыру мен қауіпсіздікті басқаруға арналған сенсорлық станциялар желісі: Бұл сенсорлық станциялар желісінің көмегімен негізгі/қосалқы режимде конфигурацияланған, сіз өз үйіңізде жарықтандыру мен қауіпсіздікті басқара аласыз. Бұл сенсорлық станциялар (осы жобадағы Node01, Node02) сізге қосылған негізгі станцияға (Node00) қосылған
Ағаштан жасалған әсерлі роботты қалай жинауға болады (1-бөлім: сызықты бақылауға арналған робот)-Micro: Bit: 9 қадамға негізделген

Ағаштан жасалған әсерлі робот қолын қалай жинауға болады (1-бөлім: сызықты бақылауға арналған робот)-Micro: Bit негізінде: Бұл ағаш жігіттің үш формасы бар, ол өте өзгеше және әсерлі. Содан кейін оған бір -бірден кірейік
Esp8266: 5 қадамдарын қолдана отырып, құрылғыларды бақылауға және ауа -райын бақылауға арналған IoT құрылғысын қалай жасауға болады

Esp8266 көмегімен құрылғыларды бақылауға және ауа-райын бақылауға арналған IoT құрылғысын қалай жасауға болады: Интернеттегі заттар (IoT)-бұл физикалық құрылғылардың («қосылған құрылғылар» және «ақылды құрылғылар» деп те аталады), ғимараттардың, және электроника, бағдарламалық қамтамасыз ету, датчиктер, қозғағыштар мен басқа да қондырмалармен жабдықталған
Қарқындылықты бақылауға арналған фоторезистенттілігі бар OLED шам шамы (TfCD): 4 қадам (суреттермен)

Қарқындылықты бақылауға арналған фоторезистенттілігі бар OLED шам шамы (TfCD): Бұл нұсқаулықта біз (O) жарық диодының шам сияқты жыпылықтағанын және қоршаған ортаның қарқындылығына жауап беретін схеманы қалай жасау керектігін көрсетеміз. Жарық интенсивтілігі төмен болған жағдайда, жарық көздерінен жарық аз шығуы қажет. Бұл қосымшаның көмегімен