Съдържание:
- Консумативи
- Стъпка 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 07:52
Въглероден окис и въглероден диоксид, известен също като CO и CO2. Газове, които са безцветни, без мирис, без вкус и откровено опасни, когато са във високи концентрации в затворено помещение. Ако живеете, например в студентска стая, която е лошо изолирана, без добър въздушен поток и по някаква причина тостерът издава странен шум, докато прави тост. Тогава може да влезете в контакт с тези газове и когато това се случи, да се надяваме, че ще завърши само с леко главоболие, защото при висока концентрация може да ви обезсмисли или дори да ви убие (макар и много рядко).
Затова реших да измисля този проект. Идеята ми е проста, използвайте вентилатори, за да направите въздушен поток. Добър въздух навътре и лош въздух, така да се каже. За допълнителна помощна програма добавих допълнителен температурен сензор, бутон за вентилатори за ръчно активиране, както и уебсайт за тези, които обичат да виждат статистика и/или да активират вентилатори от компютъра си.
Като ученик, родител, самотен човек или живо същество. Това е нещо, което обикновено бихте искали да избягвате, когато живеете в уюта на собствената си къща. Това помага на тези, които обичат да улеснят живота си малко.
Консумативи
- Raspberry Pi 3+
- Мини-USB зарядно устройство 5V/2.5A
- Micro-sd карта
-
Сензори
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (температура)
- 2 x 12V DC вентилатор
- 2 x 2n2222 транзистора
- LCD 16*2 дисплей
- Натисни бутона
- MCP3008
- Конвертор на ниво Logi
- Ethernet кабел (поради причини за настройка)
Стъпка 1: Настройка на Raspberry Pi
Преди да започнем работа с Rpi, ще ни трябва някакъв софтуер.
- WinSCP или FilleZilla (по избор, ако искате да прехвърлите файлове от вашия компютър към Rpi)
- Win32 диск или Etcher (който предпочитате повече)
- Замазка или MobaXterm (който предпочитате повече)
- Raspbian изображение с десктоп
Преди да започна, бих искал да спомена, че когато правя този урок, когато избирам програма над другата, НЕ означава, че я препоръчвам. Например обичам да използвам etcher, защото е по -удобен за потребителя, но Win32 има възможност да прави резервни копия. Сега това е извън моята система, нека започнем.
Ако вече имате Rpi, който е свързан към вашата wifi мрежа, преминете към стъпка 3.
Първо ще използваме Etcher, за да поставим Raspbian изображението на вашата sd карта. Сега, преди да извадим SD картата, ще променим някои "неща" във файла cmdline.txt, които могат да бъдат намерени в изображението. Отворете.txt файла -> Добавете този ред „ip = 169.254.10.1“(без кавички) в края на реда (всички на 1 ред) -> Запазване на файл
Второ направете празна папка, наречена "ssh" в зареждащия дял (без кавички).
След това можете безопасно да извадите Microsd и да го поставите в Rpi.
Причината за твърдо кодирания статичен IP е да улесни свързването към Rpi. Ако по някаква причина Rpi няма ip с DHCP, лесно можете да използвате статичния ip.
Стъпка 2: Осъществяване на връзка и свързване на Rpi безжична връзка към вашата локална мрежа
Ще стартираме Rpi -> свързваме Ethernet кабела между компютър и Rpi.
-
Стартирайте Putty и попълнете това:
- Име на хост (или IP адрес): 169.254.10.1
- Пристанище: 22
-
Появява се терминал и въвеждате потребителското име и паролата по подразбиране:
- Потребителско име: pi
- Парола: малина
Сега, когато сме свързани локално с rpi, искаме Rpi да има връзка с вашия wifi.
- Допълнително: въведете „sudo raspi-config“
- Тук ще трябва да смените паролата за потребителя на pi (от съображения за безопасност)
- След това отидете на Опции за локализация -> Промяна на времето (изберете правилното) -> След това отидете на Wifi държава -> изберете държава.
- Затворете raspi-config и рестартирайте.
- Когато сте влезли, временно се направете root потребител -> sudo -i
-
Напишете тази команда, за да добавите вашата мрежа към Rpi (код под списъка)
- парола = "парола" (с кавички)
- Име на мрежа = "SSID"
- Не забравяйте да използвате двойно >>! Важно!
ехо "парола" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Сега рестартирайте отново
Когато се свързвате отново, проверете вашия ip, като въведете:
ifconfig
и проверете wlan0, до inet.
Сега, когато имаме връзка с интернет, нека направим „бърза“актуализация.
sudo apt актуализация
sudo apt dist -upgrade -y
Това може да отнеме известно време.
Стъпка 3: Сензор DS18B20 (температура)-1-проводник
При всеки проект винаги ще има нещо специално, което трябва да се направи, иначе няма да работи моментално.
Този път го имаме с температурния сензор DS18B20, който изисква 1-проводник, което няма да обяснявам защо, но ще обясня как да го накарам да работи поне.
За това трябва да се върнем към raspi-config на Rpi, хубавия син екран.
- Отидете на Опции за взаимодействие
- Изберете 1-Wire и изберете активиране.
Свършен…
Само се шегувам.
Сега ще трябва да коригираме /boot/config.txt
sudo nano /boot/config.txt
Добавете този ред в долната част.
# Активирайте onewire
dtoverlay = w1-gpio
Сега sudo рестартирайте това нещо и сега сме готови.
За да проверите дали работи, свържете сензора към Rpi, след това се върнете към терминала и въведете този код (Вижте следващата стъпка Хардуер за това как да свържете температурен сензор).
cd/sys/bus/w1/devices/w1_bus_master1
ls
Трябва да видите нещо с цифри и букви в тъмно синьо горе вляво, не забравяйте да напишете тази информация за по -късно, когато ще работим с кода от github.
Ако по някаква причина не работи, проверете тази връзка, която навлиза по -дълбоко в нея.
Стъпка 4: MCP3008 - Аналогово откриване
Тъй като направихме промяна за температурния сензор, ние също трябва да направим някои промени за другите сензори, тъй като те трябва да се четат в аналогови данни. Тук, когато MCP3008 е полезен, трябва също да променим SPI интерфейса.
sudo raspi-config
Отидете на Опции за свързване -> Изберете SPI -> активиране.
След това Finish.
Стъпка 5: Хардуер
Не сме приключили изцяло с Rpi, но достатъчно, за да можем да започнем да изграждаме и сглобяваме хардуера.
Някои съвети са да проверите добре връзките си при изграждането, за да сте сигурни, че не … взривявате Rpi.
Също така в схемата ще забележите, че някои компоненти са върху нея само веднъж, въпреки че ще работим с повече от 1 от същия компонент. Това просто означава, че трябва да повторите същия процес на изграждане на този 1 компонент. Има 1 малко изключение, сензорите mq-x не се нуждаят от допълнителен преобразувател на ниво или MCP3008. Просто добавете допълнителен зелен кабел (в pdf) към преобразувателя на нивото и MCP3008.
Допълнително редактиране: Вентилаторите трябва да използват транзистор като превключвател. Използвам транзистор 2n2222A за 1 вентилатор, тъй като 2 вентилатора може да са твърде тежки.
Ако имате транзистор, който може да издържи по -голям ток, тогава добре, пропуснете последната част от тази стъпка.
Ако нямате такъв като мен, тогава ще трябва да го направите така, 1 вентилатор = 1 транзистор, 2 вентилатора = 2 транзистора и така нататък (всеки вентилатор е със собствен транзистор + диод, както е в pdf).
Също така ще трябва да добавите код към app.py в backend_project по -късно в Стъпка 7: Git код….
Стъпка 6: Създаване на база данни на Mariadb
Както подсказва заглавието, ние ще създадем база данни, така че да имаме място за съхраняване на нашите сензорни данни.
Първо, изтеглете Mariadb на Rpi.
sudo apt-get install mariadb-server
След инсталирането, нека го използваме.
mysql -u корен
Паролата е празна, така че няма какво да пишете. Натиснете enter.
Нека сега създадем потребител.
CREATE USER 'user'@'%' IDENTIFIED BY 'userdb';
ПРЕДОСТАВЕТЕ ВСИЧКИ ПРИВИЛЕГИИ НА *. * НА 'потребител'@'%' С ОПЦИЯ ЗА ГРАНТ;
ФЛУШ ПРИВИЛЕГИ;
Натиснете Ctrl + C, за да излезете и да направите бързо рестартиране на услугата:
рестартиране на услугата sudo mysql
Влезте с потребителско име: потребител и парола: userdb:
mysql -u потребител -p
Време е да създадете база данни сега.
CREATE DATABASE project_db DEFAULT CHARACTER SET 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;
И ето, базата данни е направена.
Стъпка 7: Github код и тестване
Наближаваме края на нашия проект.
Преди да получим кода, ще трябва да импортираме някои модули в Rpi:
pip3 инсталирайте Flask_MySQL
pip3 инсталирайте flask-socketio
pip3 install -U flask -cors
pip3 инсталирайте spidev
Сега имаме нужда от кода, за да работи, въведете терминала:
git клониране
Проверете дали папката е там с:
ls
Сега ще ви трябват 2 терминала, така че е удобно да щракнете с десния бутон върху терминала и да щракнете върху Дублирани сесии:
Отидете на backend_project и температура с помощта на командата cd.
Сега, преди да стартираме програмите за целите на тестването. Помните ли още Стъпка 3 с 1-проводния сензор, където трябва да запишете някои числа? Не се притеснявайте, ако имате, просто надникнете отново в стъпка 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.
Сега трябва да добавим код, както споменах към app.py в backend_project. За да го улесня, направих пример за това в кода. Всеки ред с коментарен код, който има „fan1“в него, разкомментирайте тези редове и ето го, сега можете да използвате 2 фена.
Ако искате да използвате повече от 2 вентилатора, копирайте и поставете същия код под него, но с различен номер. Недостатък на това е по -личната работа за вас и по -малко налични gpio.pins. Няма предимства в това, за които знам.
Стъпка 8: Стартирайте кода при стартиране
Искаме тези 2 скрипта на python да се изпълняват в момента, в който се зареди Rpi и в случай, че скриптът се срине, той трябва да се рестартира сам. За да направим това, ще направим 2 услуги.
За да направите това, въведете:
sudo nano /etc/systemd/system/temperature.service
Копирайте и поставете това за temperature.service:
[Единица] Описание = Обслужване на температурата След = многопотребителска цел
[Услуга] Тип = прост
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
StandardInput = tty-force
Рестартиране = при неизправност
RestartSec = 60s
[Инсталирай]
WantedBy = многопотребителска цел
Затворете и направете отново, но след това за backend_project.service:
Първият отворен текст:
sudo nano /etc/systemd/system/backend_project.service
След това отново копирайте и поставете:
[Единица] Описание = backend_project услуга
След = многопотребителски таргет
[Обслужване]
Тип = прост
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
StandardInput = tty-force
Рестартиране = при неизправност
RestartSec = 60s
[Инсталирай]
WantedBy = многопотребителска цел
Запази и затвори.
Последната част е да напишете това:
sudo systemctl демон-презареждане
sudo systemctl активиране на temperature.service 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: По избор - Миниатюрен прототип
От съображения за тестване направих прототип само на кутия с целия хардуер вътре, за да видя дали всичко работи по поръчка.
Обикновено този проект ще се реализира в по -голям мащаб. Например: стая, къща, фабрика, магазин и така нататък …
Но очевидно преди да започнем да правим дупки в стените (хубава рима). Първо искаме да видим дали просто работи. Всъщност не е нужно да правите кутия за тестване, но винаги е забавно да се занимавате с изработка.
Ето моя пример.
Препоръчано:
Проектът Acrophobia: 6 стъпки
Проектът Acrophobia: Здравейте момчета, така че това беше доста интересен проект. В училище нашият клас трябваше да направи проект, наречен „Ако това, тогава това“, в който трябваше да използваме Arduino, за да направим нещо. Бихме могли буквално да изберем всичко, което да направим, стига да използваме Arduino. То
Проектът за Свети Валентин: Видим сърдечен ритъм: 9 стъпки
Проектът за Свети Валентин: Видим сърдечен ритъм: Денят на Свети Валентин наближава, притеснявате ли се дали той/той ви харесва или не? Може би искате да попитате, но ето друг начин, поставете пръста в устройството за сърдечен ритъм, данните ще покажат отговора. Пулсът на възрастните е около 70 ~ 80 пъти, добре, 60 ~
Git Lit: Проектът Prism: 7 стъпки
Git Lit: Проектът Prism: Създайте призмата, но с LED светлини вместо нещо по -хладно като действителната светлина
Любовта е за геймърите, проектът Arduino, създаден за сингли: 5 стъпки
Love Is for Gamers, Arduino Project Made for Singles: Тази инструкция е за моя проект на Arduino, наречен " Любовта е за геймърите " който започна като инструмент за кикот и забавление. Не е перфектно или нещо подобно, но работи
Проектът за оранжерия (RAS): Наблюдавайте елементите за реакция на нашата плантация: 18 стъпки (със снимки)
Проектът за оранжерии (RAS): Наблюдавайте елементите, които трябва да реагират на нашата плантация: Този проект предлага да се следи температурата на въздуха, осветеността и влажността, както и температурата и влажността на горичките. Той също така предлага да се свържат тези мерки, които са толкова четими на уебсайта Actoborad.com За да свържем 4 сензора към N