Съдържание:

AirPi - Сензор за качеството на въздуха: 8 стъпки
AirPi - Сензор за качеството на въздуха: 8 стъпки

Видео: AirPi - Сензор за качеството на въздуха: 8 стъпки

Видео: AirPi - Сензор за качеството на въздуха: 8 стъпки
Видео: Измерение количества частиц, содержания летучих органических соединений и качества воздуха CO2 2024, Ноември
Anonim
AirPi - Сензор за качество на въздуха
AirPi - Сензор за качество на въздуха

Замисляли ли сте се защо ви боли глава? И ако това се дължи на лошо качество на въздуха? С това устройство можете да проверите дали това е така. Това устройство измерва CO2-стойността, TVOC-стойността, температурата и влажността. Можете да видите качеството на въздуха на живо на LCD дисплея и да видите ясна индикация дали става опасно. По този начин можете да отворите прозорците си навреме.

Ако въведете IP адресите - показани при стартиране на устройството във вашия браузър - уебсайтът ще се отвори. Можете да видите много информация за вътрешната среда, заедно с графики за последните минути / часове. Има и индикация на живо и малко информация и съвети на таблото за управление.

Този проект е направен от студент в Howest Kortrijk, NMCT (Нови медии и комуникационни технологии).

Стъпка 1: Материали

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

Това е всичко, което купих, за да създам този проект. Това е сравнително евтин проект, в зависимост от цената на 3D отпечатването. Ако можете да го отпечатате в училище, това може да е много евтино. В противен случай зависи от това къде го отпечатвате и от материала, в който го отпечатвате. Ще забележите, че съм купил много на едро, просто защото е трудно да се намерят отделни резистори или светодиоди и това го прави още по -евтино. Ако имате време, можете да поръчате повечето артикули на aliexpress.com, доставката може да отнеме известно време, но по този начин можете да ограничите разходите си.

Без отпечатъка парите, които изразходвах за този проект, са 81, 80 евро.

Това са материалите, от които се нуждаете:

Верига:

  • Малина Пи 3
  • SD карта 8GB (минимум)
  • Сензор за качеството на въздуха CCS811
  • DHT22 сензор за температура и влажност
  • Потенциометър (контрастен LCD)
  • LCD 16x2
  • Джъмперни проводници от женски към женски
  • Зелен и червен светодиод
  • Резистори (2x470ohm и 1 4700ohm)

Калъф:

  • 3D печат
  • Винтове
  • 2 -компонентно лепило (или друго горещо лепило)
  • инструмент за рязане на нишки

Само ако използвате печатна платка:

  • Поялник
  • Flux (улеснява)
  • Калай
  • Експериментирайте печатна платка 2x4cm

Стъпка 2: Връзки

Връзки
Връзки

Свържете проводниците както по -горе. Можете да видите електрическа верига във файла за фризиране. Това не е много сложна схема, но ако искате да я направите възможно най -малка, определено искате да получите експериментална платка. Окабеляването ще бъде същото, освен GND и Vin ще бъдат свързани към печатната платка. Сензорите ще бъдат свързани чрез женски джъмперни проводници или мъже с запояване. Не забравяйте да запоите резистора на сензора DHT22.

Препоръчвам също да използвате къси кабели, трябва да са 10 см. В противен случай кутията ще се напълни с кабел още повече. Не се нуждаете от много дълги, тъй като размерът на отпечатъка е възможно най -малък.

Стъпка 3: 3D-печат

3D печат
3D печат
3D печат
3D печат

Първата мисъл, която ми хрумна, когато си мислех за калъф, беше 3D принт. Тъй като баща ми беше разпечатал няколко други неща и той сам ги е проектирал. Заедно създадохме този дизайн и обсъдихме всеки аспект. Тя трябва да е достатъчно добре охладена, всичко може да се завие на място и ако не, може да се постави на място.

Дори нарисувахме всеки компонент, за да проверим дали всичко се вписва. Файлът е достъпен за всички и бихме искали да чуем обратна връзка. Останахме много доволни от резултата.

Стъпка 4: Код

