Мазмұны:

TheAir - газ сенсоры жобасы: 10 қадам
TheAir - газ сенсоры жобасы: 10 қадам

Бейне: TheAir - газ сенсоры жобасы: 10 қадам

Бейне: TheAir - газ сенсоры жобасы: 10 қадам
Бейне: Загадка Титаника : Как они могли не заметить айсберг?! Самая подробная история! 2024, Шілде
Anonim
The Air - газ сенсоры жобасы
The Air - газ сенсоры жобасы

Көміртек тотығы мен көмірқышқыл газы, сонымен қатар СО және СО2 деп аталады. Түссіз, иіссіз, дәмсіз газдар жабық бөлмеде жоғары концентрацияда болғанда қауіпті. Егер сіз, мысалы, нашар оқшауланған студенттік бөлмеде, жақсы ауа ағыны жоқ және қандай да бір себептермен тостер айтатын болсаңыз, тосттар біртүрлі дыбыс шығарады. Содан кейін сіз бұл газдармен байланысқа түсуіңіз мүмкін, және бұл орын алған кезде, ол тек кішкене бас ауруымен аяқталады деп үміттенеміз, себебі ол жоғары концентрацияда сізді емдеуге немесе тіпті өлтіруге әкелуі мүмкін (өте сирек болса да).

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

Студент, ата -ана, жалғызбасты немесе тірі жан ретінде. Бұл сіздің жеке үйіңізде өмір сүру кезінде әдетте аулақ болғыңыз келетін нәрсе. Бұл өз өмірін жеңілдеткісі келетіндерге көмектеседі.

Жабдықтар

  • Raspberry Pi 3+
  • Шағын зарядтағыш 5В/2.5А
  • Micro-sd картасы
  • Сенсорлар

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (температура)
  • 2 х 12 В тұрақты желдеткіш
  • 2 x 2n2222 транзисторлары
  • СКД дисплейі 16*2
  • Батырмаға басу
  • MCP3008
  • Логи деңгейінің түрлендіргіші
  • Ethernet кабелі (орнату себептері бойынша)

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

Raspberry Pi орнату
Raspberry Pi орнату
Raspberry Pi орнату
Raspberry Pi орнату

Rpi -мен жұмыс жасамас бұрын бізге кейбір бағдарламалық қамтамасыз ету қажет болады.

  • WinSCP немесе FilleZilla (егер файлдарды компьютерден Rpi -ге тасымалдағыңыз келсе, міндетті емес)
  • Win32 дискісі немесе Etcher (сізге көбірек ұнайды)
  • Putty немесе MobaXterm (сізге көбірек ұнайды)
  • Жұмыс үстелімен растпийлік сурет

Бастамас бұрын, мен бұл оқулықты жасау кезінде, басқа бағдарламаны таңдағанда, мен оны ұсынамын дегенді білдірмейтінін айтқым келеді. Мысалы, мен этчерді қолданғанды ұнатамын, себебі қолданушыға ыңғайлы, бірақ Win32 -те резервтік көшірме жасау мүмкіндігі бар. Енді бұл менің жүйемнен тыс, бастайық.

Егер сізде Wi -Fi желісіне қосылған Rpi бар болса, 3 -қадамға өтіңіз.

Алдымен біз Etcher көмегімен Raspbian кескінін sd картасына саламыз. Енді sd картасын шығармас бұрын, біз суретте кездесетін cmdline.txt файлындағы кейбір «заттарды» өзгертеміз.. Txt файлын ашыңыз -> «ip = 169.254.10.1» жолын қосыңыз (тырнақшасыз) жолдың соңына (барлығы 1 жолда) -> Файлды сақтау

Екіншіден, жүктеу бөлімінде «ssh» деп аталатын бос қалтаны жасаңыз (тырнақшасыз).

Осыдан кейін сіз Microsd -ты қауіпсіз шығарып, оны Rpi -ге енгізе аласыз.

Қатты кодталған статикалық IP -тің себебі - Rpi -ге қосылуды жеңілдету. Егер қандай да бір себептермен Rpi -де DHCP бар IP болмаса, онда сіз статикалық IP -ді оңай қолдана аласыз.

2 -қадам: Қосылу және жергілікті желіге Rpi сымсыз байланысы

Қосылу және жергілікті желіге Rpi сымсыз байланысы
Қосылу және жергілікті желіге Rpi сымсыз байланысы
Қосылу және жергілікті желіге Rpi сымсыз қосылу
Қосылу және жергілікті желіге Rpi сымсыз қосылу
Қосылу және жергілікті желіге Rpi сымсыз байланысы
Қосылу және жергілікті желіге Rpi сымсыз байланысы
Қосылу және жергілікті желіге Rpi сымсыз байланысы
Қосылу және жергілікті желіге Rpi сымсыз байланысы

Біз Rpi -> компьютер мен Rpi арасындағы Ethernet кабелін қосамыз.

  1. Putty бағдарламасын бастаңыз және оны толтырыңыз:

    • Хост атауы (немесе IP -адрес): 169.254.10.1
    • Порт: 22
  2. Терминал пайда болады және сіз әдепкі пайдаланушы аты мен құпия сөзді енгізесіз:

    • Пайдаланушы аты: pi
    • Құпия сөз: таңқурай

Енді біз rpi -ге жергілікті түрде қосылғандықтан, Rpi -дің сіздің Wi -Fi желісіне қосылуын қалаймыз.

  1. Қосымша: «sudo raspi-config» теріңіз
  2. Мұнда сізге pi пайдаланушысының құпия сөзін өзгерту қажет болады (қауіпсіздік себептері)
  3. Содан кейін Локализация опциялары -> Уақытты өзгерту (дұрысын таңдаңыз) -> Содан кейін Wifi еліне өтіңіз -> елді таңдаңыз.
  4. Raspi-config жабыңыз және қайта жүктеңіз.
  5. Жүйеге кіргенде, уақытша өзіңізді түбірлік пайдаланушы етіңіз -> sudo -i
  6. Желіні Rpi -ге қосу үшін осы пәрменді жазыңыз (тізімдегі код)

    • пароль = «пароль» (тырнақшалармен)
    • Атаулы желі = «SSID»
    • Double >>! Қолдануды ұмытпаңыз! Маңызды!

echo «құпия сөз» | wpa_passphrase «SSID» >> /etc/wpa_supplicant/wpa_supplicant.conf

Енді қайтадан қайта жүктеңіз

Қайта қосылу кезінде IP -ді теру арқылы тексеріңіз:

ifconfig

және inet жанындағы wlan0 тексеріңіз.

Енді бізде Интернет байланысы бар, «жылдам» жаңартуға рұқсат етіңіз.

sudo apt жаңарту

sudo apt dist -upgrade -y

Бұл біраз уақыт алуы мүмкін.

3-қадам: DS18B20 сенсоры (температура)-1 сымды

Сенсор DS18B20 (температура)-1 сымды
Сенсор DS18B20 (температура)-1 сымды
Сенсор DS18B20 (температура)-1 сымды
Сенсор DS18B20 (температура)-1 сымды

Әр жобада әрқашан ерекше нәрсе болуы керек, әйтпесе ол жұмыс істемейді.

Бұл жолы бізде DS18B20 температура сенсоры бар, ол 1 сымды қажет етеді, мен мұны түсіндірмеймін, бірақ мен оны қалай жұмыс істеу керектігін түсіндіремін.

Ол үшін біз Rpi-дегі raspi-конфигурациясына қайтуымыз керек, жақсы көгілдір экран.

  1. Интерфейс опцияларына өтіңіз
  2. 1-сымды таңдап, қосу таңдаңыз.

Орындалды…

Жай әзілдедім.

Енді біз /boot/config.txt файлын реттеуіміз керек

sudo nano /boot/config.txt

Бұл жолды төменгі жағына қосыңыз.

# Бір сымды қосыңыз

dtoverlay = w1-gpio

Енді sudo бұл нәрсені қайта жүктейді, енді біз аяқтадық.

Оның жұмыс істеп тұрғанын тексеру үшін сенсорды Rpi -ге қосыңыз, содан кейін терминалға оралыңыз және осы кодты теріңіз (Температура сенсорын қосу әдісі туралы келесі қадамды қараңыз).

cd/sys/bus/w1/devices/w1_bus_master1

ls

Сіз сол жақ жоғарғы жағында қара көк түспен сандар мен әріптер бар нәрсені көруіңіз керек, бұл ақпаратты кейін github кодымен жұмыс жасайтын уақытқа жазыңыз.

Егер қандай да бір себептермен ол жұмыс істемесе, онда тереңірек орналасқан сілтемені тексеріңіз.

4 -қадам: MCP3008 - Аналогты сезу

MCP3008 - Аналогты сезу
MCP3008 - Аналогты сезу
MCP3008 - Аналогты сезу
MCP3008 - Аналогты сезу

Біз температура сенсорына өзгеріс енгізгендіктен, біз басқа датчиктерге де кейбір өзгерістер енгізуіміз керек, өйткені олар бізге аналогтық деректерді оқу керек. Бұл жерде MCP3008 ыңғайлы болса, бізге SPI интерфейсін өзгерту қажет.

sudo raspi-config

Интерфейс опцияларына өтіңіз -> SPI таңдаңыз -> қосыңыз.

Содан кейін Аяқтаңыз.

5 -қадам: Жабдық

Біз Rpi -мен толықтай айналысқан жоқпыз, бірақ біз құрылғыны құрастыруды және біріктіруді бастауға жеткілікті.

Кейбір кеңестер - Rpi жарылып кетпеуін қамтамасыз ету үшін құрылыс кезінде қосылымдарды мұқият тексеру.

Сонымен қатар, схемада сіз кейбір компоненттердің бір рет қосылғанын байқайсыз, бірақ біз сол компоненттің 1 -ден астамымен жұмыс істейтін боламыз. Бұл сізге сол 1 компонентті құру процесін қайталау керек дегенді білдіреді. 1 шағын ерекшелік бар, mq-x сенсорларына қосымша деңгейдегі түрлендіргіш немесе MCP3008 қажет емес. Деңгей түрлендіргіші мен MCP3008 -ге қосымша жасыл кабельді (pdf форматында) қосыңыз.

Қосымша өңдеу: Желдеткіштер транзисторды коммутатор ретінде қолдануы керек. Мен 1 желдеткіш үшін 2n2222A транзисторын қолданамын, себебі 2 желдеткіш ауыр жүктеме болуы мүмкін.

Егер сізде үлкен ток өткізетін транзистор болса, онда бұл қадамның соңғы бөлігін өткізіп жіберіңіз.

Егер сізде менікі жоқ болса, онда сізге осылай істеу керек: 1 желдеткіш = 1 транзистор, 2 желдеткіш = 2 транзистор және т.б.

Сондай -ақ, append.py бағдарламасына backend_project бағдарламасына 7 -қадамда келесі кодты қосу қажет болады: Git коды….

6 -қадам: Mariadb мәліметтер базасын құру

Mariadb мәліметтер базасын құру
Mariadb мәліметтер базасын құру

Тақырыпта айтылғандай, біз сенсорлық деректерді сақтайтын орынға ие болу үшін мәліметтер базасын құрамыз.

Ең алдымен, Rpi -де Mariadb жүктеп алыңыз.

sudo apt-get install mariadb-server

Орнатқаннан кейін оны қолданайық.

mysql -u түбірі

Құпия сөз бос, сондықтан теруге ештеңе жоқ. Enter пернесін басыңыз.

Енді қолданушыны құруға рұқсат етіңіз.

USER 'user'@'%' IDENTIFIED BY 'userdb' жасаңыз;

ГРАНТТЫ ОПЦИОНДЫҢ *. * Қолданушысына '' '' барлық артықшылықтарын беру;

АРТЫҚШЫЛЫҚТАР;

Шығу және қызметті жылдам қайта іске қосу үшін Ctrl + C пернелер тіркесімін басыңыз:

sudo қызметі mysql қайта іске қосыңыз

Пайдаланушы атымен кіріңіз: user & password: userdb:

mysql -u пайдаланушы -p

Деректер қорын құрудың уақыты келді.

DATABASE CREATE project_db ӘДЕБИЕТ СИПАТТАМАСЫН ЖИНАУ utf8;

Project_db пайдаланыңыз

«Historiek» кестесін құрыңыз (тарихты білдіреді).

КЕСТЕ ЖАСАҢЫЗ `historiek` (` id` INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;

Ал voila, мәліметтер базасы жасалады.

7 -қадам: Github коды және тестілеу

Github коды және тестілеу
Github коды және тестілеу

Біз жобамыздың соңына жақындап қалдық.

Кодты алмас бұрын бізге Rpi -ге кейбір модульдерді импорттау қажет болады:

pip3 Flask_MySQL орнатады

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

pip3 орнату -U колбасы -корс

pip3 spidev орнатыңыз

Енді оны іске қосу үшін бізге код қажет, терминалды теріңіз:

git клоны

Қалтаның бар -жоғын тексеріңіз:

ls

Енді сізге 2 терминал қажет болады, сондықтан терминалды тінтуірдің оң жақ түймесімен нұқып, сессияларды қайталау түймесін басу ыңғайлы:

Cd пәрменін пайдаланып backend_project және температураға өтіңіз.

Енді тестілеу үшін бағдарламаларды бастамас бұрын. Кейбір сандарды жазу керек 1 сымды сенсормен 3-қадам әлі есіңізде ме? Уайымдамаңыз, егер сізде 3 -қадамды қайталап көріңіз.

Біз бұл сандарды кодқа қосамыз, себебі оны қолданған кезде дұрыс сенсорды білу қажет болады.

Температура қалтасы бар терминал, сіз app.py таба аласыз. Біз оны ашамыз.

sudo nano app.py

«Def temperatuur ():» деп аталатын функцияны іздеңіз, онда сіз «**» санын жазған сандармен ауыстыруға тура келеді. Менің жағдайда мен бұл кодты аламын (әр нөмір бірегей).

sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave

Сынақ уақыты. Backend_project пен температура қалтасындағы екі терминал да мынаны теріңіз:

python3 app.py

Енді 5 -қадамды есте сақтаңыз: егер сіз бірнеше желдеткіш пен транзисторды қолдансаңыз, кодты қосу қажет болатын аппараттық құрал?

Жақсы, егер 5 -қадамға оралмасаңыз.

Енді біз backend_project ішінде app.py -ге айтқанымдай кодты қосуымыз керек. Жеңілдету үшін мен бұл туралы кодта мысал келтірдім. «Fan1» бар түсініктеме кодының әр жолы, бұл жолдар мен voila -ны жазыңыз, енді сіз 2 желдеткішті қолдана аласыз.

Егер сіз 2 -ден астам желдеткішті қолданғыңыз келсе, сол кодты астына көшіріп, басқа нөмірмен қойыңыз. Мұның кемшілігі - бұл сіз үшін жеке жұмыс және қол жетімді gpio.pins. Бұның мен білетін артықшылықтары жоқ.

8 -қадам: жүктеу кезінде кодты іске қосыңыз

Жүктеу кезінде кодты іске қосыңыз
Жүктеу кезінде кодты іске қосыңыз

Біз бұл 2 python сценарийлері біздің Rpi жүктелген сәтте іске қосылғанын қалаймыз және сценарий бұзылған жағдайда, ол өздігінен қайта қосылуы керек. Ол үшін біз 2 қызмет көрсетеміз.

Ол үшін теріңіз:

sudo nano /etc/systemd/system/temperature.service

Осыны температура үшін көшіріп, қойыңыз: қызмет:

[Бірлік] Сипаттама = Температура қызметі кейін = көп қолданушы.мақсаты

Қақтығыстар [email protected]

[Қызмет] Түрі = қарапайым

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py

StandardInput = tty-force

Қайта қосу = сәтсіздік

RestartSec = 60 -шы жылдар

[Орнату]

WantedBy = multi-user.target

Жабыңыз және қайтадан жасаңыз, бірақ содан кейін backend_project.service үшін:

Бірінші ашық мәтін:

sudo nano /etc/systemd/system/backend_project.service

Содан кейін қайтадан көшіріп, қойыңыз:

[Бірлік] Сипаттама = backend_project қызметі

= Көп қолданушы.мақсаттан кейін

Қақтығыстар [email protected]

[Қызмет]

Түрі = қарапайым

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py

StandardInput = tty-force

Қайта қосу = сәтсіздік

RestartSec = 60 -шы жылдар

[Орнату]

WantedBy = multi-user.target

Сақтау және жабу.

Соңғы бөлім мынаны жазады:

sudo systemctl демонды қайта жүктеу

sudo systemctl температураны қосады. қызмет sudo қайта жүктеу

Енді біздің 2 python сценарийлері жүктеу кезінде автоматты түрде жұмыс істеуі керек.

9 -қадам: Веб -сайтты орнату

Репозиторийді жүктеген кезде сізде front деп аталатын қалта болуы керек еді. Бұл сайттың мазмұны.

Алдымен қалтаны пайдаланбас бұрын бізге apache қажет. Apache үшін осы сілтеме бойынша нұсқаулықты орындаңыз.

Сіз дайын болғанда. Алдыңғы қалта орналасқан жерге өтіңіз:

cd /Documents /nmct-s2-project-1-TheryBrian

Содан кейін теріңіз:

sudo mv front/var/www/html

Бұл аяқталғаннан кейін, html қалтасына өтіңіз, қиын жұмысқа дайындалыңыз (менің кінәм).

cd/var/www/html/

содан кейін алдыңғы қалтаға кіріп, барлығын html қалтасына жылжытыңыз.

мысал:

sudo mv css/var/www/html

Содан кейін алдыңғы қалтаны жойыңыз.

Ал біз бәрін бітірдік.

Іске сәт:).

10 -қадам: Қосымша - миниатюралық прототип

Қосымша - миниатюралық прототип
Қосымша - миниатюралық прототип
Қосымша - миниатюралық прототип
Қосымша - миниатюралық прототип

Тексеру себептері бойынша мен барлық жабдықтары бар жәшіктің прототипін жасадым, осылайша бәрі тапсырыс бойынша жұмыс істейтінін көре аламын.

Әдетте бұл жоба ауқымды түрде жүзеге асады. Мысалы: бөлме, үй, зауыт, дүкен және т.

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

Міне менің мысал.

Ұсынылған: