Мазмұны:
- Жабдықтар
- 1 -қадам: Raspberry Pi орнату
- 2 -қадам: Қосылу және жергілікті желіге Rpi сымсыз байланысы
- 3-қадам: DS18B20 сенсоры (температура)-1 сымды
- 4 -қадам: MCP3008 - Аналогты сезу
- 5 -қадам: Жабдық
- 6 -қадам: Mariadb мәліметтер базасын құру
- 7 -қадам: Github коды және тестілеу
- 8 -қадам: жүктеу кезінде кодты іске қосыңыз
- 9 -қадам: Веб -сайтты орнату
- 10 -қадам: Қосымша - миниатюралық прототип
Бейне: TheAir - газ сенсоры жобасы: 10 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Көміртек тотығы мен көмірқышқыл газы, сонымен қатар СО және СО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 орнату
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 арасындағы Ethernet кабелін қосамыз.
-
Putty бағдарламасын бастаңыз және оны толтырыңыз:
- Хост атауы (немесе IP -адрес): 169.254.10.1
- Порт: 22
-
Терминал пайда болады және сіз әдепкі пайдаланушы аты мен құпия сөзді енгізесіз:
- Пайдаланушы аты: pi
- Құпия сөз: таңқурай
Енді біз rpi -ге жергілікті түрде қосылғандықтан, Rpi -дің сіздің Wi -Fi желісіне қосылуын қалаймыз.
- Қосымша: «sudo raspi-config» теріңіз
- Мұнда сізге pi пайдаланушысының құпия сөзін өзгерту қажет болады (қауіпсіздік себептері)
- Содан кейін Локализация опциялары -> Уақытты өзгерту (дұрысын таңдаңыз) -> Содан кейін Wifi еліне өтіңіз -> елді таңдаңыз.
- Raspi-config жабыңыз және қайта жүктеңіз.
- Жүйеге кіргенде, уақытша өзіңізді түбірлік пайдаланушы етіңіз -> sudo -i
-
Желіні 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 сымды қажет етеді, мен мұны түсіндірмеймін, бірақ мен оны қалай жұмыс істеу керектігін түсіндіремін.
Ол үшін біз Rpi-дегі raspi-конфигурациясына қайтуымыз керек, жақсы көгілдір экран.
- Интерфейс опцияларына өтіңіз
- 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 ыңғайлы болса, бізге 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 мәліметтер базасын құру
Тақырыпта айтылғандай, біз сенсорлық деректерді сақтайтын орынға ие болу үшін мәліметтер базасын құрамыз.
Ең алдымен, 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 коды және тестілеу
Біз жобамыздың соңына жақындап қалдық.
Кодты алмас бұрын бізге 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 -қадам: Қосымша - миниатюралық прототип
Тексеру себептері бойынша мен барлық жабдықтары бар жәшіктің прототипін жасадым, осылайша бәрі тапсырыс бойынша жұмыс істейтінін көре аламын.
Әдетте бұл жоба ауқымды түрде жүзеге асады. Мысалы: бөлме, үй, зауыт, дүкен және т.
Бірақ біз қабырғаға тесік жасауды бастамас бұрын (жақсы рифма). Біз алдымен оның жұмыс істейтінін көргіміз келеді. Сынақ үшін қорап жасаудың қажеті жоқ, бірақ қолөнер жасау әрқашан қызықты.
Міне менің мысал.
Ұсынылған:
DIY тыныс алу сенсоры Arduino көмегімен (өткізгіш тоқылған созылу сенсоры): 7 қадам (суреттермен)
DIY тыныс алу сенсоры Arduino көмегімен (өткізгіш тоқылған созылу сенсоры): Бұл DIY сенсоры өткізгіш тоқылған созылу сенсоры түрінде болады. Ол кеудеге/асқазанға оралады, ал кеуде/асқазан кеңейгенде және қысылғанда сенсор, демек, Arduino -ға берілетін кіріс деректері кеңейеді. Сонымен
Мәзірі бар Arduino DHT22 сенсоры мен топырақ ылғалдылығы жобасы: 4 қадам
Мәзірмен Arduino DHT22 сенсоры мен топырақ ылғалдылығы жобасы: Сәлеметсіздерме балалар мен бүгін мен сіздерге екінші жобамды ұсынамын. Бұл жоба мен ылғалдылық пен ылғалдылықты өлшеуге арналған топырақ ылғалдылығы мен DHT22 сенсорларын қолданған алғашқы жобамның қоспасын ұсынады. . Бұл жоба
Arduino күн энергиясымен жұмыс істейтін температура мен ылғалдылық сенсоры 433 МГц Орегон сенсоры ретінде: 6 қадам
Arduino күн энергиясымен жұмыс істейтін температура мен ылғалдылық сенсоры 433 МГц Орегон сенсоры: Бұл күн сәулесінен жұмыс істейтін температура мен ылғалдылық сенсорының құрлысы. Сенсор 433 МГц жиілікті Орегон сенсорына ұқсайды және Telldus Net шлюзінде көрінеді. Күн энергиясының қозғалыс сенсоры " ebay -ден. 3.7 вольтты қамыр екеніне көз жеткізіңіз
GY -30 BH1750 жарық сенсоры (GY30 / GY302) қалай сыммен қосылады және қолданылады - Оңай - Arduino жобасы!: 7 қадам
GY -30 BH1750 жарық сенсоры (GY30 / GY302) - сымды қалай қолдану керек - Arduino жобасы!: Бұл оқулықта біз Arduino көмегімен GY -30 BH1750 жарық интенсивті сенсорын тез және оңай қолдануды үйренеміз. Көрсетілім бейнесін қараңыз
RFID + Түс сенсоры IoT жобасы: 7 қадам
RFID + Color Sensor IoT жобасы: Бұл жобаның идеясы кофе шыныаяқтарын ішіп, оларды дұрыс тастаған адамдарды марапаттау болып табылады. Мысалы, Тим Хортонс сияқты компанияны алайық; 2014 жылы олар жылына 2 миллиард шыныаяқ кофе беретінін жазды. Олардың шыныаяқтарын қайта өңдеуге болатынына қарамастан