Кодът за този проект може да бъде намерен в Github. Ако сте използвали други пинове (например друг GPIO-пин за светодиодите, ще трябва да коригирате тези променливи. Ще има два изпълнявани скрипта на python, web.py за уебсайта и sensor.py за четене на сензорите и актуализиране Ще импортираме клас 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 install -надстройка на pip setuptools колело virtualenv

me@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system-site-пакети env me@my-rpi: ~/project1 $ източник env/bin/ активирайте (env) me@my-rpi: ~/project1 $ python -m pip инсталирайте mysql-конектор-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-конектор-python passlib

Тъй като това е направено, можете да клонирате кода от моя GitHub във вашата виртуална среда. Това може да стане по много начини.

В директорията conf можете да намерите четири файла, които ще трябва да коригирате, ако е необходимо. Определено ще трябва да промените потребителския и началния указател във всеки файл. UWSGI ini трябва да е наред, стига да не сте променили кода ми, не забравяйте да промените потребителя и virtualenv, ако е необходимо.

Тъй като сензорът CCS811 е бил умишлено използван за arduino, това не може да комуникира през i2c шината със скоростта на малиновото пи. Ще трябва да намалите скоростта до 10000 (използвах 9600) в конфигурационния файл.

Ще трябва да вземете и библиотеката на сензора за адафрут. Бих могъл да обясня това тук, но има перфектно ръководство за адафрут, което обяснява всичко това много добре.

Тъй като искаме скриптовете на python да се изпълняват автоматично, когато малинката е свързана, ще трябва да използвате услугите. Те би трябвало да са наред, ако запазихте кода ми. Всичко, което трябва да направите, за да работят, е да ги активирате. Преди да направите това, има едно последно нещо.

Тъй като използваме уеб сървър nginx, ще трябва да деактивираме настройката по подразбиране и да я заменим с нашата собствена конфигурация. За да направите това, трябва да изпълните следните стъпки:

  • копирайте conf/nginx на *налични сайтове *
  • Премахнете връзката към default-config
  • Добавете връзка към новата конфигурация
  • Рестартирайте nginx, за да запазите промените

me@my-rpi: ~/project1 $ sudo cp conf/project1-*. услуга/etc/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl демон-презареди ме@my-rpi: ~/project1 $ sudo systemctl стартирай 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 статус mysql

За да създадете база данни и потребители, можете просто да изпълните sql-скриптове в кода от GitHub. Ако сте направили това правилно, трябва да видите таблиците си с помощта на тази команда:

me@my-rpi: ~ $ echo 'покажи таблици;' | mysql project1 -t -u project1 -admin -p

Сега сме готови, можете да тествате това без кутията, за да се уверите, че всичко работи. Освен ако не сте свързани с wifi, ще трябва да го свържете с Ethernet кабел и да го стартирате ръчно.

Стъпка 6: Свържете се с Wi-Fi

Отворете конфигурационния файл wpa-supplicant в nano (всъщност няма значение, просто се уверете, че можете да работите с текстовия редактор).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Отидете в долната част на файла и добавете следното (заменете ssid-name и password-name с вашите):

мрежа = {

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

За да създадете криптирана парола, можете да използвате wpa_passphrase и просто да я копирате в wpa_supplicant.conf psk, за да направите нещата по -сигурни.

wpa_passphrase "ssid-name" "име на парола"

Ако искате тя да се свързва автоматично с тази Wi-Fi мрежа, а в конфигурационния файл има други, уверете се, че сте сменили приоритета на по-високо ниво, като добавите този ред към мрежата в конфигурационния файл:

приоритет = 2

Не забравяйте да конфигурирате отново интерфейса с:

wpa_cli -i wlan0 преконфигуриране

Сега сте готови и свързани към wifi мрежа.

Стъпка 7: Съберете всичко заедно

Сглобявайки всичко заедно
Сглобявайки всичко заедно
Сглобявайки всичко заедно
Сглобявайки всичко заедно
Сглобявайки всичко заедно
Сглобявайки всичко заедно

Тъй като всичко е свързано и споено, можем да стигнем до кутията. Това е проектирано така, че да можете да отворите кутията без никакви разхлабени проводници. Това означава, че всичко е прикрепено към долната част. Първото нещо, което трябва да направите, е малка корекция на малината. На всеки ъгъл има дупки, но те не са толкова големи, колкото би трябвало да бъдат. Диаметърът трябва да е достатъчен, за да побере вътре 3 мм винт. Трябваше да полираме отворите, така че да станат малко по -широки.

Второто нещо, което трябва да направите, е да изрежете винтова резба във всеки отвор. Това може да звучи трудно, но лесно може да се направи с подходящите инструменти. Бих препоръчал да направите това в местен магазин за хардуер, просто поискайте инструмент за рязане на конци. Тъй като баща ми е златар, той имаше инструментите да направи това по време на работа. Може да кача нов stl-файл, така че да бъде отпечатан по-късно, но това ще изисква много точен принтер.

Третата стъпка е да завиете пи върху долната част. Ще ви трябват 4 7 мм винта с диаметър 3 мм. След това можете да забиете PCD платката на предвиденото място в горната част на долната част. Сензорът CCS811 може да бъде поставен на предвиденото място вляво и DHT11 може да бъде прикрепен към дясната плоча. И двете са изолирани и вентилирани достатъчно, но след това забелязахме, че вътре все още се нагрява. Повече за това по -късно.

След това трябва да прикрепите светодиодите към тяхната тръба. Направихме това с двукомпонентно лепило, но можете да го направите както искате. Уверете се, че те остават там.

Сега можете да прикрепите LCD дисплея, ще ви трябват винтове със същия диаметър като предишните, но малко по-дълги. Моите бяха 1 см. Ако четирите винта са завинтени, остава само едно нещо да се направи. Прикрепете горната част. Нужни са ви само четири винта със същия диаметър и те са 2 см. Сега всичко трябва да е на мястото си и можете да го стартирате.

Стъпка 8: Стартирайте го

Процесът на стартиране на този проект е много лесен:

  1. Прикрепете захранващия кабел в лявата страна на кутията. Не се вижда много, но можете да видите през отворите. Ако го получите веднъж, това няма да е проблем отново.
  2. Дайте му малко време за стартиране.
  3. IP адресът ще се появи на дисплея за десет секунди. Единственото нещо, което трябва да направите, е да се уверите, че сте свързани към същата мрежа и да въведете IP адреса в адресната лента на браузъра си.
  4. Вече сте на уебсайта. Все още нямате акаунт, така че създайте акаунт.
  5. Ако сте регистрирани, влезте.
  6. Свършен! Можете да видите всички данни на уеб страницата и LCD дисплеят показва текущото качество на въздуха.

Тъй като топлината се покачва, ние сме разположили сензорите в долната част на кутията. По този начин температурата няма да има голямо влияние върху регистрираните стойности. Така че за оптимални измервания, накарайте устройството да се изправи или просто можете да го закачите на стената.

Препоръчано: