Мазмуну:

AirPi - Аба сапатынын сенсору: 8 кадам
AirPi - Аба сапатынын сенсору: 8 кадам

Video: AirPi - Аба сапатынын сенсору: 8 кадам

Video: AirPi - Аба сапатынын сенсору: 8 кадам
Video: Un'introduzione alla Disautonomia in Italiano 2024, Ноябрь
Anonim
AirPi - Аба сапатынын сенсору
AirPi - Аба сапатынын сенсору

Эмне үчүн башыңыз ооруп жатканын ойлонуп көрдүңүз беле? А эгер бул аба сапатынын начардыгынан болсо? Бул аппарат менен сиз андай болгонун текшере аласыз. Бул аппарат CO2-маанисин, TVOC-баасын, температураны жана нымдуулукту өлчөйт. Сиз абанын сапатын ЖК-дисплейде түз көрүп, эгер коркунучтуу болуп жатса, так көрсөткүчтү көрө аласыз. Ушинтип терезелериңизди убагында ача аласыз.

Эгер сиз IP -дарегин киргизсеңиз - браузериңизде түзмөктү иштеткенде көрсөтүлөт - веб -сайт ачылат. Сиз акыркы мүнөттөрдүн / сааттардын графиктери менен бирге ички чөйрө жөнүндө көптөгөн маалыматтарды көрө аласыз. Ошондой эле куралдар тактасында жандуу көрсөткүч жана кээ бир маалыматтар жана кеңештер бар.

Бул долбоор Howest Kortrijk, NMCT (New Media and Communication Technology) студенти тарабынан жасалган.

1 -кадам: материалдар

Материалдар
Материалдар

Бул мен бул долбоорду түзүү үчүн сатып алган нерселердин баары. Бул 3D-басып чыгаруу баасына жараша салыштырмалуу арзан долбоор. Эгерде сиз аны мектепте басып чыгара алсаңыз, бул абдан арзан болот. Болбосо, бул сиз аны басып чыгарган жериңизге жана сиз басып чыгарган материалга жараша болот. Мен көп нерсени сатып алганымды байкайсыз, анткени жекече резисторлорду же ледтерди табуу кыйын жана бул аны андан да арзан кылат. Эгер убактыңыз болсо, aliexpress.com сайтында көп нерсеге заказ берсеңиз болот, жеткирүү бир аз убакытты алышы мүмкүн, бирок ушундай жол менен сиз чыгашаңызды чектей аласыз.

Басып чыгаруусуз, бул долбоорго жумшаган акчам 81, 80 евро.

Бул сизге керектүү материалдар:

Район:

  • Raspberry Pi 3
  • SD карта 8 ГБ (минималдуу)
  • CCS811 абанын сапаты сенсору
  • DHT22 температура жана нымдуулук сенсору
  • Потенциометр (контрасттуу ЖК)
  • LCD 16x2
  • Аялдан аялга секирүүчү зымдар
  • Жашыл жана кызыл LED
  • Резисторлор (2x470ohm жана 1 4700ohm)

Кап:

  • 3D басып чыгаруу
  • Бурамалар
  • 2 компоненттүү клей (же башка ысык клей)
  • жип кесүүчү курал

Сиз PCB колдонуп жатканыңызда гана:

  • Кандооч
  • Flux (аны жеңилдетет)
  • Калай
  • Эксперимент pcb 2x4cm

2 -кадам: Байланыштар

Байланыштар
Байланыштар

Зымдарды жогорудагыдай туташтырыңыз. Сиз фритинг файлында электрдик схеманы көрө аласыз. Бул өтө татаал схема эмес, бирок аны мүмкүн болушунча кичине кылгыңыз келсе, анда сөзсүз түрдө эксперимент ПХБ тактасын алгыңыз келет. GND жана Vin PCB тактасына туташкандан башка, зым бирдей болмок. Сенсорлор аялдардын секирүүчү зымдары менен же эркектери ширетүү менен туташат. Резисторду DHT22 сенсоруна кошууну унутпаңыз.

Мен дагы кыска кабелдерди колдонууну сунуштайм, 10см кылышы керек. Болбосо кутуча дагы кабель менен толтурулат. Басып чыгаруунун өлчөмү мүмкүн болушунча кичине болгондуктан, сизге өтө узундарынын кереги жок.

3-кадам: 3D басып чыгаруу

3D басып чыгаруу
3D басып чыгаруу
3D басып чыгаруу
3D басып чыгаруу

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

Биз атүгүл ар бир компонентти тарттык, баары туура келеби же жокпу текшерүү үчүн. Файл баарына жеткиликтүү жана биз кээ бир пикирлерди уккубуз келет. Жыйынтыгына абдан ыраазы болдук.

4 -кадам: Код

Бул долбоордун кодун Githubдан тапса болот. Эгерде сиз башка казыктарды колдонгон болсоңуз (мисалы, светодиод үчүн башка GPIO-пин, сиз бул өзгөрмөлөрдү тууралашыңыз керек болот. Веб-сайт үчүн web.py жана sensor.py сенсорлорду окуп, жаңыртуу үчүн эки python скрипти иштейт. Биз LCD классты lcd.pyден импорттойбуз.

Конфигурацияланган малина пи менен баштасаңыз болот. Биринчиден, сиз бардык пакеттерди жаңыртып жана өркүндөтүшүңүз керек:

sudo apt-get update && sudo apt-get upgrade

Андан кийин төмөнкү пакеттерди орнотушуңуз керек:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Эми виртуалдык чөйрөнү түзүңүз:

me@my -rpi: ~ $ python3 -m пип орнотуу -pip setuptools дөңгөлөгүнүн виртуалдык системасын жаңыртуу

me@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system-site-packages env me@my-rpi: ~/project1 $ source env/bin/ активдештирүү (env) me@my-rpi: ~/project1 $ python -m pip орнотуу mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Бул жасалгандыктан, сиз менин GitHubдагы кодду виртуалдык чөйрөңүзгө клондой аласыз. Бул ар кандай жолдор менен жасалышы мүмкүн.

Conf каталогунда сиз керек болсо тууралашыңыз керек болгон төрт файлды таба аласыз. Сиз, албетте, ар бир файлдагы колдонуучуну жана үй дирекциясын өзгөртүшүңүз керек болот. UWSGI ini, эгер сиз менин кодумду өзгөртпөсөңүз, жакшы болушу керек, керек болсо колдонуучуну жана virtualenvди алмаштырыңыз.

CCS811 сенсору arduino үчүн атайылап колдонулгандыктан, бул i2c автобусу аркылуу малина пи ылдамдыгында байланыша албайт. Ылдамдыкты конфигурация файлында 10000 (мен 9600 колдондум) ылдамдыгына чейин азайтууга туура келет.

Сиз ошондой эле adafruit сенсорунун китепканасын алышыңыз керек. Мен муну ушул жерде түшүндүрө алмакмын, бирок мунун баарын эң сонун түшүндүргөн кемчиликсиз adafruit колдонмосу бар.

Малина туташканда python сценарийлери автоматтык түрдө иштешин каалайбыз, анткени сиз кызматтарды колдонушуңуз керек болот. Менин кодумду сактасаңыз, алар жакшы болушу керек. Алардын иштеши үчүн аларды иштетүү керек. Муну жасоодон мурун акыркы нерсе бар.

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

  • conf/nginxти *жеткиликтүү сайттарга *көчүрүү
  • Демейки конфигурацияга шилтемени алып салыңыз
  • Жаңы конфигурацияга шилтеме кошуңуз
  • Өзгөртүүлөрдү сактоо үчүн nginxти өчүрүп күйгүзүңүз

me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-*

Nginx жана mysql ар дайым иштеп турушу керек. Алар малина пи менен бирге башташат. Веб скрипт жана сенсор скрипти азырынча эмес.

Бул үчүн дагы эле бул эки кызматты бул буйруктар менен иштетүү керек:

sudo systemctl project1-flask.service'ти иштетет

sudo systemctl project1-sensor.service иштетүү

5 -кадам: Маалыматтар базасы

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

Менин маалымат базам үч таблицадан турат. Колдонуучунун башка таблицалар менен эч кандай байланышы жок. Бул сайтка кирүү жана кирүү үчүн гана колдонулат. Түзмөк күйгүзүлгөндө, CO2-мааниси жана TVOC-баасы 50 секунд сайын маалымат базасына жазылып турат. Температура жана нымдуулук 5 мүнөт сайын. Мына ушундай жол менен биз өткөндү так карап чыгабыз.

SQL файлын бул жерден тапса болот, бирок малина пи боюнча маалымат базасын алуу үчүн, сиз төмөнкү кадамдарды жасашыңыз керек:

Пакеттер мурунку кадамда орнотулгандан кийин, mariadb/mysql дароо иштеши керек. Сиз муну бул линия менен текшере аласыз:

me@my-rpi: ~ $ sudo systemctl status mysql

Маалыматтар базасын жана колдонуучуларды түзүү үчүн GitHubдан коддогу sql-скрипттерди иштете аласыз. Эгер сиз муну туура кылган болсоңуз, анда бул команданы колдонуу менен таблицаңызды көрүшүңүз керек:

me@my-rpi: ~ $ echo 'столдорду көрсөтүү;' | mysql project1 -t -u project1 -admin -p

Эми бизде баары даяр, баары иштей турганына ынануу үчүн муну корпусуз эле сынап көрсөңүз болот. Wi -Fiга туташпасаңыз, аны Ethernet кабели менен туташтырып, кол менен иштетишиңиз керек болот.

6-кадам: Wi-Fiга туташуу

Нанодо wpa-supplicant конфигурация файлын ачыңыз (мааниси жок, жөн гана текст редактору менен иштей ала турганыңызды текшериңиз).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Файлдын ылдый жагына өтүп, төмөнкүлөрдү кошуңуз (ssid-атыңызды жана сырсөзүңүздү өзүңүзгө алмаштырыңыз):

тармак = {

ssid = "ssid-name" psk = "password-name"}

Шифрленген сырсөздү түзүү үчүн wpa_passphrase колдонуп, нерселерди коопсуз кылуу үчүн жөн гана wpa_supplicant.conf pskке көчүрүп алсаңыз болот.

wpa_passphrase "ssid-name" "password-name"

Эгер сиз бул Wi-Fi тармагына автоматтык түрдө туташууну кааласаңыз жана конфигурация файлында башкалар болсо, конфигурация файлындагы тармакка бул сапты кошуу менен приоритетти жогорку деңгээлге өзгөрткөнүңүздү текшериңиз:

артыкчылык = 2

Интерфейсти кайра конфигурациялоону унутпаңыз:

wpa_cli -i wlan0 кайра конфигурациялоо

Эми баары даяр жана wifi тармагына туташтыңыз.

7 -кадам: Бардыгын бириктирүү

Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу

Баары зым менен туташтырылгандыктан, биз ишке кирише алабыз. Бул иштин эч кандай бош зымдары жок ачылышы үчүн иштелип чыккан. Бул бардыгы астыңкы бөлүккө бекитилгендигин билдирет. Биринчи нерсе - бул малинага кичине тууралоо. Анын ар бир бурчунда тешиктер бар, бирок алар керек болгондой чоң эмес. Диаметри 3 мм бурамага туура келиши үчүн жетиштүү болушу керек. Биз тешиктерди бир аз кененирээк кылып жылтыратышыбыз керек болчу.

Экинчи нерсе, ар бир тешикке бурама жипти кесүү. Бул оор сезилиши мүмкүн, бирок оң куралдар менен оңой эле жасалышы мүмкүн. Мен муну жергиликтүү аппараттык дүкөндө кылууну сунуштайм, жөн эле жип кесүүчү куралды сураңыз. Менин атам зергер болгондуктан, аны жумушта жасоо үчүн шаймандары бар болчу. Кийинчерээк басылышы үчүн мен жаңы stl-файлын жүктөшүм мүмкүн, бирок бул үчүн абдан так принтер керек.

Үчүнчү кадам - пиди астыңкы бөлүгүнө буроо. Сизге диаметри 3 мм болгон 7 7мм узундуктагы бурамалар керек болот. Ушундан кийин, PCD тактасын астыңкы бөлүктүн жогору жагындагы орунга түртсөңүз болот. CCS811 сенсорун сол жагында берилген жерге түртсө болот жана DHT11 оң табакка тиркелиши мүмкүн. Экөө тең обочолонуп, жетиштүү желдетилген, бирок кийинчерээк анын ичи дагы эле ысыганын байкадык. Бул тууралуу кененирээк кийинчерээк.

Андан кийин алардын түтүкчөсүнө LED ди тиркөө керек. Биз муну 2 компоненттүү клей менен жасадык, бирок сиз каалагандай жасай аласыз. Алардын ошол жерге жабышып калганын текшериңиз.

Эми сиз ЖК-дисплейди тиркей аласыз, сизге мурунку диаметри бар бурамалар керек, бирок бир аз узунураак. Меники 1см болды. Эгерде төрт бураманы бурап коюшса, анда бир гана нерсе калды. Жогорку бөлүктү тиркеңиз. Сизге болгону 4 бурама керек, диаметри бирдей жана бул 2см. Эми баары өз ордунда болушу керек жана аны баштасаңыз болот.

8 -кадам: Аны баштаңыз

Бул долбоордун баштоо процесси абдан оңой:

  1. Корпустун сол жагына электр кабелин туташтырыңыз. Бул анча көрүнбөйт, бирок желдеткичтер аркылуу көрө аласыз. Эгер аны бир жолу алсаңыз, бул экинчи көйгөй болбойт.
  2. Баштоо үчүн бир аз убакыт бериңиз.
  3. IP-дарек дисплейде он секундада көрүнөт. Сиз эмне кылышыңыз керек болсо, ошол эле тармакка туташканыңызды текшерип, браузериңиздин дарек тилкесине IP-дарегин киргизиңиз.
  4. Сиз азыр вебсайттасыз. Сизде азырынча каттоо эсеби жок, андыктан каттоо эсебин түзүңүз.
  5. Эгер сиз катталган болсоңуз, кириңиз.
  6. Бүттү! Сиз веб-баракчадан бардык маалыматтарды көрө аласыз жана ЖК-дисплей учурдагы абанын сапатын көрсөтүп турат.

Жылуулук көтөрүлгөндөн кийин, биз сенсорлорду корпустун түбүнө жайгаштырдык. Ошентип, температура катталган баалуулуктарга чоң таасирин тийгизбейт. Ошентип, оптималдуу өлчөөлөр үчүн түзмөктү ордунан тургузуңуз же жөн эле дубалга илип коюңуз.

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