Мазмуну:

Керектөөнү көзөмөлдөө үчүн автоматтык суу бөлүштүргүч: 6 кадам
Керектөөнү көзөмөлдөө үчүн автоматтык суу бөлүштүргүч: 6 кадам

Video: Керектөөнү көзөмөлдөө үчүн автоматтык суу бөлүштүргүч: 6 кадам

Video: Керектөөнү көзөмөлдөө үчүн автоматтык суу бөлүштүргүч: 6 кадам
Video: Мен уурулук менен ооруймун (Клептоманкамын) / менин сырым / кызыктуу окуялар 2024, Июль
Anonim
Керектөөнү көзөмөлдөө үчүн автоматтык суу бөлүштүргүч
Керектөөнү көзөмөлдөө үчүн автоматтык суу бөлүштүргүч
Керектөөнү көзөмөлдөө үчүн автоматтык суу бөлүштүргүч
Керектөөнү көзөмөлдөө үчүн автоматтык суу бөлүштүргүч

Салам!

Бир -эки ай мурун мен бөлмөмдө мектепте тапшырма үчүн кандай проект жасагым келгенин ойлонуп жаткам. Мен өзүмө ылайыктуу жана келечекте мага пайдалуу боло турган нерсени жасагым келди. Бир маалда бөлмөгө апам кирип, суу жетишсиз деп нааразы боло баштады. Мен дароо эпифанияга ээ болдум. Идея мага суу керектөөнү күн сайын көзөмөлдөгөн автоматтык суу куюучу (кинотеатрдагыдай) жасоо үчүн келди.

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

Бардык кадамдардын аягында сизде суу куюлган идишиңизди толтуруучу жана Raspberry Pi менен туташтыруучу жана өз ара аракеттешүүчү суу бөлүштүргүч болот. Сууну керектөөнү пайыздын негизинде гана көзөмөлдөп койбостон, суу контейнериңиздин температурасын жана суунун деңгээлин көрүү мүмкүнчүлүгүнө ээ болосуз. Акыр -аягы, сиз статистикаңызды текшере аласыз. Эгер бул сизге кызыктуу угулса, сөзсүз текшерип көрүңүз жана өзүңүз да сынап көрүңүз!

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

Жабдуулар

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

Raspberry Pi 4

Сенсорлор жана модулдар

Мен 4 сенсорду колдондум:

2xHC-SR04Ultrasonic Sensor

УЗИ сенсорлору аралыкты УЗИ толкундарынын жардамы менен өлчөйт. Сенсордун башы УЗИ толкунун чыгарат жана бутага чагылган толкунду алат. УЗИ сенсорлору эмиссия менен кабыл алуу ортосундагы убакытты өлчөө менен бутага чейинки аралыкты өлчөйт. Мен алардын экөөнү жанында бөтөлкө бар -жогун текшерүү үчүн жана резервуардагы сууга чейинки аралыкты өлчөө үчүн колдондум.

Маалымат жадыбалы

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

DS18B20-бул максималдуу интеграцияланган 1 зымдуу программалоочу температура сенсору. Бул химиялык эритмелер, шахталар же топурак сыяктуу катуу чөйрөдө температураны өлчөө үчүн кеңири колдонулат. Мен аны суу резервуарынын суу температурасын өлчөө үчүн колдоном.

Маалымат жадыбалы

1x RC522 RFID модулу

RC522 - бул NXP жарым өткөргүчтөрүнөн MFRC522 контроллерине негизделген 13.56MHz RFID модулу. Модуль I2C, SPI жана UART колдойт жана адатта RFID картасы жана ачкыч фоб менен жөнөтүлөт. Ал, адатта, катышуу системаларында жана башка адамды/объектти аныктоо колдонмолорунда колдонулат. Бул долбоордо ал идентификация/кирүү тутуму үчүн колдонулат.

Маалымат жадыбалы

Жана 2 аткаруучу:

1x Peristaltic Pump 12-24V

Перистальтикалык насосту колдонуп, резервуардагы сууну суу куюлган бөтөлкөгө алдым. Көпчүлүк насостор өтө жай иштегендиктен, мен 24В кубаттуулуктагы адаптер менен иштеген 24V версиясын тандадым.

1x LCD дисплей

ЖК IP дарегин жана маанилүү билдирүүлөрдү көрсөтүү үчүн колдонулат. Суюк-кристалдуу дисплей (ЖК)-поляризаторлор менен айкалышкан суюк кристаллдардын жарык модуляциялоочу касиеттерин колдонгон жалпак панелдүү дисплей же башка электрондук модуляцияланган оптикалык түзүлүш.

Маалымат жадыбалы

Корпус

Корпус жөнүндө айтсам, мен үйдүн кампасынан (Бельгиядагы Брико) керектүү буюмдар менен DIY жасадым. Мен керектүү өлчөмдө кескен фанераны колдондум. Мен кийинки кадамда менин ишимди кантип кылганым жөнүндө сүйлөшөм, бирок бул жерде сизге керектүү нерселер:

  • 3x фанера тактайлары
  • 1x кичинекей воронка
  • 1х Суу сактагыч (сиз каалаган сумманы тандай аласыз, мен 10 л кеттим)
  • 1х тамчы табак

Сиз бардык материалдарды жана бааларды тиркелген БОМдон таба аласыз.

1 -кадам: Бардык Электрониканы туташтыруу

Бардык электрониканы туташтыруу
Бардык электрониканы туташтыруу
Бардык электрониканы туташтыруу
Бардык электрониканы туташтыруу

Эми биз бардык электрониканы жыйынтыктагандан кийин, аларды туташтырууга убакыт келди. Мен сизге бардык электрониканы кантип жана кайда туташтыруу керек экенин көрсөтүү үчүн эки Fritzing схемасын жасадым, бири нан жана бир схема. Сиз Fritzingтин жүктөө шилтемесин бул жерден таба аласыз: https://fritzing.org/download/. Жогоруда айтылгандай, мен Raspberry Pi колдонуп, RFID сканерин, эки УЗИ сенсорун, бир температура сенсорун, ЖКны жана сууга перисталтикалык насосту туташтырдым.

Эгерде мен жакшылап карагың келсе, мен эки схеманы PDFке тиркеп койдум.

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

Биз Raspberry Pi'бизди колдонуп, бардыгын башкарабыз: backend, frontend жана маалымат базасы.

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

1 -кадам: Raspbian

Эгер сиз жаңы 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 upgrade
  3. sudo apt update
  4. sudo apt autoremove

Бул аяктагандан кийин, биздин веб -сервер жана маалымат базасы үчүн төмөнкү пакеттерге муктаж болобуз:

Apache

sudo apt install apache2 -y

PHP

sudo apt php орнотуу

sudo apt 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 Code колдонууну сунуштайм. VSC орнотуу үчүн жүктөө шилтемесин бул жерден тапса болот.

Эгерде сизде SSHди колдонуу менен алыстан иштөө орнотула элек болсо, анда муну жасоо кадамдарын бул жерден таба аласыз.

3 -кадам: Маалыматтар базасын түзүү

Маалыматтар базасын түзүү
Маалыматтар базасын түзүү

Биз бардык сенсорлорубузду жана колдонуучулардын маалыматтарын маалымат базасына сактайбыз.

Менин маалымат базам 5 таблицадан турат:

Түзмөк

Таблицада түзмөктүн өзүнө шилтеме берген DeviceID бар. DeviceName түзмөктүн атын берет, бул учурда УЗИ сенсору, температура сенсору,… DeviceType түзмөктүн түрүн (сенсор же аткаруучу) берет.

Тарых

Таблица тарыхы бардык датчик тарыхын камтыйт, дата (HistoryDate) менен бирге тарых кошулган жана тарыхтагы учурдун мааниси. Ошондой эле эки чет өлкөлүк ачкыч бар:

  • DeviceID, белгилүү бир журналды түзмөккө байланыштыруу үчүн
  • UserID, белгилүү бир колдонуучуну журналга байланыштыруу үчүн (бул биз RFIDди колдонуп жаткандыктан жана тарых журналын белгилүү бир колдонуучуга кошкубуз келет)

Колдонуучу

Таблица Колдонуучусу RFID сканери менен Кирүүчү Кирүү Системасын түзүү үчүн колдонулат. Бул Ник, Аты, Фамилия, Сырсөз жана RFIDден турат (бул теги RFID номери). Ар бир колдонуучу контейнерге (суу сактагычка) шилтеме кылынат, ошондой эле ContainerIDди тышкы ачкыч катары алып жүрөт.

Контейнер

Үстөл контейнери ар кандай контейнерлерден турат. Бул ID, ContainerLocation бар (бул ишкана, үй же башка нерсе болушу мүмкүн). Акырында, анын контейнердеги эң чоң көлөмүн билдирген MaxLevel бар.

Орнотуулар

Таблицанын Орнотууларында SettingsID бар жана ар бир колдонуучунун DailyGoal + күнүнө колдонуучу кошкон күндү көзөмөлдөйт. Бул Тышкы ачкыч UserIDди түшүндүрөт.

Берилиштер базасынын таштандысын GitHub репозиторийимде Дайындар базасынан тапса болот.

4 -кадам: Backend орнотуу

Иштеген арткы бөлүгү жок долбоор жок.

Арткы жагы 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 файлдарынан турат. Ошондой эле менин проектиме окшош кылуу үчүн керек болгон бардык CSS менен менин screen.css файлымды таба аласыз. Акырында, сизде скрипттердин астында ар кандай JavaScript файлдары болот. Бул сценарийлер маалымат базамдан же backendден маалыматтарды көрсөтүү үчүн менин арткы бетим менен байланышат.

Арткы жагын Frontend астындагы репозиторийимден тапса болот.

6 -кадам: Корпусту түзүү

Корпусту түзүү
Корпусту түзүү
Корпусту түзүү
Корпусту түзүү
Корпусту түзүү
Корпусту түзүү

Эгерде менин ишим жөнүндө айта турган болсок, анда эки негизги бөлүк бар:

Корпустун сыртында

Мен ишти башынан баштап курдум. Мен фанера тактайларын колдонуп, аларды туура өлчөмдө араладым. Мен баардык тактайларды бурап, ЖК үчүн тешиктерди бурдум, баскычты, УЗИ сенсорунда суу бөтөлкөсү бар экенин же сууну бөлүштүрүүчү воронка бар экенин аныкташ үчүн. Мен сууну жана электрониканы бөлүп туруу үчүн ишимди ар кандай бөлүмдөргө бөлдүм жана кабелдерди суу агуусунан коргоо үчүн кабелдик лотокту колдондум. Тиркелген видеодо менин корпустун көпчүлүк аспектилерин жана аны кантип жасаганымды көрө аласыз. Мен дагы 3D баскычты басып чыгардым, ал кадимки баскычка чапталган. Акыры тамчылаган лоток менен бардык төгүлгөн сууну кармап алдым. Мен ошондой эле электроникамды кароо үчүн каптал панелди ачуу жана жабуу үчүн илгичтерди колдондум. Сиз ар дайым экинчи колдогу диспенсерди колдонсоңуз болот же башка материалдарды колдонсоңуз болот.

Менин курганымды так өлчөө үчүн, мен корпуста колдонулган плиталардын бардык өлчөмдөрү менен PDF тиркедим.

Суу сактагыч

Суу сактагыч оңой иш болгон жок. Мен түбүндө тешиги бар суу сактагыч алдым, ошондуктан агууну токтотуу үчүн аны скотч менен жабууга туура келди. Сизге төрт тешик керек: бири температура сенсору үчүн, бири насостун түтүгү үчүн. бири түтүктү резервуарга толтуруу үчүн, экинчиси УЗИ сенсоруна. Бул үчүн, мен 3D үчүн капты басып чыгардым, аны бул жерден тапса болот. Бул сенсорго суудан көбүрөөк коргоону берет. Мен сенсорду иштетүү үчүн резервуардын үстүнө тик бурчтук бургуладым.

Сунушталууда: